From faf529c13c38306c05d0d8ecd694f9416e030a93 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 30 Jun 2026 16:03:37 +0700 Subject: [PATCH 1/9] feat(leave): show pending comment warning for system cancel case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Display 'ยังไม่ได้แสดงความคิดเห็น' in red when isSysCancel is true - Hide original comment button when system cancel - Improve UX for pending comments on cancelled leaves --- .../09_leave/components/05_Leave/DetailLeavePage.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue b/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue index 6fe271b19..b4be00203 100644 --- a/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue +++ b/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue @@ -1044,7 +1044,12 @@ onMounted(async () => { props.row.comment == '' " > +
+ ยังไม่ได้แสดงความคิดเห็น +
+
From a72b3afa702e71b8cd226079ead546b6f2833d33 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 30 Jun 2026 20:15:28 +0700 Subject: [PATCH 2/9] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84?= =?UTF-8?q?=E0=B8=82=20tab=20=E0=B8=A5=E0=B8=87=E0=B9=80=E0=B8=A7=E0=B8=A5?= =?UTF-8?q?=E0=B8=B2=20=E0=B8=A3=E0=B8=AD=E0=B8=9B=E0=B8=A3=E0=B8=B0?= =?UTF-8?q?=E0=B8=A1=E0=B8=A7=E0=B8=A5=E0=B8=9C=E0=B8=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/09_leave/views/02_WorkingMain.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/09_leave/views/02_WorkingMain.vue b/src/modules/09_leave/views/02_WorkingMain.vue index 87b81c060..5fa038615 100644 --- a/src/modules/09_leave/views/02_WorkingMain.vue +++ b/src/modules/09_leave/views/02_WorkingMain.vue @@ -51,7 +51,7 @@ const isPermissionTab4 = computed(() => { name="3" label="ประมวลผลการขาดราชการ/มาสาย" /> - + From 4621299dcf5c1fb8baf5602ea83b88ea45465f0f Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Wed, 1 Jul 2026 15:20:27 +0700 Subject: [PATCH 3/9] refactor(probation): checkType checkbox disable --- .../05_placement/components/probation/DialogOrder.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/05_placement/components/probation/DialogOrder.vue b/src/modules/05_placement/components/probation/DialogOrder.vue index 2646905f0..f4a5cb2a4 100644 --- a/src/modules/05_placement/components/probation/DialogOrder.vue +++ b/src/modules/05_placement/components/probation/DialogOrder.vue @@ -264,7 +264,7 @@ watch( @@ -352,7 +352,7 @@ watch( keep-color color="primary" dense - :disable="commandType" + :disable="!commandType ? true : false" v-model="props.selected" /> From d3936e56b2587fea1f84c948c48a8811f71abf14 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 2 Jul 2026 10:40:54 +0700 Subject: [PATCH 4/9] refactor(recruiting): add ScoreExpireDate to compete, qualify, and disable period forms --- .../03_recruiting/interface/request/Period.ts | 2 + .../views/01_compete/PeriodAdd.vue | 65 ++++++++++++++- .../views/02_qualify/DisablePeriodAdd.vue | 78 +++++++++++++++-- .../views/02_qualify/PeriodAdd.vue | 83 ++++++++++++++++--- 4 files changed, 208 insertions(+), 20 deletions(-) diff --git a/src/modules/03_recruiting/interface/request/Period.ts b/src/modules/03_recruiting/interface/request/Period.ts index 420d0f7b8..ce31cae5d 100644 --- a/src/modules/03_recruiting/interface/request/Period.ts +++ b/src/modules/03_recruiting/interface/request/Period.ts @@ -46,6 +46,7 @@ interface RequestPeriodCompete { year: number; announcementDate: string | null; rootDnaId: string; + scoreExpireDate: string | null; } interface RequestPeriodDisable { @@ -65,6 +66,7 @@ interface RequestPeriodDisable { year: number; announcementDate: string | null; rootDnaId: string; + scoreExpireDate: string | null; } interface RequestPosition { diff --git a/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue b/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue index 4a3b9fcea..68d8df9ae 100644 --- a/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue @@ -56,6 +56,7 @@ const fileImgDataUpload = ref([]); const fileImgs = ref([]); const id = ref(""); const edit = ref(false); +const scoreExpireDate = ref(null); //วันหมดอายุบัญชี /** กลับไปหน้าหลัก */ function clickBack() { @@ -101,6 +102,7 @@ async function fetchData() { fileDocs.value = files; fileImgs.value = images; + scoreExpireDate.value = data.scoreExpireDate; }) .catch((e) => { messageError($q, e); @@ -256,7 +258,11 @@ function sendData() { year: yearly.value, announcementDate: dateAnnounce.value !== null ? convertDateToAPI(dateAnnounce.value) : null, - rootDnaId: !edit.value ? dataPositionKeycloak.value.rootDnaId : undefined, + scoreExpireDate: + scoreExpireDate.value !== null + ? convertDateToAPI(scoreExpireDate.value) + : null, + rootDnaId: !edit.value ? dataPositionKeycloak.value.rootDnaId : undefined, }; return valueData; } @@ -359,6 +365,13 @@ function dateThaiRange(val: [Date, Date]) { return `${date2Thai(val[0], true)} - ${date2Thai(val[1], true)}`; } } +function onUpdateScoreExpireDate(val: Date | null) { + if (val) { + const newDate = new Date(val); + newDate.setFullYear(newDate.getFullYear() + 2); + scoreExpireDate.value = newDate; + } +} watch(organizationShortName, (count: DataOption2, prevCount: DataOption2) => { organizationNameOptions.value = []; @@ -455,6 +468,7 @@ onMounted(async () => {
+
{ input-class="text-right" >
+
{
+
{
+
{ dateRegister != null ? dateThaiRange(dateRegister) : null " :label="`${'วันที่สมัคร'}`" + hide-bottom-space >
+
{ " :label="`${'วันที่ชำระเงิน'}`" :rules="[(val:string) => !!val || `${'กรุณาเลือกวันที่ชำระเงิน'}`]" + hide-bottom-space >