From 7f3deec9e6794664b7564484086c4f31be64572e Mon Sep 17 00:00:00 2001 From: waruneeta Date: Thu, 14 Dec 2023 09:09:37 +0700 Subject: [PATCH 1/4] =?UTF-8?q?=E0=B9=80=E0=B8=9B=E0=B8=B4=E0=B8=94?= =?UTF-8?q?=E0=B9=83=E0=B8=AB=E0=B9=89=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84?= =?UTF-8?q?=E0=B8=82=E0=B8=AA=E0=B8=96=E0=B8=B2=E0=B8=99=E0=B8=B0=E0=B9=83?= =?UTF-8?q?=E0=B8=99=E0=B8=AA=E0=B9=88=E0=B8=A7=E0=B8=99=E0=B8=82=E0=B8=AD?= =?UTF-8?q?=E0=B8=87=E0=B8=A5=E0=B8=87=E0=B9=80=E0=B8=A7=E0=B8=A5=E0=B8=B2?= =?UTF-8?q?=E0=B8=81=E0=B8=A3=E0=B8=93=E0=B8=B5=E0=B8=9E=E0=B8=B4=E0=B9=80?= =?UTF-8?q?=E0=B8=A8=E0=B8=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../09_leave/components/4_specialTime/DialogApprove.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/09_leave/components/4_specialTime/DialogApprove.vue b/src/modules/09_leave/components/4_specialTime/DialogApprove.vue index 571fc66c1..8652e6645 100644 --- a/src/modules/09_leave/components/4_specialTime/DialogApprove.vue +++ b/src/modules/09_leave/components/4_specialTime/DialogApprove.vue @@ -206,7 +206,7 @@ watch( - + - + Date: Thu, 14 Dec 2023 09:59:17 +0700 Subject: [PATCH 2/4] =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=A5?= =?UTF-8?q?=E0=B8=B0=E0=B9=80=E0=B8=AD=E0=B8=B5=E0=B8=A2=E0=B8=94=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3=E0=B8=A5=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/09_leave/api.leave.ts | 3 +- .../09_leave/components/2_Leave/Calendar.vue | 66 ++-- .../components/2_Leave/DetailLeave.vue | 47 ++- .../components/2_Leave/DetailLeaveReject.vue | 356 +++++++++++------- .../09_leave/components/2_Leave/Tab1.vue | 3 - .../09_leave/components/2_Leave/Tab2.vue | 20 +- .../components/2_Leave/ToolBarLeave.vue | 6 +- .../2_Leave/formDetail/formCheckSelect.vue | 3 +- .../2_Leave/formDetail/formChildbirth.vue | 23 +- .../2_Leave/formDetail/formHajj.vue | 23 +- .../2_Leave/formDetail/formHoliday.vue | 3 +- .../2_Leave/formDetail/formLeave.vue | 23 +- .../formDetail/formLeaveToTraining.vue | 23 +- .../formLeaveToWorkInternational.vue | 23 +- .../2_Leave/formDetail/formMain.vue | 4 +- .../2_Leave/formDetail/formSpouse.vue | 3 +- .../2_Leave/formDetail/formStudy.vue | 3 +- .../2_Leave/formDetail/formUpasom.vue | 23 +- .../formVocationalRehabilitation.vue | 3 +- .../09_leave/interface/request/leave.ts | 3 +- .../09_leave/interface/response/leave.ts | 38 +- src/modules/09_leave/stores/LeaveStore.ts | 83 ++-- 22 files changed, 475 insertions(+), 307 deletions(-) diff --git a/src/api/09_leave/api.leave.ts b/src/api/09_leave/api.leave.ts index 120f29d62..12d2374e9 100644 --- a/src/api/09_leave/api.leave.ts +++ b/src/api/09_leave/api.leave.ts @@ -21,11 +21,12 @@ export default { leaveType: () => `${leave}/type`, leaveList: () => `${leave}/admin`, leaveListDelete: () => `${leave}/admin/delete`, + leaveListDeleteByid: (id: string) => `${leave}/user/delete/${id}`, leaveListById: (id: string) => `${leave}/admin/${id}`, leaveCalendar: () => `${leave}/user/calendar`, leaveApproveToComander: (id: string) => `${leave}/admin/approve/officer/${id}`, - leaveComanderApprove: (id: string) => `${leave}/admin/comander/${id}`, + leaveComanderApprove: (id: string) => `${leave}/admin/approve/comander/${id}`, leaveApprove: (id: string) => `${leave}/admin/approve/${id}`, leaveReject: (id: string) => `${leave}/admin/reject/${id}`, }; diff --git a/src/modules/09_leave/components/2_Leave/Calendar.vue b/src/modules/09_leave/components/2_Leave/Calendar.vue index 93f6d07e9..1fd0be8e4 100644 --- a/src/modules/09_leave/components/2_Leave/Calendar.vue +++ b/src/modules/09_leave/components/2_Leave/Calendar.vue @@ -11,8 +11,12 @@ import { useQuasar } from "quasar"; import http from "@/plugins/http"; import config from "@/app.config"; import { useRouter } from "vue-router"; +import keycloak from "@/plugins/keycloak"; -import type { DataDateMonthObject } from "@/modules/09_leave/interface/response/leave"; +import type { + DataDateMonthObject, + ResCalendar, +} from "@/modules/09_leave/interface/response/leave"; import { useCounterMixin } from "@/stores/mixin"; import { useLeavelistDataStore } from "@/modules/09_leave/stores/LeaveStore"; @@ -23,6 +27,10 @@ const { showLoader, hideLoader, messageError, monthYear2Thai } = mixin; const $q = useQuasar(); const router = useRouter(); + +const keycloakId = ref( + keycloak.tokenParsed ? keycloak.tokenParsed.sub!.toString() : "" +); /** * Option ของปฏิทิน */ @@ -62,7 +70,7 @@ const dateMonth = ref({ month: new Date().getMonth(), year: new Date().getFullYear(), }); -const mainData = ref([]); +const mainData = ref([]); async function fetchDataCalendar() { showLoader(); @@ -74,22 +82,22 @@ async function fetchDataCalendar() { mainData.value = res.data.result; const double_name = [ - ...new Set(mainData.value.map((item: any) => item.fullName)), + ...new Set(mainData.value.map((item: ResCalendar) => item.keycloakId)), ]; - + filterLists.value = []; for (let i = 1; i <= double_name.length; i++) { - filterLists.value = []; const name = double_name[i - 1]; const filterName = { id: name, - name: name, - color: name === "นางสาวสาวิตรี ศรีสมัย" ? "green" : "grey", + name: convertKeycloakId(name), + color: name === keycloakId.value ? "green" : "grey", }; + filterLists.value.push(filterName); } const data = mainData.value.filter( - (e: any) => e.fullName === "นางสาวสาวิตรี ศรีสมัย" + (e: any) => e.keycloakId === keycloakId.value ); const event = data.map((e: any) => ({ @@ -101,7 +109,6 @@ async function fetchDataCalendar() { color: leaveStore.colorType(e.leaveTypeId), textColor: "black", })); - console.log(event); calendarOptions.value.events = event; }) @@ -117,17 +124,24 @@ async function fetchDataCalendar() { }); } +function convertKeycloakId(id: any) { + const filterName = mainData.value.find( + (e: ResCalendar) => e.keycloakId === id + ); + return filterName?.fullName; +} + // filter calendar left const filterLists = ref([]); -const filterVal = ref(["นางสาวสาวิตรี ศรีสมัย"]); +const filterVal = ref([]); watch( () => filterVal.value, () => { const eventData = filterVal.value.map((item: any) => { return mainData.value - .filter((e: any) => e.fullName === item) - .map((e: any) => ({ + .filter((e: ResCalendar) => e.keycloakId === item) + .map((e: ResCalendar) => ({ id: e.id, title: `${e.fullName} (${e.leaveTypeName}) `, start: e.leaveStartDate, @@ -137,7 +151,8 @@ watch( allDay: true, })); }); - calendarOptions.value.events = eventData[0]; + const allEventData = [].concat(...eventData); + calendarOptions.value.events = allEventData; } ); @@ -149,37 +164,14 @@ function redirectToDetail(id: string) { * เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้ */ onMounted(async () => { + filterVal.value.push(keycloakId.value); await fetchDataCalendar(); - // if (fullCalendar !== undefined) { - // const calen = fullCalendar.value.getApi(); - // const date = new Date(dateMonth.value.year, dateMonth.value.month); - // calen.gotoDate(date); - // } }); async function changCalendar() { await fetchDataCalendar(); } -/** - * ค่า props(วันเดือนปีที่เลือก) ตอนอัพเดท ค่าฏิทินให้อัพเดทใหม่ - */ -// watch(props, async (count, prevCount) => { -// const calen = fullCalendar.value.getApi(); -// const date = new Date(props.dateYear, props.dateMonth); -// calen.gotoDate(date); -// }); - -/** - * ฟังก์ชั่นยกเลิก model - * @param text - */ - -/** - * ฟังก์ชั่นเปิด model - * @param text - */ - const monthYearThai = (val: DataDateMonthObject) => { if (val == null) return ""; else return monthYear2Thai(val.month, val.year); diff --git a/src/modules/09_leave/components/2_Leave/DetailLeave.vue b/src/modules/09_leave/components/2_Leave/DetailLeave.vue index 74e0febc1..596c9b3d5 100644 --- a/src/modules/09_leave/components/2_Leave/DetailLeave.vue +++ b/src/modules/09_leave/components/2_Leave/DetailLeave.vue @@ -130,7 +130,8 @@ const formData = reactive({ coupleDayStartDateHistory: new Date(), //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส) coupleDayEndDateHistory: new Date(), //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส) coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) - step: "", + approveStep: "", + dear: "", }); onMounted(async () => { @@ -153,8 +154,10 @@ async function fetchDetailLeave(paramsId: string) { const data = res.data.result; console.log(data); formData.id = data.id; - formData.reasonCommander = data.reasonCommander; - formData.reasonOligarch = data.reasonOligarch; + formData.reasonCommander = data.reasonCommander + ? data.reasonCommander + : "-"; + formData.reasonOligarch = data.reasonOligarch ? data.reasonOligarch : "-"; formData.positionName = data.positionName; formData.positionLevelName = data.positionLevelName; formData.organizationName = data.organizationName; @@ -167,7 +170,7 @@ async function fetchDetailLeave(paramsId: string) { data.leaveStartDate && date2Thai(data.leaveStartDate); formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate); formData.leaveCount = data.leaveCount; - formData.status = data.status && data.status; + formData.status = data.status && stores.convertSatatus(data.status); formData.leaveLimit = data.leaveLimit; formData.leaveSummary = data.leaveSummary; formData.leaveRemain = data.leaveRemain; @@ -229,7 +232,8 @@ async function fetchDetailLeave(paramsId: string) { formData.coupleDayEndDateHistory = data.coupleDayEndDateHistory && date2Thai(data.coupleDayEndDateHistory); formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory; - formData.step = data.step; + formData.approveStep = data.approveStep; + formData.dear = data.dear ? data.dear : "-"; await fectOptionType(); /** ส่งประเภทของการลาไป Function เช็คประเภทการลา*/ @@ -604,9 +608,9 @@ function clickSave(reason: string) { bordered class="row col-12 text-dark q-mt-sm" v-if=" - formData.step === 'st3' || - formData.step === 'st4' || - formData.step === 'st5' + formData.approveStep === 'st3' || + formData.approveStep === 'st4' || + formData.approveStep === 'st5' " >
-
-
+
+ {{ formData.reasonCommander }} +
@@ -630,7 +636,9 @@ function clickSave(reason: string) {
ผลการพิจารณา
-
อนุมัติ
+
{{ formData.status }}
ความคิดเห็น
-
-
+
+ {{ formData.reasonOligarch }} +
@@ -662,9 +672,12 @@ function clickSave(reason: string) { -
+
ไม่อนุมัติ ({ + id: "", //*Id การยื่นขอลา + leaveTypeName: "", //Name ประเภทการลา + fullName: "", //คำนำหน้า ชื่อ นามสกุล คนขอลา + status: "", //สถานะการของลา + leaveDocDelete: "", //เอกสารการยกเลิกการลา + leaveResonDelete: "", //เหตุผลการยกเลิกการลา + leaveWrote: "", //เขียนที่ + leaveAddress: "", //สถานที่ติดต่อขณะลา + leaveNumber: "", //หมายเลขที่ติดต่อขณะลา + leaveDetail: "", //รายละเอียดการลา + leaveTotal: 0, //จำนวนวันที่ลา + leaveStartDate: new Date(), //วัน เดือน ปีเริ่มต้นลา + leaveEndDate: new Date(), //วัน เดือน ปีสิ้นสุดลา +}); + const formData = reactive({ id: "", //Id การยื่นขอลา reasonCommander: "", //เหตุผลผู้บังคับบัญชา @@ -69,8 +92,6 @@ const formData = reactive({ leaveLimit: 0, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน leaveSummary: 0, //ลาป่วยไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน leaveRemain: 0, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน - // leaveStartDate: new Date(), //*วัน เดือน ปีเริ่มต้นลา - // leaveEndDate: new Date(), //*วัน เดือน ปีสิ้นสุดลา leaveWrote: "", //เขียนที่ leaveAddress: "", //สถานที่ติดต่อขณะลา leaveNumber: "", //หมายเลขที่ติดต่อขณะลา @@ -118,13 +139,14 @@ const formData = reactive({ coupleDayStartDateHistory: new Date(), //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส) coupleDayEndDateHistory: new Date(), //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส) coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) - step: "", + approveStep: "", + dear: "", }); -onMounted(() => { - // showLoader(); +onMounted(async () => { if (paramsId) { - fetchDetailLeave(paramsId); + await fetchDetailDeleteLeave(paramsId); + await fetchDetailLeave(paramsId); } }); @@ -132,120 +154,184 @@ onMounted(() => { * Function fetch รายละเอียดของข้อมูล * @param paramsId รับ ID จาก paramID */ -function fetchDetailLeave(paramsId: string) { - const dataAPI = APIDATA.data; - const data = dataAPI.filter((e: any) => e.id === paramsId); - console.log(data); - data.map((e: any) => { - formData.id = e.id; - formData.reasonCommander = e.reasonCommander; - formData.reasonOligarch = e.reasonOligarch; - formData.positionName = e.positionName; - formData.positionLevelName = e.positionLevelName; - formData.organizationName = e.organizationName; - formData.leaveTypeName = e.leaveTypeName - ? e.leaveTypeName - : stores.convertLeave(e.leaveTypeId); - formData.leaveTypeId = e.leaveTypeId; - formData.fullName = e.fullname; - formData.dateSendLeave = e.dateSendLeave && date2Thai(e.dateSendLeave); - formData.leaveDateStart = e.leaveDateStart && date2Thai(e.leaveDateStart); - formData.leaveDateEnd = e.leaveDateEnd && date2Thai(e.leaveDateEnd); - formData.leaveCount = e.leaveCount; - formData.status = e.status && e.status; - formData.leaveLimit = e.leaveLimit; - formData.leaveSummary = e.leaveSummary; - formData.leaveRemain = e.leaveRemain; - formData.leaveWrote = e.leaveWrote; - formData.leaveAddress = e.leaveAddress; - formData.leaveNumber = e.leaveNumber; - formData.leaveDetail = e.leaveDetail; - formData.leaveDocument = e.leaveDocument; - formData.leaveDraftDocument = e.leaveDraftDocument; - formData.leaveLastStart = e.leaveLastStart && date2Thai(e.leaveLastStart); - formData.leaveLastEnd = e.leaveLastStart && date2Thai(e.leaveLastEnd); - formData.leaveTotal = e.leaveTotal; - formData.leavebirthDate = e.leavebirthDate && date2Thai(e.leavebirthDate); - formData.leavegovernmentDate = - e.leavegovernmentDate && date2Thai(e.leavegovernmentDate); - formData.leaveSalary = e.leaveSalary; - formData.leaveSalaryText = e.leaveSalaryText; - formData.leaveTypeDay = - e.leaveTypeDay && stores.convertLeaveDaytype(e.leaveTypeDay); - formData.wifeDayName = e.wifeDayName; - formData.wifeDayDateBorn = - e.wifeDayDateBorn && date2Thai(e.wifeDayDateBorn); - formData.restDayOldTotal = e.restDayOldTotal; - formData.restDayCurrentTotal = e.restDayCurrentTotal; - formData.ordainDayStatus = e.ordainDayStatus; - formData.ordainDayLocationName = e.ordainDayLocationName; - formData.ordainDayLocationAddress = e.ordainDayLocationAddress; - formData.ordainDayLocationNumber = e.ordainDayLocationNumber; - formData.ordainDayOrdination = - e.ordainDayOrdination && date2Thai(e.ordainDayOrdination); - formData.ordainDayBuddhistLentName = e.ordainDayBuddhistLentName; - formData.ordainDayBuddhistLentAddress = e.ordainDayBuddhistLentAddress; - formData.hajjDayStatus = e.hajjDayStatus; - formData.absentDaySummon = e.absentDaySummon; - formData.absentDayLocation = e.absentDayLocation; - formData.absentDayRegistorDate = - e.absentDayRegistorDate && date2Thai(e.absentDayRegistorDate); - formData.absentDayGetIn = e.absentDayGetIn; - formData.absentDayAt = e.absentDayAt; - formData.studyDaySubject = e.studyDaySubject; - formData.studyDayDegreeLevel = e.studyDayDegreeLevel; - formData.studyDayUniversityName = e.studyDayUniversityName; - formData.studyDayTrainingSubject = e.studyDayTrainingSubject; - formData.studyDayTrainingName = e.studyDayTrainingName; - formData.studyDayCountry = e.studyDayCountry; - formData.studyDayScholarship = e.studyDayScholarship; - formData.coupleDayName = e.coupleDayName; - formData.coupleDayPosition = e.coupleDayPosition; - formData.coupleDayLevel = e.coupleDayLevel; - formData.coupleDayLevelCountry = e.coupleDayLevelCountry; - formData.coupleDayCountryHistory = e.coupleDayCountryHistory; - formData.coupleDayTotalHistory = e.coupleDayTotalHistory; - formData.coupleDayStartDateHistory = - e.coupleDayStartDateHistory && date2Thai(e.coupleDayStartDateHistory); - formData.coupleDayEndDateHistory = - e.coupleDayEndDateHistory && date2Thai(e.coupleDayEndDateHistory); - formData.coupleDaySumTotalHistory = e.coupleDaySumTotalHistory; - formData.step = e.step; - }); - - /** ส่งประเภทของการลาไป Function เช็คประเภทการลา*/ - checkLeaveType(formData.leaveTypeId ? formData.leaveTypeId : ""); - // hideLoader(); +async function fetchDetailDeleteLeave(paramsId: string) { + showLoader(); + await http + .get(config.API.leaveListDeleteByid(paramsId)) + .then((res) => { + const data = res.data.result; + console.log(data.id); + (formDataReject.id = data.id), + (formDataReject.leaveTypeName = data.leaveTypeName), + (formDataReject.fullName = data.fullName), + (formDataReject.status = data.status); + (formDataReject.leaveDocDelete = data.leaveDocDelete), + (formDataReject.leaveResonDelete = data.leaveReasonDelete + ? data.leaveReasonDelete + : "-"), + (formDataReject.leaveWrote = data.leaveWrote), + (formDataReject.leaveAddress = data.leaveAddress), + (formDataReject.leaveNumber = data.leaveNumber), + (formDataReject.leaveDetail = data.leaveDetail), + (formDataReject.leaveTotal = data.leaveTotal), + (formDataReject.leaveStartDate = data.leaveStartDate), + (formDataReject.leaveEndDate = data.leaveEndDate), + console.log(formData); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); } + +async function fetchDetailLeave(paramsId: string) { + showLoader(); + await http + .get(config.API.leaveListById(paramsId)) + .then(async (res) => { + const data = res.data.result; + console.log(data); + formData.id = data.id; + formData.reasonCommander = data.reasonCommander; + formData.reasonOligarch = data.reasonOligarch; + formData.positionName = data.positionName; + formData.positionLevelName = data.positionLevelName; + formData.organizationName = data.organizationName; + formData.leaveTypeName = data.leaveTypeName; + formData.leaveTypeId = data.leaveTypeId; + formData.fullName = data.fullName; + formData.dateSendLeave = + data.dateSendLeave && date2Thai(data.dateSendLeave); + formData.leaveDateStart = + data.leaveStartDate && date2Thai(data.leaveStartDate); + formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate); + formData.leaveCount = data.leaveCount; + formData.status = data.status && data.status; + formData.leaveLimit = data.leaveLimit; + formData.leaveSummary = data.leaveSummary; + formData.leaveRemain = data.leaveRemain; + 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.leaveTypeDay = + data.leaveTypeDay && stores.convertLeaveDaytype(data.leaveTypeDay); + 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 ? data.dear : "-"; + await fectOptionType(); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); +} + +const leaveType = ref(); +/** function เรียกประเภทการลา */ +async function fectOptionType() { + await http + .get(config.API.leaveType()) + .then((res) => { + console.log(res); + leaveType.value = res.data.result; + checkLeaveType(formData.leaveTypeId, formData.leaveTypeName); + }) + .catch((err) => { + messageError($q, err); + }); +} + /**Status Form การลา*/ const checkForm = ref(""); /** * Function เช็คประเภทการลา * @param type รับค่า */ -function checkLeaveType(type: string) { - if (type === "leave1" || type === "leave2" || type === "leave3") { - checkForm.value = "FormLeave"; - } else if (type === "leave4") { - checkForm.value = "FormChildbirth"; - } else if (type === "leave5") { - checkForm.value = "FormHoliday"; - } else if (type === "leave6") { - checkForm.value = "FormUpasom"; - } else if (type === "leave7") { - checkForm.value = "FormHajj"; - } else if (type === "leave8") { - checkForm.value = "FormCheckSelect"; - } else if (type === "leave9") { - checkForm.value = "FormStudy"; - } else if (type === "leave10") { - checkForm.value = "FormLeaveToTraining"; - } else if (type === "leave11") { - checkForm.value = "FormLeaveToWorkInternational"; - } else if (type === "leave12") { - checkForm.value = "FormSpouse"; - } else if (type === "leave13") { - checkForm.value = "FormVocationalRehabilitation"; +function checkLeaveType(leaveTypeId: string, leaveTypeName: string) { + if (leaveType.value) { + const filtertype: LeaveType | undefined = leaveType.value.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"; + } } } @@ -317,7 +403,7 @@ function clickSave() {