From 5b8a0aa7def460cd3e731ce4a0906680dccb8e98 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 5 Feb 2024 16:56:36 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=20=E0=B8=A5?= =?UTF-8?q?=E0=B8=B2=E0=B9=84=E0=B8=9B=E0=B8=A8=E0=B8=B6=E0=B8=81=E0=B8=A9?= =?UTF-8?q?=E0=B8=B2=20=E0=B8=9D=E0=B8=B6=E0=B8=81=E0=B8=AD=E0=B8=9A?= =?UTF-8?q?=E0=B8=A3=E0=B8=A1=20=E0=B8=9B=E0=B8=8F=E0=B8=B4=E0=B8=9A?= =?UTF-8?q?=E0=B8=B1=E0=B8=95=E0=B8=B4=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=A7?= =?UTF-8?q?=E0=B8=B4=E0=B8=88=E0=B8=B1=E0=B8=A2=20=E0=B8=AB=E0=B8=A3?= =?UTF-8?q?=E0=B8=B7=E0=B8=AD=E0=B8=94=E0=B8=B9=E0=B8=87=E0=B8=B2=E0=B8=99?= =?UTF-8?q?=20=20=E0=B8=A7=E0=B8=B1=E0=B8=99=E0=B8=97=E0=B8=B5=E0=B9=88=20?= =?UTF-8?q?,=20=E0=B9=80=E0=B8=87=E0=B8=B4=E0=B8=99=E0=B9=80=E0=B8=94?= =?UTF-8?q?=E0=B8=B7=E0=B8=AD=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/FormLeave/10_TrainForm.vue | 1230 ++++++++--------- 1 file changed, 615 insertions(+), 615 deletions(-) diff --git a/src/modules/05_leave/components/FormLeave/10_TrainForm.vue b/src/modules/05_leave/components/FormLeave/10_TrainForm.vue index ef6a3b4..0441e79 100644 --- a/src/modules/05_leave/components/FormLeave/10_TrainForm.vue +++ b/src/modules/05_leave/components/FormLeave/10_TrainForm.vue @@ -14,14 +14,14 @@ const $q = useQuasar(); const router = useRouter(); const mixin = useCounterMixin(); const { - date2Thai, - dialogRemove, - arabicNumberToText, - calculateDurationYmd, - fails, - dateToISO, - success, - messageError, + date2Thai, + dialogRemove, + arabicNumberToText, + calculateDurationYmd, + fails, + dateToISO, + success, + messageError, } = mixin; const edit = ref(true); const files = ref(null); @@ -29,44 +29,44 @@ const leaveId = ref(""); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formDataTrain = reactive({ - type: dataStore.typeId, - leaveWrote: "", - leaveStartDate: null, - leaveEndDate: null, - leavebirthDate: new Date(), - leavegovernmentDate: new Date(), - leaveSalary: 10000, - leaveSalaryText: arabicNumberToText(10000), - leaveNumber: "", - leaveAddress: "", - studyDayScholarship: "", - studyDayCountry: "", - studyDayTrainingSubject: "", - studyDayTrainingName: "", - leaveDocument: [], - leaveDetail: "", - leaveTotal: "", //จำนวนวันลา - leaveTotalDay: "", //จำนวนวันลา + type: dataStore.typeId, + leaveWrote: "", + leaveStartDate: null, + leaveEndDate: null, + leavebirthDate: new Date(), + leavegovernmentDate: new Date(), + leaveSalary: 10000, + leaveSalaryText: arabicNumberToText(10000), + leaveNumber: "", + leaveAddress: "", + studyDayScholarship: "", + studyDayCountry: "", + studyDayTrainingSubject: "", + studyDayTrainingName: "", + leaveDocument: [], + leaveDetail: "", + leaveTotal: "", //จำนวนวันลา + leaveTotalDay: "", //จำนวนวันลา }); /** ตัวแปร ref สำหรับแสดง validate */ @@ -84,79 +84,79 @@ const leaveWroteRef = ref(null); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const formRef: TrainForm = { - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - leavebirthDate: leavebirthDateRef, - leavegovernmentDate: leavegovernmentDateRef, - leaveNumber: leaveNumberRef, - leaveAddress: leaveAddressRef, - studyDayScholarship: studyDayScholarshipRef, - studyDayCountry: studyDayCountryRef, - studyDayTrainingSubject: studyDayTrainingSubjectRef, - studyDayTrainingName: studyDayTrainingNameRef, - leaveWrote: leaveWroteRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + leavebirthDate: leavebirthDateRef, + leavegovernmentDate: leavegovernmentDateRef, + leaveNumber: leaveNumberRef, + leaveAddress: leaveAddressRef, + studyDayScholarship: studyDayScholarshipRef, + studyDayCountry: studyDayCountryRef, + studyDayTrainingSubject: studyDayTrainingSubjectRef, + studyDayTrainingName: studyDayTrainingNameRef, + leaveWrote: leaveWroteRef, }; /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ const nameFile = ref(""); const fileDocDataUpload = ref([]); const fileUploadDoc = async (files: any) => { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); }; /** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */ function onValidate() { - const hasError = []; + 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); - } - } - } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); - if (formDataTrain.leaveDocument) { - formDataTrain.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - } - // formData.append("leaveDocument", formDataTrain.leaveDocument); - formData.append("type", formDataTrain.type); // - formData.append( - "leaveStartDate", - dateToISO(new Date(formDataTrain.leaveStartDate)) - ); // - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataTrain.leaveEndDate)) - ); // - formData.append("studyDayCountry", formDataTrain.studyDayCountry); - // formData.append( - // "leavegovernmentDate", - // dateToISO(formDataTrain.leavegovernmentDate) - // ); - // formData.append("leavebirthDate", dateToISO(new Date(formDataTrain.leavebirthDate))); - formData.append("studyDayTrainingName", formDataTrain.studyDayTrainingName); - formData.append( - "studyDayTrainingSubject", - formDataTrain.studyDayTrainingSubject - ); - formData.append("leaveWrote", formDataTrain.leaveWrote); // - formData.append("leaveDetail", formDataTrain.leaveDetail); // - formData.append("studyDayScholarship", formDataTrain.studyDayScholarship); - formData.append("leaveAddress", formDataTrain.leaveAddress); // - formData.append("leaveNumber", formDataTrain.leaveNumber); // - formData.append("leaveSalaryText", formDataTrain.leaveSalaryText); // - formData.append("leaveSalary", formDataTrain.leaveSalary); // - formData.append("leaveTotal", formDataTrain.leaveTotalDay); // - props.onSubmit(formData, isLeave.value); - } + 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); + } + } + } + if (hasError.every((result) => result === true)) { + const formData = new FormData(); + if (formDataTrain.leaveDocument) { + formDataTrain.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); + } + // formData.append("leaveDocument", formDataTrain.leaveDocument); + formData.append("type", formDataTrain.type); // + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataTrain.leaveStartDate)) + ); // + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataTrain.leaveEndDate)) + ); // + formData.append("studyDayCountry", formDataTrain.studyDayCountry); + // formData.append( + // "leavegovernmentDate", + // dateToISO(formDataTrain.leavegovernmentDate) + // ); + // formData.append("leavebirthDate", dateToISO(new Date(formDataTrain.leavebirthDate))); + formData.append("studyDayTrainingName", formDataTrain.studyDayTrainingName); + formData.append( + "studyDayTrainingSubject", + formDataTrain.studyDayTrainingSubject + ); + formData.append("leaveWrote", formDataTrain.leaveWrote); // + formData.append("leaveDetail", formDataTrain.leaveDetail); // + formData.append("studyDayScholarship", formDataTrain.studyDayScholarship); + formData.append("leaveAddress", formDataTrain.leaveAddress); // + formData.append("leaveNumber", formDataTrain.leaveNumber); // + formData.append("leaveSalaryText", formDataTrain.leaveSalaryText); // + formData.append("leaveSalary", formDataTrain.leaveSalary); // + formData.append("leaveTotal", formDataTrain.leaveTotalDay); // + props.onSubmit(formData, isLeave.value); + } } /** @@ -166,562 +166,562 @@ function onValidate() { const isLeave = ref(true); async function fetchCheck() { - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataTrain.leaveStartDate ?? null, - EndLeaveDate: formDataTrain.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataTrain.leaveTotalDay = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataTrain.leaveStartDate ?? null, + EndLeaveDate: formDataTrain.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataTrain.leaveTotalDay = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } /** * function อัพเดทค่า LeaveTotal */ function updateLeaveTotal() { - const newLeaveTotal = calculateDurationYmd( - formDataTrain.leaveStartDate, - formDataTrain.leaveEndDate - ); - formDataTrain.leaveTotal = newLeaveTotal; + const newLeaveTotal = calculateDurationYmd( + formDataTrain.leaveStartDate, + formDataTrain.leaveEndDate + ); + formDataTrain.leaveTotal = newLeaveTotal; } /** * แปลงตัวเลขเงินเดือน */ const formattedSalary = computed(() => { - return formDataTrain.leaveSalary !== null - ? formDataTrain.leaveSalary.toLocaleString("th-TH") - : ""; + return formDataTrain.leaveSalary !== null + ? formDataTrain.leaveSalary.toLocaleString("th-TH") + : ""; }); /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ const leaveDocumentList = ref(); const statusCheck = ref(""); watch(props.data, async () => { - if (props.data) { - formDataTrain.leaveWrote = props.data.leaveWrote; - formDataTrain.leaveStartDate = props.data.leaveStartDate; - formDataTrain.leaveEndDate = props.data.leaveEndDate; - formDataTrain.leaveTotal = props.data.leaveTotal; - formDataTrain.leavebirthDate = props.data.leavebirthDate; - formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate; - formDataTrain.leaveSalary = props.data.leaveSalary; - formDataTrain.leaveSalaryText = props.data.leaveSalaryText; - formDataTrain.leaveNumber = props.data.leaveNumber; - formDataTrain.leaveAddress = props.data.leaveAddress; - formDataTrain.studyDayScholarship = props.data.studyDayScholarship; - formDataTrain.studyDayCountry = props.data.studyDayCountry; - formDataTrain.studyDayTrainingSubject = props.data.studyDayTrainingSubject; - formDataTrain.studyDayTrainingName = props.data.studyDayTrainingName; - formDataTrain.leaveDetail = props.data.leaveDetail; - formDataTrain.leaveDocument = []; - const leaveTotal = await calculateDurationYmd( - props.data.leaveStartDate, - props.data.leaveEndDate - ); - formDataTrain.leaveTotal = leaveTotal; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - } + if (props.data) { + formDataTrain.leaveWrote = props.data.leaveWrote; + formDataTrain.leaveStartDate = props.data.leaveStartDate; + formDataTrain.leaveEndDate = props.data.leaveEndDate; + formDataTrain.leaveTotal = props.data.leaveTotal; + formDataTrain.leavebirthDate = props.data.leavebirthDate; + formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate; + formDataTrain.leaveSalary = props.data.leaveSalary; + formDataTrain.leaveSalaryText = props.data.leaveSalaryText; + formDataTrain.leaveNumber = props.data.leaveNumber; + formDataTrain.leaveAddress = props.data.leaveAddress; + formDataTrain.studyDayScholarship = props.data.studyDayScholarship; + formDataTrain.studyDayCountry = props.data.studyDayCountry; + formDataTrain.studyDayTrainingSubject = props.data.studyDayTrainingSubject; + formDataTrain.studyDayTrainingName = props.data.studyDayTrainingName; + formDataTrain.leaveDetail = props.data.leaveDetail; + formDataTrain.leaveDocument = []; + const leaveTotal = await calculateDurationYmd( + props.data.leaveStartDate, + props.data.leaveEndDate + ); + formDataTrain.leaveTotal = leaveTotal; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + } }); /**Hook */ onMounted(async () => { - if (props.data) { - formDataTrain.leaveWrote = props.data.leaveWrote; - formDataTrain.leaveStartDate = props.data.leaveStartDate; - formDataTrain.leaveEndDate = props.data.leaveEndDate; - formDataTrain.leaveTotal = props.data.leaveTotal; - formDataTrain.leavebirthDate = props.data.leavebirthDate; - formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate; - formDataTrain.leaveSalary = props.data.leaveSalary; - formDataTrain.leaveSalaryText = props.data.leaveSalaryText; - formDataTrain.leaveNumber = props.data.leaveNumber; - formDataTrain.leaveAddress = props.data.leaveAddress; - formDataTrain.studyDayScholarship = props.data.studyDayScholarship; - formDataTrain.studyDayCountry = props.data.studyDayCountry; - formDataTrain.studyDayTrainingSubject = props.data.studyDayTrainingSubject; - formDataTrain.studyDayTrainingName = props.data.studyDayTrainingName; - formDataTrain.leaveDetail = props.data.leaveDetail; - // formDataTrain.leaveDocument = props.data.leaveDocument; - const leaveTotal = await calculateDurationYmd( - props.data.leaveStartDate, - props.data.leaveEndDate - ); - formDataTrain.leaveTotal = leaveTotal; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - leaveId.value = props.data.id; - } + if (props.data) { + formDataTrain.leaveWrote = props.data.leaveWrote; + formDataTrain.leaveStartDate = props.data.leaveStartDate; + formDataTrain.leaveEndDate = props.data.leaveEndDate; + formDataTrain.leaveTotal = props.data.leaveTotal; + formDataTrain.leavebirthDate = props.data.leavebirthDate; + formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate; + formDataTrain.leaveSalary = props.data.leaveSalary; + formDataTrain.leaveSalaryText = props.data.leaveSalaryText; + formDataTrain.leaveNumber = props.data.leaveNumber; + formDataTrain.leaveAddress = props.data.leaveAddress; + formDataTrain.studyDayScholarship = props.data.studyDayScholarship; + formDataTrain.studyDayCountry = props.data.studyDayCountry; + formDataTrain.studyDayTrainingSubject = props.data.studyDayTrainingSubject; + formDataTrain.studyDayTrainingName = props.data.studyDayTrainingName; + formDataTrain.leaveDetail = props.data.leaveDetail; + // formDataTrain.leaveDocument = props.data.leaveDocument; + const leaveTotal = await calculateDurationYmd( + props.data.leaveStartDate, + props.data.leaveEndDate + ); + formDataTrain.leaveTotal = leaveTotal; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + leaveId.value = props.data.id; + } });