From af1adef8ff29c3ec2c879abf74edae7ab9047284 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 17 Nov 2025 10:02:00 +0700 Subject: [PATCH 1/8] fix(qualify):set default yearly --- src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 46d808300..bd29e7b71 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -8,7 +8,6 @@ import { useRouter, useRoute } from "vue-router"; import http from "@/plugins/http"; import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; -import { calculateFiscalYear } from "@/utils/function"; import type { RequestPosition, @@ -75,7 +74,7 @@ const checkDocument = ref(false); const checkDisability = ref(false); const announcementExam = ref(true); const round = ref(1); -const yearly = ref(calculateFiscalYear(new Date())); +const yearly = ref(new Date().getFullYear()); const nameRaw = ref(null); const roundRaw = ref(null); const yearlyRaw = ref(null); From ceb7237cca44d77468ad5512161d7f8b5c473863 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 17 Nov 2025 10:13:24 +0700 Subject: [PATCH 2/8] fix(qualify/manage): del status checkRegister , edit status checkSeat --- .../views/02_qualify/manageDetail.vue | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modules/03_recruiting/views/02_qualify/manageDetail.vue b/src/modules/03_recruiting/views/02_qualify/manageDetail.vue index 8547bfde0..df5d20e1c 100644 --- a/src/modules/03_recruiting/views/02_qualify/manageDetail.vue +++ b/src/modules/03_recruiting/views/02_qualify/manageDetail.vue @@ -56,10 +56,10 @@ const optionsStatus = ref([ id: "all", name: "ทั้งหมด", }, - { - id: "checkRegister", - name: "รอกดรับใบสมัคร", - }, + // { + // id: "checkRegister", + // name: "รอกดรับใบสมัคร", + // }, { id: "payment", name: "รอชำระค่าสมัครสอบ", @@ -74,7 +74,7 @@ const optionsStatus = ref([ }, { id: "checkSeat", - name: "กดรับใบสมัครแล้ว", + name: "รับใบสมัครแล้ว", }, { id: "checkPoint", @@ -362,8 +362,8 @@ function statusCandidate(status: string) { switch (status) { case "register": return "ยังไม่สมัครสอบ"; - case "checkRegister": - return "รอกดรับใบสมัคร"; + // case "checkRegister": + // return "รอกดรับใบสมัคร"; case "payment": return "รอชำระค่าสมัครสอบ"; case "rejectRegister": @@ -373,7 +373,7 @@ function statusCandidate(status: string) { case "rejectPayment": return "หลักฐานชำระเงินไม่ถูกต้อง"; case "checkSeat": - return "กดรับใบสมัครแล้ว"; + return "รับใบสมัครแล้ว"; case "checkPoint": return "รอสรุปคะแนนสอบ"; case "done": From 4ae8817379f6622a8dfc7fa28d11a56f65b500d3 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 17 Nov 2025 10:41:29 +0700 Subject: [PATCH 3/8] fix:convertDatetimeToAPI --- .../views/02_qualify/PeriodAdd.vue | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 46d808300..cc2d130d0 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -37,7 +37,7 @@ const route = useRoute(); const { date2Thai, success, - + convertDatetimeToAPI, messageError, showLoader, hideLoader, @@ -276,7 +276,7 @@ async function fetchData() { dateExam.value = data.examDate != null ? new Date(data.examDate) : null; dateRegister.value = data.registerStartDate != null && data.registerEndDate != null - ? [new Date(data.registerStartDate), new Date(data.registerEndDate)] + ? [data.registerStartDate, data.registerEndDate] : null; if (data.fee == 0) { data.paymentStartDate = null; @@ -446,11 +446,11 @@ function sendData() { positionExam: positionData, registerEndDate: dateRegister.value != null - ? convertDateToAPI(dateRegister.value[1]) + ? convertDatetimeToAPI(dateRegister.value[1]) : null, registerStartDate: dateRegister.value != null - ? convertDateToAPI(dateRegister.value[0]) + ? convertDatetimeToAPI(dateRegister.value[0]) : null, round: round.value, year: yearly.value, @@ -475,7 +475,6 @@ async function addData() { const uploadDoc = await uploadDocData(); const uploadBarCode = await uploadBarCodes(); const uploadQrCode = await uploadQrCodes(); - hideLoader(); if (uploadImg && uploadDoc && uploadBarCode && uploadQrCode) { success($q, "บันทึกรอบคัดเลือกสำเร็จ"); @@ -484,9 +483,10 @@ async function addData() { }) .catch((e) => { messageError($q, e); - hideLoader(); }) - .finally(async () => {}); + .finally(async () => { + hideLoader(); + }); } /** @@ -502,20 +502,18 @@ async function editData(id: string) { const uploadDoc = await uploadDocData(); const uploadBarCode = await uploadBarCodes(); const uploadQrCode = await uploadQrCodes(); - hideLoader(); - - console.log(uploadImg, uploadDoc, uploadBarCode, uploadQrCode); if (uploadImg && uploadDoc && uploadBarCode && uploadQrCode) { success($q, "แก้ไขรอบคัดเลือกสำเร็จ"); - await clickBack(); + clickBack(); } }) .catch((e) => { messageError($q, e); - hideLoader(); }) - .finally(() => {}); + .finally(() => { + hideLoader(); + }); } /** @@ -1095,7 +1093,6 @@ onMounted(async () => { :readonly="checkRoutePermisson" borderless range - :enableTimePicker="false" week-start="0" > From 2224bd346564c4da46177462fea2f6f584234751 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Mon, 17 Nov 2025 16:00:47 +0700 Subject: [PATCH 6/8] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84?= =?UTF-8?q?=E0=B8=9F=E0=B8=A5=E0=B9=8C=20"=E0=B8=81.=E0=B8=9E.7/=E0=B8=81.?= =?UTF-8?q?=E0=B8=81.1"=20=E0=B9=80=E0=B8=9B=E0=B9=87=E0=B8=99=20"?= =?UTF-8?q?=E0=B8=97=E0=B8=9B=E0=B8=AD.=20=E0=B8=AA=E0=B8=B2=E0=B8=A1?= =?UTF-8?q?=E0=B8=B1=E0=B8=8D"=20=E0=B9=80=E0=B8=89=E0=B8=9E=E0=B8=B2?= =?UTF-8?q?=E0=B8=B0=E0=B8=97=E0=B8=B5=E0=B9=88=E0=B9=80=E0=B8=9B=E0=B9=87?= =?UTF-8?q?=E0=B8=99=20=E0=B8=97=E0=B8=B0=E0=B9=80=E0=B8=9A=E0=B8=B5?= =?UTF-8?q?=E0=B8=A2=E0=B8=99=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=A7=E0=B8=B1?= =?UTF-8?q?=E0=B8=95=E0=B8=B4=E0=B8=AD=E0=B8=B4=E0=B9=80=E0=B8=A5=E0=B9=87?= =?UTF-8?q?=E0=B8=81=E0=B8=97=E0=B8=A3=E0=B8=AD=E0=B8=99=E0=B8=B4=E0=B8=81?= =?UTF-8?q?=E0=B8=AA=E0=B9=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/04_registryPerson/views/detailView.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/04_registryPerson/views/detailView.vue b/src/modules/04_registryPerson/views/detailView.vue index 0de9ceeab..51132ac2e 100644 --- a/src/modules/04_registryPerson/views/detailView.vue +++ b/src/modules/04_registryPerson/views/detailView.vue @@ -417,7 +417,7 @@ async function onClickDownloadKp7(type: string) { ? config.API.profilshort(profileId.value, "profile-employee") : config.API.profilshort(profileId.value, "profile"); - const fileName = type === "FULL" ? "ก.พ.7/ก.ก.1" : "ประวัติแบบย่อ"; + const fileName = type === "FULL" ? "ทปอ. สามัญ" : "ประวัติแบบย่อ"; await http .get(url) .then(async (res) => { @@ -891,7 +891,7 @@ onMounted(async () => { - ก.พ.7/ก.ก.1 + ทปอ. สามัญ Date: Mon, 17 Nov 2025 17:08:32 +0700 Subject: [PATCH 7/8] fix:add feild graduationYearLock --- .../03_recruiting/interface/request/Period.ts | 1 + .../interface/response/Period.ts | 1 + .../views/02_qualify/PeriodAdd.vue | 127 ++++++++++++++---- 3 files changed, 102 insertions(+), 27 deletions(-) diff --git a/src/modules/03_recruiting/interface/request/Period.ts b/src/modules/03_recruiting/interface/request/Period.ts index 8a2bb961f..aab6d13ad 100644 --- a/src/modules/03_recruiting/interface/request/Period.ts +++ b/src/modules/03_recruiting/interface/request/Period.ts @@ -75,6 +75,7 @@ interface RequestPosition { typeId: string; typeName: string; highDegree: Boolean; + educationLevel?: string; } interface RequestPayment { diff --git a/src/modules/03_recruiting/interface/response/Period.ts b/src/modules/03_recruiting/interface/response/Period.ts index ce76476f0..3937470d9 100644 --- a/src/modules/03_recruiting/interface/response/Period.ts +++ b/src/modules/03_recruiting/interface/response/Period.ts @@ -56,6 +56,7 @@ interface ResponsePosition { name: string; }; highDegree: string; + educationLevel?: string; } interface ResponsePayment { id: string; diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 46d808300..87374ed7d 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -84,6 +84,7 @@ const datePayment = ref<[Date, Date] | null>(null); //วันที่จ่ const dateAnnouncement = ref<[Date, Date] | null>(null); //วันที่ประกาศ const dateAnnounce = ref(null); //วันประกาศผลสอบ const dateExam = ref(null); //วันที่สอบ +const graduationYearLock = ref(3); //ล็อกวันที่สำเร็จการศึกษา (ปี) const myFormPayment = ref(); const myFormPosition = ref(); const organizationShortName = ref(); @@ -150,6 +151,7 @@ const visibleColumnsPosition = ref([ "position", "level", "type", + "educational", "highDegree", ]); const columnsPosition = ref([ @@ -199,6 +201,18 @@ const columnsPosition = ref([ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, + { + name: "educational", + align: "left", + label: "กำหนดขีดจำกัดวุฒิการศึกษา", + sortable: true, + field: "educational", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { name: "type", align: "left", @@ -242,6 +256,7 @@ async function fetchData() { }, code: r.code, highDegree: r.highDegree == true ? "1" : "0", + educationLevel: r.educationLevel, }); }); const bankData: ResponsePayment[] = []; @@ -314,6 +329,7 @@ async function fetchData() { companyCode.value = data.companyCode; refNo1.value = data.refNo1; reason.value = data.reason; + graduationYearLock.value = data.graduationYearLock; }) .catch((e) => { messageError($q, e); @@ -405,6 +421,7 @@ function sendData() { typeName: r.type.name, code: r.code, highDegree: r.highDegree == "1" ? true : false, + educationLevel: r.educationLevel, }); }); if (fee.value == 0) { @@ -459,6 +476,7 @@ function sendData() { companyCode: companyCode.value, refNo1: refNo1.value, reason: reason.value, + graduationYearLock: Number(graduationYearLock.value), }; return valueData; } @@ -842,6 +860,8 @@ function onUpdateHighDegree(val: string, index: string) { rowsPosition.value[index].position = null; rowsPosition.value[index].level = val === "0" ? optionPosLevel1.value[0] : optionPosLevel2.value[0]; + rowsPosition.value[index].educationLevel = + val === "0" ? "LOW_BACHELOR" : "BACHELOR"; } watch(fee, () => { @@ -1017,6 +1037,7 @@ onMounted(async () => { :readonly="checkRoutePermisson" :enableTimePicker="false" week-start="0" + hide-bottom-space >