From e7265106917360de9182e0400665de636bb6e656 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Fri, 1 Nov 2024 11:26:35 +0700 Subject: [PATCH] =?UTF-8?q?fix=20bug=20=E0=B8=A5=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormLeave/13_RehabilitationForm.vue | 72 ++++++++----------- src/modules/05_leave/store.ts | 6 +- src/modules/05_leave/views/EditPage.vue | 12 ++-- 3 files changed, 42 insertions(+), 48 deletions(-) diff --git a/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue b/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue index fb8d955..6df40c0 100644 --- a/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue +++ b/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue @@ -60,48 +60,34 @@ const formRef: RehabilitationForm = { }; /** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */ -function onValidate() { - const hasError = []; - for (const key in formRef) { - if (Object.prototype.hasOwnProperty.call(formRef, key)) { - const property = formRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } +async function onValidate() { + const formData = new FormData(); + if (formDataRehabilitation.leaveDocument.length > 0) { + formDataRehabilitation.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); - if (formDataRehabilitation.leaveDocument.length > 0) { - formDataRehabilitation.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - // formData.append("leaveDocument", formDataRehabilitation.leaveDocument) - } - - if (formDataRehabilitation.leaveDraftDocument) { - formData.append( - "leaveDraftDocument", - formDataRehabilitation.leaveDraftDocument - ); - } - - formData.append("type", formDataRehabilitation.type); // + if (formDataRehabilitation.leaveDraftDocument) { formData.append( - "leaveStartDate", - dateToISO(new Date(formDataRehabilitation.leaveStartDate)) - ); // - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataRehabilitation.leaveEndDate)) + "leaveDraftDocument", + formDataRehabilitation.leaveDraftDocument ); - formData.append("leaveWrote", formDataRehabilitation.leaveWrote); // - formData.append("leaveDetail", formDataRehabilitation.leaveDetail); // - formData.append("leaveTotal", formDataRehabilitation.leaveTotal); // - props.onSubmit(formData, isLeave.value); } + + formData.append("type", formDataRehabilitation.type); // + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataRehabilitation.leaveStartDate)) + ); + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataRehabilitation.leaveEndDate)) + ); + formData.append("leaveWrote", formDataRehabilitation.leaveWrote); // + formData.append("leaveDetail", formDataRehabilitation.leaveDetail); // + formData.append("leaveTotal", formDataRehabilitation.leaveTotal); // + props.onSubmit(formData, isLeave.value); } /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ @@ -118,6 +104,7 @@ const fileUploadDoc = async (files: any) => { */ const isLeave = ref(true); async function FetchCheck() { + showLoader(); await http .post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, @@ -131,6 +118,9 @@ async function FetchCheck() { }) .catch((e: any) => { messageError($q, e); + }) + .finally(() => { + hideLoader(); }); } @@ -161,8 +151,6 @@ const leaveDocumentList = ref(); const leaveDraftDocument = ref(); const statusCheck = ref(""); watch(props.data, () => { - console.log(props.data); - if (props.data) { formDataRehabilitation.leaveWrote = props.data.leaveWrote; formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); @@ -187,6 +175,7 @@ onMounted(() => { leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; leaveId.value = props.data.id; + FetchCheck(); } }); @@ -196,7 +185,8 @@ onMounted(() => {
กรอกข้อมูล
-
+ +
{ >
- +
diff --git a/src/modules/05_leave/store.ts b/src/modules/05_leave/store.ts index d29167b..94bb5e0 100644 --- a/src/modules/05_leave/store.ts +++ b/src/modules/05_leave/store.ts @@ -17,7 +17,7 @@ import type { } from "@/modules/05_leave/interface/response/leave"; const mixin = useCounterMixin(); -const { date2Thai, messageError } = mixin; +const { date2Thai, messageError, showLoader, hideLoader } = mixin; const $q = useQuasar(); const type = ref("00000000-0000-0000-0000-000000000000"); const status = ref("ALL"); @@ -283,6 +283,7 @@ export const useLeaveStore = defineStore("Leave", () => { //ดึงข้อมูล profile จาก API async function fetchProfile() { + showLoader(); await http .post(config.API.leaveProfile(), { type: typeId.value }) .then((res: any) => { @@ -311,6 +312,9 @@ export const useLeaveStore = defineStore("Leave", () => { }) .catch((e: any) => { messageError($q, e); + }) + .finally(() => { + hideLoader(); }); } diff --git a/src/modules/05_leave/views/EditPage.vue b/src/modules/05_leave/views/EditPage.vue index 24c5756..03cad8d 100644 --- a/src/modules/05_leave/views/EditPage.vue +++ b/src/modules/05_leave/views/EditPage.vue @@ -208,7 +208,7 @@ async function fetchDataDetail(id: string) { formData.dear = data.dear ?? "-"; formData.leaveLast = data.leaveLast ?? "-"; formData.leaveRange = data.leaveRange; - dataStore.fetchProfileOld(data); + await dataStore.fetchProfileOld(data); }) .catch((err) => { messageError($q, err); @@ -229,8 +229,8 @@ function onSubmit(formData: FormData, isLeave: boolean = true) { showLoader(); await http .put(config.API.leaveUserId(personalId.value), formData) - .then(() => { - fetchDataDetail(personalId.value); + .then(async () => { + await fetchDataDetail(personalId.value); success($q, "บันทึกสำเร็จ"); }) .catch((e: any) => { @@ -284,13 +284,13 @@ async function onClickDelete(id: string, docId: string) { await http .delete(config.API.leaveDocumentId(id, docId)) .then(async (res) => { + await fetchDataDetail(personalId.value); success($q, "ลบไฟล์สำเร็จ"); }) .catch((err) => { messageError($q, err); }) .finally(() => { - fetchDataDetail(personalId.value); hideLoader(); }); } @@ -298,8 +298,8 @@ async function onClickDelete(id: string, docId: string) { /**เมื่อเริ่มโหลดหน้า * เรียกใช้งาน fetchData เพื่อดึงข้อมูล */ -onMounted(() => { - fetchDataDetail(personalId.value); +onMounted(async () => { + await fetchDataDetail(personalId.value); });