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 1/2] 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 () => {
+
เลือกวิธีการชำระเงิน From adde8fac6f9ef7361917f562c724d8411567e569 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 20 Nov 2025 10:25:52 +0700 Subject: [PATCH 2/2] fix:dialogConfrim --- .../components/TableCandidate.vue | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/modules/03_recruiting/components/TableCandidate.vue b/src/modules/03_recruiting/components/TableCandidate.vue index 9744c90ef..456c48064 100644 --- a/src/modules/03_recruiting/components/TableCandidate.vue +++ b/src/modules/03_recruiting/components/TableCandidate.vue @@ -395,17 +395,28 @@ async function clickCandidateList() { } async function onCheckShowExaminfo() { - try { - showLoader(); - await http.post(config.API.checkShowExaminfo, { - examId: examId.value, - }); - await props.fetchData(); - } catch (error) { - messageError($q, error); - } finally { - hideLoader(); - } + dialogMessage( + $q, + "ยืนยันการเปิดให้ดาวน์โหลดใบสมัคร แสดงสถานที่สอบ และเลขประจำตัวสอบนี้หรือไม่?", + "ยืนยันการเปิดให้ดาวน์โหลดใบสมัคร แสดงสถานที่สอบ และเลขประจำตัวสอบ", + "mdi-email-check-outline", + "ยืนยัน", + "public", + async () => { + try { + showLoader(); + await http.post(config.API.checkShowExaminfo, { + examId: examId.value, + }); + await props.fetchData(); + } catch (error) { + messageError($q, error); + } finally { + hideLoader(); + } + }, + undefined + ); } // Pagination - page & change page & get new data