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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -549,136 +549,135 @@ onMounted(async () => {
<q-separator color="grey-4" />
<q-card-section style="max-height: 55vh" class="scroll">
<div class="row q-gutter-sm q-pb-sm">
<div class="col">
<q-input
outlined
v-model="profesLicenseData.certificateType"
label="ชื่อใบอนุญาต"
bg-color="white"
dense
class="inputgreen"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อใบอนุญาต'}`]"
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 class="row q-gutter-sm q-pb-sm">
<div class="col">
<q-input
outlined
v-model="profesLicenseData.certificateType"
label="ชื่อใบอนุญาต"
bg-color="white"
dense
class="inputgreen"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อใบอนุญาต'}`]"
hide-bottom-space
/>
</div>
<div class="row q-gutter-sm q-pb-sm">
<div class="col">
<q-input
outlined
v-model="profesLicenseData.certificateNo"
label="เลขที่ใบอนุญาต"
bg-color="white"
class="inputgreen"
dense
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่ใบอนุญาต'}`]"
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 class="col">
<q-input
outlined
v-model="profesLicenseData.issuer"
label="หน่วยงานผู้ออกใบอนุญาต"
bg-color="white"
dense
class="inputgreen"
:rules="[
(val) => !!val || `${'กรุณากรอกหน่วยงานผู้ออกใบอนุญาต'}`,
]"
hide-bottom-space
/>
</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>
<div class="row q-gutter-sm q-pb-sm">
<div class="col">
<q-input
outlined
v-model="profesLicenseData.certificateNo"
label="เลขที่ใบอนุญาต"
bg-color="white"
class="inputgreen"
dense
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่ใบอนุญาต'}`]"
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
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-separator color="grey-4" />
<q-card-actions align="right">
@ -708,68 +707,68 @@ onMounted(async () => {
<q-card-section style="max-height: 60vh" class="scroll">
<div class="row q-gutter-sm q-mb-sm">
<q-space />
<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"
<q-space />
<q-input
dense
:rows-per-page-options="[20, 50, 100]"
class="custom-header-table"
:visible-columns="historyVisibleColumns"
outlined
bg-color="white"
v-model="historyKeyword"
label="ค้นหา"
>
<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 v-slot:append>
<q-icon name="search" />
</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-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
: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>
</q-dialog>

View file

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

View file

@ -1003,11 +1003,7 @@ onMounted(async () => {
/>
</div>
</div>
<q-card
flat
bordered
class="q-px-md q-pb-md q-my-sm borderCard"
>
<q-card 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">
<q-radio
v-model="isDate"
@ -1095,7 +1091,6 @@ onMounted(async () => {
<q-input
dense
class="inputgreen"
lazy-rules
outlined
hide-bottom-space
:model-value="educationData.endYear + 543"
@ -1142,11 +1137,9 @@ onMounted(async () => {
outlined
class="inputgreen"
dense
lazy-rules
:model-value="date2Thai(educationData.startDate)"
:rules="[
(val) =>
!!val || `${'กรุณาเลือกวันที่เริ่มต้นศึกษา'}`,
(val) => !!val || `${'กรุณาเลือกวันที่เริ่มต้นศึกษา'}`,
]"
hide-bottom-space
:label="`${'วันที่เริ่มต้นศึกษา'}`"
@ -1187,7 +1180,6 @@ onMounted(async () => {
outlined
dense
class="inputgreen"
lazy-rules
:model-value="date2Thai(educationData.endDate)"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่จบการศึกษา'}`,
@ -1229,7 +1221,6 @@ onMounted(async () => {
bg-color="white"
dense
class="inputgreen"
lazy-rules
:model-value="date2Thai(educationData.finishDate)"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่สำเร็จการศึกษา'}`,
@ -1389,19 +1380,19 @@ onMounted(async () => {
</q-card-section>
<q-separator />
<q-card-actions align="right">
<q-btn
id="onSubmit"
type="submit"
dense
unelevated
label="บันทึก"
color="public"
class="q-px-md"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</q-card-actions>
<q-card-actions align="right">
<q-btn
id="onSubmit"
type="submit"
dense
unelevated
label="บันทึก"
color="public"
class="q-px-md"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</q-card-actions>
</q-form>
</q-card>
</q-dialog>
@ -1415,71 +1406,71 @@ onMounted(async () => {
<q-separator />
<q-card-section style="max-height: 50vh" class="scroll">
<q-toolbar style="padding: 0px" class="text-primary q-mb-sm">
<q-space />
<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"
<q-toolbar style="padding: 0px" class="text-primary q-mb-sm">
<q-space />
<q-input
dense
:filter="historyKeyword"
v-model:pagination="historyPagination"
:rows-per-page-options="[20, 50, 100]"
class="custom-header-table"
:visible-columns="historyVisibleColumns"
outlined
bg-color="white"
v-model="historyKeyword"
label="ค้นหา"
class="q-mr-sm"
>
<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 v-slot:append>
<q-icon name="search" />
</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-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
: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>
</q-dialog>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -311,29 +311,71 @@ const paginationHis = ref({
<q-card flat bordered class="col-12 q-px-lg q-py-md">
<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>
</div>
<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-btn>
</div>
<q-space />
<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"
emit-value map-options :options="columns" option-value="name" options-cover style="min-width: 150px" />
<q-select
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 class="q-mt-sm">
<d-table 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">
<d-table
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">
<q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props">
@ -352,16 +394,38 @@ const paginationHis = ref({
</div>
</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-btn>
</q-td>
<q-td>
<q-btn dense flat round color="red" icon="mdi-delete" @click="cilckDelete(props.row.id)">
<q-tooltip>ลบขอม</q-tooltip></q-btn>
<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-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-btn>
</q-td>
@ -380,17 +444,33 @@ const paginationHis = ref({
</span>
<span style="margin-right: 0" v-else> เพิ่มข้อมูลการจ้าง </span>
</q-toolbar-title>
<q-btn for="closeDialog" icon="close" unelevated round dense style="color: #eb0505; background-color: #ffdede"
@click="colsePopup" />
<q-btn
for="closeDialog"
icon="close"
unelevated
round
dense
style="color: #eb0505; background-color: #ffdede"
@click="colsePopup"
/>
</q-toolbar>
<q-separator />
<form @submit.prevent="validateForm">
<q-card-section class="q-pt-none">
<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">
<datepicker menu-class-name="modalfix" v-model="formData.dateEmployment" :locale="'th'" autoApply
borderless :enableTimePicker="false" week-start="0">
<datepicker
menu-class-name="modalfix"
v-model="formData.dateEmployment"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
@ -398,13 +478,26 @@ const paginationHis = ref({
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input for="inputdateEmployment" ref="dateEmploymentRef" outlined dense
class="full-width datepicker" :model-value="formData.dateEmployment != null
<q-input
for="inputdateEmployment"
ref="dateEmploymentRef"
outlined
dense
class="full-width datepicker"
:model-value="
formData.dateEmployment != null
? date2Thai(formData.dateEmployment)
: null
" label="นทาง" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่จ้าง'}`]" lazy-rules>
"
label="วันที่จ้าง"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่จ้าง'}`]"
>
<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>
</template>
</q-input>
@ -413,9 +506,16 @@ const paginationHis = ref({
</div>
<div class="col-xs-12 col-sm-6">
<q-input for="inputOrderEmployment" ref="orderEmploymentRef" dense outlined
v-model="formData.orderEmployment" label="คำสั่งจ้าง"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งจ้าง'}`]" lazy-rules />
<q-input
for="inputOrderEmployment"
ref="orderEmploymentRef"
dense
outlined
v-model="formData.orderEmployment"
label="คำสั่งจ้าง"
:rules="[(val) => !!val || `${'กรุณากรอกคำสั่งจ้าง'}`]"
lazy-rules
/>
</div>
</div>
</div>
@ -425,8 +525,16 @@ const paginationHis = ref({
</q-card-section>
<q-separator />
<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"
type="submit"><q-tooltip>บทกขอม</q-tooltip></q-btn>
<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>
</form>
</q-card>
@ -438,8 +546,15 @@ const paginationHis = ref({
<q-toolbar-title class="text-subtitle1 text-weight-bold">
<span style="margin-right: 0"> ประวอมลการจาง </span>
</q-toolbar-title>
<q-btn for="closeDialog" icon="close" unelevated round dense style="color: #eb0505; background-color: #ffdede"
@click="colsePopup" />
<q-btn
for="closeDialog"
icon="close"
unelevated
round
dense
style="color: #eb0505; background-color: #ffdede"
@click="colsePopup"
/>
</q-toolbar>
<q-separator />
@ -447,16 +562,44 @@ const paginationHis = ref({
<q-toolbar class="q-pa-none">
<q-space />
<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
:display-value="$q.lang.table.columns" emit-value map-options :options="columnsHis" option-value="name"
options-cover style="min-width: 150px" />
<q-select
v-model="visibleColumnsHis"
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>
</q-toolbar>
<d-table flat bordered id="table" ref="table" :columns="columnsHis" :rows="rowsHis" :filter="filterHis"
row-key="dateEmployment" :paging="true" dense :visible-columns="visibleColumnsHis"
v-model:pagination="paginationHis">
<d-table
flat
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">
<q-tr :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 mixin = useCounterMixin();
const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader ,dialogConfirm} =
mixin;
const {
date2Thai,
success,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
const route = useRoute();
const id = ref<string>("");
const certificateNo = ref<string>();
@ -326,10 +333,10 @@ const clickAdd = async () => {
* กดบนทกใน dialog
*/
const clickSave = () => {
dialogConfirm($q,() => SaveData())
}
dialogConfirm($q, () => SaveData());
};
const SaveData = async () => {
await myForm.value?.validate().then(async (result: boolean) => {
await myForm.value?.validate().then(async (result: boolean) => {
if (result) {
if (modalEdit.value) {
await editData();
@ -638,9 +645,7 @@ const getClass = (val: boolean) => {
/>
<q-separator />
<q-card-section class="q-p-sm">
<div
class="row col-12 q-col-gutter-x-xs q-col-gutter-y-xs"
>
<div 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">
<q-input
:class="getClass(edit)"
@ -708,7 +713,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)"
:outlined="edit"
dense
lazy-rules
:borderless="!edit"
:model-value="date2Thai(issueDate)"
:rules="[
@ -754,7 +758,6 @@ const getClass = (val: boolean) => {
:class="getClass(edit)"
:outlined="edit"
dense
lazy-rules
:borderless="!edit"
:model-value="date2Thai(expireDate)"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่หมดอายุ'}`]"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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