From 682fbd165dfbd540e1d2cc48beb0e7ab0693328c Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 7 Sep 2023 09:33:04 +0700 Subject: [PATCH] =?UTF-8?q?filter=20=E0=B8=88=E0=B8=B1=E0=B8=94=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3=E0=B8=84=E0=B8=B3=E0=B8=82=E0=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../07_insignia/components/2_Manage/Tab1.vue | 12 +++- .../07_insignia/components/2_Manage/Tab2.vue | 12 +++- .../07_insignia/components/2_Manage/Tab3.vue | 12 +++- src/modules/07_insignia/store.ts | 57 ++++--------------- 4 files changed, 42 insertions(+), 51 deletions(-) diff --git a/src/modules/07_insignia/components/2_Manage/Tab1.vue b/src/modules/07_insignia/components/2_Manage/Tab1.vue index d84677865..7c8af9609 100644 --- a/src/modules/07_insignia/components/2_Manage/Tab1.vue +++ b/src/modules/07_insignia/components/2_Manage/Tab1.vue @@ -607,7 +607,12 @@ const paginationLabel2 = (start: number, end: number, total: number) => { :outlined="true" :hide-dropdown-icon="false" style="min-width: 150px" - @update:model-value="DataStore.searchFilterTable" + @update:model-value=" + DataStore.searchDataTable( + DataStore.typeinsignia, + DataStore.employeeClass + ) + " />
{ :borderless="false" style="min-width: 150px" @update:model-value=" - DataStore.selectEmployeeClass(DataStore.employeeClass) + DataStore.searchDataTable( + DataStore.typeinsignia, + DataStore.employeeClass + ) " />
diff --git a/src/modules/07_insignia/components/2_Manage/Tab2.vue b/src/modules/07_insignia/components/2_Manage/Tab2.vue index 06bb1aa3d..769b20258 100644 --- a/src/modules/07_insignia/components/2_Manage/Tab2.vue +++ b/src/modules/07_insignia/components/2_Manage/Tab2.vue @@ -246,7 +246,12 @@ const closeReson = () => { :outlined="true" :hide-dropdown-icon="false" style="min-width: 150px" - @update:model-value="DataStore.searchFilterTable" + @update:model-value=" + DataStore.searchDataTable( + DataStore.typeinsignia, + DataStore.employeeClass + ) + " />
{ :borderless="false" style="min-width: 150px" @update:model-value=" - DataStore.selectEmployeeClass(DataStore.employeeClass) + DataStore.searchDataTable( + DataStore.typeinsignia, + DataStore.employeeClass + ) " />
diff --git a/src/modules/07_insignia/components/2_Manage/Tab3.vue b/src/modules/07_insignia/components/2_Manage/Tab3.vue index f3b70d90b..6aa4cc83c 100644 --- a/src/modules/07_insignia/components/2_Manage/Tab3.vue +++ b/src/modules/07_insignia/components/2_Manage/Tab3.vue @@ -243,7 +243,12 @@ const closeReson = () => { :outlined="true" :hide-dropdown-icon="false" style="min-width: 150px" - @update:model-value="DataStore.searchFilterTable" + @update:model-value=" + DataStore.searchDataTable( + DataStore.typeinsignia, + DataStore.employeeClass + ) + " />
{ :borderless="false" style="min-width: 150px" @update:model-value=" - DataStore.selectEmployeeClass(DataStore.employeeClass) + DataStore.searchDataTable( + DataStore.typeinsignia, + DataStore.employeeClass + ) " />
diff --git a/src/modules/07_insignia/store.ts b/src/modules/07_insignia/store.ts index f229b8450..31faded03 100644 --- a/src/modules/07_insignia/store.ts +++ b/src/modules/07_insignia/store.ts @@ -15,7 +15,7 @@ export const useInsigniaDataStore = defineStore("insignia", () => { const agency = ref(""); let rows = ref([]); const listinsignia = ref([]); - const typeinsignia = ref("all"); + const typeinsignia = ref("all"); let typeinsigniaOptions = ref([{ id: "all", name: "ทั้งหมด" }]); const employeeClass = ref("all"); const employeeClassOps = ref([{ name: "ทั้งหมด", id: "all" }, { name: "ข้าราชการ กทม.สามัญ", id: "officer" }, { name: "ลูกจ้างประจำ", id: "perm" }]) @@ -48,6 +48,7 @@ export const useInsigniaDataStore = defineStore("insignia", () => { })); rows.value = await datalist listinsignia.value = await datalist; + searchDataTable(typeinsignia.value, employeeClass.value) filtertypeInsignia(); } else rows.value = []; }; @@ -77,53 +78,20 @@ export const useInsigniaDataStore = defineStore("insignia", () => { id: type, name: type, }; - // typeinsigniaOptions.value = [{ id: "all", name: "ทั้งหมด" }] typeinsigniaOptions.value.push(listtype); } } else typeinsigniaOptions.value = [{ id: "all", name: "ทั้งหมด" }]; }; + const searchDataTable = async (type: string, employeeClass: string) => { + if (type !== 'all' && employeeClass !== 'all') { + rows.value = listinsignia.value.filter((e: any) => e.insigniaType === type && e.employeeType === profileType(employeeClass)) + } else if (type !== 'all' && employeeClass === 'all') { + rows.value = listinsignia.value.filter((e: any) => e.insigniaType === type) + } else if (type === 'all' && employeeClass !== 'all') { + rows.value = listinsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass)) + } + - const searchFilterTable = async () => { - console.log(employeeClass.value); - if (employeeClass.value === "all") { - if (typeinsignia.value !== undefined && typeinsignia.value !== null) { - if (typeinsignia.value === "all") { - rows.value = listinsignia.value; - } else { - rows.value = listinsignia.value.filter( - (e: any) => e.insigniaSend === typeinsignia.value - ); - } - } - } else { - if (typeinsignia.value !== undefined && typeinsignia.value !== null) { - if (typeinsignia.value === "all") { - rows.value = listinsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass.value)) - } else { - rows.value = listinsignia.value.filter( - (e: any) => e.insigniaSend === typeinsignia.value && e.employeeType === profileType(employeeClass.value) - ); - } - } - } - }; - const selectEmployeeClass = (employeeClass: string) => { - if (typeinsignia.value !== "all") { - if (employeeClass !== "all") { - let list = listinsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass) && e.insigniaSend === typeinsignia.value) - rows.value = list - } else { - let list = listinsignia.value.filter((e: any) => e.insigniaSend === typeinsignia.value) - rows.value = list - } - } else if (typeinsignia.value == "all") { - if (employeeClass !== "all") { - let list = listinsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass)) - rows.value = list - } else { - rows.value = listinsignia.value - } - } } const convertOcid = (oc: string) => { let ocdata = optionsTypeOc.value.find((e: any) => e.name === oc) @@ -149,12 +117,11 @@ export const useInsigniaDataStore = defineStore("insignia", () => { agency, fetchData, fetchOption, - searchFilterTable, + searchDataTable, setTypeandTitle, convertOcid, typeReport, titleReport, - selectEmployeeClass, employeeClass, employeeClassOps, fetchDataInsignia,