From 74f4f8991b040dd3d98a54638b6e8fe887e7e7bb Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Wed, 6 Sep 2023 17:31:37 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=20filter?= =?UTF-8?q?=20=E0=B8=9A=E0=B8=B1=E0=B8=99=E0=B8=97=E0=B8=B6=E0=B8=81?= =?UTF-8?q?=E0=B8=9C=E0=B8=A5=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B9=84=E0=B8=94?= =?UTF-8?q?=E0=B9=89=E0=B8=A3=E0=B8=B1=E0=B8=9A=E0=B8=9E=E0=B8=A3=E0=B8=B0?= =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=8A=E0=B8=97=E0=B8=B2=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/07_insignia/storeResult.ts | 64 ++++++++++++++------ src/modules/07_insignia/views/ResultPage.vue | 4 +- 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/modules/07_insignia/storeResult.ts b/src/modules/07_insignia/storeResult.ts index c207e75e0..4d90aab16 100644 --- a/src/modules/07_insignia/storeResult.ts +++ b/src/modules/07_insignia/storeResult.ts @@ -56,28 +56,45 @@ export const useResultDataStore = defineStore("insigniaResult", () => { })); rows.value = alllist listInsignia.value = alllist - selectInvoice(invoiceType.value) + // selectInvoice(invoiceType.value) + // console.log(invoiceType.value, employeeClass.value); + searchData(invoiceType.value, employeeClass.value); } - const selectInvoice = (invoice: string) => { - console.log(invoice); - if (invoice === "noDate") { - let list = listInsignia.value.filter((e: any) => e.datepay === null) + const searchData = (invoice: string, employeeClass: string) => { + if (invoice !== 'all' && employeeClass !== 'all') { + let list = listInsignia.value.filter((e: any) => convertDatepay(e.datepay) === invoice && e.employeeType === profileType(employeeClass)) rows.value = list - } else if (invoice === "haveDate") { - let list = listInsignia.value.filter((e: any) => e.datepay !== null) + } else if (invoice !== 'all' && employeeClass === 'all') { + let list = listInsignia.value.filter((e: any) => convertDatepay(e.datepay) === invoice) rows.value = list - } else rows.value = listInsignia.value - } - const selectEmployeeClass = (employeeClass: string) => { - if (employeeClass == "officer") { - let list = listInsignia.value.filter((e: any) => e.employeeType === "ข้าราชการ กทม.สามัญ") - rows.value = list - } else if (employeeClass === "perm") { - let list = listInsignia.value.filter((e: any) => e.employeeType === "ลูกจ้างประจำ") - rows.value = list - } else rows.value = listInsignia.value + } else if (invoice === 'all' && employeeClass !== 'all') { + let list = listInsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass)) + rows.value = list + } } + // const selectInvoice = (invoice: string) => { + // if (employeeClass.value !== 'all') { + // if (invoice !== "all") { + // let list = listInsignia.value.filter((e: any) => convertDatepay(e.datepay) === invoice && e.employeeType === profileType(employeeClass.value)) + // rows.value = list + // } else rows.value = listInsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass.value)) + // } + // else { + // if (invoice !== 'all') { + // rows.value = listInsignia.value.filter((e: any) => convertDatepay(e.datepay) === invoice) + // } else rows.value = listInsignia.value + // } + // } + // const selectEmployeeClass = (employeeClass: string) => { + // if (employeeClass == "officer") { + // let list = listInsignia.value.filter((e: any) => e.employeeType === "ข้าราชการ กทม.สามัญ") + // rows.value = list + // } else if (employeeClass === "perm") { + // let list = listInsignia.value.filter((e: any) => e.employeeType === "ลูกจ้างประจำ") + // rows.value = list + // } else rows.value = listInsignia.value + // } const status = (val: string) => { switch (val) { case "PENDING": @@ -98,6 +115,14 @@ export const useResultDataStore = defineStore("insigniaResult", () => { return "ลูกจ้างประจำ"; } } + const convertDatepay = (val: any) => { + switch (val) { + case null: + return "noDate"; + default: + return "haveDate"; + } + } return { rows, insignia, @@ -113,7 +138,8 @@ export const useResultDataStore = defineStore("insigniaResult", () => { status, profileType, fetchlistinsignia, - selectInvoice, - selectEmployeeClass, + searchData, + // selectInvoice, + // selectEmployeeClass, }; }); diff --git a/src/modules/07_insignia/views/ResultPage.vue b/src/modules/07_insignia/views/ResultPage.vue index f5c0b008c..d417d843d 100644 --- a/src/modules/07_insignia/views/ResultPage.vue +++ b/src/modules/07_insignia/views/ResultPage.vue @@ -540,7 +540,7 @@ const paginationLabel = (start: number, end: number, total: number) => { :borderless="false" style="min-width: 150px" @update:model-value=" - DataStore.selectInvoice(DataStore.invoiceType) + DataStore.searchData(DataStore.invoiceType,DataStore.employeeClass) " /> @@ -561,7 +561,7 @@ const paginationLabel = (start: number, end: number, total: number) => { :borderless="false" style="min-width: 150px" @update:model-value=" - DataStore.selectEmployeeClass(DataStore.employeeClass) + DataStore.searchData(DataStore.invoiceType,DataStore.employeeClass) " />