ปรับฟอร์มลา

This commit is contained in:
Warunee Tamkoo 2024-01-05 14:30:28 +07:00
parent 4ce525522b
commit 6bf4bdebaa
16 changed files with 217 additions and 175 deletions

View file

@ -90,7 +90,6 @@ const fetchlistInbox = async () => {
.get(config.API.msgInbox)
.then((res) => {
let data = res.data.result;
console.log(data);
let listItem: any = [];
data.map((e: any) => {
listItem.push({

View file

@ -41,7 +41,7 @@ const props = defineProps({
onConfirm: {
type: Function,
default: () => "",
}
},
});
/** ข้อมูล v-model ของฟอร์ม */
@ -148,7 +148,7 @@ function onValidate() {
* @param formData
*/
const isLeave = ref<boolean>(true);
async function FetchCheck() {
async function fetchCheck() {
await http
.post(config.API.leaveCheck(), {
type: dataStore.typeId ?? null,
@ -211,7 +211,6 @@ onMounted(() => {
formDataSick.leaveDetail = props.data.leaveDetail;
// formDataSick.leaveDocument = props.data.leaveDocument;
formDataSick.leaveAddress = props.data.leaveAddress;
formDataSick.leaveAddress = props.data.leaveAddress;
}
});
</script>
@ -322,7 +321,7 @@ onMounted(() => {
:enableTimePicker="false"
week-start="0"
:readonly="!formDataSick.leaveStartDate"
@update:model-value="FetchCheck(), isReadOnly"
@update:model-value="fetchCheck(), isReadOnly"
:min-date="formDataSick.leaveStartDate"
>
<template #year="{ year }">
@ -437,6 +436,7 @@ onMounted(() => {
/>
<div class="full-width">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file
for="leaveDocumentRef"
v-model="formDataSick.leaveDocument"
@ -445,6 +445,7 @@ onMounted(() => {
outlined
use-chips
bg-color="white"
class="col-12 q-pl-sm col-12"
>
<template v-slot:prepend>
@ -484,6 +485,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -147,6 +147,7 @@ onMounted(() => {
formDataBirth.leaveEndDate = props.data.leaveEndDate;
formDataBirth.leaveTotal = props.data.leaveTotal;
formDataBirth.leaveNumber = props.data.leaveNumber;
formDataBirth.leaveAddress = props.data.leaveAddress;
formDataBirth.leaveDetail = props.data.leaveDetail;
// formDataBirth.leaveDocument = props.data.leaveDocument;
}
@ -348,6 +349,7 @@ onMounted(() => {
:readonly="!edit"
/>
<!-- multiple -->
<q-file
for="leaveDocumentRef"
hide-bottom-space
@ -358,7 +360,7 @@ onMounted(() => {
label="เอกสารประกอบ"
outlined
use-chips
multiple
class="q-pl-sm col-12"
>
<template v-slot:prepend>
@ -397,6 +399,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -184,6 +184,7 @@ onMounted(() => {
formDataHelpWife.leaveEndDate = props.data.leaveEndDate;
formDataHelpWife.leaveTotal = props.data.leaveTotal;
formDataHelpWife.leaveNumber = props.data.leaveNumber;
formDataHelpWife.leaveAddress = props.data.leaveAddress;
formDataHelpWife.leaveDetail = props.data.leaveDetail;
// formDataHelpWife.leaveDocument = props.data.leaveDocument;
}
@ -435,6 +436,7 @@ onMounted(() => {
:readonly="!edit"
/>
<!-- multiple -->
<q-file
bg-color="white"
ref="leaveDocumentRef"
@ -444,7 +446,7 @@ onMounted(() => {
label="เอกสารประกอบ"
outlined
use-chips
multiple
class="q-pl-sm col-12"
>
<template v-slot:prepend>
@ -482,6 +484,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -193,6 +193,7 @@ onMounted(() => {
formDataVacation.leaveEndDate = props.data.leaveEndDate;
formDataVacation.leaveTotal = props.data.leaveTotal;
formDataVacation.leaveNumber = props.data.leaveNumber;
formDataVacation.leaveAddress = props.data.leaveAddress;
formDataVacation.leaveDetail = props.data.leaveDetail;
// formDataVacation.leaveDocument = props.data.leaveDocument;
}
@ -264,7 +265,7 @@ onMounted(() => {
hide-bottom-space
bg-color="white"
outlined
v-model="dataStore.leaveRemain"
v-model="dataStore.restDayCurrentTotal"
label="จำนวนวันลาพักผ่อนประจำปีปัจจุบัน"
/>
@ -429,6 +430,7 @@ onMounted(() => {
:readonly="!edit"
/>
<!-- multiple -->
<q-file
ref="leaveDocumentRef"
bg-color="white"
@ -438,7 +440,7 @@ onMounted(() => {
label="เอกสารประกอบ"
outlined
use-chips
multiple
class="q-pl-sm col-12"
>
<template v-slot:prepend>
@ -476,6 +478,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -60,12 +60,12 @@ const leaveDocumentRef = ref<object | null>(null);
const formDataOrdination = reactive<any>({
type: dataStore.typeId,
leaveWrote: "",
leavegovernmentDate: new Date(),
leavebirthDate: new Date(),
leavegovernmentDate: null,
leavebirthDate: null,
leaveStartDate: null,
leaveEndDate: null,
totalLeave: new Date(),
ordainDayOrdination: new Date(),
totalLeave: 0,
ordainDayOrdination: null,
ordainDayLocationName: "",
ordainDayLocationNumber: null,
ordainDayLocationAddress: "",
@ -78,8 +78,8 @@ const formDataOrdination = reactive<any>({
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
const formRef: OrdinationForm = {
leaveWrote: leaveWroteRef,
leavegovernmentDate: leavegovernmentDateRef,
leavebirthDate: leavebirthDateRef,
// leavegovernmentDate: leavegovernmentDateRef,
// leavebirthDate: leavebirthDateRef,
leaveStartDate: leaveStartDateRef,
leaveEndDate: leaveEndDateRef,
totalLeave: totalLeaveRef,
@ -156,14 +156,6 @@ function onValidate() {
formData.append("ordainDayStatus", formDataOrdination.ordainDayStatus);
formData.append("leaveWrote", formDataOrdination.leaveWrote);
formData.append("leaveDetail", formDataOrdination.leaveDetail);
formData.append(
"leavebirthDate",
dateToISO(formDataOrdination.leavebirthDate)
);
formData.append(
"leavegovernmentDate",
dateToISO(formDataOrdination.leavegovernmentDate)
);
props.onSubmit(formData);
}
}
@ -212,7 +204,7 @@ onMounted(() => {
formDataOrdination.leaveWrote = props.data.leaveWrote;
formDataOrdination.leaveStartDate = props.data.leaveStartDate;
formDataOrdination.leaveEndDate = props.data.leaveEndDate;
formDataOrdination.totalLeave = props.data.leaveTotal;
formDataOrdination.leaveTotal = props.data.leaveTotal;
formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination;
formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName;
formDataOrdination.ordainDayLocationNumber =
@ -384,14 +376,11 @@ onMounted(() => {
readonly
class="full-width"
:model-value="
formDataOrdination.leavegovernmentDate != null
? date2Thai(formDataOrdination.leavegovernmentDate)
dataStore.dateAppoint != null
? date2Thai(dataStore.dateAppoint)
: null
"
:label="`${'วันที่เข้ารับราชการ'}`"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่เข้ารับราชการ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -432,12 +421,11 @@ onMounted(() => {
readonly
class="full-width"
:model-value="
formDataOrdination.leavebirthDate != null
? date2Thai(formDataOrdination.leavebirthDate)
dataStore.birthDate != null
? date2Thai(dataStore.birthDate)
: null
"
:label="`${'วันเดือนปีเกิด'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกวันเดือนปีเกิด'}`]"
>
<template v-slot:prepend>
<q-icon
@ -459,14 +447,14 @@ onMounted(() => {
<div class="col-12">
<q-radio
v-model="formDataOrdination.ordainDayStatus"
val="true"
:val="true"
label="เคยบวช"
checked-icon="task_alt "
hide-bottom-space
/>
<q-radio
v-model="formDataOrdination.ordainDayStatus"
val="false"
:val="false"
label="ไม่เคยบวช"
checked-icon="task_alt"
hide-bottom-space
@ -600,7 +588,8 @@ onMounted(() => {
:readonly="!edit"
/>
<div class="col-12 col-sm-6">
<div class="col-12">
<!-- multiple -->
<q-file
ref="leaveDocumentRef"
v-model="formDataOrdination.leaveDocument"
@ -609,7 +598,6 @@ onMounted(() => {
label="เอกสารประกอบ"
outlined
bg-color="white"
multiple
use-chips
>
<template v-slot:prepend>
@ -646,6 +634,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -52,10 +52,10 @@ const props = defineProps({
const formDataHaji = reactive<any>({
type: dataStore.typeId,
leaveWrote: "",
leavegovernmentDate: new Date(),
leavegovernmentDate: null,
leaveStartDate: null,
leaveEndDate: null,
totalLeave: new Date(),
totalLeave: null,
hajjDayStatus: "true",
leaveDocument: null,
});
@ -106,11 +106,7 @@ function onValidate() {
formData.append("hajjDayStatus", formDataHaji.hajjDayStatus);
formData.append("leaveWrote", formDataHaji.leaveWrote);
formData.append("leaveDetail", formDataHaji.leaveDetail);
formData.append(
"leavegovernmentDate",
dateToISO(formDataHaji.leavegovernmentDate)
);
props.onSubmit(FormData);
props.onSubmit(formData);
}
}
@ -156,7 +152,7 @@ function updateLeaveTotal() {
onMounted(() => {
if (props.data) {
formDataHaji.leaveWrote = props.data.leaveWrote;
formDataHaji.leavegovernmentDate = props.data.leavegovernmentDate;
formDataHaji.leaveTotal = props.data.leaveTotal;
formDataHaji.leaveStartDate = props.data.leaveStartDate;
formDataHaji.leaveEndDate = props.data.leaveEndDate;
formDataHaji.totalLeave = props.data.totalLeave;
@ -296,7 +292,6 @@ onMounted(() => {
hide-bottom-space
/>
<datepicker
v-model="formDataHaji.leavegovernmentDate"
class="col-12 col-md-4 col-sm-6"
menu-class-name="modalfix"
autoApply
@ -323,8 +318,8 @@ onMounted(() => {
hide-bottom-space
:label="`${'วันที่เข้ารับราชการ'}`"
:model-value="
formDataHaji.leavegovernmentDate != null
? date2Thai(formDataHaji.leavegovernmentDate)
dataStore.dateAppoint != null
? date2Thai(dataStore.dateAppoint)
: null
"
:rules="[
@ -351,13 +346,13 @@ onMounted(() => {
<div class="col-12">
<q-radio
v-model="formDataHaji.hajjDayStatus"
val="true"
:val="true"
checked-icon="task_alt"
label="เคย"
/>
<q-radio
v-model="formDataHaji.hajjDayStatus"
val="false"
:val="false"
checked-icon="task_alt"
label="ไม่เคยไปประกอบพิธีฮัจญ์"
/>
@ -373,7 +368,8 @@ onMounted(() => {
label="รายละเอียด"
/>
<div class="col-12 col-sm-6">
<div class="col-12">
<!-- multiple -->
<q-file
v-model="formDataHaji.leaveDocument"
bg-color="white"
@ -382,7 +378,7 @@ onMounted(() => {
@added="fileUploadDoc"
dense
outlined
multiple
hide-bottom-space
>
<template v-slot:prepend>
@ -417,6 +413,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -424,14 +424,15 @@ onMounted(() => {
label="รายละเอียด"
/>
<div class="col-12 col-sm-6">
<div class="col-12">
<!-- multiple -->
<q-file
v-model="formDataMilitary.leaveDocument"
dense
label="เอกสารประกอบ"
outlined
bg-color="white"
multiple
hide-bottom-space
use-chips
@added="fileUploadDoc"
@ -468,6 +469,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -136,7 +136,6 @@ function onValidate() {
"leavegovernmentDate",
dateToISO(formDataStudy.leavegovernmentDate)
);
formData.append("leavebirthDate", dateToISO(formDataStudy.leavebirthDate));
formData.append(
"studyDayUniversityName",
formDataStudy.studyDayUniversityName
@ -167,9 +166,8 @@ async function FetchCheck() {
const data = res.data.result;
isLeave.value = data.isLeave;
if (data.isLeave === true) {
formDataStudy.leaveTotal =
data.fetchCheck - data.sumDateWork - data.sumDateHoliday;
// formDataStudy.leaveLast = data.fetchCheck
// formDataStudy.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday;
formDataStudy.leaveTotal = data.totalDate;
} else {
fails($q, "ไม่สามารถลาได้");
}
@ -191,35 +189,26 @@ function updateLeaveTotal() {
console.log("test");
}
/**
* แปลงตวเลขเงนเดอน
*/
const formattedleaveSalary = computed(() => {
return dataStore.salary !== null
? dataStore.salary.toLocaleString("th-TH")
: "";
});
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
formDataMilitary.leaveWrote = props.data.leaveWrote;
formDataMilitary.leaveStartDate = props.data.leaveStartDate;
formDataMilitary.leaveEndDate = props.data.leaveEndDate;
formDataMilitary.leaveTotal = props.data.leaveTotal;
formDataMilitary.leavebirthDate = props.data.leavebirthDate;
formDataMilitary.leavegovernmentDate = props.data.leavegovernmentDate;
formDataMilitary.leaveSalary = props.data.leaveSalary;
formDataMilitary.leaveSalaryText = props.data.leaveSalaryText;
formDataMilitary.leaveNumber = props.data.leaveNumber;
formDataMilitary.leaveAddress = props.data.leaveAddress;
formDataMilitary.studyDayScholarship = props.data.studyDayScholarship;
formDataMilitary.studyDayCountry = props.data.studyDayCountry;
formDataMilitary.studyDayUniversityName = props.data.studyDayUniversityName;
formDataMilitary.studyDayDegreeLevel = props.data.studyDayDegreeLevel;
formDataMilitary.studyDaySubject = props.data.studyDaySubject;
// formDataMilitary.leaveDocument = props.data.leaveDocument;
formDataMilitary.leaveDetail = props.data.leaveDetail;
formDataStudy.leaveWrote = props.data.leaveWrote;
formDataStudy.leaveStartDate = props.data.leaveStartDate;
formDataStudy.leaveEndDate = props.data.leaveEndDate;
formDataStudy.leaveTotal = props.data.leaveTotal;
formDataStudy.leavebirthDate = props.data.leavebirthDate;
formDataStudy.leavegovernmentDate = props.data.leavegovernmentDate;
formDataStudy.leaveSalary = props.data.leaveSalary;
formDataStudy.leaveSalaryText = props.data.leaveSalaryText;
formDataStudy.leaveNumber = props.data.leaveNumber;
formDataStudy.leaveAddress = props.data.leaveAddress;
formDataStudy.studyDayScholarship = props.data.studyDayScholarship;
formDataStudy.studyDayCountry = props.data.studyDayCountry;
formDataStudy.studyDayUniversityName = props.data.studyDayUniversityName;
formDataStudy.studyDayDegreeLevel = props.data.studyDayDegreeLevel;
formDataStudy.studyDaySubject = props.data.studyDaySubject;
// formDataStudy.leaveDocument = props.data.leaveDocument;
formDataStudy.leaveDetail = props.data.leaveDetail;
}
});
</script>
@ -355,7 +344,6 @@ onMounted(() => {
<div class="full-width">
<div class="q-col-gutter-sm row">
<datepicker
v-model="formDataStudy.leavegovernmentDate"
class="col-12 col-md-3 col-sm-6"
menu-class-name="modalfix"
autoApply
@ -403,7 +391,6 @@ onMounted(() => {
</datepicker>
<datepicker
v-model="formDataStudy.leavebirthDate"
class="col-12 col-md-3 col-sm-6"
menu-class-name="modalfix"
autoApply
@ -449,7 +436,7 @@ onMounted(() => {
</datepicker>
<q-input
v-model="formattedleaveSalary"
:model-value="dataStore.salary"
ref="leaveSalaryRef"
class="col-12 col-sm-6 col-md-3"
bg-color="white"
@ -460,7 +447,7 @@ onMounted(() => {
/>
<q-input
v-model="dataStore.salaryText"
:model-value="dataStore.salaryText"
ref="leaveSalaryRef"
class="col-12 col-sm-6 col-md-3"
bg-color="white"
@ -578,13 +565,13 @@ onMounted(() => {
label="รายละเอียด"
/>
<div class="col-12 col-sm-6">
<div class="col-12">
<!-- multiple -->
<q-file
v-model="formDataStudy.leaveDocument"
bg-color="white"
dense
outlined
multiple
use-chips
@added="fileUploadDoc"
label="เอกสารประกอบ"
@ -621,6 +608,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -165,7 +165,7 @@ async function FetchCheck() {
isLeave.value = data.isLeave;
if (data.isLeave === true) {
// formDataTrain.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataTrain.leaveTotal = data.totalDate
formDataTrain.leaveTotal = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้");
}
@ -202,6 +202,7 @@ onMounted(() => {
formDataTrain.leaveWrote = props.data.leaveWrote;
formDataTrain.leaveStartDate = props.data.leaveStartDate;
formDataTrain.leaveEndDate = props.data.leaveEndDate;
formDataTrain.leaveTotal = props.data.leaveTotal;
formDataTrain.leavebirthDate = props.data.leavebirthDate;
formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate;
formDataTrain.leaveSalary = props.data.leaveSalary;
@ -556,13 +557,14 @@ onMounted(() => {
label="รายละเอียด"
/>
<div class="col-12 col-sm-6">
<div class="col-12">
<!-- multiple -->
<q-file
v-model="formDataTrain.leaveDocument"
bg-color="white"
dense
outlined
multiple
label="เอกสารประกอบ"
>
<template v-slot:prepend>
@ -597,6 +599,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -43,7 +43,7 @@ const formDataWorkInternational = reactive<any>({
leaveEndDate: null,
leaveDetail: "",
leaveDocument: null,
leaveDraftDocument: null,
leaveDraftDocument: [],
});
/** ตัวแปร ref สำหรับแสดง validate */
@ -87,16 +87,17 @@ function onValidate() {
// Validate
if (hasError.every((result) => result === true)) {
const formData = new FormData();
// //
// if (formDataWorkInternational.leaveDocument.length > 0) {
// const blob = formDataWorkInternational.leaveDocument.slice(0, formDataWorkInternational.leaveDocument[0].size)
// const newFile = new File(blob, nameFile.value, {
// type: formDataWorkInternational.leaveDocument[0].type,
// })
// formData.append("leaveDocument", newFile)
// }
if (formDataWorkInternational.leaveDocument) {
// //
// if (formDataWorkInternational.leaveDocument.length > 0) {
// const blob = formDataWorkInternational.leaveDocument.slice(0, formDataWorkInternational.leaveDocument[0].size)
// const newFile = new File(blob, nameFile.value, {
// type: formDataWorkInternational.leaveDocument[0].type,
// })
// formData.append("leaveDocument", newFile)
// }
formData.append("leaveDocument", formDataWorkInternational.leaveDocument);
}
@ -117,7 +118,7 @@ function onValidate() {
); //
formData.append("leaveWrote", formDataWorkInternational.leaveWrote); //
formData.append("leaveDetail", formDataWorkInternational.leaveDetail); //
props.onSubmit(FormData);
props.onSubmit(formData);
}
}
@ -435,6 +436,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -609,6 +609,7 @@ onMounted(() => {
:readonly="!edit"
/>
<!-- multiple -->
<q-file
ref="fileRef"
bg-color="white"
@ -618,7 +619,7 @@ onMounted(() => {
label="เอกสารประกอบ"
outlined
use-chips
multiple
class="q-pl-sm col-12"
>
<template v-slot:prepend>
@ -656,6 +657,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -73,26 +73,26 @@ function onValidate() {
}
if (hasError.every((result) => result === true)) {
const formData = new FormData();
// if (formDataRehabilitation.leaveDraftDocument.length > 0) {
// const blobDrafe = formDataRehabilitation.leaveDraftDocument.slice(0, formDataRehabilitation.leaveDraftDocument[0].size)
// const newFileDraft = new File(blobDrafe, nameFileDraft.value, {
// type: formDataRehabilitation.leaveDraftDocument[0].type,
// })
// formData.append("leaveDraftDocument", newFileDraft) //
// }
// if (formDataRehabilitation.leaveDocument.length > 0) {
// const blob = formDataRehabilitation.leaveDocument.slice(0, formDataRehabilitation.leaveDocument[0].size)
// const newFile = new File(blob, nameFile.value, {
// type: formDataRehabilitation.leaveDocument[0].type,
// })
// formData.append("leaveDocument", newFile)
// } //
formData.append(
"leaveDraftDocument",
formDataRehabilitation.leaveDraftDocument
);
formData.append("leaveDocument", formDataRehabilitation.leaveDocument);
if (formDataRehabilitation.leaveDocument) {
// if (formDataRehabilitation.leaveDocument.length > 0) {
// const blob = formDataRehabilitation.leaveDocument.slice(0, formDataRehabilitation.leaveDocument[0].size)
// const newFile = new File(blob, nameFile.value, {
// type: formDataRehabilitation.leaveDocument[0].type,
// })
// formData.append("leaveDocument", newFile)
// } //
formData.append("leaveDocument", formDataRehabilitation.leaveDocument);
}
if (formDataRehabilitation.leaveDraftDocument) {
formData.append(
"leaveDraftDocument",
formDataRehabilitation.leaveDraftDocument
);
}
formData.append("type", formDataRehabilitation.type); //
formData.append(
"leaveStartDate",
@ -303,6 +303,7 @@ onMounted(() => {
/>
<div class="col-12 col-sm-6">
<!-- multiple -->
<q-file
v-model="formDataRehabilitation.leaveDocument"
@added="fileUploadDoc"
@ -310,7 +311,7 @@ onMounted(() => {
bg-color="white"
dense
outlined
multiple
label="เอกสารประกอบ"
>
<template v-slot:prepend>
@ -388,7 +389,6 @@ onMounted(() => {
label="แบบฟอร์ม"
outlined
bg-color="white"
multiple
accept="application/pdf"
>
<template v-slot:prepend>
@ -411,6 +411,7 @@ onMounted(() => {
<div class="row col-12 q-pt-md">
<q-space />
<q-btn
v-if="!props.data || props.data.status == 'DRAFT'"
id="onSubmit"
type="submit"
unelevated

View file

@ -136,16 +136,14 @@ export const useLeaveStore = defineStore("Leave", () => {
/** รายการประเภทการลาของ ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน*/
const optionsSpecific = ref<OptionData[]>([
{ id: "s0", name: "ลาไปศึกษาต่อ", code: "s0" },
{ id: "s1", name: "ลาฝึกอบรม", code: "s1" },
{ id: "s2", name: "ลาปฎิบัติการวิจัย", code: "s2" },
{ id: "s3", name: "ลาดูงาน", code: "s3" },
{ id: "s1", name: "ลาไปศึกษาต่อ", code: "s1" },
{ id: "s2", name: "ลาฝึกอบรม/ปฎิบัติการวิจัย/ดูงาน", code: "s2" },
]);
/** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/
const optionsOrdination = ref<OptionData[]>([
{ id: 'b1', name: "ลาอุปสมบท", code: 'b1' },
{ id: 'b2', name: "ลาประกอบพิธีฮัจญ์", code: 'b2' },
{ id: "b1", name: "ลาอุปสมบท", code: "b1" },
{ id: "b2", name: "ลาประกอบพิธีฮัจญ์", code: "b2" },
]);
/** data table filter & column ของรายการลา */
@ -202,13 +200,13 @@ export const useLeaveStore = defineStore("Leave", () => {
*/
function typeConvert(item: string, subitem: any) {
// console.log('first',item)
if (item !== "LV-006" && item !== "LV-008") {
typeLeave.value = convertSubtitle(item);
} else if (item === "LV-006") {
typeLeave.value = convertSubtitleInfo(subitem);
} else if (item === "LV-008") {
typeLeave.value = convertSubtitleInfo2(subitem);
}
// if (item !== "LV-006" && item !== "LV-008") {
typeLeave.value = convertSubtitle(item);
// } else if (item === "LV-006") {
// typeLeave.value = convertSubtitleInfo(subitem);
// } else if (item === "LV-008") {
// typeLeave.value = convertSubtitleInfo2(subitem);
// }
typeId.value = convertId(item);
}
@ -288,9 +286,12 @@ export const useLeaveStore = defineStore("Leave", () => {
restDayTotalOld.value = data.restDayTotalOld;
birthDate.value = data.birthDate;
dateAppoint.value = data.dateAppoint;
salary.value = data.salary;
salary.value = data.salary ? data.salary.toLocaleString("th-TH") : "";
salaryText.value = data.salaryText;
leaveLast.value = data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-";
leaveLast.value =
data.leaveLast != "0001-01-01T00:00:00"
? date2Thai(data.leaveLast)
: "-";
restDayCurrentTotal.value = data.restDayCurrentTotal;
})
.catch((e: any) => {
@ -299,6 +300,23 @@ export const useLeaveStore = defineStore("Leave", () => {
}
async function fetchProfileOld(data: any) {
await http
.post(config.API.leaveProfile(), { type: typeId.value })
.then((res: any) => {
const data = res.data.result;
leaveLimit.value = data.leaveLimit;
leaveTotal.value = data.leaveTotal;
leaveRemain.value = data.leaveRemain;
restDayTotalOld.value = data.restDayTotalOld; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
birthDate.value = data.birthDate; // วันเกิด
dateAppoint.value = data.dateAppoint; // วันที่รับราชการ
salary.value = data.salary ? data.salary.toLocaleString("th-TH") : "";
salaryText.value = data.salaryText;
})
.catch((e: any) => {
messageError($q, e);
});
dateSendLeave.value = data.dateSendLeave;
typeLeave.value = data.leaveTypeName;
dear.value = data.dear;
@ -306,15 +324,8 @@ export const useLeaveStore = defineStore("Leave", () => {
positionName.value = data.positionName;
positionLevelName.value = data.positionLevelName;
organizationName.value = data.organizationName;
leaveLimit.value = data.leaveLimit;
leaveTotal.value = data.leaveTotal;
leaveRemain.value = data.leaveRemain;
restDayTotalOld.value = data.restDayTotalOld;
birthDate.value = data.birthDate;
dateAppoint.value = data.dateAppoint;
salary.value = data.salary;
salaryText.value = data.salaryText;
leaveLast.value = data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-";
leaveLast.value =
data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-";
restDayCurrentTotal.value = data.restDayCurrentTotal;
}

View file

@ -61,8 +61,10 @@ function onSubmit(postData: FormData) {
dialogConfirm($q, async () => {
showLoader();
await http
.put(config.API.leaveUser(), postData)
.post(config.API.leaveUser(), postData)
.then(() => {
// router.push(`/leave/edit/${id}`);
router.push("/leave");
success($q, "บันทึกสำเร็จ");
})
.catch((e: any) => {
@ -200,14 +202,14 @@ onMounted(async () => {
:on-submit="onSubmit"
/>
<StudyForm
v-if="model === 'LV-008' && modelSpecific === 's0'"
v-if="model === 'LV-008' && modelSpecific === 's1'"
style="width: 100%"
:on-submit="onSubmit"
/>
<TrainForm
v-if="
model === 'LV-008' &&
modelSpecific != 's0' &&
modelSpecific != 's1' &&
modelSpecific != ''
"
:on-submit="onSubmit"

View file

@ -115,6 +115,8 @@ async function fetchDataDetail(id: string) {
.then(async (res) => {
const data = await res.data.result;
dataStore.typeId = data.leaveTypeId;
titleName.value = data.fullName ?? "-";
formData.id = data.id ?? "-";
formData.leaveTypeName = data.leaveTypeName ?? "-";
@ -150,7 +152,7 @@ async function fetchDataDetail(id: string) {
data.wifeDayDateBorn && date2Thai(data.wifeDayDateBorn);
formData.restDayOldTotal = data.restDayOldTotal ?? "-";
formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-";
formData.ordainDayStatus = data.ordainDayStatus ? "เคย" : "ไม่เคยบวช";
formData.ordainDayStatus = data.ordainDayStatus;
formData.ordainDayLocationName = data.ordainDayLocationName ?? "-";
formData.ordainDayLocationAddress = data.ordainDayLocationAddress ?? "-";
formData.ordainDayLocationNumber = data.ordainDayLocationNumber ?? "-";
@ -160,9 +162,7 @@ async function fetchDataDetail(id: string) {
data.ordainDayBuddhistLentName ?? "-";
formData.ordainDayBuddhistLentAddress =
data.ordainDayBuddhistLentAddress ?? "-";
formData.hajjDayStatus = data.hajjDayStatus
? "เคย"
: "ไม่เคยไปประกอบพิธีฮัจญ์";
formData.hajjDayStatus = data.hajjDayStatus;
formData.absentDaySummon = data.absentDaySummon ?? "-";
formData.absentDayLocation = data.absentDayLocation ?? "-";
formData.absentDayRegistorDate =
@ -195,7 +195,6 @@ async function fetchDataDetail(id: string) {
// checkLeaveType(formData.leaveTypeId, formData.leaveTypeName)
dataStore.fetchProfileOld(data);
dataStore.typeId = formData.leaveTypeId;
})
.catch((err) => {
messageError($q, err);
@ -216,18 +215,14 @@ const modelSpecific = computed(() => {
(x) => x.id == formData.leaveTypeId
)?.code;
if (code == "LV-006" && formData.leaveTypeName == 'ลาอุปสมบท') {
return "b0";
} else if (code == "LV-006" && formData.leaveTypeName == 'ลาประกอบพิธีฮัจญ์') {
if (code == "LV-006" && formData.ordainDayLocationName != "") {
return "b1";
} else if (code == "LV-008" && formData.leaveTypeName == 'ลาไปศึกษาต่อ') {
return "s0";
} else if (code == "LV-008" && formData.leaveTypeName == 'ลาฝึกอบรม') {
} else if (code == "LV-006" && formData.ordainDayLocationName == "") {
return "b2";
} else if (code == "LV-008" && formData.studyDayTrainingSubject == "") {
return "s1";
} else if (code == "LV-008" && formData.leaveTypeName == 'ลาปฎิบัติการวิจัย') {
} else if (code == "LV-008" && formData.studyDayTrainingSubject != "") {
return "s2";
} else if (code == "LV-008" && formData.leaveTypeName == 'ลาดูงาน') {
return "s3";
} else {
return "";
}
@ -237,7 +232,8 @@ function onSubmit(postData: FormData) {
dialogConfirm($q, async () => {
showLoader();
await http
.put(config.API.leaveUser() + "/" + formData.id, postData)
.post(config.API.leaveUser(), postData)
// .put(config.API.leaveUser() + "/" + formData.id, postData)
.then(() => {
success($q, "บันทึกสำเร็จ");
})
@ -250,6 +246,28 @@ function onSubmit(postData: FormData) {
});
}
function onConfirm(id: string) {
dialogConfirm(
$q,
async () => {
// showLoader();
// await http
// .post(config.API.leaveUser() + "/" + id)
// .then(() => {
// success($q, "");
// })
// .catch((e: any) => {
// messageError($q, e);
// })
// .finally(() => {
// hideLoader();
// });
},
"ยืนยันการยื่นใบลา",
"หากยืนยันแล้วจะไม่สามารถกลับมาแก้ไขได้ ต้องการยืนยันการยื่นใบลานี้ใช่หรือไม่"
);
}
/**
* เรยกใชงาน fetchData เพอดงขอม
*/
@ -272,7 +290,10 @@ onMounted(() => {
color="primary"
class="q-mr-sm"
/>
<div>แกไขขอมลการ{{ formData.leaveTypeName }} {{ leaveId }}</div>
<div>
แกไขใบลา
<!-- {{ formData.leaveTypeName }} {{ leaveId }} -->
</div>
</div>
<q-form ref="myform" class="col-12">
<q-card bordered>
@ -291,8 +312,9 @@ onMounted(() => {
<div class="q-py-sm q-px-lg">
<div class="row">
<q-select
readonly
dense
class="col-12 col-sm-6 col-md-4 inputgreen"
class="col-12 col-sm-6 col-md-4"
outlined
v-model="formData.leaveTypeName"
option-value="code"
@ -308,6 +330,7 @@ onMounted(() => {
v-if="model === 'LV-006' || model === 'LV-008'"
>
<q-select
readonly
dense
outlined
v-model="modelSpecific"
@ -352,67 +375,79 @@ onMounted(() => {
v-if="model === 'LV-001' || model === 'LV-002'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<FormBirth
v-if="model === 'LV-003'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<HelpWifeBirthForm
v-if="model === 'LV-004'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<VacationForm
v-if="model === 'LV-005'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<OrdinationForm
v-if="model === 'LV-006' && modelSpecific === 'b0'"
:data="formData"
:on-submit="onSubmit"
/>
<HajjForm
v-if="model === 'LV-006' && modelSpecific === 'b1'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<HajjForm
v-if="model === 'LV-006' && modelSpecific === 'b2'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<MilitaryForm
v-if="model === 'LV-007'"
style="width: 100%"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<StudyForm
v-if="model === 'LV-008' && modelSpecific === 's0'"
v-if="model === 'LV-008' && modelSpecific === 's1'"
style="width: 100%"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<TrainForm
v-if="
model === 'LV-008' &&
modelSpecific != 's0' &&
modelSpecific != 's1' &&
modelSpecific != ''
"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<WorkInternationalForm
v-if="model === 'LV-009'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<FollowSpouseForm
v-if="model === 'LV-010'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
<RehabilitationForm
v-if="model === 'LV-011'"
:data="formData"
:on-submit="onSubmit"
:on-confirm="onConfirm"
/>
</div>
</div>