From 0f0ffd57e5360272cb8b6357bf7633531a10de8c Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Fri, 24 Apr 2026 10:08:36 +0700 Subject: [PATCH 01/16] feat(leave): add display leaveWaitingSummary --- .../05_leave/components/FormLeave/01_SickForm.vue | 7 +++---- .../05_leave/components/FormLeave/Form.vue | 15 ++++++++++++--- src/modules/05_leave/store.ts | 7 +++++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/modules/05_leave/components/FormLeave/01_SickForm.vue b/src/modules/05_leave/components/FormLeave/01_SickForm.vue index f1e754e..9b6df27 100644 --- a/src/modules/05_leave/components/FormLeave/01_SickForm.vue +++ b/src/modules/05_leave/components/FormLeave/01_SickForm.vue @@ -131,11 +131,11 @@ function onValidate() { formData.append("leaveRangeEnd", formDataSick.leaveRangeEnd); formData.append( "leaveStartDate", - convertDateToAPI(formDataSick.leaveStartDate) ?? "" + convertDateToAPI(formDataSick.leaveStartDate) ?? "", ); formData.append( "leaveEndDate", - convertDateToAPI(formDataSick.leaveEndDate) ?? "" + convertDateToAPI(formDataSick.leaveEndDate) ?? "", ); formData.append("leaveWrote", formDataSick.leaveWrote); formData.append("leaveAddress", dataStore.currentAddress); @@ -202,7 +202,6 @@ function mapPropsToFormData() { statusCheck.value = props.data.status; leaveId.value = props.data.id; formDataSick.leaveDocument = []; - console.log(props.data.leaveDocument); } } @@ -211,7 +210,7 @@ watch( () => { mapPropsToFormData(); }, - { deep: true } + { deep: true }, ); /** Hook */ diff --git a/src/modules/05_leave/components/FormLeave/Form.vue b/src/modules/05_leave/components/FormLeave/Form.vue index d80b64b..d5fd5fe 100644 --- a/src/modules/05_leave/components/FormLeave/Form.vue +++ b/src/modules/05_leave/components/FormLeave/Form.vue @@ -293,7 +293,7 @@ function getSearch() { /> + diff --git a/src/modules/05_leave/store.ts b/src/modules/05_leave/store.ts index 169abcc..cb84459 100644 --- a/src/modules/05_leave/store.ts +++ b/src/modules/05_leave/store.ts @@ -33,7 +33,7 @@ export const useLeaveStore = defineStore("Leave", () => { /** * function เรียกข้อมูลรายการลา Table - * @param data ข้อมูลรายการลา Table + * @param data ข้อมูลรายการลา TableleaveWaitingSummary */ async function fetchListLeave(data: ListLeave[]) { let datalist: ListLeaveTable[] = data.map((e: ListLeave) => ({ @@ -66,7 +66,6 @@ export const useLeaveStore = defineStore("Leave", () => { isDelete: e.isDelete, })); rows.value = datalist; - console.log(datalist); } //ฟังก์ชั่นแปลง Status @@ -309,6 +308,7 @@ export const useLeaveStore = defineStore("Leave", () => { const telephoneNumber = ref(""); const currentAddress = ref(""); + const leaveWaitingSummary = ref(0); //ดึงข้อมูล profile จาก API async function fetchProfile() { @@ -347,6 +347,7 @@ export const useLeaveStore = defineStore("Leave", () => { : "-"; restDayCurrentTotal.value = Number(data.leaveLimit) - Number(data.restDayTotalOld); + leaveWaitingSummary.value = data.leaveWaitingSummary || 0; }) .catch((e: any) => { console.log(e); @@ -409,6 +410,7 @@ export const useLeaveStore = defineStore("Leave", () => { salaryText.value = ""; leaveLast.value = undefined; restDayCurrentTotal.value = 0; + leaveWaitingSummary.value = 0; } /** ฟังก์ชันเรียกข้อมูลประเภทการลา */ @@ -480,6 +482,7 @@ export const useLeaveStore = defineStore("Leave", () => { currentAddress, rangeOptions, converstType, + leaveWaitingSummary, fetchLeaveTypeData, isLoadingProfile, From a5ba0290d958ee762619f266a4819d13498cb0e5 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Fri, 24 Apr 2026 10:35:30 +0700 Subject: [PATCH 02/16] fix: Move dialogs inside q-layout in MainLayout.vue --- src/views/MainLayout.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/views/MainLayout.vue b/src/views/MainLayout.vue index f14d08e..165bf6e 100644 --- a/src/views/MainLayout.vue +++ b/src/views/MainLayout.vue @@ -172,13 +172,13 @@ const doLogout = () => { ); }; -const clickDelete = async (id: string, index: number) => { +const clickDelete = async (id: string, index: number | string) => { dialogRemove($q, async () => { // showLoader(); await http .delete(config.API.msgId(id)) .then(() => { - notiList.value.splice(index, 1); + notiList.value.splice(Number(index), 1); totalInbox.value--; totalNoti.value--; success($q, "ลบข้อมูลสำเร็จ"); @@ -772,10 +772,10 @@ watch( - - - + + +