+ ({ leaveRangeEnd: "", leaveDirectorComment: "", }); +const isLoading = ref(false); /** form ขอยกเลิก*/ const formDelete = reactive({ @@ -187,7 +188,7 @@ const formDeleteRef: FormDeleteRef = { * @param id การลา */ async function fetchDataDetail(id: string) { - showLoader(); + isLoading.value = true; await http .get(config.API.leaveUserId(id), {}) .then((res) => { @@ -280,7 +281,7 @@ async function fetchDataDetail(id: string) { messageError($q, err); }) .finally(() => { - hideLoader(); + isLoading.value = false; }); } @@ -308,10 +309,7 @@ function checkLeaveType(leaveTypeId: string) { checkForm.value = "FormHajj"; } else if (type === "LV-007") { checkForm.value = "FormCheckSelect"; - } else if ( - type === "LV-008" && - formData.leaveSubTypeName === "ศึกษาต่อ" - ) { + } else if (type === "LV-008" && formData.leaveSubTypeName === "ศึกษาต่อ") { checkForm.value = "FormStudy"; } else if ( (type === "LV-008" && formData.leaveSubTypeName === "ฝึกอบรม") || @@ -334,7 +332,7 @@ function checkLeaveType(leaveTypeId: string) { * @param id ยกเลิกการลา */ async function fetchDataCancelDetail(id: string) { - showLoader(); + isLoading.value = true; await http .get(config.API.leaveCancelById(id)) .then((res) => { @@ -362,7 +360,7 @@ async function fetchDataCancelDetail(id: string) { messageError($q, err); }) .finally(() => { - hideLoader(); + isLoading.value = false; }); } @@ -401,7 +399,8 @@ async function onSubmit() { formData.append("doc", formDelete.doc); await http .post(config.API.leaveCancelById(id), formData) - .then(() => { + .then(async () => { + await props.fetchDataTable?.(); success($q, "บันทึกข้อมูลสำเร็จ"); props.onClickClose?.(); }) @@ -409,7 +408,6 @@ async function onSubmit() { messageError($q, err); }) .finally(() => { - props.fetchDataTable?.(); hideLoader(); }); } @@ -445,7 +443,9 @@ watch( -
+ + +
@@ -584,7 +585,8 @@ watch( -
+ +
diff --git a/src/modules/05_leave/components/ListView.vue b/src/modules/05_leave/components/ListView.vue index 8fbb085..3dbefca 100644 --- a/src/modules/05_leave/components/ListView.vue +++ b/src/modules/05_leave/components/ListView.vue @@ -30,6 +30,7 @@ const year = ref(new Date().getFullYear()); const type = ref("00000000-0000-0000-0000-000000000000"); const status = ref("ALL"); const filter = ref(""); +const isLoading = ref(false); /** pagination*/ const maxPage = ref(1); @@ -38,7 +39,7 @@ const pageSize = ref(10); const total = ref(0); /** function เรียกข้อมูลการลา*/ async function fetchDataTable() { - showLoader(); + isLoading.value = true; const body = { year: year.value, //*ปีในการยื่นขอใบลา(ใช้เป็น คศ.) type: LeaveData.type, //*Id ประเภทการลา @@ -59,7 +60,7 @@ async function fetchDataTable() { messageError($q, err); }) .finally(() => { - hideLoader(); + isLoading.value = false; }); } @@ -128,10 +129,10 @@ async function onClickClose() { */ async function updateFilterTable(y: number, t: string, s: string, k: string) { if (t && s) { - year.value = await y; - type.value = await t; - status.value = await s; - filter.value = await k; + year.value = y; + type.value = t; + status.value = s; + filter.value = k; await fetchDataTable(); } } @@ -142,7 +143,7 @@ async function updateFilterTable(y: number, t: string, s: string, k: string) { * @param ps แถวต่อหน้า */ async function updatePagination(p: number, ps: number) { - (page.value = await p), (pageSize.value = await ps); + (page.value = p), (pageSize.value = ps); await fetchDataTable(); } @@ -168,15 +169,8 @@ function convert(val: any) { * เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้ */ onMounted(async () => { - try { - showLoader(); - await fectOptionType(); - await fetchDataTable(); - } catch (error) { - messageError($q, error); - } finally { - hideLoader(); - } + await fectOptionType(); + await fetchDataTable(); });