ทะเบียนประวัติ ==> ข้อมูลส่วนตัว, รายการคำร้องขอแก้ไขทะเบียนประวัติ

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-12-02 18:09:51 +07:00
parent b9cd90d70a
commit b21a4f53ac
13 changed files with 64 additions and 85 deletions

View file

@ -592,6 +592,8 @@ onMounted(() => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
lazy-rules lazy-rules
emit-value emit-value
map-options map-options
@ -615,6 +617,8 @@ onMounted(() => {
outlined outlined
clearable clearable
use-input use-input
hide-selected
fill-input
lazy-rules lazy-rules
emit-value emit-value
map-options map-options
@ -716,6 +720,8 @@ onMounted(() => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
clearable clearable
lazy-rules lazy-rules
emit-value emit-value
@ -738,6 +744,8 @@ onMounted(() => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
clearable clearable
lazy-rules lazy-rules
emit-value emit-value
@ -782,6 +790,8 @@ onMounted(() => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
clearable clearable
lazy-rules lazy-rules
emit-value emit-value
@ -804,6 +814,8 @@ onMounted(() => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
clearable clearable
lazy-rules lazy-rules
emit-value emit-value
@ -909,7 +921,7 @@ onMounted(() => {
v-model:pagination="pagination" v-model:pagination="pagination"
:rows-per-page-options="[10, 25, 50, 100]" :rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumnsHistory" :visible-columns="visibleColumnsHistory"
:filter="filterHistory" :filter="filterHistory.trim()"
> >
> >
<template v-slot:header="props"> <template v-slot:header="props">

View file

@ -507,7 +507,7 @@ onMounted(async () => {
v-model:pagination="pagination" v-model:pagination="pagination"
:rows="rows" :rows="rows"
:columns="columns" :columns="columns"
:filter="filterSearch" :filter="filterSearch.trim()"
:rows-per-page-options="[10, 25, 50, 100]" :rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumns" :visible-columns="visibleColumns"
:virtual-scroll-sticky-size-start="48" :virtual-scroll-sticky-size-start="48"
@ -586,6 +586,8 @@ onMounted(async () => {
:class="!selection.includes('prefix') ? '' : 'inputgreen'" :class="!selection.includes('prefix') ? '' : 'inputgreen'"
outlined outlined
use-input use-input
hide-selected
fill-input
lazy-rules lazy-rules
emit-value emit-value
map-options map-options

View file

@ -686,6 +686,8 @@ onMounted(async () => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
lazy-rules lazy-rules
emit-value emit-value
map-options map-options
@ -709,6 +711,8 @@ onMounted(async () => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
lazy-rules lazy-rules
emit-value emit-value
map-options map-options
@ -732,6 +736,8 @@ onMounted(async () => {
dense dense
outlined outlined
use-input use-input
hide-selected
fill-input
lazy-rules lazy-rules
emit-value emit-value
map-options map-options
@ -954,7 +960,7 @@ onMounted(async () => {
:paging="true" :paging="true"
:rows-per-page-options="[10, 25, 50, 100]" :rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumnsHistory" :visible-columns="visibleColumnsHistory"
:filter="filterHistory" :filter="filterHistory.trim()"
> >
> >
<template v-slot:header="props"> <template v-slot:header="props">

View file

@ -902,6 +902,8 @@ onMounted(async () => {
label="สถานภาพการสมรส" label="สถานภาพการสมรส"
v-model="fromData.statusMarital" v-model="fromData.statusMarital"
use-input use-input
hide-selected
fill-input
input-debounce="0" input-debounce="0"
emit-value emit-value
map-options map-options
@ -953,6 +955,8 @@ onMounted(async () => {
label="คำนำหน้าชื่อ" label="คำนำหน้าชื่อ"
v-model="fromData.prefix" v-model="fromData.prefix"
use-input use-input
hide-selected
fill-input
input-debounce="0" input-debounce="0"
emit-value emit-value
map-options map-options
@ -1137,7 +1141,7 @@ onMounted(async () => {
:paging="true" :paging="true"
:rows-per-page-options="[10, 25, 50, 100]" :rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumns" :visible-columns="visibleColumns"
:filter="filterHistory" :filter="filterHistory.trim()"
> >
> >
<template v-slot:header="props"> <template v-slot:header="props">

View file

@ -787,7 +787,6 @@ onMounted(async () => {
map-options map-options
:options="columns" :options="columns"
option-value="name" option-value="name"
style="min-width: 140px" style="min-width: 140px"
/> />
@ -832,7 +831,7 @@ onMounted(async () => {
flat flat
bordered bordered
:paging="true" :paging="true"
:filter="keyword" :filter="keyword.trim()"
dense dense
v-model:pagination="pagination" v-model:pagination="pagination"
:rows-per-page-options="[20, 50, 100]" :rows-per-page-options="[20, 50, 100]"
@ -863,9 +862,7 @@ onMounted(async () => {
<q-tooltip>ประวแกไขประวการศกษา</q-tooltip> <q-tooltip>ประวแกไขประวการศกษา</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-if=" v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
isLeave == false && checkPermission($route)?.attrIsUpdate
"
flat flat
dense dense
round round
@ -1027,6 +1024,8 @@ onMounted(async () => {
:options="educationLevelOption" :options="educationLevelOption"
input-debounce="0" input-debounce="0"
use-input use-input
hide-selected
fill-input
@filter="(inputValue:string, @filter="(inputValue:string,
doneFn:Function) => filterSelector(inputValue, doneFn,'educationLevelOption' doneFn:Function) => filterSelector(inputValue, doneFn,'educationLevelOption'
) " ) "
@ -1304,6 +1303,8 @@ onMounted(async () => {
option-label="label" option-label="label"
input-debounce="0" input-debounce="0"
use-input use-input
hide-selected
fill-input
@filter="(inputValue:string, @filter="(inputValue:string,
doneFn:Function) => filterSelector(inputValue, doneFn,'educationOption' doneFn:Function) => filterSelector(inputValue, doneFn,'educationOption'
) " ) "
@ -1467,7 +1468,6 @@ onMounted(async () => {
map-options map-options
:options="historyColumns" :options="historyColumns"
option-value="name" option-value="name"
style="min-width: 140px" style="min-width: 140px"
/> />
</q-toolbar> </q-toolbar>
@ -1480,7 +1480,7 @@ onMounted(async () => {
bordered bordered
:paging="true" :paging="true"
dense dense
:filter="historyKeyword" :filter="historyKeyword.trim()"
v-model:pagination="historyPagination" v-model:pagination="historyPagination"
:rows-per-page-options="[20, 50, 100]" :rows-per-page-options="[20, 50, 100]"
class="custom-header-table" class="custom-header-table"

View file

@ -426,7 +426,7 @@ onMounted(() => {
:columns="columns" :columns="columns"
:rows="rows" :rows="rows"
:paging="true" :paging="true"
:filter="keyword" :filter="keyword.trim()"
v-model:pagination="pagination" v-model:pagination="pagination"
:rows-per-page-options="[20, 50, 100]" :rows-per-page-options="[20, 50, 100]"
:visible-columns="visibleColumns" :visible-columns="visibleColumns"
@ -650,7 +650,7 @@ onMounted(() => {
bordered bordered
:paging="true" :paging="true"
dense dense
:filter="historyKeyword" :filter="historyKeyword.trim()"
v-model:pagination="historyPagination" v-model:pagination="historyPagination"
:rows-per-page-options="[20, 50, 100]" :rows-per-page-options="[20, 50, 100]"
class="custom-header-table" class="custom-header-table"

View file

@ -129,7 +129,7 @@ function fetchListRequset() {
page: page.value, page: page.value,
pageSize: pageSize.value, pageSize: pageSize.value,
status: status.value, status: status.value,
keyword: keyword.value, keyword: keyword.value.trim(),
}, },
} }
) )
@ -197,59 +197,6 @@ function updatePageSizePagination(newPagination: Pagination) {
pageSize.value = newPagination.rowsPerPage; pageSize.value = newPagination.rowsPerPage;
} }
/**
* function หาชอไฟล
* @param id รายการยนคำรองขอแกไขขอม
*/
function onDownloadFile(id: string) {
showLoader();
http
.get(
config.API.file(
"ระบบทะเบียนประวัติ",
"เอกสารหลักฐานคำร้องขอแก้ไขข้อมูล",
id
)
)
.then(async (res) => {
if (res.data.length !== 0) {
await downloadUrl(id, res.data[0].fileName);
} else {
hideLoader();
}
})
.catch((e) => {
messageError($q, e);
hideLoader();
});
}
/**
* function โหลดไฟล
* @param id รายการยนคำรองขอแกไขขอม
* @param fileName อไฟล
*/
async function downloadUrl(id: string, fileName: string) {
await http
.get(
config.API.fileByFile(
"ระบบทะเบียนประวัติ",
"เอกสารหลักฐานคำร้องขอแก้ไขข้อมูล",
id,
fileName
)
)
.then((res) => {
window.open(res.data.downloadUrl, "_blank");
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
/** /**
* การเปลยนแปลงของ pageSize * การเปลยนแปลงของ pageSize
* เมอมการเปลยนแปลงจำทำการ งชอมลรายการคำรองขอแกไขทะเบยนประวตามจำนวน pageSize * เมอมการเปลยนแปลงจำทำการ งชอมลรายการคำรองขอแกไขทะเบยนประวตามจำนวน pageSize
@ -281,6 +228,8 @@ onMounted(() => {
map-options map-options
option-label="name" option-label="name"
option-value="id" option-value="id"
hide-selected
fill-input
:options="statusOption" :options="statusOption"
@update:model-value="updateStatusValue" @update:model-value="updateStatusValue"
:clearable="status !== ''" :clearable="status !== ''"
@ -301,13 +250,14 @@ onMounted(() => {
<q-input <q-input
v-model="keyword" v-model="keyword"
outlined outlined
clearable
dense dense
label="ค้นหา" label="ค้นหา"
style="min-width: 250px" style="min-width: 250px"
@keydown.enter="updateStatusValue()" @keydown.enter="updateStatusValue()"
class="col-xs-12 col-sm-3 col-md-2"
> >
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input> </q-input>
<q-select <q-select
@ -321,7 +271,6 @@ onMounted(() => {
map-options map-options
:options="columns" :options="columns"
option-value="name" option-value="name"
class="col-xs-12 col-sm-3 col-md-2"
style="min-width: 140px" style="min-width: 140px"
/> />
</div> </div>

View file

@ -300,6 +300,8 @@ onMounted(() => {
dense dense
outlined outlined
emit-value emit-value
hide-selected
fill-input
map-options map-options
option-label="name" option-label="name"
option-value="id" option-value="id"
@ -323,13 +325,13 @@ onMounted(() => {
<q-input <q-input
v-model="keyword" v-model="keyword"
outlined outlined
clearable
dense dense
label="ค้นหา" label="ค้นหา"
style="min-width: 250px"
@keydown.enter="updateStatusValue()" @keydown.enter="updateStatusValue()"
class="col-xs-12 col-sm-3 col-md-2"
> >
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input> </q-input>
<q-select <q-select
@ -344,7 +346,6 @@ onMounted(() => {
:options="columns" :options="columns"
option-value="name" option-value="name"
style="min-width: 140px" style="min-width: 140px"
class="col-xs-12 col-sm-3 col-md-2"
/> />
</div> </div>

View file

@ -459,6 +459,8 @@ onMounted(async () => {
use-input use-input
option-label="name" option-label="name"
option-value="id" option-value="id"
hide-selected
fill-input
@filter="(inputValue:string, @filter="(inputValue:string,
doneFn:Function) => filterOption(inputValue, doneFn doneFn:Function) => filterOption(inputValue, doneFn
) " ) "

View file

@ -125,7 +125,6 @@ async function fetchDataByid(id: string) {
*/ */
function filterOption(val: string, update: Function) { function filterOption(val: string, update: Function) {
update(() => { update(() => {
formData.status = val ? "" : formData.status;
statusOption.value = statusOptionMain.value.filter( statusOption.value = statusOptionMain.value.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.indexOf(val) > -1
); );
@ -229,6 +228,8 @@ onMounted(() => {
outlined outlined
emit-value emit-value
map-options map-options
hide-selected
fill-input
:options="statusOption" :options="statusOption"
:rules="[(val:string) => !!val || `${'กรุณาเลือกสถานะ'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกสถานะ'}`]"
lazy-rules lazy-rules

View file

@ -1,5 +1,5 @@
interface RequestObject { interface RequestObject {
birthDate: Date | null | string; birthDate: Date | null;
bloodGroup: string | null; bloodGroup: string | null;
citizenId: string; citizenId: string;
// email: string | null; // email: string | null;

View file

@ -38,6 +38,7 @@ export const useProfileDataStore = defineStore("profile", () => {
firstName: "", firstName: "",
prefix: "", prefix: "",
rank: null, rank: null,
prefixMain: "",
}; };
//ข้อมูลตัวเลือก //ข้อมูลตัวเลือก
@ -187,60 +188,61 @@ export const useProfileDataStore = defineStore("profile", () => {
* @param refData * @param refData
*/ */
const filterSelector = (val: string, update: Function, refData: string) => { const filterSelector = (val: string, update: Function, refData: string) => {
const newVal = val.toLowerCase();
switch (refData) { switch (refData) {
case "prefixOps": case "prefixOps":
update(() => { update(() => {
Ops.value.prefixOps = OpsFilter.value.prefixOps.filter( Ops.value.prefixOps = OpsFilter.value.prefixOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "rankOps": case "rankOps":
update(() => { update(() => {
Ops.value.rankOps = OpsFilter.value.rankOps.filter( Ops.value.rankOps = OpsFilter.value.rankOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "genderOps": case "genderOps":
update(() => { update(() => {
Ops.value.genderOps = OpsFilter.value.genderOps.filter( Ops.value.genderOps = OpsFilter.value.genderOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "bloodOps": case "bloodOps":
update(() => { update(() => {
Ops.value.bloodOps = OpsFilter.value.bloodOps.filter( Ops.value.bloodOps = OpsFilter.value.bloodOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "statusOps": case "statusOps":
update(() => { update(() => {
Ops.value.statusOps = OpsFilter.value.statusOps.filter( Ops.value.statusOps = OpsFilter.value.statusOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "religionOps": case "religionOps":
update(() => { update(() => {
Ops.value.religionOps = OpsFilter.value.religionOps.filter( Ops.value.religionOps = OpsFilter.value.religionOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "employeeClassOps": case "employeeClassOps":
update(() => { update(() => {
Ops.value.employeeClassOps = OpsFilter.value.employeeClassOps.filter( Ops.value.employeeClassOps = OpsFilter.value.employeeClassOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;
case "employeeTypeOps": case "employeeTypeOps":
update(() => { update(() => {
Ops.value.employeeTypeOps = OpsFilter.value.employeeTypeOps.filter( Ops.value.employeeTypeOps = OpsFilter.value.employeeTypeOps.filter(
(v: DataOption) => v.name.indexOf(val) > -1 (v: DataOption) => v.name.toLowerCase().indexOf(newVal) > -1
); );
}); });
break; break;

View file

@ -92,7 +92,7 @@ function fetchDataPerson() {
if (store.formFilter.keyword) { if (store.formFilter.keyword) {
queryParams = Object.assign({}, queryParams, { queryParams = Object.assign({}, queryParams, {
searchField: store.formFilter.searchType, searchField: store.formFilter.searchType,
searchKeyword: store.formFilter.keyword, searchKeyword: store.formFilter.keyword.trim(),
}); });
} }