From 989d70d97a101bb2c56c0dd56a7e6705fc62b39b Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 20 Nov 2025 10:14:39 +0700 Subject: [PATCH] fix:bug validate --- .../views/02_qualify/PeriodAdd.vue | 54 +++++++++++++------ 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 66c2fc382..65a425669 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -389,27 +389,50 @@ async function updateYear(e: number) { /** saveข้อมูล เพิ่ม แก้ไข */ async function checkSave() { - if (myForm.value !== null) { - myForm.value.validate().then(async (success) => { - if (success) { - if (edit.value) { - if (rowsPosition.value.length == 0 && announcementExam.value) { - notifyWarring($q, "กรุณาเพิ่มตำแหน่ง"); - } else { - await editData(id.value); - } - } else { - await addData(); - } + try { + // เช็ค validation form หลัก + const isMainFormValid = await myForm.value?.validate(); + if (!isMainFormValid) return; + + // เช็ค validation form ตำแหน่ง + const isPositionFormValid = await myFormPosition.value?.validate(); + if (!isPositionFormValid) return; + + // เช็คการเพิ่มตำแหน่ง + if (announcementExam.value && rowsPosition.value.length === 0) { + notifyWarring($q, "กรุณาเพิ่มตำแหน่ง"); + return; + } + + // เช็คการเลือกวิธีการชำระเงิน + if (announcementExam.value && fee.value != 0) { + notifyWarring($q, "กรุณาเลือกวิธีการชำระเงิน"); + return; + } + + // เช็ค validation form วิธีการชำระเงิน ชำระเงินค่าสมัครสอบผ่านสำนัก/หน่วยงาน + if (pay.value === "payment2") { + const isPaymentFormValid = await myFormPayment.value?.validate(); + if (!isPaymentFormValid) return; + + if (rowsPayment.value.length === 0) { + notifyWarring($q, "กรุณาเพิ่มวิธีการชำระเงิน"); + return; } - }); + } + + if (edit.value) { + await editData(id.value); + } else { + await addData(); + } + } catch (error) { + messageError($q, error); } } /** body สำหรับ save ข้อมูล */ function sendData() { - console.log(rowsPosition.value); - const positionData: RequestPosition[] = []; rowsPosition.value.map((r: ResponsePosition) => { positionData.push({ @@ -1460,6 +1483,7 @@ onMounted(async () => {
+
เลือกวิธีการชำระเงิน