เพิ่ม api รายการลา || หน้ารายการลา

This commit is contained in:
AnandaTon 2023-12-14 16:23:32 +07:00
parent 2fe53dd931
commit b29fe788b7
4 changed files with 893 additions and 864 deletions

View file

@ -1,247 +1,241 @@
<script setup lang="ts">
import { ref, reactive, watch } from "vue";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";
import { ref, reactive, watch } from "vue"
import { useQuasar } from "quasar"
import http from "@/plugins/http"
import config from "@/app.config"
/** import type*/
import type {
FremDetail,
FormDelete,
FormDeleteRef,
} from "@/modules/05_leave/interface/response/leave";
import type { FremDetail, FormDelete, FormDeleteRef, FromCancelDetail } from "@/modules/05_leave/interface/response/leave"
/** import componest*/
import FormLeave from "@/modules/05_leave/components/formDetail/formLeave.vue";
import FormChildbirth from "@/modules/05_leave/components/formDetail/formChildbirth.vue";
import FormHoliday from "@/modules/05_leave/components/formDetail/formHoliday.vue";
import FormUpasom from "@/modules/05_leave/components/formDetail/formUpasom.vue";
import FormHajj from "@/modules/05_leave/components/formDetail/formHajj.vue";
import FormCheckSelect from "@/modules/05_leave/components/formDetail/formCheckSelect.vue";
import FormStudy from "@/modules/05_leave/components/formDetail/formStudy.vue";
import FormLeaveToTraining from "@/modules/05_leave/components/formDetail/formLeaveToTraining.vue";
import FormLeaveToWorkInternational from "@/modules/05_leave/components/formDetail/formLeaveToWorkInternational.vue";
import FormSpouse from "@/modules/05_leave/components/formDetail/formSpouse.vue";
import FormVocationalRehabilitation from "@/modules/05_leave/components/formDetail/formVocationalRehabilitation.vue";
import FormLeave from "@/modules/05_leave/components/formDetail/formLeave.vue"
import FormChildbirth from "@/modules/05_leave/components/formDetail/formChildbirth.vue"
import FormHoliday from "@/modules/05_leave/components/formDetail/formHoliday.vue"
import FormUpasom from "@/modules/05_leave/components/formDetail/formUpasom.vue"
import FormHajj from "@/modules/05_leave/components/formDetail/formHajj.vue"
import FormCheckSelect from "@/modules/05_leave/components/formDetail/formCheckSelect.vue"
import FormStudy from "@/modules/05_leave/components/formDetail/formStudy.vue"
import FormLeaveToTraining from "@/modules/05_leave/components/formDetail/formLeaveToTraining.vue"
import FormLeaveToWorkInternational from "@/modules/05_leave/components/formDetail/formLeaveToWorkInternational.vue"
import FormSpouse from "@/modules/05_leave/components/formDetail/formSpouse.vue"
import FormVocationalRehabilitation from "@/modules/05_leave/components/formDetail/formVocationalRehabilitation.vue"
import FormCancel from "@/modules/05_leave/components/formDetail/formCancel.vue"
/** import stort*/
import { useCounterMixin } from "@/stores/mixin";
const mixin = useCounterMixin();
const {
showLoader,
hideLoader,
messageError,
date2Thai,
success,
dialogConfirm,
} = mixin;
import { useCounterMixin } from "@/stores/mixin"
import { useLeaveStore } from "@/modules/05_leave/store"
const $q = useQuasar();
const dataStore = useLeaveStore()
const { convertStatud } = dataStore
const mixin = useCounterMixin()
const { showLoader, hideLoader, messageError, date2Thai, success, dialogConfirm } = mixin
const $q = useQuasar()
const props = defineProps({
modal: {
type: Boolean,
require: true,
},
leaveId: {
type: String,
require: true,
},
onClickClose: {
type: Function,
require: true,
},
leaveType: {
type: Object,
require: true,
},
leaveStatus: {
type: String,
require: true,
},
fetchDataTable: {
type: Function,
require: true,
},
});
modal: {
type: Boolean,
require: true,
},
leaveId: {
type: String,
require: true,
},
onClickClose: {
type: Function,
require: true,
},
leaveType: {
type: Object,
require: true,
},
leaveStatus: {
type: String,
require: true,
},
fetchDataTable: {
type: Function,
require: true,
},
})
const titleMain = ref<string>("รายละเอียดการลาของ");
const titleName = ref<string>("");
const titleMain = ref<string>("รายละเอียดการลาของ")
const titleMainCancle = ref<string>("รายละเอียดการยกเลิกการลาของ")
const titleName = ref<string>("")
/**checkForm Form การลา*/
const checkForm = ref<string>("");
const checkForm = ref<string>("")
/** Form รายละเอียดข้อมูล*/
const formData = reactive<FremDetail>({
id: "", //Id
leaveTypeName: "", // Name
leaveTypeId: "", //Id
fullname: "", //
dateSendLeave: new Date(), //
status: "", //
leaveDateStart: new Date(), //
leaveDateEnd: new Date(), //
leaveCount: 0, //
leaveWrote: "", //
leaveAddress: "", //
leaveNumber: "", //
leaveDetail: "", //
leaveDocument: "", //
leaveDraftDocument: "", //
leaveLastStart: new Date(), // ( )(Auto)
leaveLastEnd: new Date(), // ( )(Auto)
leaveTotal: 0, //(Auto)
leavebirthDate: new Date(), //(Auto)
leavegovernmentDate: new Date(), //(Auto)
leaveSalary: 0, //(Auto)
leaveSalaryText: "", //()
leaveTypeDay: "", //
wifeDayName: "", //()
wifeDayDateBorn: new Date(), //()
restDayOldTotal: 0, // ()(Auto)
restDayCurrentTotal: 0, //()(Auto)
ordainDayStatus: "", /// () ()
ordainDayLocationName: "", // ()
ordainDayLocationAddress: "", // ()
ordainDayLocationNumber: "", // ()
ordainDayOrdination: new Date(), // ()
ordainDayBuddhistLentName: "", // ()
ordainDayBuddhistLentAddress: "", // ()
hajjDayStatus: "", /// () ()
absentDaySummon: "", // ()
absentDayLocation: "", // ()
absentDayRegistorDate: new Date(), // ()
absentDayGetIn: "", // ()
absentDayAt: "", // ()
studyDaySubject: "", // ( )
studyDayDegreeLevel: "", // ( )
studyDayUniversityName: "", // ( )
studyDayTrainingSubject: "", // / ( )
studyDayTrainingName: "", // ( )
studyDayCountry: "", // ( )
studyDayScholarship: "", // ( )
coupleDayName: "", // ()
coupleDayPosition: "", // ()
coupleDayLevel: "", // ()
coupleDayLevelCountry: "", // ()
coupleDayCountryHistory: "", // ()
coupleDayTotalHistory: "", // ()
coupleDayStartDateHistory: new Date(), // ()
coupleDayEndDateHistory: new Date(), // ()
coupleDaySumTotalHistory: "", // ()
approveStep: "",
dear: "",
});
id: "", //Id
leaveTypeName: "", // Name
leaveTypeId: "", //Id
fullname: "", //
dateSendLeave: new Date(), //
status: "", //
leaveDateStart: new Date(), //
leaveDateEnd: new Date(), //
leaveCount: 0, //
leaveWrote: "", //
leaveAddress: "", //
leaveNumber: "", //
leaveDetail: "", //
leaveDocument: "", //
leaveDraftDocument: "", //
leaveLastStart: new Date(), // ( )(Auto)
leaveLastEnd: new Date(), // ( )(Auto)
leaveTotal: 0, //(Auto)
leavebirthDate: new Date(), //(Auto)
leavegovernmentDate: new Date(), //(Auto)
leaveSalary: 0, //(Auto)
leaveSalaryText: "", //()
leaveTypeDay: "", //
wifeDayName: "", //()
wifeDayDateBorn: new Date(), //()
restDayOldTotal: 0, // ()(Auto)
restDayCurrentTotal: 0, //()(Auto)
ordainDayStatus: "", /// () ()
ordainDayLocationName: "", // ()
ordainDayLocationAddress: "", // ()
ordainDayLocationNumber: "", // ()
ordainDayOrdination: new Date(), // ()
ordainDayBuddhistLentName: "", // ()
ordainDayBuddhistLentAddress: "", // ()
hajjDayStatus: "", /// () ()
absentDaySummon: "", // ()
absentDayLocation: "", // ()
absentDayRegistorDate: new Date(), // ()
absentDayGetIn: "", // ()
absentDayAt: "", // ()
studyDaySubject: "", // ( )
studyDayDegreeLevel: "", // ( )
studyDayUniversityName: "", // ( )
studyDayTrainingSubject: "", // / ( )
studyDayTrainingName: "", // ( )
studyDayCountry: "", // ( )
studyDayScholarship: "", // ( )
coupleDayName: "", // ()
coupleDayPosition: "", // ()
coupleDayLevel: "", // ()
coupleDayLevelCountry: "", // ()
coupleDayCountryHistory: "", // ()
coupleDayTotalHistory: "", // ()
coupleDayStartDateHistory: new Date(), // ()
coupleDayEndDateHistory: new Date(), // ()
coupleDaySumTotalHistory: "", // ()
approveStep: "",
dear: "",
})
/** Form รายละเอียดข้อมูล*/
const formDataCancle = reactive<FromCancelDetail>({
id: "",
leaveTypeName: "",
fullname: "",
status: "",
leaveDocDelete: "",
leaveResonDelete: "",
leaveWrote: "",
leaveAddress: "",
leaveNumber: "",
leaveDetail: "",
leaveTotal: 0,
leaveStartDate: new Date(),
leaveEndDate: new Date(),
})
/** form ขอยกเลิก*/
const formDelete = reactive<FormDelete>({
writeAt: "",
reason: "",
doc: null,
});
writeAt: "",
reason: "",
doc: null,
})
/**Validate ข้อมูล */
const writeAtRef = ref<Object | null>(null);
const reasonRef = ref<Object | null>(null);
const docRef = ref<Object | null>(null);
const writeAtRef = ref<Object | null>(null)
const reasonRef = ref<Object | null>(null)
const docRef = ref<Object | null>(null)
const formDeleteRef: FormDeleteRef = {
writeAt: writeAtRef,
reason: reasonRef,
doc: docRef,
};
writeAt: writeAtRef,
reason: reasonRef,
doc: docRef,
}
/**
* function เรยกขอมลการลา
* @param id การลา
*/
async function fetchDataDetail(id: string) {
showLoader();
await http
.get(config.API.leaveUserId(id), {})
.then((res) => {
const data = res.data.result;
titleName.value = data.fullName ?? "-";
formData.id = data.id ?? "-";
formData.leaveTypeName = data.leaveTypeName ?? "-";
formData.leaveTypeId = data.leaveTypeId ?? "-";
formData.fullname = data.fullName ?? "-";
formData.dateSendLeave =
data.dateSendLeave && date2Thai(data.dateSendLeave);
formData.status = data.status ?? "-";
formData.leaveDateStart =
data.leaveStartDate && date2Thai(data.leaveStartDate);
formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate);
formData.leaveCount = data.leaveTotal ?? "-";
formData.leaveWrote = data.leaveWrote ?? "-";
formData.leaveAddress = data.leaveAddress ?? "-";
formData.leaveNumber = data.leaveNumber ?? "-";
formData.leaveDetail = data.leaveDetail ?? "-";
formData.leaveDocument = data.leaveDocument;
formData.leaveDraftDocument = data.leaveDraftDocument;
formData.leaveLastStart =
data.leaveLastStart && date2Thai(data.leaveLastStart);
formData.leaveLastEnd =
data.leaveLastStart && date2Thai(data.leaveLastEnd);
formData.leaveTotal = data.leaveTotal;
formData.leavebirthDate =
data.leavebirthDate && date2Thai(data.leavebirthDate);
formData.leavegovernmentDate =
data.leavegovernmentDate && date2Thai(data.leavegovernmentDate);
formData.leaveSalary = data.leaveSalary ?? "-";
formData.leaveSalaryText = data.leaveSalaryText ?? "-";
formData.wifeDayName = data.wifeDayName ?? "-";
formData.wifeDayDateBorn =
data.wifeDayDateBorn && date2Thai(data.wifeDayDateBorn);
formData.restDayOldTotal = data.restDayOldTotal ?? "-";
formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-";
formData.ordainDayStatus = data.ordainDayStatus ? "เคย" : "ไม่เคยบวช";
formData.ordainDayLocationName = data.ordainDayLocationName ?? "-";
formData.ordainDayLocationAddress = data.ordainDayLocationAddress ?? "-";
formData.ordainDayLocationNumber = data.ordainDayLocationNumber ?? "-";
formData.ordainDayOrdination =
data.ordainDayOrdination && date2Thai(data.ordainDayOrdination);
formData.ordainDayBuddhistLentName =
data.ordainDayBuddhistLentName ?? "-";
formData.ordainDayBuddhistLentAddress =
data.ordainDayBuddhistLentAddress ?? "-";
formData.hajjDayStatus = data.hajjDayStatus
? "เคย"
: "ไม่เคยไปประกอบพิธีฮัจญ์";
formData.absentDaySummon = data.absentDaySummon ?? "-";
formData.absentDayLocation = data.absentDayLocation ?? "-";
formData.absentDayRegistorDate =
data.absentDayRegistorDate && date2Thai(data.absentDayRegistorDate);
formData.absentDayGetIn = data.absentDayGetIn ?? "-";
formData.absentDayAt = data.absentDayAt ?? "-";
formData.studyDaySubject = data.studyDaySubject ?? "-";
formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-";
formData.studyDayUniversityName = data.studyDayUniversityName ?? "-";
formData.studyDayTrainingSubject =
data.studyDayTrainingSubject ?? "-" ?? "-";
formData.studyDayTrainingName = data.studyDayTrainingName ?? "-";
formData.studyDayCountry = data.studyDayCountry ?? "-";
formData.studyDayScholarship = data.studyDayScholarship ?? "-";
formData.coupleDayName = data.coupleDayName ?? "-";
formData.coupleDayPosition = data.coupleDayPosition ?? "-";
formData.coupleDayLevel = data.coupleDayLevel ?? "-";
formData.coupleDayLevelCountry = data.coupleDayLevelCountry ?? "-";
formData.coupleDayCountryHistory = data.coupleDayCountryHistory ?? "-";
formData.coupleDayTotalHistory = data.coupleDayTotalHistory ?? "-";
formData.coupleDayStartDateHistory =
data.coupleDayStartDateHistory &&
date2Thai(data.coupleDayStartDateHistory);
formData.coupleDayEndDateHistory =
data.coupleDayEndDateHistory && date2Thai(data.coupleDayEndDateHistory);
formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory ?? "-";
formData.approveStep = data.approveStep ?? "-";
formData.dear = data.dear ?? "-";
checkLeaveType(formData.leaveTypeId, formData.leaveTypeName);
})
.catch((err) => {
props.onClickClose?.();
messageError($q, err);
})
.finally(() => {
hideLoader();
});
showLoader()
await http
.get(config.API.leaveUserId(id), {})
.then(res => {
const data = res.data.result
titleName.value = data.fullName ?? "-"
formData.id = data.id ?? "-"
formData.leaveTypeName = data.leaveTypeName ?? "-"
formData.leaveTypeId = data.leaveTypeId ?? "-"
formData.fullname = data.fullName ?? "-"
formData.dateSendLeave = data.dateSendLeave && date2Thai(data.dateSendLeave)
formData.status = data.status ?? "-"
formData.leaveDateStart = data.leaveStartDate && date2Thai(data.leaveStartDate)
formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate)
formData.leaveCount = data.leaveTotal ?? "-"
formData.leaveWrote = data.leaveWrote ?? "-"
formData.leaveAddress = data.leaveAddress ?? "-"
formData.leaveNumber = data.leaveNumber ?? "-"
formData.leaveDetail = data.leaveDetail ?? "-"
formData.leaveDocument = data.leaveDocument
formData.leaveDraftDocument = data.leaveDraftDocument
formData.leaveLastStart = data.leaveLastStart && date2Thai(data.leaveLastStart)
formData.leaveLastEnd = data.leaveLastStart && date2Thai(data.leaveLastEnd)
formData.leaveTotal = data.leaveTotal
formData.leavebirthDate = data.leaveBirthDate && date2Thai(data.leaveBirthDate)
formData.leavegovernmentDate = data.leaveGovernmentDate && date2Thai(data.leaveGovernmentDate)
formData.leaveSalary = data.leaveSalary ?? "-"
formData.leaveSalaryText = data.leaveSalaryText ?? "-"
formData.wifeDayName = data.wifeDayName ?? "-"
formData.wifeDayDateBorn = data.wifeDayDateBorn && date2Thai(data.wifeDayDateBorn)
formData.restDayOldTotal = data.restDayOldTotal ?? "-"
formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-"
formData.ordainDayStatus = data.ordainDayStatus ? "เคย" : "ไม่เคยบวช"
formData.ordainDayLocationName = data.ordainDayLocationName ?? "-"
formData.ordainDayLocationAddress = data.ordainDayLocationAddress ?? "-"
formData.ordainDayLocationNumber = data.ordainDayLocationNumber ?? "-"
formData.ordainDayOrdination = data.ordainDayOrdination && date2Thai(data.ordainDayOrdination)
formData.ordainDayBuddhistLentName = data.ordainDayBuddhistLentName ?? "-"
formData.ordainDayBuddhistLentAddress = data.ordainDayBuddhistLentAddress ?? "-"
formData.hajjDayStatus = data.hajjDayStatus ? "เคย" : "ไม่เคยไปประกอบพิธีฮัจญ์"
formData.absentDaySummon = data.absentDaySummon ?? "-"
formData.absentDayLocation = data.absentDayLocation ?? "-"
formData.absentDayRegistorDate = data.absentDayRegistorDate && date2Thai(data.absentDayRegistorDate)
formData.absentDayGetIn = data.absentDayGetIn ?? "-"
formData.absentDayAt = data.absentDayAt ?? "-"
formData.studyDaySubject = data.studyDaySubject ?? "-"
formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-"
formData.studyDayUniversityName = data.studyDayUniversityName ?? "-"
formData.studyDayTrainingSubject = data.studyDayTrainingSubject ?? "-" ?? "-"
formData.studyDayTrainingName = data.studyDayTrainingName ?? "-"
formData.studyDayCountry = data.studyDayCountry ?? "-"
formData.studyDayScholarship = data.studyDayScholarship ?? "-"
formData.coupleDayName = data.coupleDayName ?? "-"
formData.coupleDayPosition = data.coupleDayPosition ?? "-"
formData.coupleDayLevel = data.coupleDayLevel ?? "-"
formData.coupleDayLevelCountry = data.coupleDayLevelCountry ?? "-"
formData.coupleDayCountryHistory = data.coupleDayCountryHistory ?? "-"
formData.coupleDayTotalHistory = data.coupleDayTotalHistory ?? "-"
formData.coupleDayStartDateHistory = data.coupleDayStartDateHistory && date2Thai(data.coupleDayStartDateHistory)
formData.coupleDayEndDateHistory = data.coupleDayEndDateHistory && date2Thai(data.coupleDayEndDateHistory)
formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory ?? "-"
formData.approveStep = data.approveStep ?? "-"
formData.dear = data.dear ?? "-"
checkLeaveType(formData.leaveTypeId, formData.leaveTypeName)
})
.catch(err => {
props.onClickClose?.()
messageError($q, err)
})
.finally(() => {
hideLoader()
})
}
/**
@ -250,33 +244,33 @@ async function fetchDataDetail(id: string) {
* @param leaveTypeName ประเภทการลา
*/
function checkLeaveType(leaveTypeId: string, leaveTypeName: string) {
if (props.leaveType) {
const filtertype = props.leaveType.find((e: any) => e.id === leaveTypeId);
const type = filtertype.code;
if (type === "LV-001" || type === "LV-002" || type === "LV-003") {
checkForm.value = "FormLeave";
} else if (type === "LV-004") {
checkForm.value = "FormChildbirth";
} else if (type === "LV-005") {
checkForm.value = "FormHoliday";
} else if (type === "LV-006") {
checkForm.value = "FormUpasom";
} else if (type === "LV-006" && leaveTypeName === "พิธีฮัจญ์ฯ") {
checkForm.value = "FormHajj";
} else if (type === "LV-007") {
checkForm.value = "FormCheckSelect";
} else if (type === "LV-008" && leaveTypeName === "ลาไปศีกษา") {
checkForm.value = "FormStudy";
} else if (type === "LV-008") {
checkForm.value = "FormLeaveToTraining";
} else if (type === "LV-009") {
checkForm.value = "FormLeaveToWorkInternational";
} else if (type === "LV-010") {
checkForm.value = "FormSpouse";
} else if (type === "LV-011") {
checkForm.value = "FormVocationalRehabilitation";
}
}
if (props.leaveType) {
const filtertype = props.leaveType.find((e: any) => e.id === leaveTypeId)
const type = filtertype.code
if (type === "LV-001" || type === "LV-002" || type === "LV-003") {
checkForm.value = "FormLeave"
} else if (type === "LV-004") {
checkForm.value = "FormChildbirth"
} else if (type === "LV-005") {
checkForm.value = "FormHoliday"
} else if (type === "LV-006") {
checkForm.value = "FormUpasom"
} else if (type === "LV-006" && leaveTypeName === "พิธีฮัจญ์ฯ") {
checkForm.value = "FormHajj"
} else if (type === "LV-007") {
checkForm.value = "FormCheckSelect"
} else if (type === "LV-008" && leaveTypeName === "ลาไปศีกษา") {
checkForm.value = "FormStudy"
} else if (type === "LV-008") {
checkForm.value = "FormLeaveToTraining"
} else if (type === "LV-009") {
checkForm.value = "FormLeaveToWorkInternational"
} else if (type === "LV-010") {
checkForm.value = "FormSpouse"
} else if (type === "LV-011") {
checkForm.value = "FormVocationalRehabilitation"
}
}
}
/**
@ -284,221 +278,198 @@ function checkLeaveType(leaveTypeId: string, leaveTypeName: string) {
* @param id ยกเลกการลา
*/
async function fetchDataCancelDetail(id: string) {
showLoader();
await http
.get(config.API.leaveCancelById(id))
.then((res) => {
console.log(res);
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
showLoader()
await http
.get(config.API.leaveCancelById(id))
.then(res => {
const data = res.data.result
formDataCancle.leaveTypeName = data.leaveTypeName ?? "-"
formDataCancle.leaveWrote = data.leaveWrote ?? "-"
formDataCancle.fullname = data.fullName ?? "-"
formDataCancle.status = convertStatud(data.status) ?? "-"
formDataCancle.leaveStartDate = data.leaveStartDate && date2Thai(data.leaveStartDate)
formDataCancle.leaveEndDate = data.leaveEndDate && date2Thai(data.leaveEndDate)
formDataCancle.leaveTotal = data.leaveTotal ?? "-"
formDataCancle.leaveAddress = data.leaveAddress ?? "-"
formDataCancle.leaveNumber = data.leaveNumber ?? "-"
formDataCancle.leaveResonDelete = data.leaveResonDelete ?? "-"
formDataCancle.leaveDetail = data.leaveDetail ?? "-"
formDataCancle.leaveDocDelete = data.leaveDocDelete ?? null
console.log(res)
})
.catch(err => {
messageError($q, err)
})
.finally(() => {
hideLoader()
})
}
/** function ยินยันการบันทึกข้อมูล*/
async function onClickSave() {
const hasError = [];
for (const key in formDeleteRef) {
if (Object.prototype.hasOwnProperty.call(formDeleteRef, key)) {
const property = formDeleteRef[key];
if (property.value && typeof property.value.validate === "function") {
const isValid = property.value.validate();
hasError.push(isValid);
}
}
}
if (hasError.every((result) => result === true)) {
dialogConfirm(
$q,
() => {
onSubmit();
},
"ยืนยันการบันทึกข้อมูล",
"ต้องการยินยันการบันทึกข้อมูลนี้หรือไม่ ?"
);
} else {
console.log(hasError);
}
const hasError = []
for (const key in formDeleteRef) {
if (Object.prototype.hasOwnProperty.call(formDeleteRef, key)) {
const property = formDeleteRef[key]
if (property.value && typeof property.value.validate === "function") {
const isValid = property.value.validate()
hasError.push(isValid)
}
}
}
if (hasError.every(result => result === true)) {
dialogConfirm(
$q,
() => {
onSubmit()
},
"ยืนยันการบันทึกข้อมูล",
"ต้องการยินยันการบันทึกข้อมูลนี้หรือไม่ ?"
)
} else {
console.log(hasError)
}
}
/** function บันทึกข้อมูล*/
async function onSubmit() {
showLoader();
const id = props.leaveId ? props.leaveId : "";
const formData = new FormData();
formData.append("leaveWrote", formDelete.writeAt);
formData.append("reason", formDelete.reason);
formData.append("doc", formDelete.doc);
await http
.post(config.API.leaveCancelById(id), formData)
.then(() => {
success($q, "บันทึกข้อมูลสำเร็จ");
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
props.fetchDataTable?.();
hideLoader();
});
showLoader()
const id = props.leaveId ? props.leaveId : ""
const formData = new FormData()
formData.append("leaveWrote", formDelete.writeAt)
formData.append("reason", formDelete.reason)
formData.append("doc", formDelete.doc)
await http
.post(config.API.leaveCancelById(id), formData)
.then(() => {
success($q, "บันทึกข้อมูลสำเร็จ")
})
.catch(err => {
messageError($q, err)
})
.finally(() => {
props.fetchDataTable?.()
hideLoader()
})
}
watch(
() => props.modal,
() => {
if (props.modal === true) {
formDelete.writeAt = "";
formDelete.reason = "";
formDelete.doc = null;
() => props.modal,
() => {
if (props.modal === true) {
formDelete.writeAt = ""
formDelete.reason = ""
formDelete.doc = null
props.leaveStatus === "DELETE"
? props.leaveId && fetchDataCancelDetail(props.leaveId)
: props.leaveId && fetchDataDetail(props.leaveId);
}
}
);
props.leaveStatus === "DELETE" ? props.leaveId && fetchDataCancelDetail(props.leaveId) : props.leaveId && fetchDataDetail(props.leaveId)
}
}
)
</script>
<template>
<q-dialog v-model="props.modal" persistent>
<q-card q-card style="min-width: 70%">
<q-card-section class="row items-center q-pa-sm">
<div class="text-bold q-pl-sm">{{ titleMain }}{{ titleName }}</div>
<q-space />
<q-btn
icon="close"
unelevated
round
dense
@click="props.onClickClose"
style="color: #ff8080; background-color: #ffdede"
/>
</q-card-section>
<q-separator />
<q-card-section class="q-p-md row q-gutter-y-md">
<div
flat
:class="
props.leaveStatus === 'CANCEL' ? 'col-xs-6 col-sm-6' : 'col-12'
"
>
<div class="col-12 q-col-gutter-sm row items-center"></div>
<!-- ลาปวย ลาคลอดบตร และลากจสวนต -->
<FormLeave v-if="checkForm === 'FormLeave'" :data="formData" />
<q-dialog v-model="props.modal" persistent>
<q-card q-card style="min-width: 70%" v-if="props.leaveStatus != 'DELETE'">
<q-card-section class="row items-center q-pa-sm">
<div class="text-bold q-pl-sm">{{ titleMain }}{{ titleName }}</div>
<q-space />
<q-btn icon="close" unelevated round dense @click="props.onClickClose" style="color: #ff8080; background-color: #ffdede" />
</q-card-section>
<q-separator />
<q-card-section class="q-p-md row q-gutter-y-md">
<div flat :class="props.leaveStatus === 'CANCEL' ? 'col-xs-6 col-sm-6' : 'col-12'">
<div class="col-12 q-col-gutter-sm row items-center"></div>
<!-- ลาปวย ลาคลอดบตร และลากจสวนต -->
<FormLeave v-if="checkForm === 'FormLeave'" :data="formData" />
<!-- ลาไปชวยเหลอภรยาทคลอดบตร -->
<FormChildbirth
v-else-if="checkForm === 'FormChildbirth'"
:data="formData"
/>
<!-- ลาไปชวยเหลอภรยาทคลอดบตร -->
<FormChildbirth v-else-if="checkForm === 'FormChildbirth'" :data="formData" />
<!-- ลาพกผอน -->
<FormHoliday
v-else-if="checkForm === 'FormHoliday'"
:data="formData"
/>
<!-- ลาพกผอน -->
<FormHoliday v-else-if="checkForm === 'FormHoliday'" :data="formData" />
<!-- ลาอปสมบท -->
<FormUpasom v-else-if="checkForm === 'FormUpasom'" :data="formData" />
<!-- ลาอปสมบท -->
<FormUpasom v-else-if="checkForm === 'FormUpasom'" :data="formData" />
<!-- ลาประกอบพจญ -->
<FormHajj v-else-if="checkForm === 'FormHajj'" :data="formData" />
<!-- ลาประกอบพจญ -->
<FormHajj v-else-if="checkForm === 'FormHajj'" :data="formData" />
<!-- ลาเขารบการตรวจเลอกหรอเขารบการเตรยมพล -->
<FormCheckSelect
v-else-if="checkForm === 'FormCheckSelect'"
:data="formData"
/>
<!-- ลาเขารบการตรวจเลอกหรอเขารบการเตรยมพล -->
<FormCheckSelect v-else-if="checkForm === 'FormCheckSelect'" :data="formData" />
<!-- ลาไปศกษา -->
<FormStudy v-else-if="checkForm === 'FormStudy'" :data="formData" />
<!-- ลาไปศกษา -->
<FormStudy v-else-if="checkForm === 'FormStudy'" :data="formData" />
<!-- ลาไปฝกอบรม ปฏการว หรอดงาน -->
<FormLeaveToTraining
v-else-if="checkForm === 'FormLeaveToTraining'"
:data="formData"
/>
<!-- ลาไปฝกอบรม ปฏการว หรอดงาน -->
<FormLeaveToTraining v-else-if="checkForm === 'FormLeaveToTraining'" :data="formData" />
<!-- ลาไปปฏงานในองคการระหวางประเทศ -->
<FormLeaveToWorkInternational
v-else-if="checkForm === 'FormLeaveToWorkInternational'"
:data="formData"
/>
<!-- ลาไปปฏงานในองคการระหวางประเทศ -->
<FormLeaveToWorkInternational v-else-if="checkForm === 'FormLeaveToWorkInternational'" :data="formData" />
<!-- ลาตดตามคสมรส -->
<FormSpouse v-else-if="checkForm === 'FormSpouse'" :data="formData" />
<!-- ลาตดตามคสมรส -->
<FormSpouse v-else-if="checkForm === 'FormSpouse'" :data="formData" />
<!-- ลาไปฟนฟสมรรถภาพดานอาช -->
<FormVocationalRehabilitation
v-else-if="checkForm === 'FormVocationalRehabilitation'"
:data="formData"
/>
</div>
<!-- ลาไปฟนฟสมรรถภาพดานอาช -->
<FormVocationalRehabilitation v-else-if="checkForm === 'FormVocationalRehabilitation'" :data="formData" />
</div>
<div
flat
class="col-xs-6 col-sm-6"
v-if="props.leaveStatus === 'CANCEL'"
>
<q-card-section>
<q-input
ref="writeAtRef"
v-model="formDelete.writeAt"
label="เขียนที่"
:rules="[(val) => !!val || 'กรุณากรอกเขียนที่']"
lazy-rules
outlined
dense
/>
<q-input
ref="reasonRef"
v-model="formDelete.reason"
type="textarea"
label="กรอกเหตุผล"
:rules="[(val) => !!val || 'กรูณากรอกเหตุผล']"
lazy-rules
class="q-mt-md"
outlined
dense
/>
<q-file
ref="docRef"
outlined
v-model="formDelete.doc"
label="เลือกไฟล์เอกสารหลักฐาน"
:rules="[(val) => !!val || 'กรูณา เลือกไฟล์เอกสารหลักฐาน']"
lazy-rules
class="q-mt-md"
use-chips
dense
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
</q-card-section>
</div>
</q-card-section>
<q-separator />
<q-card-section
class="row items-center q-pa-sm"
v-if="props.leaveStatus === 'CANCEL'"
>
<q-space />
<q-btn
label="ยืนยัน"
unelevated
color="secondary"
dense
class="q-px-md"
@click="onClickSave"
/>
</q-card-section>
</q-card>
</q-dialog>
<div flat class="col-xs-6 col-sm-6" v-if="props.leaveStatus === 'CANCEL'">
<q-card-section>
<q-input ref="writeAtRef" v-model="formDelete.writeAt" label="เขียนที่" :rules="[val => !!val || 'กรุณากรอกเขียนที่']" lazy-rules outlined dense />
<q-input
ref="reasonRef"
v-model="formDelete.reason"
type="textarea"
label="กรอกเหตุผล"
:rules="[val => !!val || 'กรูณากรอกเหตุผล']"
lazy-rules
class="q-mt-md"
outlined
dense
/>
<q-file
ref="docRef"
outlined
v-model="formDelete.doc"
label="เลือกไฟล์เอกสารหลักฐาน"
:rules="[val => !!val || 'กรูณา เลือกไฟล์เอกสารหลักฐาน']"
lazy-rules
class="q-mt-md"
use-chips
dense
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
</q-card-section>
</div>
</q-card-section>
<q-separator />
<q-card-section class="row items-center q-pa-sm" v-if="props.leaveStatus === 'CANCEL'">
<q-space />
<q-btn label="ยืนยัน" unelevated color="secondary" dense class="q-px-md" @click="onClickSave" />
</q-card-section>
</q-card>
<q-card q-card style="min-width: 70%" v-if="props.leaveStatus === 'DELETE'">
<q-card-section class="row items-center q-pa-sm">
<div class="text-bold q-pl-sm">{{ titleMainCancle }}{{ titleName }}</div>
<q-space />
<q-btn icon="close" unelevated round dense @click="props.onClickClose" style="color: #ff8080; background-color: #ffdede" />
</q-card-section>
<q-separator />
<q-card-section class="q-p-md row q-gutter-y-md">
<div flat class="col-12">
<div class="col-12 q-col-gutter-sm row items-center"></div>
<!-- FormCancel -->
<FormCancel :data="formDataCancle" />
</div>
</q-card-section>
<q-separator />
</q-card>
</q-dialog>
</template>
<style scoped></style>

View file

@ -0,0 +1,68 @@
<script setup lang="ts">
const props = defineProps({
data: {
type: Object,
required: true,
},
})
</script>
<template>
<q-card-section>
<div class="q-pa-md q-gutter-md">
<div class="row">
<div class="col text-grey-8">เขยนท</div>
<div class="col">{{ props.data.leaveWrote }}</div>
</div>
<div class="row">
<div class="col text-grey-8">ประเภทการลา</div>
<div class="col">{{ props.data.leaveTypeName }}</div>
</div>
<div class="row">
<div class="col text-grey-8">-นามสก</div>
<div class="col">{{ props.data.fullname }}</div>
</div>
<div class="row">
<div class="col text-grey-8">สถานะการของลา</div>
<div class="col">{{ props.data.status }}</div>
</div>
<div class="row">
<div class="col text-grey-8">ลาตงแตนท</div>
<div class="col">{{ props.data.leaveStartDate }}</div>
</div>
<div class="row">
<div class="col text-grey-8">ลาถงวนท</div>
<div class="col">{{ props.data.leaveEndDate }}</div>
</div>
<div class="row">
<div class="col text-grey-8">จำนวนวนทลา</div>
<div class="col">{{ props.data.leaveTotal }}</div>
</div>
<div class="row">
<div class="col text-grey-8">สถานทดตอขณะลา</div>
<div class="col">{{ props.data.leaveAddress }}</div>
</div>
<div class="row">
<div class="col text-grey-8">หมายเลขทดตอขณะลา</div>
<div class="col">{{ props.data.leaveNumber }}</div>
</div>
<div class="row">
<div class="col text-grey-8">เหตผลการยกเลกการลา</div>
<div class="col">{{ props.data.leaveResonDelete }}</div>
</div>
<div class="row">
<div class="col text-grey-8">รายละเอยดการลา</div>
<div class="col">{{ props.data.leaveDetail }}</div>
</div>
<div class="row">
<div class="col text-grey-8">เอกสารการยกเลกการลา</div>
<div class="col" v-if="props.data.leaveDocDelete">
<q-btn :href="props.data.leaveDocDelete" target="_blank" outline color="blue" label="ดาวน์โหลด" size="12px"> <q-tooltip>ดาวนโหลดไฟล</q-tooltip></q-btn>
</div>
<div class="col" v-else>-</div>
</div>
</div>
</q-card-section>
</template>
<style scoped></style>

View file

@ -1,134 +1,141 @@
interface ListLeave {
id: string; //*Id การยื่นขอลา
leaveTypeName: string; //Name ประเภทการลา
leaveTypeId: string; //Id ประเภทการลา
fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
dateSendLeave: Date | null; //วันที่ยื่นใบลา
status: string; //สถานะการของลา
isDelete: boolean; //ขอยกเลิกคำขอลา ถ้าเคยขอแล้วจะเป็น true ไม่เคยเป็น false
id: string //*Id การยื่นขอลา
leaveTypeName: string //Name ประเภทการลา
leaveTypeId: string //Id ประเภทการลา
fullName: string //คำนำหน้า ชื่อ นามสกุล คนขอลา
dateSendLeave: Date | null //วันที่ยื่นใบลา
status: string //สถานะการของลา
isDelete: boolean //ขอยกเลิกคำขอลา ถ้าเคยขอแล้วจะเป็น true ไม่เคยเป็น false
}
interface ListLeaveTable {
id: string;
leaveTypeName: string;
leaveTypeId: string;
fullName: string;
dateSendLeave: string | null;
status: string;
isDelete: boolean;
id: string
leaveTypeName: string
leaveTypeId: string
fullName: string
dateSendLeave: string | null
status: string
isDelete: boolean
}
interface FremDetail {
id: string; //Id การยื่นขอลา
leaveTypeName: string; // Name ประเภทการลา
leaveTypeId: string; //Id ประเภทการลา
fullname: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
dateSendLeave: Date; // วันที่ยืนใบลา
status: string; //สถานะการของลา
leaveDateStart: Date; //วันเริ่มการลา
leaveDateEnd: Date; //วันสิ้นสุดการลา
leaveCount: number; //จำนวนวันลา
leaveWrote: string; //เขียนที่
leaveAddress: string; //สถานที่ติดต่อขณะลา
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
leaveDetail: string; //รายละเอียดการลา
leaveDocument: string; //อัปโหลดเอกสารประกอบรายละเอียด
leaveDraftDocument: string; //อัปโหลดแบบฟอร์มการลา
leaveLastStart: Date; //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
leaveLastEnd: Date; //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
leaveTotal: number; //จำนวนวันที่ลา(Auto)
leavebirthDate: Date; //วันเดือนปีเกิด(Auto)
leavegovernmentDate: Date; //วันที่เข้ารับราชการ(Auto)
leaveSalary: number; //เงินเดือนปัจจุบัน(Auto)
leaveSalaryText: string; //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน)
leaveTypeDay: string; //ประเภทการลาในวันนั้นเช่น
wifeDayName: string; //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
wifeDayDateBorn: Date; //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
restDayOldTotal: number; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto)
restDayCurrentTotal: number; //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto)
ordainDayStatus: string; //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท)
ordainDayLocationName: string; //สถานที่บวช ชื่อวัด(ลาอุปสมบท)
ordainDayLocationAddress: string; //สถานที่บวช ที่อยู่(ลาอุปสมบท)
ordainDayLocationNumber: string; //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท)
ordainDayOrdination: Date; //สถานที่บวช วันอุปสมบท(ลาอุปสมบท)
ordainDayBuddhistLentName: string; //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท)
ordainDayBuddhistLentAddress: string; //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท)
hajjDayStatus: string; //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์)
absentDaySummon: string; //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayLocation: string; //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayRegistorDate: Date; //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayGetIn: string; //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayAt: string; //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
studyDaySubject: string; //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayDegreeLevel: string; //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayUniversityName: string; //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayTrainingSubject: string; //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayTrainingName: string; //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayCountry: string; //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayScholarship: string; //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
coupleDayName: string; //ชื่อคู่สมรส (ลาติดตามคู่สมรส)
coupleDayPosition: string; //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส)
coupleDayLevel: string; //ระดับคู่สมรส (ลาติดตามคู่สมรส)
coupleDayLevelCountry: string; //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส)
coupleDayCountryHistory: string; //ประวัติ ประเทศ (ลาติดตามคู่สมรส)
coupleDayTotalHistory: string; //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
coupleDayStartDateHistory: Date; //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
coupleDayEndDateHistory: Date; //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
coupleDaySumTotalHistory: string; //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
approveStep: string;
dear: string;
id: string //Id การยื่นขอลา
leaveTypeName: string // Name ประเภทการลา
leaveTypeId: string //Id ประเภทการลา
fullname: string //คำนำหน้า ชื่อ นามสกุล คนขอลา
dateSendLeave: Date // วันที่ยืนใบลา
status: string //สถานะการของลา
leaveDateStart: Date //วันเริ่มการลา
leaveDateEnd: Date //วันสิ้นสุดการลา
leaveCount: number //จำนวนวันลา
leaveWrote: string //เขียนที่
leaveAddress: string //สถานที่ติดต่อขณะลา
leaveNumber: string //หมายเลขที่ติดต่อขณะลา
leaveDetail: string //รายละเอียดการลา
leaveDocument: string //อัปโหลดเอกสารประกอบรายละเอียด
leaveDraftDocument: string //อัปโหลดแบบฟอร์มการลา
leaveLastStart: Date //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
leaveLastEnd: Date //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
leaveTotal: number //จำนวนวันที่ลา(Auto)
leavebirthDate: Date //วันเดือนปีเกิด(Auto)
leavegovernmentDate: Date //วันที่เข้ารับราชการ(Auto)
leaveSalary: number //เงินเดือนปัจจุบัน(Auto)
leaveSalaryText: string //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน)
leaveTypeDay: string //ประเภทการลาในวันนั้นเช่น
wifeDayName: string //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
wifeDayDateBorn: Date //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
restDayOldTotal: number //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto)
restDayCurrentTotal: number //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto)
ordainDayStatus: string //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท)
ordainDayLocationName: string //สถานที่บวช ชื่อวัด(ลาอุปสมบท)
ordainDayLocationAddress: string //สถานที่บวช ที่อยู่(ลาอุปสมบท)
ordainDayLocationNumber: string //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท)
ordainDayOrdination: Date //สถานที่บวช วันอุปสมบท(ลาอุปสมบท)
ordainDayBuddhistLentName: string //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท)
ordainDayBuddhistLentAddress: string //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท)
hajjDayStatus: string //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์)
absentDaySummon: string //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayLocation: string //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayRegistorDate: Date //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayGetIn: string //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
absentDayAt: string //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
studyDaySubject: string //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayDegreeLevel: string //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayUniversityName: string //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayTrainingSubject: string //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayTrainingName: string //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayCountry: string //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
studyDayScholarship: string //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
coupleDayName: string //ชื่อคู่สมรส (ลาติดตามคู่สมรส)
coupleDayPosition: string //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส)
coupleDayLevel: string //ระดับคู่สมรส (ลาติดตามคู่สมรส)
coupleDayLevelCountry: string //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส)
coupleDayCountryHistory: string //ประวัติ ประเทศ (ลาติดตามคู่สมรส)
coupleDayTotalHistory: string //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
coupleDayStartDateHistory: Date //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
coupleDayEndDateHistory: Date //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
coupleDaySumTotalHistory: string //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
approveStep: string
dear: string
}
interface FromCancelDetail {
id: string //*Id การยื่นขอลา
leaveTypeName: String //Name ประเภทการลา
fullname: String //คำนำหน้า ชื่อ นามสกุล คนขอลา
status: String //สถานะการของลา
leaveDocDelete: string //เอกสารการยกเลิกการลา
leaveResonDelete: String //เหตุผลการยกเลิกการลา
leaveWrote: String //เขียนที่
leaveAddress: String //สถานที่ติดต่อขณะลา
leaveNumber: String //หมายเลขที่ติดต่อขณะลา
leaveDetail: String //รายละเอียดการลา
leaveTotal: number //จำนวนวันที่ลา
leaveStartDate: Date //วัน เดือน ปีเริ่มต้นลา
leaveEndDate: Date //วัน เดือน ปีสิ้นสุดลา
}
interface FormDelete {
writeAt: string;
reason: string;
doc: any;
writeAt: string
reason: string
doc: any
}
interface FormDeleteRef {
writeAt: object | null;
reason: object | null;
doc: object | null;
[key: string]: any;
writeAt: object | null
reason: object | null
doc: object | null
[key: string]: any
}
interface DataCalendar {
dateSendLeave: Date;
fullName: string;
id: string;
leaveEndDate: Date;
leaveStartDate: Date;
leaveTypeId: string;
leaveTypeName: string;
status: string;
keycloakId: string;
dateSendLeave: Date
fullName: string
id: string
leaveEndDate: Date
leaveStartDate: Date
leaveTypeId: string
leaveTypeName: string
status: string
keycloakId: string
}
interface LeaveType {
code: string;
createdAt: Date;
createdFullName: string;
createdUserId: string;
id: string;
lastUpdateFullName: string;
lastUpdateUserId: string;
lastUpdatedAt: Date | null;
limit: Number;
name: string;
code: string
createdAt: Date
createdFullName: string
createdUserId: string
id: string
lastUpdateFullName: string
lastUpdateUserId: string
lastUpdatedAt: Date | null
limit: Number
name: string
}
interface FilterList {
id: string;
name: string | null;
color: string;
id: string
name: string | null
color: string
}
export type {
ListLeave,
ListLeaveTable,
FremDetail,
FormDelete,
FormDeleteRef,
DataCalendar,
LeaveType,
FilterList,
};
export type { ListLeave, ListLeaveTable, FremDetail, FormDelete, FormDeleteRef, DataCalendar, LeaveType, FilterList, FromCancelDetail }

View file

@ -1,341 +1,324 @@
import { defineStore } from "pinia";
import { ref } from "vue";
import { useQuasar } from "quasar";
import { defineStore } from "pinia"
import { ref } from "vue"
import { useQuasar } from "quasar"
import type { QTableProps } from "quasar";
import type {
OptionData,
TypeLeave,
} from "@/modules/05_leave/interface/index/main";
import type {
ListLeave,
ListLeaveTable,
} from "@/modules/05_leave/interface/response/leave";
import http from "@/plugins/http";
import config from "@/app.config";
import type { QTableProps } from "quasar"
import type { OptionData, TypeLeave } from "@/modules/05_leave/interface/index/main"
import type { ListLeave, ListLeaveTable } from "@/modules/05_leave/interface/response/leave"
import http from "@/plugins/http"
import config from "@/app.config"
import { useCounterMixin } from "@/stores/mixin";
const mixin = useCounterMixin();
const { date2Thai, messageError } = mixin;
const $q = useQuasar();
import { useCounterMixin } from "@/stores/mixin"
const mixin = useCounterMixin()
const { date2Thai, messageError } = mixin
const $q = useQuasar()
export const useLeaveStore = defineStore("Leave", () => {
const tabValue = ref<string>("calendar");
const typeLeave = ref<string | undefined>("");
const LeaveType = ref<string | null>("0");
const LeaveStatus = ref<string | null>("0");
const fiscalYearyear = ref<Number | null>(new Date().getFullYear());
const rows = ref<ListLeaveTable[]>([]);
const tabValue = ref<string>("calendar")
const typeLeave = ref<string | undefined>("")
const LeaveType = ref<string | null>("0")
const LeaveStatus = ref<string | null>("0")
const fiscalYearyear = ref<Number | null>(new Date().getFullYear())
const rows = ref<ListLeaveTable[]>([])
/**
* function Table
* @param data Table
*/
async function fetchListLeave(data: ListLeave[]) {
let datalist: ListLeaveTable[] = data.map((e: ListLeave) => ({
id: e.id,
leaveTypeName: e.leaveTypeName,
leaveTypeId: e.leaveTypeId,
fullName: e.fullName,
dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave),
status: e.status,
statusConvert: convertStatud(e.status),
isDelete: e.isDelete,
}));
rows.value = datalist;
}
/**
* function Table
* @param data Table
*/
async function fetchListLeave(data: ListLeave[]) {
let datalist: ListLeaveTable[] = data.map((e: ListLeave) => ({
id: e.id,
leaveTypeName: e.leaveTypeName,
leaveTypeId: e.leaveTypeId,
fullName: e.fullName,
dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave),
status: e.status,
statusConvert: convertStatud(e.status),
isDelete: e.isDelete,
}))
rows.value = datalist
}
//ฟังก์ชั่นแปลง Status
function convertStatud(val: string) {
switch (val) {
case "NEW":
return "ใหม่";
case "PENDING":
return "กำลังดำเนินการ";
case "APPROVE":
return "อนุมัติ";
case "REJECT":
return "ไม่อนุมัติ";
case "DELETE":
return "ยกเลิก";
}
}
//ฟังก์ชั่นแปลง Status
function convertStatud(val: string) {
switch (val) {
case "NEW":
return "ใหม่"
case "PENDING":
return "กำลังดำเนินการ"
case "APPROVE":
return "อนุมัติ"
case "REJECT":
return "ไม่อนุมัติ"
case "DELETE":
return "ยกเลิก"
}
}
/** ประเภทการลา */
const typeOptions = ref<OptionData[]>([]);
const typeId = ref<string | undefined>("");
const typeOptionsMain = ref<OptionData[]>([]);
const typeOptionsAdd = ref<OptionData[]>([]);
/** รายการข้อมูลประเภทใบลา */
const options = ref<OptionData[]>([]);
/**
* function
* @param data
*/
async function fetchLeaveType(data: TypeLeave[]) {
typeOptionsMain.value = [
{
id: "00000000-0000-0000-0000-000000000000",
name: "ทั้งหมด",
code: "LV-000",
},
];
const optionType = data.map((e: TypeLeave) => ({
id: e.id,
name: e.name,
code: e.code,
}));
typeOptionsMain.value.push(...optionType);
typeOptions.value = typeOptionsMain.value;
console.log(typeOptions.value);
/** ประเภทการลา */
const typeOptions = ref<OptionData[]>([])
const typeId = ref<string | undefined>("")
const typeOptionsMain = ref<OptionData[]>([])
const typeOptionsAdd = ref<OptionData[]>([])
/** รายการข้อมูลประเภทใบลา */
const options = ref<OptionData[]>([])
/**
* function
* @param data
*/
async function fetchLeaveType(data: TypeLeave[]) {
typeOptionsMain.value = [
{
id: "00000000-0000-0000-0000-000000000000",
name: "ทั้งหมด",
code: "LV-000",
},
]
const optionType = data.map((e: TypeLeave) => ({
id: e.id,
name: e.name,
code: e.code,
}))
typeOptionsMain.value.push(...optionType)
typeOptions.value = typeOptionsMain.value
console.log(typeOptions.value)
typeOptionsAdd.value.push(...optionType);
options.value = typeOptionsAdd.value;
console.log(options.value);
}
typeOptionsAdd.value.push(...optionType)
options.value = typeOptionsAdd.value
console.log(options.value)
}
/** สถานะของการลา */
const statusOptionsMain = ref<any[]>([
{ id: "ALL", name: "ทั้งหมด" },
{ id: "NEW", name: "ใหม่" },
{ id: "PENDING", name: "กำลังดำเนินการ" },
{ id: "APPROVE", name: "อนุมัติ " },
{ id: "REJECT", name: "ไม่อนุมัติ" },
{ id: "DELETE", name: "ยกเลิก" },
]);
const statusOptions = ref<any[]>(statusOptionsMain.value);
/** สถานะของการลา */
const statusOptionsMain = ref<any[]>([
{ id: "ALL", name: "ทั้งหมด" },
{ id: "NEW", name: "ใหม่" },
{ id: "PENDING", name: "กำลังดำเนินการ" },
{ id: "APPROVE", name: "อนุมัติ " },
{ id: "REJECT", name: "ไม่อนุมัติ" },
{ id: "DELETE", name: "ยกเลิก" },
])
const statusOptions = ref<any[]>(statusOptionsMain.value)
/**
* function Option
* @param val
* @param update
* @param refData
*/
function filterOption(val: any, update: Function, refData: string) {
switch (refData) {
case "LeaveTypeOption":
update(() => {
typeOptions.value = typeOptionsMain.value.filter(
(v: any) => v.name.indexOf(val) > -1
);
});
break;
case "LeaveStatusOption":
update(() => {
statusOptions.value = statusOptionsMain.value.filter(
(v: any) => v.name.indexOf(val) > -1
);
});
break;
default:
break;
}
}
/** รายการประเภทการลาของ ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน*/
const optionsSpecific = ref([
{ id: "s0", name: "ลาไปศึกษาต่อ", code: "s0" },
{ id: "s1", name: "ลาฝึกอบรม", code: "s1" },
{ id: "s2", name: "ลาปฎิบัติการวิจัย", code: "s2" },
{ id: "s3", name: "ลาดูงาน", code: "s3" },
]);
/**
* function Option
* @param val
* @param update
* @param refData
*/
function filterOption(val: any, update: Function, refData: string) {
switch (refData) {
case "LeaveTypeOption":
update(() => {
typeOptions.value = typeOptionsMain.value.filter((v: any) => v.name.indexOf(val) > -1)
})
break
case "LeaveStatusOption":
update(() => {
statusOptions.value = statusOptionsMain.value.filter((v: any) => v.name.indexOf(val) > -1)
})
break
default:
break
}
}
/** รายการประเภทการลาของ ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน*/
const optionsSpecific = ref([
{ id: "s0", name: "ลาไปศึกษาต่อ", code: "s0" },
{ id: "s1", name: "ลาฝึกอบรม", code: "s1" },
{ id: "s2", name: "ลาปฎิบัติการวิจัย", code: "s2" },
{ id: "s3", name: "ลาดูงาน", code: "s3" },
])
/** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/
const optionsOrdination = ref([
{ id: "0", name: "ลาอุปสมบท", code: "0" },
{ id: "1", name: "ลาประกอบพิธีฮัจญ์", code: "1" },
]);
/** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/
const optionsOrdination = ref([
{ id: "0", name: "ลาอุปสมบท", code: "0" },
{ id: "1", name: "ลาประกอบพิธีฮัจญ์", code: "1" },
])
/** data table filter & column ของรายการลา */
const visibleColumns = ref<String[]>([
"no",
"leaveTypeName",
"dateSendLeave",
"status",
]);
const columns = ref<QTableProps["columns"]>([
{
name: "no",
align: "left",
label: "ลำดับ",
sortable: true,
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:5%;",
},
{
name: "leaveTypeName",
align: "left",
label: "ประเภทการลา",
sortable: true,
field: "leaveTypeName",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:15%;",
},
{
name: "dateSendLeave",
align: "left",
label: "วันที่ยื่นใบลา",
sortable: true,
field: "dateSendLeave",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:15%;",
},
{
name: "status",
align: "left",
label: "สถานะ",
sortable: true,
field: "status",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:10%;",
},
]);
/**
*
* @param item
* @param subitem
*/
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);
}
typeId.value = convertId(item);
}
/** data table filter & column ของรายการลา */
const visibleColumns = ref<String[]>(["no", "leaveTypeName", "dateSendLeave", "status"])
const columns = ref<QTableProps["columns"]>([
{
name: "no",
align: "left",
label: "ลำดับ",
sortable: true,
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:5%;",
},
{
name: "leaveTypeName",
align: "left",
label: "ประเภทการลา",
sortable: true,
field: "leaveTypeName",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:15%;",
},
{
name: "dateSendLeave",
align: "left",
label: "วันที่ยื่นใบลา",
sortable: true,
field: "dateSendLeave",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:15%;",
},
{
name: "status",
align: "left",
label: "สถานะ",
sortable: true,
field: "status",
headerStyle: "font-size: 14px",
style: "font-size: 14px; width:10%;",
},
])
/**
*
* @param item
* @param subitem
*/
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)
}
typeId.value = convertId(item)
}
/**
* /
* @param val string
* @returns
*/
function convertSubtitle(val: string) {
return options.value.find((x) => x.code == val)?.name;
}
/**
* /
* @param val string
* @returns
*/
function convertSubtitle(val: string) {
return options.value.find(x => x.code == val)?.name
}
/**
* /
* @param val string
* @returns
*/
function convertSubtitleInfo(val: string) {
return optionsOrdination.value.find((x) => x.id == val)?.name;
}
/**
* /
* @param val string
* @returns
*/
function convertSubtitleInfo(val: string) {
return optionsOrdination.value.find(x => x.id == val)?.name
}
/**
*
* @param val string
* @returns
*/
function convertSubtitleInfo2(val: string) {
return optionsSpecific.value.find((x) => x.id == val)?.name;
}
/**
*
* @param val string
* @returns
*/
function convertSubtitleInfo2(val: string) {
return optionsSpecific.value.find(x => x.id == val)?.name
}
/**
* id api
* @param val string
* @returns
*/
function convertId(val: string) {
return options.value.find((x) => x.code == val)?.id;
}
/**
* id api
* @param val string
* @returns
*/
function convertId(val: string) {
return options.value.find(x => x.code == val)?.id
}
/**
* profile
*/
const dateSendLeave = ref<Date>(); //วันที่ยื่นใบลา
const leaveTypeName = ref<string>(""); //Name ประเภทการลา
const dear = ref<string>(""); //เรียน
const fullName = ref<string>(""); //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ
const positionName = ref<string>(""); //ตำแหน่งผู้ยื่นขอ
const positionLevelName = ref<string>(""); //ระดับผู้ยื่นขอ
const organizationName = ref<string>(""); //สังกัดผู้ยื่นขอ
const leaveLimit = ref<number>(0); //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const leaveTotal = ref<number>(0); //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const leaveRemain = ref<number>(0); //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const restDayTotalOld = ref<number>(0); //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
const birthDate = ref<Date>(); //วันเกิด
const dateAppoint = ref<Date>(); //วันที่เข้ารับราชการ
const salary = ref<number>(0); //เงินเดือนปัจจุบัน
const salaryText = ref<string>(""); //เงินเดือนปัจจุบัน(ภาษาไทย)
const leaveLast = ref<any>();
const restDayCurrentTotal = ref<string>("");
//ดึงข้อมูล profile จาก API
async function fetchProfile() {
await http
.post(config.API.leaveProfile(), { type: typeId.value })
.then((res: any) => {
const data = res.data.result;
dateSendLeave.value = data.dateSendLeave;
leaveTypeName.value = data.leaveTypeName;
dear.value = data.dear;
fullName.value = data.fullName;
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 =
date2Thai(data.leaveLast) !== "0001-01-01T00:00:00"
? date2Thai(data.leaveLast)
: "-";
restDayCurrentTotal.value = data.restDayCurrentTotal;
})
.catch((e: any) => {
messageError($q, e);
});
}
/**
* profile
*/
const dateSendLeave = ref<Date>() //วันที่ยื่นใบลา
const leaveTypeName = ref<string>("") //Name ประเภทการลา
const dear = ref<string>("") //เรียน
const fullName = ref<string>("") //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ
const positionName = ref<string>("") //ตำแหน่งผู้ยื่นขอ
const positionLevelName = ref<string>("") //ระดับผู้ยื่นขอ
const organizationName = ref<string>("") //สังกัดผู้ยื่นขอ
const leaveLimit = ref<number>(0) //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const leaveTotal = ref<number>(0) //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const leaveRemain = ref<number>(0) //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const restDayTotalOld = ref<number>(0) //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
const birthDate = ref<Date>() //วันเกิด
const dateAppoint = ref<Date>() //วันที่เข้ารับราชการ
const salary = ref<number>(0) //เงินเดือนปัจจุบัน
const salaryText = ref<string>("") //เงินเดือนปัจจุบัน(ภาษาไทย)
const leaveLast = ref<any>()
const restDayCurrentTotal = ref<string>("")
//ดึงข้อมูล profile จาก API
async function fetchProfile() {
await http
.post(config.API.leaveProfile(), { type: typeId.value })
.then((res: any) => {
const data = res.data.result
dateSendLeave.value = data.dateSendLeave
leaveTypeName.value = data.leaveTypeName
dear.value = data.dear
fullName.value = data.fullName
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 = date2Thai(data.leaveLast) !== "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-"
restDayCurrentTotal.value = data.restDayCurrentTotal
})
.catch((e: any) => {
messageError($q, e)
})
}
return {
tabValue,
typeOptions,
optionsSpecific,
statusOptions,
return {
tabValue,
typeOptions,
optionsSpecific,
statusOptions,
visibleColumns,
columns,
rows,
LeaveType,
LeaveStatus,
visibleColumns,
columns,
rows,
LeaveType,
LeaveStatus,
fiscalYearyear,
options,
optionsOrdination,
typeConvert,
typeLeave,
typeId,
fiscalYearyear,
options,
optionsOrdination,
typeConvert,
typeLeave,
typeId,
fetchListLeave,
fetchLeaveType,
filterOption,
fetchProfile,
fetchListLeave,
fetchLeaveType,
filterOption,
fetchProfile,
//ส่งออกตัวแปร profileที่ได้จาก Api
dateSendLeave,
leaveTypeName,
dear,
fullName,
positionName,
positionLevelName,
organizationName,
leaveLimit, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
leaveTotal, //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
leaveRemain, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
restDayTotalOld,
birthDate,
dateAppoint,
salary,
salaryText,
leaveLast,
restDayCurrentTotal,
};
});
//ส่งออกตัวแปร profileที่ได้จาก Api
dateSendLeave,
leaveTypeName,
dear,
fullName,
positionName,
positionLevelName,
organizationName,
leaveLimit, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
leaveTotal, //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
leaveRemain, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
restDayTotalOld,
birthDate,
dateAppoint,
salary,
salaryText,
leaveLast,
restDayCurrentTotal,
convertStatud,
}
})