Merge branch 'nice_dev' into develop

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-04-30 10:59:32 +07:00
commit 8be154ece9
111 changed files with 2002 additions and 1866 deletions

View file

@ -83,7 +83,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]"

View file

@ -137,7 +137,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(issueDate)" :model-value="date2Thai(issueDate)"
:rules="[ :rules="[
@ -183,7 +182,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(expireDate)" :model-value="date2Thai(expireDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]"

View file

@ -88,7 +88,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(issueDate)" :model-value="date2Thai(issueDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]"
@ -185,7 +184,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -79,7 +79,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]"
@ -199,7 +198,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -158,7 +158,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="startDate + 543" :model-value="startDate + 543"
:rules="[ :rules="[
@ -203,7 +202,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate2)" :model-value="date2Thai(startDate2)"
:rules="[ :rules="[
@ -253,7 +251,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="endDate + 543" :model-value="endDate + 543"
:rules="[ :rules="[
@ -297,7 +294,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate2)" :model-value="date2Thai(endDate2)"
:rules="[ :rules="[
@ -347,7 +343,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(finishDate)" :model-value="date2Thai(finishDate)"
:rules="[ :rules="[

View file

@ -145,7 +145,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(new Date(govermentData.containDate))" :model-value="date2Thai(new Date(govermentData.containDate))"
@ -198,7 +197,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(new Date(govermentData.workDate))" :model-value="date2Thai(new Date(govermentData.workDate))"

View file

@ -113,7 +113,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -87,7 +87,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="year + 543" :model-value="year + 543"
:rules="[ :rules="[
@ -134,7 +133,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(receiveDate)" :model-value="date2Thai(receiveDate)"
:rules="[(val:string) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]"
@ -306,7 +304,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateAnnounce)" :model-value="date2Thai(dateAnnounce)"
:rules="[ :rules="[
@ -374,7 +371,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -129,7 +129,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="dateThaiRange(dateRange)" :model-value="dateThaiRange(dateRange)"
:rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปีที่ลา'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปีที่ลา'}`]"

View file

@ -76,7 +76,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]"

View file

@ -82,7 +82,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]"
@ -179,7 +178,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -143,7 +143,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -142,7 +142,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -142,7 +142,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -191,7 +191,6 @@
hide-bottom-space hide-bottom-space
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value=" :model-value="
retireYear == null ? null : retireYear + 543 retireYear == null ? null : retireYear + 543
@ -332,7 +331,6 @@
hide-bottom-space hide-bottom-space
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value=" :model-value="
reportYear == null ? null : reportYear + 543 reportYear == null ? null : reportYear + 543

View file

@ -122,7 +122,7 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate)" :model-value="date2Thai(startDate)"
:rules="[ :rules="[
@ -169,7 +169,7 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate)" :model-value="date2Thai(endDate)"
:rules="[ :rules="[
@ -215,7 +215,7 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="yearly + 543" :model-value="yearly + 543"
:rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]"
@ -318,7 +318,7 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateOrder)" :model-value="date2Thai(dateOrder)"
:label="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`" :label="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`"

View file

@ -83,7 +83,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateStart)" :model-value="date2Thai(dateStart)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]"
@ -127,7 +127,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateEnd)" :model-value="date2Thai(dateEnd)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]"
@ -224,7 +224,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -75,7 +75,7 @@
:outlined="edit" :outlined="edit"
dense dense
label="วันที่" label="วันที่"
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="dateThaiRange(dateRange)" :model-value="dateThaiRange(dateRange)"
> >

View file

@ -75,7 +75,7 @@
:outlined="edit" :outlined="edit"
dense dense
label="วันที่" label="วันที่"
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="dateThaiRange(dateRange)" :model-value="dateThaiRange(dateRange)"
> >

View file

@ -186,7 +186,6 @@
" "
:outlined="status == 'checkRegister' || status == 'payment'" :outlined="status == 'checkRegister' || status == 'payment'"
dense dense
lazy-rules
:borderless=" :borderless="
!status == 'checkRegister' || status == 'payment' !status == 'checkRegister' || status == 'payment'
" "
@ -240,7 +239,6 @@
" "
:outlined="status == 'checkRegister' || status == 'payment'" :outlined="status == 'checkRegister' || status == 'payment'"
dense dense
lazy-rules
:borderless=" :borderless="
!status == 'checkRegister' || status == 'payment' !status == 'checkRegister' || status == 'payment'
" "

View file

@ -113,7 +113,6 @@
" "
:outlined="status == 'checkRegister' || status == 'payment'" :outlined="status == 'checkRegister' || status == 'payment'"
dense dense
lazy-rules
:readonly="!(status == 'checkRegister' || status == 'payment')" :readonly="!(status == 'checkRegister' || status == 'payment')"
:borderless=" :borderless="
!(status == 'checkRegister' || status == 'payment') !(status == 'checkRegister' || status == 'payment')

View file

@ -151,7 +151,6 @@
" "
:outlined="status == 'checkRegister' || status == 'payment'" :outlined="status == 'checkRegister' || status == 'payment'"
dense dense
lazy-rules
:readonly="!(status == 'checkRegister' || status == 'payment')" :readonly="!(status == 'checkRegister' || status == 'payment')"
:borderless="!(status == 'checkRegister' || status == 'payment')" :borderless="!(status == 'checkRegister' || status == 'payment')"
:model-value=" :model-value="

File diff suppressed because it is too large Load diff

View file

@ -61,7 +61,7 @@
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
outlined outlined
:model-value="yearly + 543" :model-value="yearly + 543"
:rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]"

View file

@ -88,7 +88,6 @@
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
outlined outlined
:model-value="yearly + 543" :model-value="yearly + 543"
:rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]"

View file

@ -144,7 +144,7 @@ a
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="issueDate + 543" :model-value="issueDate + 543"
hide-bottom-space hide-bottom-space
@ -186,7 +186,7 @@ a
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(issueDate2)" :model-value="date2Thai(issueDate2)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]"
@ -293,7 +293,7 @@ a
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -130,7 +130,7 @@ watch(
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
hide-bottom-space hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]"
:class="inputEdit(isReadonly)" :class="inputEdit(isReadonly)"

View file

@ -92,7 +92,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val:string) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]"
@ -219,7 +219,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
(refCommandDate && date2Thai(refCommandDate as Date)) || null (refCommandDate && date2Thai(refCommandDate as Date)) || null

View file

@ -174,7 +174,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="Number(startDate) + 543" :model-value="Number(startDate) + 543"
:rules="[ :rules="[
@ -233,7 +233,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate2 as Date)" :model-value="date2Thai(startDate2 as Date)"
:rules="[ :rules="[
@ -297,7 +297,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="Number(endDate) + 543" :model-value="Number(endDate) + 543"
:rules="[ :rules="[
@ -355,7 +355,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate2 as Date)" :model-value="date2Thai(endDate2 as Date)"
:rules="[ :rules="[
@ -415,7 +415,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="finishDate ? date2Thai(finishDate as Date) : null" :model-value="finishDate ? date2Thai(finishDate as Date) : null"
hide-bottom-space hide-bottom-space

View file

@ -11,7 +11,9 @@
v-model:inputvisible="visibleColumns" v-model:inputvisible="visibleColumns"
:add="clickAdd" :add="clickAdd"
:name=" :name="
profileType == 'employee' ? 'ใบอนุญาตของลูกจ้าง' : 'ใบอนุญาตประกอบวิชาชีพ' profileType == 'employee'
? 'ใบอนุญาตของลูกจ้าง'
: 'ใบอนุญาตประกอบวิชาชีพ'
" "
icon="mdi-book" icon="mdi-book"
:statusEdit="statusEdit" :statusEdit="statusEdit"
@ -59,7 +61,9 @@
<q-form ref="myForm"> <q-form ref="myForm">
<DialogHeader <DialogHeader
:tittle=" :tittle="
profileType == 'employee' ? 'ใบอนุญาตของลูกจ้าง' : 'ใบอนุญาตประกอบวิชาชีพ' profileType == 'employee'
? 'ใบอนุญาตของลูกจ้าง'
: 'ใบอนุญาตประกอบวิชาชีพ'
" "
:close="clickClose" :close="clickClose"
/> />
@ -192,7 +196,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(expireDate as Date)" :model-value="date2Thai(expireDate as Date)"
:label="`${'วันที่หมดอายุ'}`" :label="`${'วันที่หมดอายุ'}`"
@ -515,14 +518,14 @@ const fetchData = async () => {
id: e.id, id: e.id,
certificateNo: e.certificateNo, certificateNo: e.certificateNo,
issuer: e.issuer, issuer: e.issuer,
issueDate: e.issueDate !== null ? new Date(e.issueDate):null, issueDate: e.issueDate !== null ? new Date(e.issueDate) : null,
expireDate: e.expireDate !== null ? new Date(e.expireDate):null, expireDate: e.expireDate !== null ? new Date(e.expireDate) : null,
certificateType: e.certificateType, certificateType: e.certificateType,
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
}); });
console.log(rows.value) console.log(rows.value);
console.log(data) console.log(data);
}); });
}) })
.catch((e) => { .catch((e) => {
@ -564,8 +567,10 @@ const getData = () => {
issuer.value = row.issuer; issuer.value = row.issuer;
issueDate.value = row.issueDate; issueDate.value = row.issueDate;
expireDate.value = row.expireDate; expireDate.value = row.expireDate;
inputIssueDate.value = row.issueDate !== null ? convertDateDisplay(row.issueDate as Date):''; inputIssueDate.value =
inputExpireDate.value = row.expireDate !== null ? convertDateDisplay(row.expireDate as Date):''; row.issueDate !== null ? convertDateDisplay(row.issueDate as Date) : "";
inputExpireDate.value =
row.expireDate !== null ? convertDateDisplay(row.expireDate as Date) : "";
certificateType.value = row.certificateType; certificateType.value = row.certificateType;
id.value = row.id; id.value = row.id;
}; };
@ -626,8 +631,8 @@ const saveData = async () => {
id: id.value, id: id.value,
certificateNo: certificateNo.value, certificateNo: certificateNo.value,
issuer: issuer.value, issuer: issuer.value,
issueDate: issueDate.value ? dateToISO(issueDate.value as Date):null, issueDate: issueDate.value ? dateToISO(issueDate.value as Date) : null,
expireDate: expireDate.value ? dateToISO(expireDate.value as Date):null, expireDate: expireDate.value ? dateToISO(expireDate.value as Date) : null,
certificateType: certificateType.value, certificateType: certificateType.value,
}) })
.then((res) => { .then((res) => {
@ -652,8 +657,8 @@ const editData = async () => {
id: id.value, id: id.value,
certificateNo: certificateNo.value, certificateNo: certificateNo.value,
issuer: issuer.value, issuer: issuer.value,
issueDate: issueDate.value ? dateToISO(issueDate.value as Date):null, issueDate: issueDate.value ? dateToISO(issueDate.value as Date) : null,
expireDate: expireDate.value ? dateToISO(expireDate.value as Date):null, expireDate: expireDate.value ? dateToISO(expireDate.value as Date) : null,
certificateType: certificateType.value, certificateType: certificateType.value,
}) })
.then((res) => { .then((res) => {
@ -736,8 +741,14 @@ const selectData = async (props: DataProps) => {
issuer.value = props.row.issuer; issuer.value = props.row.issuer;
issueDate.value = props.row.issueDate; issueDate.value = props.row.issueDate;
expireDate.value = props.row.expireDate; expireDate.value = props.row.expireDate;
inputIssueDate.value = props.row.issueDate !== null ? convertDateDisplay(props.row.issueDate as Date):''; inputIssueDate.value =
inputExpireDate.value = props.row.expireDate !== null ? convertDateDisplay(props.row.expireDate as Date):''; props.row.issueDate !== null
? convertDateDisplay(props.row.issueDate as Date)
: "";
inputExpireDate.value =
props.row.expireDate !== null
? convertDateDisplay(props.row.expireDate as Date)
: "";
certificateType.value = props.row.certificateType; certificateType.value = props.row.certificateType;
id.value = props.row.id; id.value = props.row.id;
await checkRowPage(); await checkRowPage();
@ -858,8 +869,8 @@ watch(
} else { } else {
inputIssueDate.value = ""; inputIssueDate.value = "";
} }
}else if(value.length === 0){ } else if (value.length === 0) {
issueDate.value = null issueDate.value = null;
} }
} }
); );
@ -874,8 +885,8 @@ watch(
} else { } else {
inputExpireDate.value = ""; inputExpireDate.value = "";
} }
}else if(value.length === 0){ } else if (value.length === 0) {
expireDate.value = null expireDate.value = null;
} }
} }
); );

View file

@ -157,7 +157,7 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
@ -228,7 +228,7 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules l
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -1187,7 +1187,7 @@ const getClass = (val: boolean) => {
}; };
// change date input // change date input
const inputBirthDate = ref<string>(""); const inputBirthDate = ref<any>("");
const dayChecked = ref<boolean>(false); const dayChecked = ref<boolean>(false);
watch( watch(
() => inputBirthDate.value, () => inputBirthDate.value,

View file

@ -101,7 +101,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="year !== 0 ? (year as number) + 543:null" :model-value="year !== 0 ? (year as number) + 543:null"
:rules="[ :rules="[
@ -160,7 +160,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(receiveDate as Date)" :model-value="date2Thai(receiveDate as Date)"
:rules="[(val:string) => !!val || `${'กรุณากรอก วัน/เดือน/ปี ที่ได้รับ'}`]" :rules="[(val:string) => !!val || `${'กรุณากรอก วัน/เดือน/ปี ที่ได้รับ'}`]"
@ -341,7 +341,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateAnnounce as Date)" :model-value="date2Thai(dateAnnounce as Date)"
hide-bottom-space hide-bottom-space
@ -426,7 +426,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate as Date) refCommandDate == null ? null : date2Thai(refCommandDate as Date)

View file

@ -246,7 +246,7 @@
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
hide-bottom-space hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกปี'}`]"
:class="getClass(edit)" :class="getClass(edit)"

View file

@ -87,7 +87,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:label="`${'วันที่'}`" :label="`${'วันที่'}`"

View file

@ -692,7 +692,7 @@
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value="date2Thai(leaveDate)" :model-value="date2Thai(leaveDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่พ้นราชการ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่พ้นราชการ'}`]"
hide-bottom-space hide-bottom-space
@ -757,7 +757,7 @@
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value="date2Thai(leaveDateOrder)" :model-value="date2Thai(leaveDateOrder)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ออกคำสั่ง'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ออกคำสั่ง'}`]"
hide-bottom-space hide-bottom-space

View file

@ -98,7 +98,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]" :rules="[(val) => !!val || `${'กรุณาเลือก วัน/เดือน/ปี'}`]"
@ -208,7 +208,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate as Date) refCommandDate == null ? null : date2Thai(refCommandDate as Date)

View file

@ -150,7 +150,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(formDataSalary.date)" :model-value="date2Thai(formDataSalary.date)"
:rules="[ :rules="[

View file

@ -142,7 +142,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -142,7 +142,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -168,7 +168,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
startDate !== 0 ? Number(startDate) + 543 : null startDate !== 0 ? Number(startDate) + 543 : null
@ -221,7 +220,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="startDate2 ? date2Thai(startDate2 as Date):null" :model-value="startDate2 ? date2Thai(startDate2 as Date):null"
:rules="[ :rules="[
@ -282,7 +280,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
endDate !== 0 ? Number(endDate) + 543 : null endDate !== 0 ? Number(endDate) + 543 : null
@ -340,7 +337,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="endDate2 ? date2Thai(endDate2 as Date):null" :model-value="endDate2 ? date2Thai(endDate2 as Date):null"
:rules="[ :rules="[
@ -402,7 +398,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="yearly == 0 ? null : Number(yearly + 543)" :model-value="yearly == 0 ? null : Number(yearly + 543)"
:label="`${'ปีงบประมาณ'}`" :label="`${'ปีงบประมาณ'}`"
@ -520,7 +515,6 @@
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateOrder as Date)" :model-value="date2Thai(dateOrder as Date)"
:label="`${'คำสั่งลง วัน/เดือน/ปี /หนังสืออนุมัติลงวันที่'}`" :label="`${'คำสั่งลง วัน/เดือน/ปี /หนังสืออนุมัติลงวันที่'}`"
@ -1465,8 +1459,7 @@ watch(
} else { } else {
inputStartDate2.value = ""; inputStartDate2.value = "";
} }
} } else if (value.length === 0) {
else if (value.length === 0) {
startDate2.value = null; startDate2.value = null;
} }
} }
@ -1481,8 +1474,7 @@ watch(
} else { } else {
inputEndDate2.value = ""; inputEndDate2.value = "";
} }
} } else if (value.length === 0) {
else if (value.length === 0) {
endDate2.value = null; endDate2.value = null;
} }
} }
@ -1497,8 +1489,7 @@ watch(
} else { } else {
dateOrderInput.value = ""; dateOrderInput.value = "";
} }
} } else if (value.length === 0) {
else if (value.length === 0) {
dateOrder.value = null; dateOrder.value = null;
} }
} }
@ -1509,8 +1500,7 @@ watch(
if (value.length === 4) { if (value.length === 4) {
const dateVal = Number(value) - 543; const dateVal = Number(value) - 543;
startDate.value = dateVal; startDate.value = dateVal;
} } else if (value.length === 0) {
else if (value.length === 0) {
startDate.value = 0; startDate.value = 0;
} }
} }
@ -1521,8 +1511,7 @@ watch(
if (value.length === 4) { if (value.length === 4) {
const dateVal = Number(value) - 543; const dateVal = Number(value) - 543;
endDate.value = dateVal; endDate.value = dateVal;
} } else if (value.length === 0) {
else if (value.length === 0) {
endDate.value = 0; endDate.value = 0;
} }
} }
@ -1534,8 +1523,7 @@ watch(
if (value.length === 4) { if (value.length === 4) {
const dateVal = Number(value) - 543; const dateVal = Number(value) - 543;
yearly.value = dateVal; yearly.value = dateVal;
} } else if (value.length === 0) {
else if (value.length === 0) {
yearly.value = 0; yearly.value = 0;
} }
} }

View file

@ -97,7 +97,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateStart)" :model-value="date2Thai(dateStart)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]"
@ -154,7 +153,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateEnd)" :model-value="date2Thai(dateEnd)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]"
@ -264,7 +262,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate as Date) refCommandDate == null ? null : date2Thai(refCommandDate as Date)

View file

@ -142,7 +142,7 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -142,7 +142,6 @@
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[
@ -506,7 +505,7 @@
</q-form> </q-form>
</q-card> </q-card>
</q-dialog> </q-dialog>
<HistoryTable <HistoryTable
:rows="rowsHistory" :rows="rowsHistory"
:columns="columnsHistory" :columns="columnsHistory"
@ -1446,7 +1445,7 @@ const nodeTree = async () => {
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++ store.isLoad++;
}); });
}; };
@ -1568,7 +1567,7 @@ const fetchData = async () => {
refCommandNo: e.refCommandNo, refCommandNo: e.refCommandNo,
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
salaryStatus: null salaryStatus: null,
}); });
}); });
}) })
@ -1576,7 +1575,7 @@ const fetchData = async () => {
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
store.isLoad++ store.isLoad++;
}); });
} }
}; };
@ -2067,7 +2066,7 @@ const clickHistory = async (row: RequestItemsEmployee) => {
refCommandNo: e.refCommandNo, refCommandNo: e.refCommandNo,
createdFullName: e.createdFullName, createdFullName: e.createdFullName,
createdAt: new Date(e.createdAt), createdAt: new Date(e.createdAt),
salaryStatus: null salaryStatus: null,
}); });
}); });
}) })

View file

@ -549,136 +549,135 @@ onMounted(async () => {
<q-separator color="grey-4" /> <q-separator color="grey-4" />
<q-card-section style="max-height: 55vh" class="scroll"> <q-card-section style="max-height: 55vh" class="scroll">
<div class="row q-gutter-sm q-pb-sm"> <div class="row q-gutter-sm q-pb-sm">
<div class="col"> <div class="col">
<q-input <q-input
outlined outlined
v-model="profesLicenseData.certificateType" v-model="profesLicenseData.certificateType"
label="ชื่อใบอนุญาต" label="ชื่อใบอนุญาต"
bg-color="white" bg-color="white"
dense dense
class="inputgreen" class="inputgreen"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อใบอนุญาต'}`]" :rules="[(val) => !!val || `${'กรุณากรอกชื่อใบอนุญาต'}`]"
hide-bottom-space hide-bottom-space
/> />
</div>
<div class="col">
<q-input
outlined
v-model="profesLicenseData.issuer"
label="หน่วยงานผู้ออกใบอนุญาต"
bg-color="white"
dense
class="inputgreen"
:rules="[
(val) => !!val || `${'กรุณากรอกหน่วยงานผู้ออกใบอนุญาต'}`,
]"
hide-bottom-space
/>
</div>
</div> </div>
<div class="row q-gutter-sm q-pb-sm"> <div class="col">
<div class="col"> <q-input
<q-input outlined
outlined v-model="profesLicenseData.issuer"
v-model="profesLicenseData.certificateNo" label="หน่วยงานผู้ออกใบอนุญาต"
label="เลขที่ใบอนุญาต" bg-color="white"
bg-color="white" dense
class="inputgreen" class="inputgreen"
dense :rules="[
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่ใบอนุญาต'}`]" (val) => !!val || `${'กรุณากรอกหน่วยงานผู้ออกใบอนุญาต'}`,
hide-bottom-space ]"
/> hide-bottom-space
</div> />
<div class="col">
<datepicker
menu-class-name="modalfix"
v-model="profesLicenseData.issueDate"
:locale="'th'"
autoApply
class="col"
:enableTimePicker="false"
@update:modelValue="profesLicenseData.issueDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
lazy-rules
class="inputgreen"
outlined
bg-color="white"
hide-bottom-space
:model-value="
profesLicenseData.issueDate
? date2Thai(profesLicenseData.issueDate)
: ''
"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่ออกใบอนุญาต'}`,
]"
:label="`${'วันที่ออกใบอนุญาต'}`"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
</div> </div>
<div class="row q-gutter-sm q-pb-sm"> </div>
<div class="col"> <div class="row q-gutter-sm q-pb-sm">
<datepicker <div class="col">
menu-class-name="modalfix" <q-input
v-model="profesLicenseData.expireDate" outlined
:locale="'th'" v-model="profesLicenseData.certificateNo"
autoApply label="เลขที่ใบอนุญาต"
:enableTimePicker="false" bg-color="white"
@update:modelValue="profesLicenseData.expireDate" class="inputgreen"
> dense
<template #year="{ year }">{{ year + 543 }}</template> :rules="[(val) => !!val || `${'กรุณากรอกเลขที่ใบอนุญาต'}`]"
<template #year-overlay-value="{ value }">{{ hide-bottom-space
parseInt(value + 543) />
}}</template>
<template #trigger>
<q-input
dense
outlined
bg-color="white"
class="inputgreen"
clearable
@clear="() => (profesLicenseData.expireDate = null)"
hide-bottom-space
:model-value="
profesLicenseData.expireDate
? date2Thai(profesLicenseData.expireDate)
: ''
"
:label="`${'วันที่หมดอายุ'}`"
@update:modelValue="profesLicenseData.expireDate = null"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
</div> </div>
<div class="col">
<datepicker
menu-class-name="modalfix"
v-model="profesLicenseData.issueDate"
:locale="'th'"
autoApply
class="col"
:enableTimePicker="false"
@update:modelValue="profesLicenseData.issueDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
class="inputgreen"
outlined
bg-color="white"
hide-bottom-space
:model-value="
profesLicenseData.issueDate
? date2Thai(profesLicenseData.issueDate)
: ''
"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่ออกใบอนุญาต'}`,
]"
:label="`${'วันที่ออกใบอนุญาต'}`"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
</div>
<div class="row q-gutter-sm q-pb-sm">
<div class="col">
<datepicker
menu-class-name="modalfix"
v-model="profesLicenseData.expireDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
@update:modelValue="profesLicenseData.expireDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
bg-color="white"
class="inputgreen"
clearable
@clear="() => (profesLicenseData.expireDate = null)"
hide-bottom-space
:model-value="
profesLicenseData.expireDate
? date2Thai(profesLicenseData.expireDate)
: ''
"
:label="`${'วันที่หมดอายุ'}`"
@update:modelValue="profesLicenseData.expireDate = null"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
</div>
</q-card-section> </q-card-section>
<q-separator color="grey-4" /> <q-separator color="grey-4" />
<q-card-actions align="right"> <q-card-actions align="right">
@ -708,68 +707,68 @@ onMounted(async () => {
<q-card-section style="max-height: 60vh" class="scroll"> <q-card-section style="max-height: 60vh" class="scroll">
<div class="row q-gutter-sm q-mb-sm"> <div class="row q-gutter-sm q-mb-sm">
<q-space /> <q-space />
<q-input <q-input
dense
outlined
bg-color="white"
v-model="historyKeyword"
label="ค้นหา"
>
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input>
<q-select
v-model="historyVisibleColumns"
multiple
outlined
dense
bg-color="white"
options-dense
:display-value="$q.lang.table.columns"
emit-value
map-options
:options="historyColumns"
option-value="name"
options-cover
style="min-width: 150px"
/>
</div>
<d-table
ref="table"
:columns="historyColumns"
:rows="historyRows"
row-key="name"
flat
:filter="historyKeyword"
v-model:pagination="historyPagination"
bordered
:paging="true"
dense dense
:rows-per-page-options="[20, 50, 100]" outlined
class="custom-header-table" bg-color="white"
:visible-columns="historyVisibleColumns" v-model="historyKeyword"
label="ค้นหา"
> >
<template v-slot:header="props"> <template v-slot:append>
<q-tr :props="props"> <q-icon name="search" />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template> </template>
<template v-slot:body="props"> </q-input>
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id"> <q-select
<div> v-model="historyVisibleColumns"
{{ col.value ? col.value : "-" }} multiple
</div> outlined
</q-td> dense
</q-tr> bg-color="white"
</template> options-dense
</d-table> :display-value="$q.lang.table.columns"
emit-value
map-options
:options="historyColumns"
option-value="name"
options-cover
style="min-width: 150px"
/>
</div>
<d-table
ref="table"
:columns="historyColumns"
:rows="historyRows"
row-key="name"
flat
:filter="historyKeyword"
v-model:pagination="historyPagination"
bordered
:paging="true"
dense
:rows-per-page-options="[20, 50, 100]"
class="custom-header-table"
:visible-columns="historyVisibleColumns"
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>
</q-card-section> </q-card-section>
</q-card> </q-card>
</q-dialog> </q-dialog>

View file

@ -728,11 +728,7 @@ onMounted(async () => {
/> />
</div> </div>
</div> </div>
<q-card <q-card flat bordered class="q-px-sm q-my-sm q-pb-sm borderCard">
flat
bordered
class="q-px-sm q-my-sm q-pb-sm borderCard"
>
<div class="row col-12 q-gutter-md q-py-sm text-grey-7"> <div class="row col-12 q-gutter-md q-py-sm text-grey-7">
<q-radio <q-radio
v-model="isDate" v-model="isDate"
@ -774,7 +770,6 @@ onMounted(async () => {
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
outlined outlined
class="inputgreen" class="inputgreen"
hide-bottom-space hide-bottom-space
@ -820,7 +815,6 @@ onMounted(async () => {
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
class="inputgreen" class="inputgreen"
outlined outlined
hide-bottom-space hide-bottom-space
@ -868,7 +862,6 @@ onMounted(async () => {
<q-input <q-input
outlined outlined
dense dense
lazy-rules
class="inputgreen" class="inputgreen"
:model-value="date2Thai(trainData.startDate)" :model-value="date2Thai(trainData.startDate)"
:rules="[ :rules="[
@ -914,7 +907,6 @@ onMounted(async () => {
<q-input <q-input
outlined outlined
dense dense
lazy-rules
class="inputgreen" class="inputgreen"
:model-value="date2Thai(trainData.endDate)" :model-value="date2Thai(trainData.endDate)"
:rules="[ :rules="[
@ -956,7 +948,6 @@ onMounted(async () => {
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
outlined outlined
class="inputgreen" class="inputgreen"
clearable clearable
@ -1046,7 +1037,6 @@ onMounted(async () => {
outlined outlined
dense dense
class="inputgreen" class="inputgreen"
lazy-rules
clearable clearable
@clear="() => (trainData.dateOrder = null)" @clear="() => (trainData.dateOrder = null)"
@update:modelValue="trainData.dateOrder = null" @update:modelValue="trainData.dateOrder = null"

View file

@ -1003,11 +1003,7 @@ onMounted(async () => {
/> />
</div> </div>
</div> </div>
<q-card <q-card flat bordered class="q-px-md q-pb-md q-my-sm borderCard">
flat
bordered
class="q-px-md q-pb-md q-my-sm borderCard"
>
<div class="row col-12 q-gutter-md q-py-sm text-grey-7"> <div class="row col-12 q-gutter-md q-py-sm text-grey-7">
<q-radio <q-radio
v-model="isDate" v-model="isDate"
@ -1095,7 +1091,6 @@ onMounted(async () => {
<q-input <q-input
dense dense
class="inputgreen" class="inputgreen"
lazy-rules
outlined outlined
hide-bottom-space hide-bottom-space
:model-value="educationData.endYear + 543" :model-value="educationData.endYear + 543"
@ -1142,11 +1137,9 @@ onMounted(async () => {
outlined outlined
class="inputgreen" class="inputgreen"
dense dense
lazy-rules
:model-value="date2Thai(educationData.startDate)" :model-value="date2Thai(educationData.startDate)"
:rules="[ :rules="[
(val) => (val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้นศึกษา'}`,
!!val || `${'กรุณาเลือกวันที่เริ่มต้นศึกษา'}`,
]" ]"
hide-bottom-space hide-bottom-space
:label="`${'วันที่เริ่มต้นศึกษา'}`" :label="`${'วันที่เริ่มต้นศึกษา'}`"
@ -1187,7 +1180,6 @@ onMounted(async () => {
outlined outlined
dense dense
class="inputgreen" class="inputgreen"
lazy-rules
:model-value="date2Thai(educationData.endDate)" :model-value="date2Thai(educationData.endDate)"
:rules="[ :rules="[
(val) => !!val || `${'กรุณาเลือกวันที่จบการศึกษา'}`, (val) => !!val || `${'กรุณาเลือกวันที่จบการศึกษา'}`,
@ -1229,7 +1221,6 @@ onMounted(async () => {
bg-color="white" bg-color="white"
dense dense
class="inputgreen" class="inputgreen"
lazy-rules
:model-value="date2Thai(educationData.finishDate)" :model-value="date2Thai(educationData.finishDate)"
:rules="[ :rules="[
(val) => !!val || `${'กรุณาเลือกวันที่สำเร็จการศึกษา'}`, (val) => !!val || `${'กรุณาเลือกวันที่สำเร็จการศึกษา'}`,
@ -1389,19 +1380,19 @@ onMounted(async () => {
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right"> <q-card-actions align="right">
<q-btn <q-btn
id="onSubmit" id="onSubmit"
type="submit" type="submit"
dense dense
unelevated unelevated
label="บันทึก" label="บันทึก"
color="public" color="public"
class="q-px-md" class="q-px-md"
> >
<q-tooltip>นทกขอม</q-tooltip> <q-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>
</q-card-actions> </q-card-actions>
</q-form> </q-form>
</q-card> </q-card>
</q-dialog> </q-dialog>
@ -1415,71 +1406,71 @@ onMounted(async () => {
<q-separator /> <q-separator />
<q-card-section style="max-height: 50vh" class="scroll"> <q-card-section style="max-height: 50vh" class="scroll">
<q-toolbar style="padding: 0px" class="text-primary q-mb-sm"> <q-toolbar style="padding: 0px" class="text-primary q-mb-sm">
<q-space /> <q-space />
<q-input <q-input
dense
outlined
bg-color="white"
v-model="historyKeyword"
label="ค้นหา"
class="q-mr-sm"
>
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input>
<q-select
v-model="historyVisibleColumns"
multiple
outlined
dense
bg-color="white"
options-dense
:display-value="$q.lang.table.columns"
emit-value
map-options
:options="historyColumns"
option-value="name"
options-cover
style="min-width: 150px"
/>
</q-toolbar>
<d-table
ref="table"
:columns="historyColumns"
:rows="historyRows"
row-key="name"
flat
bordered
:paging="true"
dense dense
:filter="historyKeyword" outlined
v-model:pagination="historyPagination" bg-color="white"
:rows-per-page-options="[20, 50, 100]" v-model="historyKeyword"
class="custom-header-table" label="ค้นหา"
:visible-columns="historyVisibleColumns" class="q-mr-sm"
> >
<template v-slot:header="props"> <template v-slot:append>
<q-tr :props="props"> <q-icon name="search" />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template> </template>
<template v-slot:body="props"> </q-input>
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id"> <q-select
<div> v-model="historyVisibleColumns"
{{ col.value === "" ? "-" : col.value }} multiple
</div> outlined
</q-td> dense
<q-td auto-width> </q-td> bg-color="white"
</q-tr> options-dense
</template> :display-value="$q.lang.table.columns"
</d-table> emit-value
map-options
:options="historyColumns"
option-value="name"
options-cover
style="min-width: 150px"
/>
</q-toolbar>
<d-table
ref="table"
:columns="historyColumns"
:rows="historyRows"
row-key="name"
flat
bordered
:paging="true"
dense
:filter="historyKeyword"
v-model:pagination="historyPagination"
:rows-per-page-options="[20, 50, 100]"
class="custom-header-table"
:visible-columns="historyVisibleColumns"
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value === "" ? "-" : col.value }}
</div>
</q-td>
<q-td auto-width> </q-td>
</q-tr>
</template>
</d-table>
</q-card-section> </q-card-section>
</q-card> </q-card>
</q-dialog> </q-dialog>

View file

@ -1,4 +1,3 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
@ -14,7 +13,7 @@ import type { QForm } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
const $q = useQuasar(); const $q = useQuasar();
@ -68,8 +67,9 @@ const fecthappointmentByid = async () => {
const data = res.data.result; const data = res.data.result;
appointment.value = data; appointment.value = data;
profileId.value = data.profileId; profileId.value = data.profileId;
title.value.fullname = `${data.prefix}${data.firstname ?? "-"} ${data.lastname ?? "-" title.value.fullname = `${data.prefix}${data.firstname ?? "-"} ${
}`; data.lastname ?? "-"
}`;
title.value.organizationPositionOld = data.organizationPositionOld ?? "-"; title.value.organizationPositionOld = data.organizationPositionOld ?? "-";
title.value.positionLevelOld = data.positionLevelOld ?? "-"; title.value.positionLevelOld = data.positionLevelOld ?? "-";
title.value.positionTypeOld = data.positionTypeOld ?? "-"; title.value.positionTypeOld = data.positionTypeOld ?? "-";
@ -164,8 +164,16 @@ onMounted(async () => {
</script> </script>
<template> <template>
<div class="toptitle text-dark col-12 row items-center"> <div class="toptitle text-dark col-12 row items-center">
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm" <q-btn
@click="router.push(`/appoint-employee`)" /> icon="mdi-arrow-left"
unelevated
round
dense
flat
color="primary"
class="q-mr-sm"
@click="router.push(`/appoint-employee`)"
/>
รายละเอยดการปรบระดบชนงานลกจาง {{ title.fullname }} รายละเอยดการปรบระดบชนงานลกจาง {{ title.fullname }}
</div> </div>
<q-card bordered class="row col-12 text-dark"> <q-card bordered class="row col-12 text-dark">
@ -174,8 +182,15 @@ onMounted(async () => {
{{ title.fullname }} {{ title.fullname }}
</div> </div>
<q-space /> <q-space />
<q-btn outline color="blue" dense icon-right="mdi-open-in-new" class="q-px-sm" label="ดูข้อมูลทะเบียนประวัติ" <q-btn
@click="onclickViewinfo(profileId)" /> outline
color="blue"
dense
icon-right="mdi-open-in-new"
class="q-px-sm"
label="ดูข้อมูลทะเบียนประวัติ"
@click="onclickViewinfo(profileId)"
/>
</div> </div>
<div class="col-12"><q-separator /></div> <div class="col-12"><q-separator /></div>
<div class="row col-12 q-pa-md"> <div class="row col-12 q-pa-md">
@ -220,12 +235,36 @@ onMounted(async () => {
<q-space /> <q-space />
<div v-if="status !== 'DONE' && status !== 'REPORT'"> <div v-if="status !== 'DONE' && status !== 'REPORT'">
<div class="q-gutter-sm" v-if="!edit"> <div class="q-gutter-sm" v-if="!edit">
<q-btn outline color="primary" dense icon-right="mdi-file-edit-outline" class="q-px-sm" label="แก้ไข" <q-btn
style="width: 80px" @click="edit = !edit" /> outline
color="primary"
dense
icon-right="mdi-file-edit-outline"
class="q-px-sm"
label="แก้ไข"
style="width: 80px"
@click="edit = !edit"
/>
</div> </div>
<div class="q-gutter-sm" v-else> <div class="q-gutter-sm" v-else>
<q-btn outline color="public" dense class="q-px-sm" label="บันทึก" style="width: 80px" @click="clickSave" /> <q-btn
<q-btn outline color="red" dense class="q-px-sm" label="ยกเลิก" style="width: 80px" @click="cancel()" /> outline
color="public"
dense
class="q-px-sm"
label="บันทึก"
style="width: 80px"
@click="clickSave"
/>
<q-btn
outline
color="red"
dense
class="q-px-sm"
label="ยกเลิก"
style="width: 80px"
@click="cancel()"
/>
</div> </div>
</div> </div>
</div> </div>
@ -236,9 +275,19 @@ onMounted(async () => {
<div class="text-weight-bold">การศกษา</div> <div class="text-weight-bold">การศกษา</div>
</div> </div>
<div class="col-12"> <div class="col-12">
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :readonly="!edit" :borderless="!edit" <q-input
v-model="educationOld" :rules="[(val) => !!val || `${'กรุณากรอกวุฒิการศึกษา'}`]" hide-bottom-space :class="getClass(edit)"
:label="`${'วุฒิการศึกษา'}`" type="text" /> :outlined="edit"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
v-model="educationOld"
:rules="[(val) => !!val || `${'กรุณากรอกวุฒิการศึกษา'}`]"
hide-bottom-space
:label="`${'วุฒิการศึกษา'}`"
type="text"
/>
</div> </div>
</div> </div>
<div class="row col-12 q-pa-md"> <div class="row col-12 q-pa-md">
@ -249,58 +298,119 @@ onMounted(async () => {
</div> </div>
<div class="col-12"> <div class="col-12">
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :readonly="!edit" :borderless="!edit" <q-input
v-model="organizationPositionOld" :rules="[(val) => !!val || `${'กรุณากรอกตำแหน่ง/สังกัด'}`]" :class="getClass(edit)"
hide-bottom-space :label="`${'ตำแหน่ง/สังกัด'}`" type="textarea" /> :outlined="edit"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
v-model="organizationPositionOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่ง/สังกัด'}`]"
hide-bottom-space
:label="`${'ตำแหน่ง/สังกัด'}`"
type="textarea"
/>
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3 row"> <div class="col-xs-6 col-sm-3 row">
<div class="col-12"> <div class="col-12">
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :readonly="!edit" :borderless="!edit" <q-input
v-model="positionTypeOld" :rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]" hide-bottom-space :class="getClass(edit)"
:label="`${'ตำแหน่งประเภท'}`" /> :outlined="edit"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
v-model="positionTypeOld"
:rules="[(val) => !!val || `${'กรุณากรอกตำแหน่งประเภท'}`]"
hide-bottom-space
:label="`${'ตำแหน่งประเภท'}`"
/>
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3 row"> <div class="col-xs-6 col-sm-3 row">
<div class="col-12"> <div class="col-12">
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :readonly="!edit" :borderless="!edit" <q-input
v-model="positionLevelOld" :rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]" hide-bottom-space :class="getClass(edit)"
:label="`${'ระดับ'}`" /> :outlined="edit"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
v-model="positionLevelOld"
:rules="[(val) => !!val || `${'กรุณากรอกระดับ'}`]"
hide-bottom-space
:label="`${'ระดับ'}`"
/>
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3 row"> <div class="col-xs-6 col-sm-3 row">
<div class="col-12"> <div class="col-12">
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :readonly="!edit" :borderless="!edit" <q-input
v-model="posNo" :rules="[(val) => !!val || `${'กรุณากรอกเลขที่'}`]" hide-bottom-space :class="getClass(edit)"
:label="`${'เลขที่'}`" /> :outlined="edit"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
v-model="posNo"
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่'}`]"
hide-bottom-space
:label="`${'เลขที่'}`"
/>
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3 row"> <div class="col-xs-6 col-sm-3 row">
<div class="col-12"> <div class="col-12">
<CurrencyInput v-model="salary" label="เงินเดือน" :edit="edit" <CurrencyInput
:rules="[(val: number) => !!val || `${'กรุณากรอกเงินเดือน'}`]" lazy-rules /> v-model="salary"
label="เงินเดือน"
:edit="edit"
:rules="[(val: number) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
lazy-rules
/>
</div> </div>
</div> </div>
<div class="col-12"><q-separator /></div> <div class="col-12"><q-separator /></div>
<div class="col-xs-6 col-sm-6 row items-center"> <div class="col-xs-6 col-sm-6 row items-center">
<div class="col-12"> <div class="col-12">
<datepicker menu-class-name="modalfix" :readonly="!edit" v-model="date" :locale="'th'" autoApply <datepicker
:enableTimePicker="false" week-start="0"> menu-class-name="modalfix"
:readonly="!edit"
v-model="date"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">{{ year + 543 }}</template> <template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{ <template #year-overlay-value="{ value }">{{
parseInt(value + 543) parseInt(value + 543)
}}</template> }}</template>
<template #trigger> <template #trigger>
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :borderless="!edit" :readonly="!edit" <q-input
:class="getClass(edit)"
:outlined="edit"
dense
:borderless="!edit"
:readonly="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"
:rules="[(val) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]" hide-bottom-space :rules="[(val) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]"
:label="`${'ดำรงตำแหน่งในระดับปัจจุบันเมื่อ'}`"> hide-bottom-space
:label="`${'ดำรงตำแหน่งในระดับปัจจุบันเมื่อ'}`"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" :style="edit <q-icon
? 'color: var(--q-primary)' name="event"
: 'color: var(--q-grey)' class="cursor-pointer"
"> :style="
edit
? 'color: var(--q-primary)'
: 'color: var(--q-grey)'
"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -309,8 +419,18 @@ onMounted(async () => {
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<q-input :class="getClass(edit)" :outlined="edit" dense lazy-rules :readonly="!edit" :borderless="!edit" <q-input
v-model="reason" hide-bottom-space :label="`${'หมายเหตุ '}`" type="textarea" /> :class="getClass(edit)"
:outlined="edit"
dense
lazy-rules
:readonly="!edit"
:borderless="!edit"
v-model="reason"
hide-bottom-space
:label="`${'หมายเหตุ '}`"
type="textarea"
/>
</div> </div>
</div> </div>
</div> </div>

View file

@ -9,7 +9,14 @@ import config from "@/app.config";
const $q = useQuasar(); const $q = useQuasar();
const mixin = useCounterMixin(); // const mixin = useCounterMixin(); //
const { date2Thai, hideLoader, messageError, showLoader, success, dialogConfirm } = mixin; // const {
date2Thai,
hideLoader,
messageError,
showLoader,
success,
dialogConfirm,
} = mixin; //
const notFound = ref<string>("ไม่พบข้อมูลที่ค้นหา"); const notFound = ref<string>("ไม่พบข้อมูลที่ค้นหา");
const noData = ref<string>("ไม่พบข้อมูลผังโครงสร้าง"); const noData = ref<string>("ไม่พบข้อมูลผังโครงสร้าง");
@ -115,15 +122,18 @@ const myFilterMethod = (node: any, filter: string) => {
(node.organizationName && node.organizationName.indexOf(filt) > -1) || (node.organizationName && node.organizationName.indexOf(filt) > -1) ||
(node.positionNum && node.positionNum.indexOf(filt) > -1) || (node.positionNum && node.positionNum.indexOf(filt) > -1) ||
(node.positionName && node.positionName.indexOf(filt) > -1) || (node.positionName && node.positionName.indexOf(filt) > -1) ||
(node.governmentCode && node.governmentCode.toString().indexOf(filt) > -1) || (node.governmentCode &&
node.governmentCode.toString().indexOf(filt) > -1) ||
(node.agency && node.agency.indexOf(filt) > -1) || (node.agency && node.agency.indexOf(filt) > -1) ||
(node.government && node.government.indexOf(filt) > -1) || (node.government && node.government.indexOf(filt) > -1) ||
(node.department && node.department.indexOf(filt) > -1) || (node.department && node.department.indexOf(filt) > -1) ||
(node.pile && node.pile.indexOf(filt) > -1) || (node.pile && node.pile.indexOf(filt) > -1) ||
(node.organizationShortName && node.organizationShortName.indexOf(filt) > -1) || (node.organizationShortName &&
node.organizationShortName.indexOf(filt) > -1) ||
(node.positionSideName && node.positionSideName.indexOf(filt) > -1) || (node.positionSideName && node.positionSideName.indexOf(filt) > -1) ||
(node.executivePosition && node.executivePosition.indexOf(filt) > -1) || (node.executivePosition && node.executivePosition.indexOf(filt) > -1) ||
(node.executivePositionSide && node.executivePositionSide.indexOf(filt) > -1) || (node.executivePositionSide &&
node.executivePositionSide.indexOf(filt) > -1) ||
(node.positionLevel && node.positionLevel.indexOf(filt) > -1) (node.positionLevel && node.positionLevel.indexOf(filt) > -1)
); );
}; };
@ -242,7 +252,6 @@ const positionLevelOptions = ref<Object[]>([
const selectedPosition = async (data: any) => { const selectedPosition = async (data: any) => {
if (data.name == null && selected.value != data.keyId) { if (data.name == null && selected.value != data.keyId) {
editDataStatus.value = true; editDataStatus.value = true;
selected.value = data.keyId; selected.value = data.keyId;
@ -330,7 +339,6 @@ const checkPosition = (val: string) => {
return num; return num;
}; };
watch(props, () => { watch(props, () => {
expanded.value = []; expanded.value = [];
const dataPersonal = props.personal; const dataPersonal = props.personal;
@ -352,7 +360,6 @@ watch(props, () => {
} }
} }
}); });
} }
}); });
@ -389,24 +396,46 @@ function findByPerson(element: any): any {
<div class="col-xs-12 col-sm-7 row"> <div class="col-xs-12 col-sm-7 row">
<q-card flat bordered class="fit q-pa-sm"> <q-card flat bordered class="fit q-pa-sm">
<q-scroll-area visible style="height: 70vh"> <q-scroll-area visible style="height: 70vh">
<q-input outlined dense ref="filterRef" v-model="search" placeholder="ค้นหา" class="q-mb-sm"> <q-input
outlined
dense
ref="filterRef"
v-model="search"
placeholder="ค้นหา"
class="q-mb-sm"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="mdi-magnify" /> <q-icon name="mdi-magnify" />
</template> </template>
</q-input> </q-input>
<div class="q-pa-sm q-gutter-sm"> <div class="q-pa-sm q-gutter-sm">
<q-tree no-transition dense :nodes="treeData" node-key="keyId" :filter="search" <q-tree
:no-results-label="notFound" :no-nodes-label="noData" :filter-method="myFilterMethod" no-transition
v-model:expanded="expanded"> dense
:nodes="treeData"
node-key="keyId"
:filter="search"
:no-results-label="notFound"
:no-nodes-label="noData"
:filter-method="myFilterMethod"
v-model:expanded="expanded"
>
<template v-slot:header-organization="prop"> <template v-slot:header-organization="prop">
<div class="col"> <div class="col">
<div class="row items-center q-px-xs q-pt-xs q-gutter-sm"> <div
class="row items-center q-px-xs q-pt-xs q-gutter-sm"
>
<!--แสดงชอแผนก มพวหนา คลกแลวกาง/ Tree--> <!--แสดงชอแผนก มพวหนา คลกแลวกาง/ Tree-->
<div class="text-weight-medium"> <div class="text-weight-medium">
{{ prop.node.organizationName }} {{ prop.node.organizationName }}
</div> </div>
<q-badge v-if="prop.node.totalPositionVacant > 0" rounded color="red" outline <q-badge
:label="prop.node.totalPositionVacant" /> v-if="prop.node.totalPositionVacant > 0"
rounded
color="red"
outline
:label="prop.node.totalPositionVacant"
/>
<q-space /> <q-space />
</div> </div>
@ -420,31 +449,53 @@ function findByPerson(element: any): any {
</template> </template>
<template v-slot:header-person="prop"> <template v-slot:header-person="prop">
<q-item clickable :active="selected == prop.node.keyId" @click="selectedPosition(prop.node)" <q-item
:disable="prop.node.name != null || clickable
:active="selected == prop.node.keyId"
@click="selectedPosition(prop.node)"
:disable="
prop.node.name != null ||
checkPosition(prop.node.positionNumId) != -1 checkPosition(prop.node.positionNumId) != -1
" active-class="my-list-link text-primary text-weight-medium" "
class="row items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"> active-class="my-list-link text-primary text-weight-medium"
<img v-if="prop.node.avatar == '' || class="row items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
prop.node.avatar == >
'https://cdn.quasar.dev/img/boy-avatar.png' <img
" src="@/assets/avatar_user.jpg" class="col-xs-1 col-sm-2" style=" v-if="
prop.node.avatar == '' ||
prop.node.avatar ==
'https://cdn.quasar.dev/img/boy-avatar.png'
"
src="@/assets/avatar_user.jpg"
class="col-xs-1 col-sm-2"
style="
width: 28px; width: 28px;
height: 28px; height: 28px;
border-radius: 50%; border-radius: 50%;
" /> "
<img v-else :src="prop.node.avatar" class="col-xs-1 col-sm-2" style=" />
<img
v-else
:src="prop.node.avatar"
class="col-xs-1 col-sm-2"
style="
width: 28px; width: 28px;
height: 28px; height: 28px;
border-radius: 50%; border-radius: 50%;
" /> "
/>
<!--=====ตำแหนงวาง แดง=====--> <!--=====ตำแหนงวาง แดง=====-->
<div v-if="prop.node.name == null" class="q-px-sm text-weight-medium text-red"> <div
v-if="prop.node.name == null"
class="q-px-sm text-weight-medium text-red"
>
าง าง
</div> </div>
<!--=====วหน เขยว=====--> <!--=====วหน เขยว=====-->
<div v-else-if="prop.node.positionLeaderFlag"> <div v-else-if="prop.node.positionLeaderFlag">
<div class="q-px-sm text-weight-medium text-primary"> <div
class="q-px-sm text-weight-medium text-primary"
>
{{ prop.node.name }} {{ prop.node.name }}
</div> </div>
</div> </div>
@ -464,8 +515,13 @@ function findByPerson(element: any): any {
<div class="q-pr-sm"> <div class="q-pr-sm">
{{ prop.node.positionLevel }} {{ prop.node.positionLevel }}
</div> </div>
<q-icon v-if="prop.node.positionLeaderFlag" class="q-mr-sm" size="15px" color="primary" <q-icon
name="mdi-bookmark"></q-icon> v-if="prop.node.positionLeaderFlag"
class="q-mr-sm"
size="15px"
color="primary"
name="mdi-bookmark"
></q-icon>
<q-space /> <q-space />
</q-item> </q-item>
@ -481,18 +537,36 @@ function findByPerson(element: any): any {
<div class="row col-12 q-col-gutter-xs"> <div class="row col-12 q-col-gutter-xs">
<div class="col-xs-12 col-sm-12 col-md-12"></div> <div class="col-xs-12 col-sm-12 col-md-12"></div>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<datepicker menu-class-name="modalfix" v-model="dataForm.containDate" :locale="'th'" autoApply <datepicker
:enableTimePicker="false" week-start="0"> menu-class-name="modalfix"
v-model="dataForm.containDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">{{ year + 543 }}</template> <template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{ <template #year-overlay-value="{ value }">{{
parseInt(value + 543) parseInt(value + 543)
}}</template> }}</template>
<template #trigger> <template #trigger>
<q-input class="full-width inputgreen cursor-pointer" outlined dense lazy-rules :model-value="date2Thai(new Date(dataForm.containDate)) <q-input
" :rules="[(val: string) => !!val || `${'วันที่รายงานตัว'}`]" class="full-width inputgreen cursor-pointer"
:label="`${'วันที่รายงานตัว'}`" hide-bottom-space> outlined
dense
:model-value="
date2Thai(new Date(dataForm.containDate))
"
:rules="[(val: string) => !!val || `${'วันที่รายงานตัว'}`]"
:label="`${'วันที่รายงานตัว'}`"
hide-bottom-space
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -501,36 +575,92 @@ function findByPerson(element: any): any {
</div> </div>
<q-space /> <q-space />
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<q-select class="full-width inputgreen cursor-pointer custom-input" outlined standout dense <q-select
hide-bottom-space lazy-rules :options="posNoOptions" v-model="dataForm.posNoId" class="full-width inputgreen cursor-pointer custom-input"
:label="`${'ตำแหน่งเลขที่'}`" map-options /> outlined
standout
dense
hide-bottom-space
lazy-rules
:options="posNoOptions"
v-model="dataForm.posNoId"
:label="`${'ตำแหน่งเลขที่'}`"
map-options
/>
</div> </div>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<q-select outlined class="full-width inputgreen cursor-pointer custom-input" standout dense <q-select
hide-bottom-space lazy-rules :options="positionOptions" v-model="dataForm.positionId" outlined
:label="`${'ตำแหน่ง'}`" map-options /> class="full-width inputgreen cursor-pointer custom-input"
standout
dense
hide-bottom-space
lazy-rules
:options="positionOptions"
v-model="dataForm.positionId"
:label="`${'ตำแหน่ง'}`"
map-options
/>
</div> </div>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<q-select outlined class="full-width inputgreen cursor-pointer custom-input" standout dense <q-select
hide-bottom-space lazy-rules emit-value :options="positionPathSideOptions" outlined
v-model="dataForm.positionPathSideId" :label="`${'ด้าน/สาขา'}`" map-options /> class="full-width inputgreen cursor-pointer custom-input"
standout
dense
hide-bottom-space
lazy-rules
emit-value
:options="positionPathSideOptions"
v-model="dataForm.positionPathSideId"
:label="`${'ด้าน/สาขา'}`"
map-options
/>
</div> </div>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<q-select outlined class="full-width inputgreen cursor-pointer custom-input" standout dense <q-select
hide-bottom-space lazy-rules :options="positionTypeOptions" v-model="dataForm.positionTypeId" outlined
:label="`${'ประเภทตำแหน่ง'}`" map-options /> class="full-width inputgreen cursor-pointer custom-input"
standout
dense
hide-bottom-space
lazy-rules
:options="positionTypeOptions"
v-model="dataForm.positionTypeId"
:label="`${'ประเภทตำแหน่ง'}`"
map-options
/>
</div> </div>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<q-select outlined class="full-width inputgreen cursor-pointer custom-input" standout dense <q-select
hide-bottom-space lazy-rules :options="positionLineOptions" v-model="dataForm.positionLineId" outlined
:label="`${'สายงาน'}`" map-options /> class="full-width inputgreen cursor-pointer custom-input"
standout
dense
hide-bottom-space
lazy-rules
:options="positionLineOptions"
v-model="dataForm.positionLineId"
:label="`${'สายงาน'}`"
map-options
/>
</div> </div>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<q-select outlined class="full-width inputgreen cursor-pointer custom-input" standout dense <q-select
lazy-rules :options="positionLevelOptions" v-model="dataForm.positionLevelId" outlined
:label="`${'ระดับ'}`" hide-bottom-space class="full-width inputgreen cursor-pointer custom-input"
:rules="[(val: string) => !!val || `${'กรุณาเลือกระดับ'}`]" emit-value map-options /> standout
dense
lazy-rules
:options="positionLevelOptions"
v-model="dataForm.positionLevelId"
:label="`${'ระดับ'}`"
hide-bottom-space
:rules="[(val: string) => !!val || `${'กรุณาเลือกระดับ'}`]"
emit-value
map-options
/>
</div> </div>
</div> </div>
</q-scroll-area> </q-scroll-area>
@ -540,8 +670,12 @@ function findByPerson(element: any): any {
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<DialogFooter :editvisible="true" :validate="validateData" :save="saveAppoint" <DialogFooter
v-model:modalEdit="editDataStatus" /> :editvisible="true"
:validate="validateData"
:save="saveAppoint"
v-model:modalEdit="editDataStatus"
/>
</q-form> </q-form>
</q-card> </q-card>
</q-dialog> </q-dialog>

View file

@ -9,7 +9,14 @@ import config from "@/app.config";
const $q = useQuasar(); const $q = useQuasar();
const mixin = useCounterMixin(); // const mixin = useCounterMixin(); //
const { date2Thai, hideLoader, messageError, showLoader, success,dialogConfirm } = mixin; // const {
date2Thai,
hideLoader,
messageError,
showLoader,
success,
dialogConfirm,
} = mixin; //
const notFound = ref<string>("ไม่พบข้อมูลที่ค้นหา"); const notFound = ref<string>("ไม่พบข้อมูลที่ค้นหา");
const noData = ref<string>("ไม่พบข้อมูลผังโครงสร้าง"); const noData = ref<string>("ไม่พบข้อมูลผังโครงสร้าง");
@ -106,8 +113,6 @@ const fetchplacementPosition = async () => {
}); });
}; };
const props = defineProps({ const props = defineProps({
personalId: String, personalId: String,
modal: Boolean, modal: Boolean,
@ -126,15 +131,18 @@ const myFilterMethod = (node: any, filter: string) => {
(node.organizationName && node.organizationName.indexOf(filt) > -1) || (node.organizationName && node.organizationName.indexOf(filt) > -1) ||
(node.positionNum && node.positionNum.indexOf(filt) > -1) || (node.positionNum && node.positionNum.indexOf(filt) > -1) ||
(node.positionName && node.positionName.indexOf(filt) > -1) || (node.positionName && node.positionName.indexOf(filt) > -1) ||
(node.governmentCode && node.governmentCode.toString().indexOf(filt) > -1) || (node.governmentCode &&
node.governmentCode.toString().indexOf(filt) > -1) ||
(node.agency && node.agency.indexOf(filt) > -1) || (node.agency && node.agency.indexOf(filt) > -1) ||
(node.government && node.government.indexOf(filt) > -1) || (node.government && node.government.indexOf(filt) > -1) ||
(node.department && node.department.indexOf(filt) > -1) || (node.department && node.department.indexOf(filt) > -1) ||
(node.pile && node.pile.indexOf(filt) > -1) || (node.pile && node.pile.indexOf(filt) > -1) ||
(node.organizationShortName && node.organizationShortName.indexOf(filt) > -1) || (node.organizationShortName &&
node.organizationShortName.indexOf(filt) > -1) ||
(node.positionSideName && node.positionSideName.indexOf(filt) > -1) || (node.positionSideName && node.positionSideName.indexOf(filt) > -1) ||
(node.executivePosition && node.executivePosition.indexOf(filt) > -1) || (node.executivePosition && node.executivePosition.indexOf(filt) > -1) ||
(node.executivePositionSide && node.executivePositionSide.indexOf(filt) > -1) || (node.executivePositionSide &&
node.executivePositionSide.indexOf(filt) > -1) ||
(node.positionLevel && node.positionLevel.indexOf(filt) > -1) (node.positionLevel && node.positionLevel.indexOf(filt) > -1)
); );
}; };
@ -183,7 +191,6 @@ const saveAppoint = async () => {
}); });
}; };
const closeModal = () => { const closeModal = () => {
if (editDataStatus.value == true) { if (editDataStatus.value == true) {
dialogConfirm( dialogConfirm(
@ -258,7 +265,6 @@ const positionLevelOptions = ref<Object[]>([
const selectedPosition = async (data: any) => { const selectedPosition = async (data: any) => {
if (data.name == null && selected.value != data.keyId) { if (data.name == null && selected.value != data.keyId) {
editDataStatus.value = true; editDataStatus.value = true;
selected.value = data.keyId; selected.value = data.keyId;
@ -346,7 +352,6 @@ const checkPosition = (val: string) => {
return num; return num;
}; };
watch(props, () => { watch(props, () => {
expanded.value = []; expanded.value = [];
const dataPersonal = props.personal; const dataPersonal = props.personal;
@ -368,7 +373,6 @@ watch(props, () => {
} }
} }
}); });
} }
}); });
@ -566,7 +570,6 @@ function findByPerson(element: any): any {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
date2Thai(new Date(dataForm.containDate)) date2Thai(new Date(dataForm.containDate))
" "

View file

@ -14,7 +14,7 @@ import type { QForm } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
const $q = useQuasar(); const $q = useQuasar();
@ -395,7 +395,6 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:readonly="!edit" :readonly="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"
@ -429,7 +428,6 @@ onMounted(async () => {
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
v-model="reason" v-model="reason"
hide-bottom-space hide-bottom-space
:label="`${'หมายเหตุ '}`" :label="`${'หมายเหตุ '}`"
type="textarea" type="textarea"

View file

@ -18,7 +18,7 @@ import keycloak from "@/plugins/keycloak";
import CurruncyInput from "@/components/CurruncyInput.vue"; import CurruncyInput from "@/components/CurruncyInput.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
const $q = useQuasar(); const $q = useQuasar();
@ -434,7 +434,6 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"
@ -528,7 +527,6 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -172,7 +172,7 @@ const saveAppoint = async () => {
// mouthSalaryAmount: dataForm.mouthSalaryAmount, // mouthSalaryAmount: dataForm.mouthSalaryAmount,
// positionSalaryAmount: dataForm.positionSalaryAmount, // positionSalaryAmount: dataForm.positionSalaryAmount,
}; };
showLoader(); showLoader();
await http await http
.put(config.API.otherPosition(id.value), dataAppoint) .put(config.API.otherPosition(id.value), dataAppoint)
@ -277,8 +277,6 @@ const positionLevelOptions = ref<Object[]>([
const selectedPosition = async (data: any) => { const selectedPosition = async (data: any) => {
if (data.name == null && selected.value != data.keyId) { if (data.name == null && selected.value != data.keyId) {
editDataStatus.value = true; editDataStatus.value = true;
selected.value = data.keyId; selected.value = data.keyId;
@ -359,7 +357,6 @@ const selectedPosition = async (data: any) => {
dataForm.positionPathSideId = ""; dataForm.positionPathSideId = "";
dataForm.positionTypeId = ""; dataForm.positionTypeId = "";
} }
}; };
const checkPosition = (val: string) => { const checkPosition = (val: string) => {
@ -372,25 +369,19 @@ const expanded = ref<string[]>([]);
watch(props, () => { watch(props, () => {
expanded.value = []; expanded.value = [];
const dataPersonal = props.personal; const dataPersonal = props.personal;
if (dataPersonal) { if (dataPersonal) {
dataPersonal.map((data: any) => { dataPersonal.map((data: any) => {
personal.value = data; personal.value = data;
}); });
} }
if (personal.value) { if (personal.value) {
let findData: any = null; let findData: any = null;
dataRespone.value.map((x: any) => { dataRespone.value.map((x: any) => {
findData = findByPerson(x); findData = findByPerson(x);
if (findData != null) { if (findData != null) {
selectedPosition(findData); selectedPosition(findData);
for (let i = 3; i <= findData.keyId.length; i += 2) { for (let i = 3; i <= findData.keyId.length; i += 2) {
expanded.value.push(findData.keyId.slice(0, i)); expanded.value.push(findData.keyId.slice(0, i));
@ -597,7 +588,6 @@ function findByPerson(element: any): any {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
date2Thai(new Date(dataForm.containDate)) date2Thai(new Date(dataForm.containDate))
" "

View file

@ -870,7 +870,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="startDate + 543" :model-value="startDate + 543"
:rules="[ :rules="[
@ -915,7 +914,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate2)" :model-value="date2Thai(startDate2)"
:rules="[ :rules="[
@ -965,7 +963,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="endDate + 543" :model-value="endDate + 543"
:rules="[ :rules="[
@ -1009,7 +1006,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate2)" :model-value="date2Thai(endDate2)"
:rules="[ :rules="[
@ -1059,7 +1055,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(finishDate)" :model-value="date2Thai(finishDate)"
:rules="[ :rules="[

View file

@ -327,7 +327,7 @@ const clickSave = async () => {
/** /**
* นทกเพมขอม * นทกเพมขอม
*/ */
const saveData = async () => { const saveData = async () => {
showLoader(); showLoader();
await http await http
.post(config.API.placementCertId(route.params.personalId.toString()), { .post(config.API.placementCertId(route.params.personalId.toString()), {
@ -699,7 +699,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(issueDate)" :model-value="date2Thai(issueDate)"
:rules="[ :rules="[
@ -745,7 +744,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(expireDate)" :model-value="date2Thai(expireDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]"

View file

@ -438,7 +438,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -345,7 +345,6 @@ onMounted(async () => {
hide-bottom-space hide-bottom-space
:model-value="date != null ? date2Thai(date) : null" :model-value="date != null ? date2Thai(date) : null"
label="วันที่รายงานตัว" label="วันที่รายงานตัว"
lazy-rules
> >
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon

View file

@ -61,7 +61,7 @@ let dataForm = reactive({
}); });
/** ฟังชั่น get file*/ /** ฟังชั่น get file*/
async function fetchPublishFile(){ async function fetchPublishFile() {
await http await http
.get(config.API.getPublishFileHistory) .get(config.API.getPublishFileHistory)
.then((res) => { .then((res) => {
@ -74,7 +74,7 @@ async function fetchPublishFile(){
.finally(async () => { .finally(async () => {
hideLoader(); hideLoader();
}); });
}; }
/** โหลดข้อมูลโครงสร้างจาก json */ /** โหลดข้อมูลโครงสร้างจาก json */
const loadTreeData = async () => { const loadTreeData = async () => {
@ -596,7 +596,6 @@ onMounted(async () => {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
date2Thai(new Date(dataForm.containDate)) date2Thai(new Date(dataForm.containDate))
" "

View file

@ -661,7 +661,7 @@ onMounted(async () => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -538,7 +538,7 @@ onMounted(async () => {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
date2Thai(new Date(dataForm.containDate)) date2Thai(new Date(dataForm.containDate))
" "

View file

@ -283,8 +283,6 @@ const positionLevelOptions = ref<Object[]>([
const selectedPosition = async (data: any) => { const selectedPosition = async (data: any) => {
if (data.name == null && selected.value != data.keyId) { if (data.name == null && selected.value != data.keyId) {
editDataStatus.value = true; editDataStatus.value = true;
selected.value = data.keyId; selected.value = data.keyId;
@ -384,7 +382,6 @@ watch(props, () => {
}); });
} }
if (personal.value) { if (personal.value) {
// const findData = dataRespone.value.find(findByPerson); // const findData = dataRespone.value.find(findByPerson);
let findData: any = null; let findData: any = null;
@ -598,7 +595,6 @@ function findByPerson(element: any): any {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
date2Thai(new Date(dataForm.containDate)) date2Thai(new Date(dataForm.containDate))
" "

View file

@ -13,7 +13,7 @@ import config from "@/app.config";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import type { ResponseData } from "@/modules/05_placement/interface/response/officer"; import type { ResponseData } from "@/modules/05_placement/interface/response/officer";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personalId = ref<string>(""); const personalId = ref<string>("");
const $q = useQuasar(); const $q = useQuasar();
@ -386,7 +386,6 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"
@ -431,7 +430,6 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -664,7 +664,7 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:readonly="!edit" :readonly="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"

View file

@ -8,7 +8,7 @@ import config from "@/app.config";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import type { resHelpDetail } from "@/modules/05_placement/interface/response/officer"; import type { resHelpDetail } from "@/modules/05_placement/interface/response/officer";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
const $q = useQuasar(); const $q = useQuasar();
@ -316,7 +316,6 @@ onMounted(async () => {
:outlined="edit" :outlined="edit"
dense dense
:readonly="!edit" :readonly="!edit"
lazy-rules
:borderless="!edit" :borderless="!edit"
:rules="[(val) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]"
:model-value=" :model-value="
@ -363,7 +362,6 @@ onMounted(async () => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="dateEnd !== null ? date2Thai(dateEnd) : null" :model-value="dateEnd !== null ? date2Thai(dateEnd) : null"
:rules="[(val) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]"

View file

@ -12,7 +12,7 @@ import keycloak from "@/plugins/keycloak";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import type { ResponseDataDetail } from "@/modules/06_retirement/interface/response/discharged"; import type { ResponseDataDetail } from "@/modules/06_retirement/interface/response/discharged";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
/** use */ /** use */
@ -187,7 +187,6 @@ function onclickViewinfo(id: string) {
function updatemodalPersonal(modal: boolean) { function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal; modalPersonal.value = modal;
} }
</script> </script>
<template> <template>
<div class="toptitle text-dark col-12 row items-center"> <div class="toptitle text-dark col-12 row items-center">
@ -423,7 +422,6 @@ function updatemodalPersonal(modal: boolean) {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"

View file

@ -12,7 +12,7 @@ import keycloak from "@/plugins/keycloak";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import type { ResponseDataDetail } from "@/modules/06_retirement/interface/response/expulsion"; import type { ResponseDataDetail } from "@/modules/06_retirement/interface/response/expulsion";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
/** use */ /** use */
@ -426,7 +426,6 @@ function updatemodalPersonal(modal: boolean) {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"

View file

@ -499,7 +499,6 @@ const openModalCalendar = (rows: any) => {
<q-input <q-input
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
dateBreak !== null ? date2Thai(dateBreak) : null dateBreak !== null ? date2Thai(dateBreak) : null
" "

View file

@ -11,7 +11,7 @@ import keycloak from "@/plugins/keycloak";
import type { QForm } from "quasar"; import type { QForm } from "quasar";
import type { ResponseDataDetail } from "@/modules/06_retirement/interface/response/expulsion"; import type { ResponseDataDetail } from "@/modules/06_retirement/interface/response/expulsion";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
/** Use */ /** Use */
@ -436,7 +436,6 @@ function updatemodalPersonal(modal: boolean) {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:readonly="!edit" :readonly="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"

View file

@ -837,7 +837,6 @@ function updatemodalPersonal(modal: boolean) {
dense dense
outlined outlined
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]"
lazy-rules
:model-value=" :model-value="
signDate !== null ? date2Thai(signDate) : null signDate !== null ? date2Thai(signDate) : null
" "

View file

@ -314,7 +314,6 @@ const clickCancelConditions = async () => {
conditions.value = false; conditions.value = false;
}; };
const saveConditions = () => { const saveConditions = () => {
if (myForm.value !== null) { if (myForm.value !== null) {
myForm.value.validate().then((success) => { myForm.value.validate().then((success) => {
@ -335,9 +334,7 @@ const saveConditions = () => {
}; };
//Save Api //Save Api
const dataSave = async () => { const dataSave = async () => {};
};
/** /**
* Functionบนท * Functionบนท
@ -361,7 +358,6 @@ const conditionSave = () => {
} }
}; };
//Save Api //Save Api
const saveData = async () => { const saveData = async () => {
const formData = new FormData(); const formData = new FormData();
@ -772,7 +768,7 @@ function confirmRemove(fileId: string) {
label="แก้ไข" label="แก้ไข"
style="width: 80px" style="width: 80px"
@click="conditions = !conditions" @click="conditions = !conditions"
/> />
</div> </div>
<div v-else class="q-gutter-x-sm"> <div v-else class="q-gutter-x-sm">
<q-btn <q-btn
@ -1153,7 +1149,6 @@ function confirmRemove(fileId: string) {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date !== null ? date2Thai(date) : null" :model-value="date !== null ? date2Thai(date) : null"
:rules="[ :rules="[
@ -1304,7 +1299,6 @@ function confirmRemove(fileId: string) {
<q-input <q-input
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
dateBreak !== null ? date2Thai(dateBreak) : null dateBreak !== null ? date2Thai(dateBreak) : null
" "

View file

@ -250,7 +250,6 @@ onMounted(async () => {
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
outlined outlined
:model-value="yearly + 543" :model-value="yearly + 543"
:rules="[(val) => !!val || `${'กรุณาเลือกปีที่เสนอ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกปีที่เสนอ'}`]"

View file

@ -659,7 +659,6 @@ const filterSelector = (val: any, update: Function, name: any) => {
dense dense
borderless borderless
outlined outlined
lazy-rules
hide-bottom-space hide-bottom-space
:model-value=" :model-value="
invoiceDate != null ? date2Thai(invoiceDate) : undefined invoiceDate != null ? date2Thai(invoiceDate) : undefined

View file

@ -91,11 +91,11 @@ async function SaveData(type: string, id: string) {
function dataSave(type: string, id: string) { function dataSave(type: string, id: string) {
const formData = new FormData(); const formData = new FormData();
if (props.dateCheckReceive === null) { if (props.dateCheckReceive === null) {
formData.append("Date", dateToISO(Datereceive.value as Date ?? nullii)); formData.append("Date", dateToISO((Datereceive.value as Date) ?? nullii));
formData.append("File", files.value); formData.append("File", files.value);
formData.append("OrgId", OrganazationId.value); formData.append("OrgId", OrganazationId.value);
} else { } else {
formData.append("Date", dateToISO(Datereturn.value as Date?? nullii)); formData.append("Date", dateToISO((Datereturn.value as Date) ?? nullii));
formData.append("File", filesReturn.value); formData.append("File", filesReturn.value);
formData.append("OrgId", OrganazationId2.value); formData.append("OrgId", OrganazationId2.value);
} }
@ -226,7 +226,7 @@ watch(props, () => {
:label="`${'วันที่ได้รับ'}`" :label="`${'วันที่ได้รับ'}`"
:disable="dateCheckReceive !== null" :disable="dateCheckReceive !== null"
> >
<template v-if="Datereceive" v-slot:append> <template v-if="Datereceive" v-slot:append>
<q-icon <q-icon
name="cancel" name="cancel"
@click.stop.prevent="Datereceive = null" @click.stop.prevent="Datereceive = null"
@ -319,7 +319,6 @@ watch(props, () => {
dense dense
borderless borderless
outlined outlined
lazy-rules
:rules="[(val) => !!val || 'กรุณาเลือกวันที่คืน']" :rules="[(val) => !!val || 'กรุณาเลือกวันที่คืน']"
hide-bottom-space hide-bottom-space
:model-value=" :model-value="

View file

@ -232,7 +232,7 @@ async function searchcardid() {
} else { } else {
fullName.value = ""; fullName.value = "";
brand.value = ""; brand.value = "";
receivedate.value = null receivedate.value = null;
// OrganazationId.value = ""; // OrganazationId.value = "";
} }
} }
@ -243,7 +243,6 @@ function closeDialog() {
props.close(); props.close();
} }
/** function reset วันที่คืน*/ /** function reset วันที่คืน*/
function clearReturnDate() { function clearReturnDate() {
returndate.value = null; returndate.value = null;
@ -420,13 +419,13 @@ watch(props, () => {
" "
:label="`${'วันที่ยืม'}`" :label="`${'วันที่ยืม'}`"
> >
<template v-if="receivedate" v-slot:append> <template v-if="receivedate" v-slot:append>
<q-icon <q-icon
name="cancel" name="cancel"
@click.stop.prevent="receivedate = null" @click.stop.prevent="receivedate = null"
class="cursor-pointer" class="cursor-pointer"
/> />
</template> </template>
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
@ -483,7 +482,6 @@ watch(props, () => {
dense dense
borderless borderless
outlined outlined
lazy-rules
:rules="[(val) => !!val || 'กรุณาเลือกวันที่คืน']" :rules="[(val) => !!val || 'กรุณาเลือกวันที่คืน']"
hide-bottom-space hide-bottom-space
:model-value=" :model-value="

View file

@ -447,7 +447,6 @@ const clickBack = () => {
hide-bottom-space hide-bottom-space
outlined outlined
dense dense
lazy-rules
:model-value=" :model-value="
informaData.birthDate == null informaData.birthDate == null
? null ? null

View file

@ -35,8 +35,15 @@ const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader,dialogConfirm } = const {
mixin; date2Thai,
success,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const name = ref<string>(); const name = ref<string>();
@ -395,9 +402,9 @@ const clickAdd = async () => {
/** /**
* กดบนทกใน dialog * กดบนทกใน dialog
*/ */
const clickSave = () =>{ const clickSave = () => {
dialogConfirm($q,()=>SaveData()) dialogConfirm($q, () => SaveData());
} };
const SaveData = async () => { const SaveData = async () => {
await myForm.value.validate().then(async (result: boolean) => { await myForm.value.validate().then(async (result: boolean) => {
if (result) { if (result) {
@ -735,9 +742,7 @@ const textPoint = (val: number | undefined) => {
/> />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
@ -758,7 +763,6 @@ const textPoint = (val: number | undefined) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ได้รับ'}`]"

View file

@ -34,8 +34,15 @@ const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader, dialogConfirm } = const {
mixin; date2Thai,
success,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const level = ref<string>(); const level = ref<string>();
@ -415,8 +422,8 @@ const clickAdd = async () => {
* กดบนทกใน dialog * กดบนทกใน dialog
*/ */
const clickSave = () => { const clickSave = () => {
dialogConfirm($q,()=>SaveData()) dialogConfirm($q, () => SaveData());
} };
const SaveData = async () => { const SaveData = async () => {
await myForm.value.validate().then(async (result: boolean) => { await myForm.value.validate().then(async (result: boolean) => {
if (result) { if (result) {
@ -723,9 +730,7 @@ const resetFilter = () => {};
<DialogHeader tittle="วินัย" :close="clickClose" /> <DialogHeader tittle="วินัย" :close="clickClose" />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
@ -746,7 +751,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]"
@ -866,7 +870,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -32,8 +32,15 @@ const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { success, dateToISO, date2Thai, messageError, showLoader, hideLoader,dialogConfirm } = const {
mixin; success,
dateToISO,
date2Thai,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const levelId = ref<string>(); const levelId = ref<string>();
@ -657,8 +664,8 @@ const clickAdd = async () => {
* กดบนทกใน dialog * กดบนทกใน dialog
*/ */
const clickSave = () => { const clickSave = () => {
dialogConfirm($q,() => SaveData() ) dialogConfirm($q, () => SaveData());
} };
const SaveData = async () => { const SaveData = async () => {
await myForm.value.validate().then(async (result: boolean) => { await myForm.value.validate().then(async (result: boolean) => {
if (result) { if (result) {
@ -1054,9 +1061,7 @@ const getClass = (val: boolean) => {
<DialogHeader tittle="ประวัติการศึกษา" :close="clickClose" /> <DialogHeader tittle="ประวัติการศึกษา" :close="clickClose" />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<selector <selector
:class="getClass(edit)" :class="getClass(edit)"
@ -1142,7 +1147,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="startDate + 543" :model-value="startDate + 543"
:rules="[ :rules="[
@ -1187,7 +1191,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate2)" :model-value="date2Thai(startDate2)"
:rules="[ :rules="[
@ -1237,7 +1240,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="endDate + 543" :model-value="endDate + 543"
:rules="[ :rules="[
@ -1281,7 +1283,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(endDate2)" :model-value="date2Thai(endDate2)"
:rules="[ :rules="[
@ -1331,7 +1332,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(finishDate)" :model-value="date2Thai(finishDate)"
:rules="[ :rules="[

View file

@ -311,29 +311,71 @@ const paginationHis = ref({
<q-card flat bordered class="col-12 q-px-lg q-py-md"> <q-card flat bordered class="col-12 q-px-lg q-py-md">
<div class="flex items-center"> <div class="flex items-center">
<div class="flex items-center"> <div class="flex items-center">
<q-icon name="mdi-clipboard" size="1.5em" color="grey-5" class="q-mr-md" /> <q-icon
name="mdi-clipboard"
size="1.5em"
color="grey-5"
class="q-mr-md"
/>
<div class="text-bold text-subtitle2 col-12 row items-center"> <div class="text-bold text-subtitle2 col-12 row items-center">
อมลการจาง อมลการจาง
</div> </div>
</div> </div>
<div class="q-gutter-sm q-mx-sm"> <div class="q-gutter-sm q-mx-sm">
<q-btn size="12px" flat round color="primary" @click="onClickAdd" icon="mdi-plus"> <q-btn
size="12px"
flat
round
color="primary"
@click="onClickAdd"
icon="mdi-plus"
>
<q-tooltip>เพมขอมลการจาง</q-tooltip> <q-tooltip>เพมขอมลการจาง</q-tooltip>
</q-btn> </q-btn>
</div> </div>
<q-space /> <q-space />
<div class="q-gutter-sm" style="display: flex"> <div class="q-gutter-sm" style="display: flex">
<q-input outlined dense v-model="filter" label="ค้นหา" style="min-width: 150px" /> <q-input
outlined
dense
v-model="filter"
label="ค้นหา"
style="min-width: 150px"
/>
<q-select v-model="visibleColumns" multiple outlined dense options-dense :display-value="$q.lang.table.columns" <q-select
emit-value map-options :options="columns" option-value="name" options-cover style="min-width: 150px" /> v-model="visibleColumns"
multiple
outlined
dense
options-dense
:display-value="$q.lang.table.columns"
emit-value
map-options
:options="columns"
option-value="name"
options-cover
style="min-width: 150px"
/>
</div> </div>
</div> </div>
<div class="q-mt-sm"> <div class="q-mt-sm">
<d-table flat bordered id="table" ref="table" :columns="columns" :rows="rows" :filter="filter" <d-table
row-key="dateEmployment" :paging="true" dense :visible-columns="visibleColumns" v-model:pagination="pagination"> flat
bordered
id="table"
ref="table"
:columns="columns"
:rows="rows"
:filter="filter"
row-key="dateEmployment"
:paging="true"
dense
:visible-columns="visibleColumns"
v-model:pagination="pagination"
>
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
@ -352,16 +394,38 @@ const paginationHis = ref({
</div> </div>
</q-td> </q-td>
<q-td> <q-td>
<q-btn dense flat round color="primary" icon="mdi-pencil" @click="clickEdit(props.row, 'edit')"> <q-btn
dense
flat
round
color="primary"
icon="mdi-pencil"
@click="clickEdit(props.row, 'edit')"
>
<q-tooltip>แกไขขอม</q-tooltip> <q-tooltip>แกไขขอม</q-tooltip>
</q-btn> </q-btn>
</q-td> </q-td>
<q-td> <q-td>
<q-btn dense flat round color="red" icon="mdi-delete" @click="cilckDelete(props.row.id)"> <q-btn
<q-tooltip>ลบขอม</q-tooltip></q-btn> dense
flat
round
color="red"
icon="mdi-delete"
@click="cilckDelete(props.row.id)"
>
<q-tooltip>ลบขอม</q-tooltip></q-btn
>
</q-td> </q-td>
<q-td> <q-td>
<q-btn dense flat round color="info" @click="openPopupHistory(props.row.id)" icon="mdi-history"> <q-btn
dense
flat
round
color="info"
@click="openPopupHistory(props.row.id)"
icon="mdi-history"
>
<q-tooltip>ประวอมลการจาง </q-tooltip> <q-tooltip>ประวอมลการจาง </q-tooltip>
</q-btn> </q-btn>
</q-td> </q-td>
@ -380,17 +444,33 @@ const paginationHis = ref({
</span> </span>
<span style="margin-right: 0" v-else> เพิ่มข้อมูลการจ้าง </span> <span style="margin-right: 0" v-else> เพิ่มข้อมูลการจ้าง </span>
</q-toolbar-title> </q-toolbar-title>
<q-btn for="closeDialog" icon="close" unelevated round dense style="color: #eb0505; background-color: #ffdede" <q-btn
@click="colsePopup" /> for="closeDialog"
icon="close"
unelevated
round
dense
style="color: #eb0505; background-color: #ffdede"
@click="colsePopup"
/>
</q-toolbar> </q-toolbar>
<q-separator /> <q-separator />
<form @submit.prevent="validateForm"> <form @submit.prevent="validateForm">
<q-card-section class="q-pt-none"> <q-card-section class="q-pt-none">
<div class="col-12 row q-pa-md"> <div class="col-12 row q-pa-md">
<div class="col-xs-12 col-sm-12 row q-col-gutter-x-md q-col-gutter-y-xs"> <div
class="col-xs-12 col-sm-12 row q-col-gutter-x-md q-col-gutter-y-xs"
>
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<datepicker menu-class-name="modalfix" v-model="formData.dateEmployment" :locale="'th'" autoApply <datepicker
borderless :enableTimePicker="false" week-start="0"> menu-class-name="modalfix"
v-model="formData.dateEmployment"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -398,13 +478,26 @@ const paginationHis = ref({
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input for="inputdateEmployment" ref="dateEmploymentRef" outlined dense <q-input
class="full-width datepicker" :model-value="formData.dateEmployment != null for="inputdateEmployment"
ref="dateEmploymentRef"
outlined
dense
class="full-width datepicker"
:model-value="
formData.dateEmployment != null
? date2Thai(formData.dateEmployment) ? date2Thai(formData.dateEmployment)
: null : null
" label="นทาง" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่จ้าง'}`]" lazy-rules> "
label="วันที่จ้าง"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่จ้าง'}`]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -413,9 +506,16 @@ const paginationHis = ref({
</div> </div>
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-input for="inputOrderEmployment" ref="orderEmploymentRef" dense outlined <q-input
v-model="formData.orderEmployment" label="คำสั่งจ้าง" for="inputOrderEmployment"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งจ้าง'}`]" lazy-rules /> ref="orderEmploymentRef"
dense
outlined
v-model="formData.orderEmployment"
label="คำสั่งจ้าง"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งจ้าง'}`]"
lazy-rules
/>
</div> </div>
</div> </div>
</div> </div>
@ -425,8 +525,16 @@ const paginationHis = ref({
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right" class="bg-white text-teal"> <q-card-actions align="right" class="bg-white text-teal">
<q-btn for="ButtonOnSubmit" id="onSubmit" flat round color="secondary" icon="mdi-content-save-outline" <q-btn
type="submit"><q-tooltip>บทกขอม</q-tooltip></q-btn> for="ButtonOnSubmit"
id="onSubmit"
flat
round
color="secondary"
icon="mdi-content-save-outline"
type="submit"
><q-tooltip>บทกขอม</q-tooltip></q-btn
>
</q-card-actions> </q-card-actions>
</form> </form>
</q-card> </q-card>
@ -438,8 +546,15 @@ const paginationHis = ref({
<q-toolbar-title class="text-subtitle1 text-weight-bold"> <q-toolbar-title class="text-subtitle1 text-weight-bold">
<span style="margin-right: 0"> ประวอมลการจาง </span> <span style="margin-right: 0"> ประวอมลการจาง </span>
</q-toolbar-title> </q-toolbar-title>
<q-btn for="closeDialog" icon="close" unelevated round dense style="color: #eb0505; background-color: #ffdede" <q-btn
@click="colsePopup" /> for="closeDialog"
icon="close"
unelevated
round
dense
style="color: #eb0505; background-color: #ffdede"
@click="colsePopup"
/>
</q-toolbar> </q-toolbar>
<q-separator /> <q-separator />
@ -447,16 +562,44 @@ const paginationHis = ref({
<q-toolbar class="q-pa-none"> <q-toolbar class="q-pa-none">
<q-space /> <q-space />
<div class="q-gutter-sm" style="display: flex"> <div class="q-gutter-sm" style="display: flex">
<q-input outlined dense v-model="filterHis" label="ค้นหา" style="min-width: 150px" /> <q-input
outlined
dense
v-model="filterHis"
label="ค้นหา"
style="min-width: 150px"
/>
<q-select v-model="visibleColumnsHis" multiple outlined dense options-dense <q-select
:display-value="$q.lang.table.columns" emit-value map-options :options="columnsHis" option-value="name" v-model="visibleColumnsHis"
options-cover style="min-width: 150px" /> multiple
outlined
dense
options-dense
:display-value="$q.lang.table.columns"
emit-value
map-options
:options="columnsHis"
option-value="name"
options-cover
style="min-width: 150px"
/>
</div> </div>
</q-toolbar> </q-toolbar>
<d-table flat bordered id="table" ref="table" :columns="columnsHis" :rows="rowsHis" :filter="filterHis" <d-table
row-key="dateEmployment" :paging="true" dense :visible-columns="visibleColumnsHis" flat
v-model:pagination="paginationHis"> bordered
id="table"
ref="table"
:columns="columnsHis"
:rows="rowsHis"
:filter="filterHis"
row-key="dateEmployment"
:paging="true"
dense
:visible-columns="visibleColumnsHis"
v-model:pagination="paginationHis"
>
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">

View file

@ -34,8 +34,15 @@ const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader ,dialogConfirm} = const {
mixin; date2Thai,
success,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const certificateNo = ref<string>(); const certificateNo = ref<string>();
@ -326,10 +333,10 @@ const clickAdd = async () => {
* กดบนทกใน dialog * กดบนทกใน dialog
*/ */
const clickSave = () => { const clickSave = () => {
dialogConfirm($q,() => SaveData()) dialogConfirm($q, () => SaveData());
} };
const SaveData = async () => { const SaveData = async () => {
await myForm.value?.validate().then(async (result: boolean) => { await myForm.value?.validate().then(async (result: boolean) => {
if (result) { if (result) {
if (modalEdit.value) { if (modalEdit.value) {
await editData(); await editData();
@ -638,9 +645,7 @@ const getClass = (val: boolean) => {
/> />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<q-input <q-input
:class="getClass(edit)" :class="getClass(edit)"
@ -708,7 +713,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(issueDate)" :model-value="date2Thai(issueDate)"
:rules="[ :rules="[
@ -754,7 +758,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(expireDate)" :model-value="date2Thai(expireDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]"

View file

@ -580,7 +580,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(new Date(govermentData.containDate))" :model-value="date2Thai(new Date(govermentData.containDate))"
@ -633,7 +632,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(new Date(govermentData.workDate))" :model-value="date2Thai(new Date(govermentData.workDate))"
@ -761,4 +759,4 @@ const getClass = (val: boolean) => {
</q-tr> </q-tr>
</template> </template>
</HistoryTable> </HistoryTable>
</template> </template>

View file

@ -861,7 +861,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:readonly="!edit" :readonly="!edit"
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="

View file

@ -1059,7 +1059,7 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="dateThaiRange(dateRange)" :model-value="dateThaiRange(dateRange)"
:rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปีที่ลา'}`]" :rules="[(val:string) => !!val || `${'กรุณาเลือกวัน เดือน ปีที่ลา'}`]"

View file

@ -536,7 +536,7 @@ const getClass = (val: boolean) => {
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]"

View file

@ -650,7 +650,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[(val) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวัน เดือน ปี'}`]"
@ -747,7 +746,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -1535,22 +1535,41 @@ const resetFilter = () => {};
> >
<template #columns="props"> <template #columns="props">
<q-tr :props="props"> <q-tr :props="props">
<q-td v-for="col in props.cols" :key="col.name" :props="props" @click="selectData(props)" <q-td
class="cursor-pointer"> v-for="col in props.cols"
:key="col.name"
:props="props"
@click="selectData(props)"
class="cursor-pointer"
>
<div v-if="col.name == 'date'" class="table_ellipsis"> <div v-if="col.name == 'date'" class="table_ellipsis">
{{ date2Thai(col.value) }} {{ date2Thai(col.value) }}
</div> </div>
<div v-else-if="props.row.salaryStatus !== 'DEATH' && ( <div
col.name == 'positionSalaryAmount' || v-else-if="
col.name == 'mouthSalaryAmount' || props.row.salaryStatus !== 'DEATH' &&
col.name == 'amount') (col.name == 'positionSalaryAmount' ||
" class="table_ellipsis"> col.name == 'mouthSalaryAmount' ||
col.name == 'amount')
"
class="table_ellipsis"
>
{{ col.value == null ? "" : col.value.toLocaleString("en-US") }} {{ col.value == null ? "" : col.value.toLocaleString("en-US") }}
</div> </div>
<div v-else-if="props.row.salaryStatus === 'DEATH' && col.name == 'position'" class="table_ellipsis"> <div
v-else-if="
props.row.salaryStatus === 'DEATH' && col.name == 'position'
"
class="table_ellipsis"
>
งแกกรรม งแกกรรม
</div> </div>
<div v-else-if="props.row.salaryStatus === 'DEATH' && col.name !== 'salaryRef'" class="table_ellipsis"> <div
v-else-if="
props.row.salaryStatus === 'DEATH' && col.name !== 'salaryRef'
"
class="table_ellipsis"
>
- -
</div> </div>
<div v-else class="table_ellipsis"> <div v-else class="table_ellipsis">
@ -1660,7 +1679,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -1618,7 +1618,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(date)" :model-value="date2Thai(date)"
:rules="[ :rules="[

View file

@ -30,8 +30,15 @@ const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader,dialogConfirm } = const {
mixin; date2Thai,
success,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const name = ref<string>(); const name = ref<string>();
@ -476,8 +483,8 @@ const SaveData = async () => {
* นทกเพมขอม * นทกเพมขอม
*/ */
const clickSave = () => { const clickSave = () => {
dialogConfirm($q,() => SaveData()) dialogConfirm($q, () => SaveData());
} };
const saveData = async () => { const saveData = async () => {
if (profileId.value) { if (profileId.value) {
showLoader(); showLoader();
@ -792,9 +799,7 @@ const getClass = (val: boolean) => {
<DialogHeader tittle="การฝึกอบรม/ดูงาน" :close="clickClose" /> <DialogHeader tittle="การฝึกอบรม/ดูงาน" :close="clickClose" />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<q-input <q-input
:class="getClass(edit)" :class="getClass(edit)"
@ -851,7 +856,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(startDate)" :model-value="date2Thai(startDate)"
:rules="[ :rules="[
@ -944,7 +948,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="yearly + 543" :model-value="yearly + 543"
:rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]"
@ -1047,7 +1050,6 @@ const getClass = (val: boolean) => {
hide-bottom-space hide-bottom-space
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateOrder)" :model-value="date2Thai(dateOrder)"
:label="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`" :label="`${'คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่'}`"

View file

@ -30,8 +30,15 @@ const store = useProfileDataStore();
const { profileData, changeProfileColumns } = store; const { profileData, changeProfileColumns } = store;
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader,dialogConfirm } = const {
mixin; date2Thai,
success,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute(); const route = useRoute();
const id = ref<string>(""); const id = ref<string>("");
const dateStart = ref<Date>(new Date()); const dateStart = ref<Date>(new Date());
@ -353,11 +360,11 @@ const clickAdd = async () => {
/** /**
* กดบนทกใน dialog * กดบนทกใน dialog
*/ */
const clickSave = () => { const clickSave = () => {
dialogConfirm($q,() => SaveData()) dialogConfirm($q, () => SaveData());
} };
const SaveData = async () => { const SaveData = async () => {
await myForm.value.validate().then(async (result: boolean) => { await myForm.value.validate().then(async (result: boolean) => {
if (result) { if (result) {
if (modalEdit.value) { if (modalEdit.value) {
await editData(); await editData();
@ -666,9 +673,7 @@ const resetFilter = () => {};
<DialogHeader tittle="ปฏิบัติราชการพิเศษ" :close="clickClose" /> <DialogHeader tittle="ปฏิบัติราชการพิเศษ" :close="clickClose" />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-p-sm">
<div <div class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs">
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div class="col-xs-6 col-sm-6 col-md-6"> <div class="col-xs-6 col-sm-6 col-md-6">
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
@ -689,7 +694,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateStart)" :model-value="date2Thai(dateStart)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]"
@ -733,7 +737,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value="date2Thai(dateEnd)" :model-value="date2Thai(dateEnd)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]"
@ -830,7 +833,6 @@ const resetFilter = () => {};
:class="getClass(edit)" :class="getClass(edit)"
:outlined="edit" :outlined="edit"
dense dense
lazy-rules
:borderless="!edit" :borderless="!edit"
:model-value=" :model-value="
refCommandDate == null ? null : date2Thai(refCommandDate) refCommandDate == null ? null : date2Thai(refCommandDate)

View file

@ -759,7 +759,6 @@ const Retire = async () => {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value="date2Thai(leaveDate)" :model-value="date2Thai(leaveDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่พ้นราชการ'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่พ้นราชการ'}`]"
hide-bottom-space hide-bottom-space
@ -824,7 +823,6 @@ const Retire = async () => {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
:model-value="date2Thai(leaveDateOrder)" :model-value="date2Thai(leaveDateOrder)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่ออกคำสั่ง'}`]" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่ออกคำสั่ง'}`]"
hide-bottom-space hide-bottom-space

View file

@ -226,7 +226,6 @@ watch(
class="bg-white" class="bg-white"
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value="date ? date2Thai(date) : null" :model-value="date ? date2Thai(date) : null"
:label="`${'วันที่'}`" :label="`${'วันที่'}`"
@ -261,7 +260,6 @@ watch(
class="bg-white" class="bg-white"
outlined outlined
dense dense
lazy-rules
borderless borderless
:label="`${'เดือน'}`" :label="`${'เดือน'}`"
:model-value="monthYearThai(dateMonth)" :model-value="monthYearThai(dateMonth)"

View file

@ -95,7 +95,6 @@ function calculateMaxDate() {
for="selectDate" for="selectDate"
dense dense
outlined outlined
lazy-rules
:model-value=" :model-value="
workStore.selectDate !== null workStore.selectDate !== null
? date2Thai(workStore.selectDate) ? date2Thai(workStore.selectDate)

View file

@ -63,7 +63,6 @@ function filterFn() {
for="selectDate" for="selectDate"
dense dense
outlined outlined
lazy-rules
:model-value=" :model-value="
workStore.selectDate !== null workStore.selectDate !== null
? date2Thai(workStore.selectDate) ? date2Thai(workStore.selectDate)

View file

@ -170,7 +170,6 @@ onMounted(async () => {
<template #trigger> <template #trigger>
<q-input <q-input
dense dense
lazy-rules
outlined outlined
:model-value="Number(leaveStore.filter.year) + 543" :model-value="Number(leaveStore.filter.year) + 543"
:label="`${'ปีงบประมาณ'}`" :label="`${'ปีงบประมาณ'}`"

View file

@ -316,7 +316,6 @@ onMounted(() => {
<q-input <q-input
class="bg-white" class="bg-white"
dense dense
lazy-rules
outlined outlined
:model-value="Number(year) + 543" :model-value="Number(year) + 543"
:label="`${'ปีงบประมาณ'}`" :label="`${'ปีงบประมาณ'}`"
@ -352,7 +351,6 @@ onMounted(() => {
class="bg-white" class="bg-white"
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value="dateStart ? date2Thai(dateStart) : null" :model-value="dateStart ? date2Thai(dateStart) : null"
:label="`${'ตั้งเเต่วันที่'}`" :label="`${'ตั้งเเต่วันที่'}`"
@ -385,7 +383,6 @@ onMounted(() => {
class="bg-white" class="bg-white"
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value="dateEnd ? date2Thai(dateEnd) : null" :model-value="dateEnd ? date2Thai(dateEnd) : null"
:label="`${'ถึงวันที่'}`" :label="`${'ถึงวันที่'}`"

View file

@ -299,7 +299,6 @@ watch(
:rules="[ :rules="[
(val) => !!val || `${'กรุณาเลือกวันที่ให้มีผล'}`, (val) => !!val || `${'กรุณาเลือกวันที่ให้มีผล'}`,
]" ]"
lazy-rules
> >
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon

View file

@ -211,7 +211,6 @@ watch(
dense dense
outlined outlined
readonly readonly
lazy-rules
:model-value="props.dateFix" :model-value="props.dateFix"
hide-bottom-space hide-bottom-space
:label="`${'วันที่ขอแก้ไข'}`" :label="`${'วันที่ขอแก้ไข'}`"

View file

@ -108,7 +108,6 @@ function resetFilter() {
for="selectDate" for="selectDate"
dense dense
outlined outlined
lazy-rules
:model-value=" :model-value="
SpecialTimeStore.selectDate !== null SpecialTimeStore.selectDate !== null
? date2Thai(SpecialTimeStore.selectDate) ? date2Thai(SpecialTimeStore.selectDate)

View file

@ -130,7 +130,7 @@ const clickSearch = async () => {
}; };
// Redirect to // Redirect to
const clickRedirect = (id: string) => { const clickRedirect = (id: string) => {
window.open(`/registry/${id}`, '_blank'); window.open(`/registry/${id}`, "_blank");
}; };
const paging = ref<boolean>(true); const paging = ref<boolean>(true);
const pagination = ref({ const pagination = ref({
@ -151,7 +151,6 @@ function onclickViewinfo(id: string) {
function updatemodalPersonal(modal: boolean) { function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal; modalPersonal.value = modal;
} }
</script> </script>
<template> <template>
@ -233,7 +232,6 @@ function updatemodalPersonal(modal: boolean) {
hide-bottom-space hide-bottom-space
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value=" :model-value="
reportYear == null ? null : reportYear + 543 reportYear == null ? null : reportYear + 543

View file

@ -14,7 +14,7 @@ const typeReport = route.params.type.toString();
const store = useReportDataStore(); const store = useReportDataStore();
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { date2Thai } = mixin; const { date2Thai } = mixin;
const { filterFnOptionsType } = store; const { filterFnOptionsType } = store;
const $q = useQuasar(); const $q = useQuasar();
@ -28,33 +28,33 @@ const titleReport = ref<string>("");
const splitterModel = ref(14); const splitterModel = ref(14);
/** กลับหน้าหลัก */ /** กลับหน้าหลัก */
function backHistory(){ function backHistory() {
window.history.back(); window.history.back();
}; }
/** แสดงรายงาน */ /** แสดงรายงาน */
function showDocument(url: any){ function showDocument(url: any) {
const pdfData = usePDF(url); const pdfData = usePDF(url);
setTimeout(() => { setTimeout(() => {
pdfSrc.value = pdfData.pdf.value; pdfSrc.value = pdfData.pdf.value;
numOfPages.value = pdfData.pages.value; numOfPages.value = pdfData.pages.value;
}, 1000); }, 1000);
}; }
/** ไปหน้าต่อไปของรายงาน */ /** ไปหน้าต่อไปของรายงาน */
function nextPage(){ function nextPage() {
if (page.value < numOfPages.value) { if (page.value < numOfPages.value) {
page.value++; page.value++;
} }
}; }
/** กลับหน้าก่อนหน้าของรายงาน */ /** กลับหน้าก่อนหน้าของรายงาน */
function backPage(){ function backPage() {
if (page.value !== 1) { if (page.value !== 1) {
page.value--; page.value--;
} }
}; }
/** โหลดข้อมูลเมื่อเข้าหน้านี้ */ /** โหลดข้อมูลเมื่อเข้าหน้านี้ */
onMounted(async () => { onMounted(async () => {
@ -98,7 +98,6 @@ onMounted(async () => {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value="date ? date2Thai(date) : null" :model-value="date ? date2Thai(date) : null"
:label="`${'ตั้งเเต่วันที่'}`" :label="`${'ตั้งเเต่วันที่'}`"
@ -110,7 +109,6 @@ onMounted(async () => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="q-pl-xs"> <div class="q-pl-xs">
<datepicker <datepicker
@ -130,7 +128,6 @@ onMounted(async () => {
class="full-width inputgreen cursor-pointer" class="full-width inputgreen cursor-pointer"
outlined outlined
dense dense
lazy-rules
borderless borderless
:model-value="dateEnd ? date2Thai(dateEnd) : null" :model-value="dateEnd ? date2Thai(dateEnd) : null"
:label="`${'ถึงวันที่'}`" :label="`${'ถึงวันที่'}`"
@ -142,7 +139,6 @@ onMounted(async () => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
</div> </div>
<q-space /> <q-space />
<div class="q-py-xs"> <div class="q-py-xs">
@ -182,7 +178,6 @@ onMounted(async () => {
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
</div> </div>
<div class="q-pl-xs"> <div class="q-pl-xs">
<q-select <q-select
@ -208,7 +203,6 @@ onMounted(async () => {
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
</div> </div>
<div v-if="typeReport > '2'" class="q-pl-xs"> <div v-if="typeReport > '2'" class="q-pl-xs">
<q-select <q-select
@ -234,7 +228,6 @@ onMounted(async () => {
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
</div> </div>
</q-toolbar> </q-toolbar>
<q-splitter <q-splitter
@ -262,7 +255,6 @@ onMounted(async () => {
@click="backPage" @click="backPage"
:disable="page == 1" :disable="page == 1"
/> />
</div> </div>
<div class="col-12 col-md-auto"> <div class="col-12 col-md-auto">
<div class="q-pa-md flex"> <div class="q-pa-md flex">
@ -279,7 +271,6 @@ onMounted(async () => {
@click="nextPage" @click="nextPage"
:disable="page === numOfPages" :disable="page === numOfPages"
/> />
</div> </div>
</div> </div>
</div> </div>

Some files were not shown because too many files have changed in this diff Show more