Merge branch 'develop' into dev

* develop:
  fix:reset_pass
  แก้ไขเหตุผลตอนลงเวลา
This commit is contained in:
Warunee Tamkoo 2025-12-03 16:11:33 +07:00
commit 3fe22338a7
4 changed files with 57 additions and 32 deletions

View file

@ -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 }

View file

@ -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<string>('') //
const model = ref<string>('') //
//
const options = ref<string[]>([
'ปฏิบัติงานที่บ้าน',
// '',
'ไปประชุม/อบรม/สัมมนา/ปฏิบัติงานที่บ้านนอกสถานที่',
'ขออนุญาตออกนอกสถานที่',
'อื่นๆ',
const options = ref<OptionReason[]>([
{ 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
/>
</div>
<div

View file

@ -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('รหัสผ่านใหม่ไม่ตรงกัน')
}

View file

@ -9,8 +9,7 @@ import config from '@/app.config'
import { tokenParsed } from '@/plugins/auth'
// import Type
import type { FormRef } from '@/interface/response/checkin'
import type { notiType } from '@/interface/index/Main'
import type { FormRef, OptionReason } from '@/interface/response/checkin'
// import components
import MapCheck from '@/components/MapCheckin.vue'
@ -97,12 +96,23 @@ async function updateLocation(location: any, namePOI: string) {
const location = ref<string>('')
// const coordinates = ref<string>('')
const model = ref<string>('')
const options = ref<string[]>([
'ปฏิบัติงานที่บ้าน',
// '',
'ไปประชุม/อบรม/สัมมนา/ปฏิบัติงานที่บ้านนอกสถานที่',
'ขออนุญาตออกนอกสถานที่',
'อื่นๆ',
const options = ref<OptionReason[]>([
{ 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
/>
</div>
<div