From aec36b1b6ad2c17f3dc654b9997d8db543fb0919 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 19 Jun 2025 14:23:31 +0700 Subject: [PATCH 01/11] fix edit registry excel & org --- .../views/edit/components/Table.vue | 6 +- src/stores/mixin.ts | 246 ++++++++++++------ 2 files changed, 173 insertions(+), 79 deletions(-) diff --git a/src/modules/04_registryPerson/views/edit/components/Table.vue b/src/modules/04_registryPerson/views/edit/components/Table.vue index 552f5546f..a0cf13296 100644 --- a/src/modules/04_registryPerson/views/edit/components/Table.vue +++ b/src/modules/04_registryPerson/views/edit/components/Table.vue @@ -447,10 +447,8 @@ function exportToExcel() { ? e.posNumCodeSit : "", commandNo: - e.posNumCodeSitAbb && e.posNumCodeSit - ? `${e.posNumCodeSit} (${e.posNumCodeSitAbb})` - : e.posNumCodeSit - ? e.posNumCodeSit + e.commandNo && e.commandYear + ? `${e.commandNo}/${Number(e.commandYear) + 543}` : "", commandDateSign: date2Thai(e.commandDateSign), commandCode: store.convertCommandCodeName(e.commandCode), diff --git a/src/stores/mixin.ts b/src/stores/mixin.ts index 012210fdc..5446c884f 100644 --- a/src/stores/mixin.ts +++ b/src/stores/mixin.ts @@ -995,33 +995,45 @@ export const useCounterMixin = defineStore("mixin", () => { function findOrgName(obj: any) { if (obj) { let name = - obj.child4 != null && obj.child3 != null + obj.child4 != null && + obj.child4 !== "" && + obj.child3 != null && + obj.child3 !== "" ? obj.child4 + " " - : obj.child4 != null + : obj.child4 != null && obj.child4 !== "" ? obj.child4 : ""; name += - obj.child3 != null && obj.child2 != null + obj.child3 != null && + obj.child3 !== "" && + obj.child2 != null && + obj.child2 !== "" ? obj.child3 + " " - : obj.child3 !== null + : obj.child3 != null && obj.child3 !== "" ? obj.child3 : ""; name += - obj.child2 != null && obj.child1 != null + obj.child2 != null && + obj.child2 !== "" && + obj.child1 != null && + obj.child1 !== "" ? obj.child2 + " " - : obj.child2 != null + : obj.child2 != null && obj.child2 !== "" ? obj.child2 : ""; name += - obj.child1 != null && obj.root != null + obj.child1 != null && + obj.child1 !== "" && + obj.root != null && + obj.root !== "" ? obj.child1 + " " - : obj.child1 != null + : obj.child1 != null && obj.child1 !== "" ? obj.child1 : ""; - name += obj.root != null ? obj.root : ""; + name += obj.root != null && obj.root !== "" ? obj.root : ""; return name == "" ? "-" : name; } else { return ""; @@ -1031,33 +1043,45 @@ export const useCounterMixin = defineStore("mixin", () => { function findOrgNameOld(obj: any) { if (obj) { let name = - obj.child4Old != null && obj.child3Old != null + obj.child4Old != null && + obj.child4Old !== "" && + obj.child3Old != null && + obj.child3Old !== "" ? obj.child4Old + " " - : obj.child4Old != null + : obj.child4Old != null && obj.child4Old !== "" ? obj.child4Old : ""; name += - obj.child3Old != null && obj.child2Old != null + obj.child3Old != null && + obj.child3Old !== "" && + obj.child2Old != null && + obj.child2Old !== "" ? obj.child3Old + " " - : obj.child3Old !== null + : obj.child3Old != null && obj.child3Old !== "" ? obj.child3Old : ""; name += - obj.child2Old != null && obj.child1Old != null + obj.child2Old != null && + obj.child2Old !== "" && + obj.child1Old != null && + obj.child1Old !== "" ? obj.child2Old + " " - : obj.child2Old != null + : obj.child2Old != null && obj.child2Old !== "" ? obj.child2Old : ""; name += - obj.child1Old != null && obj.rootOld != null + obj.child1Old != null && + obj.child1Old !== "" && + obj.rootOld != null && + obj.rootOld !== "" ? obj.child1Old + " " - : obj.child1Old != null + : obj.child1Old != null && obj.child1Old !== "" ? obj.child1Old : ""; - name += obj.rootOld != null ? obj.rootOld : ""; + name += obj.rootOld != null && obj.rootOld !== "" ? obj.rootOld : ""; return name == "" ? "-" : name; } else { return ""; @@ -1067,33 +1091,48 @@ export const useCounterMixin = defineStore("mixin", () => { function findOrgChildName(obj: any) { if (obj) { let name = - obj.orgChild4Name != null && obj.orgChild3Name != null + obj.orgChild4Name != null && + obj.orgChild4Name !== "" && + obj.orgChild3Name != null && + obj.orgChild3Name !== "" ? obj.orgChild4Name + " " - : obj.orgChild4Name != null + : obj.orgChild4Name != null && obj.orgChild4Name !== "" ? obj.orgChild4Name : ""; name += - obj.orgChild3Name != null && obj.orgChild2Name != null + obj.orgChild3Name != null && + obj.orgChild3Name !== "" && + obj.orgChild2Name != null && + obj.orgChild2Name !== "" ? obj.orgChild3Name + " " - : obj.orgChild3Name !== null + : obj.orgChild3Name != null && obj.orgChild3Name !== "" ? obj.orgChild3Name : ""; name += - obj.orgChild2Name != null && obj.orgChild1Name != null + obj.orgChild2Name != null && + obj.orgChild2Name !== "" && + obj.orgChild1Name != null && + obj.orgChild1Name !== "" ? obj.orgChild2Name + " " - : obj.orgChild2Name != null + : obj.orgChild2Name != null && obj.orgChild2Name !== "" ? obj.orgChild2Name : ""; name += - obj.orgChild1Name != null && obj.orgRootName != null + obj.orgChild1Name != null && + obj.orgChild1Name !== "" && + obj.orgRootName != null && + obj.orgRootName !== "" ? obj.orgChild1Name + " " - : obj.orgChild1Name != null + : obj.orgChild1Name != null && obj.orgChild1Name !== "" ? obj.orgChild1Name : ""; - name += obj.orgRootName != null ? obj.orgRootName : ""; + name += + obj.orgRootName != null && obj.orgRootName !== "" + ? obj.orgRootName + : ""; return name == "" ? "-" : name; } else { return ""; @@ -1103,17 +1142,20 @@ export const useCounterMixin = defineStore("mixin", () => { function findPosMasterNo(obj: any) { if (obj) { let shortName = - (obj.child4ShortName != null + (obj.child4ShortName != null && obj.child4ShortName !== "" ? obj.child4ShortName - : obj.child3ShortName != null + : obj.child3ShortName != null && obj.child3ShortName !== "" ? obj.child3ShortName - : obj.child2ShortName != null + : obj.child2ShortName != null && obj.child2ShortName !== "" ? obj.child2ShortName - : obj.child1ShortName != null + : obj.child1ShortName != null && obj.child1ShortName !== "" ? obj.child1ShortName - : obj.rootShortName != null + : obj.rootShortName != null && obj.rootShortName !== "" ? obj.rootShortName - : "") + (obj.posMasterNo != null ? obj.posMasterNo : ""); + : "") + + (obj.posMasterNo != null && obj.posMasterNo !== "" + ? obj.posMasterNo + : ""); return shortName == "" ? "-" : shortName; } else { return ""; @@ -1123,33 +1165,45 @@ export const useCounterMixin = defineStore("mixin", () => { function findOrgNameHtml(obj: any) { if (obj) { let name = - obj.child4 != null && obj.child3 != null + obj.child4 != null && + obj.child4 !== "" && + obj.child3 != null && + obj.child3 !== "" ? obj.child4 + (obj.child3 ? "\n" : "") - : obj.child4 != null + : obj.child4 != null && obj.child4 !== "" ? obj.child4 : ""; name += - obj.child3 != null && obj.child2 != null + obj.child3 != null && + obj.child3 !== "" && + obj.child2 != null && + obj.child2 !== "" ? obj.child3 + (obj.child2 ? "\n" : "") - : obj.child3 !== null + : obj.child3 != null && obj.child3 !== "" ? obj.child3 : ""; name += - obj.child2 != null && obj.child1 != null + obj.child2 != null && + obj.child2 !== "" && + obj.child1 != null && + obj.child1 !== "" ? obj.child2 + (obj.child1 ? "\n" : "") - : obj.child2 != null + : obj.child2 != null && obj.child2 !== "" ? obj.child2 : ""; name += - obj.child1 != null && obj.root != null + obj.child1 != null && + obj.child1 !== "" && + obj.root != null && + obj.root !== "" ? obj.child1 + (obj.root ? "\n" : "") - : obj.child1 != null + : obj.child1 != null && obj.child1 !== "" ? obj.child1 : ""; - name += obj.root != null ? obj.root : ""; + name += obj.root != null && obj.root !== "" ? obj.root : ""; return name == "" ? "-" : name; } else { return ""; @@ -1159,33 +1213,45 @@ export const useCounterMixin = defineStore("mixin", () => { function findOrgNameOldHtml(obj: any) { if (obj) { let name = - obj.child4Old != null && obj.child3Old != null + obj.child4Old != null && + obj.child4Old !== "" && + obj.child3Old != null && + obj.child3Old !== "" ? obj.child4Old + (obj.child3Old ? "\n" : "") - : obj.child4Old != null + : obj.child4Old != null && obj.child4Old !== "" ? obj.child4Old : ""; name += - obj.child3Old != null && obj.child2Old != null + obj.child3Old != null && + obj.child3Old !== "" && + obj.child2Old != null && + obj.child2Old !== "" ? obj.child3Old + (obj.child2Old ? "\n" : "") - : obj.child3Old !== null + : obj.child3Old != null && obj.child3Old !== "" ? obj.child3Old : ""; name += - obj.child2Old != null && obj.child1Old != null + obj.child2Old != null && + obj.child2Old !== "" && + obj.child1Old != null && + obj.child1Old !== "" ? obj.child2Old + (obj.child1Old ? "\n" : "") - : obj.child2Old != null + : obj.child2Old != null && obj.child2Old !== "" ? obj.child2Old : ""; name += - obj.child1Old != null && obj.rootOld != null + obj.child1Old != null && + obj.child1Old !== "" && + obj.rootOld != null && + obj.rootOld !== "" ? obj.child1Old + (obj.rootOld ? "\n" : "") - : obj.child1Old != null + : obj.child1Old != null && obj.child1Old !== "" ? obj.child1Old : ""; - name += obj.rootOld != null ? obj.rootOld : ""; + name += obj.rootOld != null && obj.rootOld !== "" ? obj.rootOld : ""; return name == "" ? "-" : name; } else { return ""; @@ -1195,33 +1261,48 @@ export const useCounterMixin = defineStore("mixin", () => { function findOrgChildNameHtml(obj: any) { if (obj) { let name = - obj.orgChild4Name != null && obj.orgChild3Name != null + obj.orgChild4Name != null && + obj.orgChild4Name !== "" && + obj.orgChild3Name != null && + obj.orgChild3Name !== "" ? obj.orgChild4Name + (obj.orgChild3Name ? "\n" : "") - : obj.orgChild4Name != null + : obj.orgChild4Name != null && obj.orgChild4Name !== "" ? obj.orgChild4Name : ""; name += - obj.orgChild3Name != null && obj.orgChild2Name != null + obj.orgChild3Name != null && + obj.orgChild3Name !== "" && + obj.orgChild2Name != null && + obj.orgChild2Name !== "" ? obj.orgChild3Name + (obj.orgChild2Name ? "\n" : "") - : obj.orgChild3Name !== null + : obj.orgChild3Name != null && obj.orgChild3Name !== "" ? obj.orgChild3Name : ""; name += - obj.orgChild2Name != null && obj.orgChild1Name != null + obj.orgChild2Name != null && + obj.orgChild2Name !== "" && + obj.orgChild1Name != null && + obj.orgChild1Name !== "" ? obj.orgChild2Name + (obj.orgChild1Name ? "\n" : "") - : obj.orgChild2Name != null + : obj.orgChild2Name != null && obj.orgChild2Name !== "" ? obj.orgChild2Name : ""; name += - obj.orgChild1Name != null && obj.orgRootName != null + obj.orgChild1Name != null && + obj.orgChild1Name !== "" && + obj.orgRootName != null && + obj.orgRootName !== "" ? obj.orgChild1Name + (obj.orgRootName ? "\n" : "") - : obj.orgChild1Name != null + : obj.orgChild1Name != null && obj.orgChild1Name !== "" ? obj.orgChild1Name : ""; - name += obj.orgRootName != null ? obj.orgRootName : ""; + name += + obj.orgRootName != null && obj.orgRootName !== "" + ? obj.orgRootName + : ""; return name == "" ? "-" : name; } else { return ""; @@ -1231,33 +1312,45 @@ export const useCounterMixin = defineStore("mixin", () => { function findChildNameHtml(obj: any) { if (obj) { let name = - obj.child4 != null && obj.child3 != null + obj.child4 != null && + obj.child4 !== "" && + obj.child3 != null && + obj.child3 !== "" ? obj.child4 + (obj.child3 ? "\n" : "") - : obj.child4 != null + : obj.child4 != null && obj.child4 !== "" ? obj.child4 : ""; name += - obj.child3 != null && obj.child2 != null + obj.child3 != null && + obj.child3 !== "" && + obj.child2 != null && + obj.child2 !== "" ? obj.child3 + (obj.child2 ? "\n" : "") - : obj.child3 !== null + : obj.child3 != null && obj.child3 !== "" ? obj.child3 : ""; name += - obj.child2 != null && obj.child1 != null + obj.child2 != null && + obj.child2 !== "" && + obj.child1 != null && + obj.child1 !== "" ? obj.child2 + (obj.child1 ? "\n" : "") - : obj.child2 != null + : obj.child2 != null && obj.child2 !== "" ? obj.child2 : ""; name += - obj.child1 != null && obj.root != null + obj.child1 != null && + obj.child1 !== "" && + obj.root != null && + obj.root !== "" ? obj.child1 + (obj.root ? "\n" : "") - : obj.child1 != null + : obj.child1 != null && obj.child1 !== "" ? obj.child1 : ""; - name += obj.root != null ? obj.root : ""; + name += obj.root != null && obj.root !== "" ? obj.root : ""; return name == "" ? "-" : name; } else { return ""; @@ -1267,17 +1360,20 @@ export const useCounterMixin = defineStore("mixin", () => { function findPosMasterNoOld(obj: any) { if (obj) { let shortName = - (obj.child4ShortNameOld != null + (obj.child4ShortNameOld != null && obj.child4ShortNameOld !== "" ? obj.child4ShortNameOld - : obj.child3ShortNameOld != null + : obj.child3ShortNameOld != null && obj.child3ShortNameOld !== "" ? obj.child3ShortNameOld - : obj.child2ShortNameOld != null + : obj.child2ShortNameOld != null && obj.child2ShortNameOld !== "" ? obj.child2ShortNameOld - : obj.child1ShortNameOld != null + : obj.child1ShortNameOld != null && obj.child1ShortNameOld !== "" ? obj.child1ShortNameOld - : obj.rootShortNameOld != null + : obj.rootShortNameOld != null && obj.rootShortNameOld !== "" ? obj.rootShortNameOld - : "") + (obj.posMasterNoOld != null ? obj.posMasterNoOld : ""); + : "") + + (obj.posMasterNoOld != null && obj.posMasterNoOld !== "" + ? obj.posMasterNoOld + : ""); return shortName == "" ? "-" : shortName; } else { return ""; From 5b661f6d55a81de19a5b7a6a50936b312c8584d6 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 23 Jun 2025 10:46:51 +0700 Subject: [PATCH 02/11] logoutSSO --- src/plugins/auth.ts | 6 ++++++ src/views/MainLayout.vue | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/auth.ts b/src/plugins/auth.ts index 438d4268d..46b4295f7 100644 --- a/src/plugins/auth.ts +++ b/src/plugins/auth.ts @@ -88,6 +88,11 @@ async function redirectToLandingPage() { window.location.href = key_C_Config.landing_PageUrl; } +async function logoutSSO() { + await deleteCookie(ACCESS_TOKEN); + window.location.href = key_C_Config.landing_PageUrl + `/logout`; +} + export { getToken, authenticated, @@ -96,4 +101,5 @@ export { tokenParsed, getCookie, redirectToLandingPage, + logoutSSO, }; diff --git a/src/views/MainLayout.vue b/src/views/MainLayout.vue index 4e083d072..ca8ae7706 100644 --- a/src/views/MainLayout.vue +++ b/src/views/MainLayout.vue @@ -11,6 +11,7 @@ import { logout, getCookie, redirectToLandingPage, + logoutSSO, } from "@/plugins/auth"; import avatar from "@/assets/avatar_user.jpg"; @@ -414,7 +415,7 @@ const doLogout = () => { $q, async () => { await http.post(config.API.keycloakLogSSO, { text: "ออกจากระบบ" }); - await logout(); + await logoutSSO(); }, "ยืนยันการออกจากระบบ", "ต้องการออกจากระบบใช่หรือไม่?" From 3d858a7a2f688101fb98ad21d1ad2fd23755a028 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 23 Jun 2025 15:19:44 +0700 Subject: [PATCH 03/11] =?UTF-8?q?fix=20=E0=B8=81=E0=B8=B2=E0=B8=A3?= =?UTF-8?q?=E0=B9=81=E0=B8=AA=E0=B8=94=E0=B8=87=E0=B8=82=E0=B9=89=E0=B8=AD?= =?UTF-8?q?=E0=B8=A1=E0=B8=B9=E0=B8=A5=E0=B8=84=E0=B8=A3=E0=B8=AD=E0=B8=9A?= =?UTF-8?q?=E0=B8=84=E0=B8=A3=E0=B8=B1=E0=B8=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/PersonalInformation/04_FamilyNew.vue | 10 ++++------ .../04_registryPerson/interface/index/family.ts | 1 + 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/modules/04_registryPerson/components/detail/PersonalInformation/04_FamilyNew.vue b/src/modules/04_registryPerson/components/detail/PersonalInformation/04_FamilyNew.vue index 4d84657b1..23c69e2bb 100644 --- a/src/modules/04_registryPerson/components/detail/PersonalInformation/04_FamilyNew.vue +++ b/src/modules/04_registryPerson/components/detail/PersonalInformation/04_FamilyNew.vue @@ -177,6 +177,7 @@ const coupleData = reactive({ job: "", lastNameOld: "", statusMarital: "", + isCouple: false, // ใช้สำหรับการแสดงผลใน UI }); const childData = ref([]); @@ -266,6 +267,7 @@ async function fetchDataCouple() { coupleData.job = data.coupleCareer; coupleData.lastNameOld = data.coupleLastNameOld; coupleData.statusMarital = data.relationship; + coupleData.isCouple = data.couple; } }) .catch((err) => { @@ -677,7 +679,7 @@ onMounted(async () => { > -
+
{
- +
คู่สมรส
diff --git a/src/modules/04_registryPerson/interface/index/family.ts b/src/modules/04_registryPerson/interface/index/family.ts index 395bbcdfd..cc8e78b38 100644 --- a/src/modules/04_registryPerson/interface/index/family.ts +++ b/src/modules/04_registryPerson/interface/index/family.ts @@ -7,6 +7,7 @@ interface FormPerson { job: string; lastNameOld?: string; statusMarital?: string; + isCouple?: boolean; } interface ChildrenFamily { From 1864033938195088ad75da77661f5355e00c1369 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 24 Jun 2025 13:18:41 +0700 Subject: [PATCH 04/11] =?UTF-8?q?fix=20=E0=B8=84=E0=B9=89=E0=B8=99?= =?UTF-8?q?=E0=B8=AB=E0=B8=B2=E0=B8=84=E0=B8=99=E0=B8=84=E0=B8=A3=E0=B8=AD?= =?UTF-8?q?=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/DialogSelectPerson.vue | 28 +++++++++++++------ .../components/DialogSelectPerson.vue | 15 ++++++---- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/modules/16_positionEmployee/components/DialogSelectPerson.vue b/src/modules/16_positionEmployee/components/DialogSelectPerson.vue index e1a171523..4d50cef94 100644 --- a/src/modules/16_positionEmployee/components/DialogSelectPerson.vue +++ b/src/modules/16_positionEmployee/components/DialogSelectPerson.vue @@ -536,6 +536,7 @@ watch( label="ค้นหาจากชื่อ-นามสกุล หรือเลขประจำตัวประชาชน" lazy-rules hide-bottom-space + @keydown.enter.prevent="getSearch()" />
@@ -549,6 +550,7 @@ watch( label="ตำแหน่ง" lazy-rules hide-bottom-space + @keydown.enter.prevent="getSearch()" />
@@ -560,20 +562,24 @@ watch( :options="typeOps" emit-value dense - @update:model-value="updateSelectType" + @update:model-value=" + updateSelectType(formData.positionType), getSearch() + " map-options outlined option-label="name" option-value="id" lazy-rules hide-bottom-space - > +
+ /> + +
diff --git a/src/modules/20_positionTemp/components/DialogSelectPerson.vue b/src/modules/20_positionTemp/components/DialogSelectPerson.vue index 1e6413433..6498094be 100644 --- a/src/modules/20_positionTemp/components/DialogSelectPerson.vue +++ b/src/modules/20_positionTemp/components/DialogSelectPerson.vue @@ -534,6 +534,7 @@ watch( label="ค้นหาจากชื่อ-นามสกุล หรือเลขประจำตัวประชาชน" lazy-rules hide-bottom-space + @keydown.enter.prevent="getSearch()" />
@@ -547,6 +548,7 @@ watch( label="ตำแหน่ง" lazy-rules hide-bottom-space + @keydown.enter.prevent="getSearch()" />
@@ -564,13 +566,16 @@ watch( option-value="id" lazy-rules hide-bottom-space - > +