From 0b210c17c6bbb6e8c0649bca20112b912cfd2239 Mon Sep 17 00:00:00 2001 From: setthawutttty Date: Thu, 7 Nov 2024 10:39:49 +0700 Subject: [PATCH] no message --- .../probation/FormAppoint/FormAppoint.vue | 88 +++++++++++-------- .../05_placement/interface/request/Main.ts | 2 +- .../components/Step/View0_Digital.vue | 2 +- 3 files changed, 54 insertions(+), 38 deletions(-) diff --git a/src/modules/05_placement/components/probation/FormAppoint/FormAppoint.vue b/src/modules/05_placement/components/probation/FormAppoint/FormAppoint.vue index 0cffa6a83..063910c80 100644 --- a/src/modules/05_placement/components/probation/FormAppoint/FormAppoint.vue +++ b/src/modules/05_placement/components/probation/FormAppoint/FormAppoint.vue @@ -75,7 +75,7 @@ const rowsDirector = ref([]); const visibleColumns = ref([ "no", - "positionNo", + "posNo", "role", "name", "position", @@ -102,15 +102,15 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", }, - // { - // name: "positionNo", - // align: "left", - // label: "เลขที่ตำแหน่ง", - // sortable: true, - // field: "positionNo", - // headerStyle: "font-size: 14px", - // style: "font-size: 14px", - // }, + { + name: "posNo", + align: "left", + label: "เลขที่ตำแหน่ง", + sortable: true, + field: "posNo", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, { name: "role", align: "left", @@ -152,15 +152,15 @@ const columns = ref([ }`; }, }, - // { - // name: "actFullName", - // align: "left", - // label: "รักษาการแทน", - // sortable: true, - // field: "actFullName", - // headerStyle: "font-size: 14px", - // style: "font-size: 14px", - // }, + { + name: "actFullName", + align: "left", + label: "รักษาการแทน", + sortable: true, + field: "actFullName", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, ]); const columnsMember = ref([ @@ -257,11 +257,22 @@ function onAddPerson() { positionType: item.posType, positionLevel: item.posLevel, actFullName: item.actFullName, - positionNo: item.posNo, + posNo: item.posNo, role: member.value, })); rows.value = [...rows.value, ...data]; - rows.value.sort((a, b) => (a.role === "chairman" ? -1 : 1)); + const roleOrder: Record<"chairman" | "committee" | "caregiver", number> = { + chairman: 0, + committee: 1, + caregiver: 2, + }; + + rows.value.sort((a, b) => { + return ( + roleOrder[a.role as keyof typeof roleOrder] - + roleOrder[b.role as keyof typeof roleOrder] + ); + }); close(); } @@ -279,11 +290,11 @@ async function getPerson() { const data = await res.data.result.data; const dataTotal = await res.data.result.total; + // rowsDirector.value = data.filter( + // (item: MemBerType, index: number, self: any[]) => + // index === self.findIndex((t: any) => t.id === item.id) + // ); rowsDirector.value = data.filter( - (item: MemBerType, index: number, self: any[]) => - index === self.findIndex((t: any) => t.id === item.id) - ); - rowsDirector.value = rowsDirector.value.filter( (item: MemBerType) => !rows.value.some((i: PersonsAppointData) => i.profileId == item.id) ); @@ -334,15 +345,7 @@ function onSubmit() { const body = { topic: topic.value, persons: rows.value.map( - ({ - prefix, - firstName, - lastName, - citizenId, - actFullName, - positionNo, - ...newData - }) => newData + ({ prefix, firstName, lastName, citizenId, ...newData }) => newData ), }; dialogConfirm($q, () => { @@ -383,9 +386,23 @@ async function getData() { position: item.position, positionType: item.positionType, positionLevel: item.positionLevel, + posNo: item.posNo, + actFullName: item.actFullName, role: item.role, })); + const roleOrder: Record<"chairman" | "committee" | "caregiver", number> = + { + chairman: 0, + committee: 1, + caregiver: 2, + }; + rows.value.sort((a, b) => { + return ( + roleOrder[a.role as keyof typeof roleOrder] - + roleOrder[b.role as keyof typeof roleOrder] + ); + }); hideLoader(); }) .catch((e) => { @@ -663,7 +680,6 @@ onMounted(async () => { map-options :options="columnsMember" option-value="name" - style="min-width: 140px" class="col-xs-12 col-sm-3 col-md-2" /> @@ -675,7 +691,7 @@ onMounted(async () => { ref="table" :columns="columnsMember" :rows="rowsDirector" - row-key="id" + row-key="key" flat :visible-columns="visibleColumnsMember" bordered diff --git a/src/modules/05_placement/interface/request/Main.ts b/src/modules/05_placement/interface/request/Main.ts index 766402f9b..d341762f5 100644 --- a/src/modules/05_placement/interface/request/Main.ts +++ b/src/modules/05_placement/interface/request/Main.ts @@ -114,7 +114,7 @@ interface PersonsAppointData { positionType: string; positionLevel: string; actFullName: string; - positionNo: string; + posNo: string; role?: string; } diff --git a/src/modules/18_command/components/Step/View0_Digital.vue b/src/modules/18_command/components/Step/View0_Digital.vue index d99b54f04..b50dc30d1 100644 --- a/src/modules/18_command/components/Step/View0_Digital.vue +++ b/src/modules/18_command/components/Step/View0_Digital.vue @@ -739,7 +739,7 @@ onMounted(async () => { flat :columns="columns" :rows="rows" - row-key="id" + row-key="key" dense selection="single" v-model:selected="selected"