From c424c6c744154b0ee3bd8d381b88d9d03b0a022e Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 2 Dec 2025 12:23:15 +0700 Subject: [PATCH 1/2] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84?= =?UTF-8?q?=E0=B8=82=E0=B9=80=E0=B8=AB=E0=B8=95=E0=B8=B8=E0=B8=9C=E0=B8=A5?= =?UTF-8?q?=E0=B8=95=E0=B8=AD=E0=B8=99=E0=B8=A5=E0=B8=87=E0=B9=80=E0=B8=A7?= =?UTF-8?q?=E0=B8=A5=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/interface/response/checkin.ts | 6 +++++- src/views/HomeView.vue | 29 ++++++++++++++++++++++------- src/views/MapView.vue | 30 ++++++++++++++++++++++-------- 3 files changed, 49 insertions(+), 16 deletions(-) diff --git a/src/interface/response/checkin.ts b/src/interface/response/checkin.ts index 6db7da2..af92c96 100644 --- a/src/interface/response/checkin.ts +++ b/src/interface/response/checkin.ts @@ -1,3 +1,7 @@ +interface OptionReason { + value: string + text: string +} interface FormRef { model: object | null useLocation: object | null @@ -43,4 +47,4 @@ interface FormTimeStemp { longitude: string POI: string } -export type { FormRef, FormData, Datalist, FormTimeStemp } +export type { OptionReason, FormRef, FormData, Datalist, FormTimeStemp } diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index d624af4..4f6d383 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -8,7 +8,7 @@ import config from '@/app.config' import http from '@/plugins/http' import { useCounterMixin } from '@/stores/mixin' -import type { FormRef } from '@/interface/response/checkin' +import type { FormRef, OptionReason } from '@/interface/response/checkin' import MapCheck from '@/components/AscGISMap.vue' @@ -110,12 +110,23 @@ async function updateLocation( const location = ref('') // พื้นที่ใกล้เคียง const model = ref('') // สถานที่ทำงาน // ตัวเลือกสถานที่ทำงาน -const options = ref([ - 'ปฏิบัติงานที่บ้าน', - // 'ลืมลงเวลาปฏิบัติงาน', - 'ไปประชุม/อบรม/สัมมนา/ปฏิบัติงานที่บ้านนอกสถานที่', - 'ขออนุญาตออกนอกสถานที่', - 'อื่นๆ', +const options = ref([ + { value: 'ปฏิบัติงานที่บ้าน', text: 'ปฏิบัติงานที่บ้าน (WFH)' }, + { value: 'ปฏิบัติงานนอกสถานที่', text: 'ปฏิบัติงานนอกสถานที่ (WFA)' }, + { value: 'ลืมลงเวลาเริ่มปฏิบัติราชการ', text: 'ลืมลงเวลาเริ่มปฏิบัติราชการ' }, + { value: 'ลืมลงเวลาเลิกปฏิบัติราชการ', text: 'ลืมลงเวลาเลิกปฏิบัติราชการ' }, + { + value: 'ไปประชุม / อบรม / สัมมนา', + text: 'ไปประชุม / อบรม / สัมมนา', + }, + { value: 'ลางานครึ่งวัน (เช้า)', text: 'ลางานครึ่งวัน (เช้า)' }, + { value: 'ลางานครึ่งวัน (บ่าย)', text: 'ลางานครึ่งวัน (บ่าย)' }, + { value: 'ขออนุญาตออกนอกสถานที่', text: 'ขออนุญาตออกนอกสถานที่' }, + { + value: 'ประสบภัย เช่น น้ำท่วม มีพายุ ประสบอุบัติเหตุ', + text: 'ประสบภัย เช่น น้ำท่วม มีพายุ ประสบอุบัติเหตุ', + }, + { value: 'อื่นๆ', text: 'อื่นๆ' }, ]) /** function เลือกสถานที่*/ @@ -753,6 +764,10 @@ onMounted(async () => { lazy-rules @update:model-value="selectLocation()" hide-bottom-space + option-value="value" + option-label="text" + emit-value + map-options />
('') // const coordinates = ref('') const model = ref('') -const options = ref([ - 'ปฏิบัติงานที่บ้าน', - // 'ลืมลงเวลาปฏิบัติงาน', - 'ไปประชุม/อบรม/สัมมนา/ปฏิบัติงานที่บ้านนอกสถานที่', - 'ขออนุญาตออกนอกสถานที่', - 'อื่นๆ', +const options = ref([ + { value: 'ปฏิบัติงานที่บ้าน', text: 'ปฏิบัติงานที่บ้าน (WFH)' }, + { value: 'ปฏิบัติงานนอกสถานที่', text: 'ปฏิบัติงานนอกสถานที่ (WFA)' }, + { value: 'ลืมลงเวลาเริ่มปฏิบัติราชการ', text: 'ลืมลงเวลาเริ่มปฏิบัติราชการ' }, + { value: 'ลืมลงเวลาเลิกปฏิบัติราชการ', text: 'ลืมลงเวลาเลิกปฏิบัติราชการ' }, + { + value: 'ไปประชุม / อบรม / สัมมนา', + text: 'ไปประชุม / อบรม / สัมมนา', + }, + { value: 'ลางานครึ่งวัน (เช้า)', text: 'ลางานครึ่งวัน (เช้า)' }, + { value: 'ลางานครึ่งวัน (บ่าย)', text: 'ลางานครึ่งวัน (บ่าย)' }, + { value: 'ขออนุญาตออกนอกสถานที่', text: 'ขออนุญาตออกนอกสถานที่' }, + { + value: 'ประสบภัย เช่น น้ำท่วม มีพายุ ประสบอุบัติเหตุ', + text: 'ประสบภัย เช่น น้ำท่วม มีพายุ ประสบอุบัติเหตุ', + }, + { value: 'อื่นๆ', text: 'อื่นๆ' }, ]) /** function เลือกสถานที่*/ @@ -411,6 +421,10 @@ onMounted(async () => { :rules="[(val:string) => !!val || 'กรุณาระบุสถานที่']" lazy-rules @update:model-value="selectLocation()" + option-value="value" + option-label="text" + emit-value + map-options />
Date: Wed, 3 Dec 2025 15:58:46 +0700 Subject: [PATCH 2/2] fix:reset_pass --- src/views/MainView.vue | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/src/views/MainView.vue b/src/views/MainView.vue index 69a6ec9..572e08b 100644 --- a/src/views/MainView.vue +++ b/src/views/MainView.vue @@ -246,15 +246,11 @@ function ruleNewPassWord(val: string) { if (val.length < 8) { return resolve('รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร') } - if (!/[A-Z]/.test(val)) { - return resolve('ต้องมีตัวอักษรพิมพ์ใหญ่ (A-Z)') + if (!/^[A-Za-z0-9!@#$%&*]+$/.test(val)) { + return resolve( + 'รหัสผ่านต้องมีเฉพาะภาษาอังกฤษ ตัวเลข และอักขระพิเศษ (! @ # $ % & *) เท่านั้น' + ) } - if (!/[0-9]/.test(val)) { - return resolve('ต้องมีตัวเลข (0-9)') - } - // if (!/[@$!%*?&]/.test(val)) { - // return resolve('ต้องมีอักขระพิเศษ (@$!%*?&)') - // } resolve(true) }) @@ -268,15 +264,11 @@ function ruleReNewPassWord(val: string) { if (val.length < 8) { return resolve('รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร') } - if (!/[A-Z]/.test(val)) { - return resolve('ต้องมีตัวอักษรพิมพ์ใหญ่ (A-Z)') + if (!/^[A-Za-z0-9!@#$%&*]+$/.test(val)) { + return resolve( + 'รหัสผ่านต้องมีเฉพาะภาษาอังกฤษ ตัวเลข และอักขระพิเศษ (! @ # $ % & *) เท่านั้น' + ) } - if (!/[0-9]/.test(val)) { - return resolve('ต้องมีตัวเลข (0-9)') - } - // else if (!/[@$!%*?&]/.test(val)) { - // return resolve('ต้องมีอักขระพิเศษ (@$!%*?&)'); - // } if (val !== newPassword.value) { return resolve('รหัสผ่านใหม่ไม่ตรงกัน') }