From 84738fbfd823b4be01e322cb7f5ca7966a3368f7 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Mon, 28 Apr 2025 17:50:02 +0700 Subject: [PATCH] updated all form leave --- .../components/FormLeave/01_SickForm.vue | 540 ++++++----- .../components/FormLeave/03_Birth.vue | 527 ++++++----- .../FormLeave/04_HelpWifeBirthForm.vue | 605 ++++++------ .../components/FormLeave/05_VacationForm.vue | 541 +++++------ .../FormLeave/06_OrdinationForm.vue | 870 +++++++++--------- .../components/FormLeave/07_HajjForm.vue | 102 +- .../components/FormLeave/08_MilitaryForm.vue | 441 ++++----- .../components/FormLeave/09_StudyForm.vue | 798 ++++++++-------- .../components/FormLeave/10_TrainForm.vue | 715 +++++++------- .../FormLeave/11_WorkInternationalForm.vue | 408 ++++---- .../FormLeave/12_FollowSpouseForm.vue | 380 ++++---- .../FormLeave/13_RehabilitationForm.vue | 398 ++++---- .../05_leave/components/FormLeave/Form.vue | 3 +- .../05_leave/interface/request/AddAbsence.ts | 2 +- src/modules/05_leave/store.ts | 5 + src/modules/05_leave/views/AddPage.vue | 4 +- src/modules/05_leave/views/EditPage.vue | 4 +- 17 files changed, 3248 insertions(+), 3095 deletions(-) diff --git a/src/modules/05_leave/components/FormLeave/01_SickForm.vue b/src/modules/05_leave/components/FormLeave/01_SickForm.vue index 6cf443d..21eecf0 100644 --- a/src/modules/05_leave/components/FormLeave/01_SickForm.vue +++ b/src/modules/05_leave/components/FormLeave/01_SickForm.vue @@ -196,33 +196,6 @@ async function fetchCheck() { }); } -/** - * ฟังก์ชั่นแปลงครึ่งวัน/ทั้งวัน - */ -const isReadOnly = computed(() => { - const conditionleaveRange = - formDataSick.leaveRange === "MORNING" || - formDataSick.leaveRange === "AFTERNOON"; - if (conditionleaveRange) { - formDataSick.leaveEndDate = formDataSick.leaveStartDate; // Set formDataSick.leaveEndDate to null - formDataSick.leaveTotal = 0.5; - } else { - formDataSick.leaveTotal = null; - } - return conditionleaveRange; -}); - -/** - * แก้ไขClassเมื่อ status เป็น edit - * @param val status edit true/false - */ -function inputEdit(val: boolean) { - return { - "full-width cursor-pointer ": val, - "full-width cursor-pointer inputgreen": !val, - }; -} - /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { return !isLeave.value ? "input-alert" : ""; @@ -273,274 +246,297 @@ onMounted(() => { -
- +
+
+ +
+
- - - - - - - - +
+ + + + + +
+ +
+ + + +
+
- - - - - - - - - - - - +
+ + + + + +
+ +
+ + + +
+
+
+ +
+
+
+ + + +
+ +
+ +
- + + /> +
- + + hide-bottom-space + bg-color="white" + /> +
- + +
+ +
+
- + - - + > + + +
diff --git a/src/modules/05_leave/components/FormLeave/03_Birth.vue b/src/modules/05_leave/components/FormLeave/03_Birth.vue index f9c41c4..d851308 100644 --- a/src/modules/05_leave/components/FormLeave/03_Birth.vue +++ b/src/modules/05_leave/components/FormLeave/03_Birth.vue @@ -13,7 +13,14 @@ import type { FormRef } from "@/modules/05_leave/interface/request/BirthForm"; const $q = useQuasar(); const dataStore = useLeaveStore(); const mixin = useCounterMixin(); -const { date2Thai, dateToISO, messageError, convertDateToAPI,showLoader,hideLoader } = mixin; +const { + date2Thai, + dateToISO, + messageError, + convertDateToAPI, + showLoader, + hideLoader, +} = mixin; const edit = ref(true); const leaveId = ref(""); @@ -143,17 +150,19 @@ const checkDate = computed(() => { * @param formData */ async function fetchCheck() { - showLoader() + showLoader(); await http .post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: convertDateToAPI(formDataBirth.leaveStartDate) ?? null, EndLeaveDate: convertDateToAPI(formDataBirth.leaveEndDate) ?? null, leaveRange: formDataBirth.leaveRange, - leaveRangeEnd: checkDate.value ? formDataBirth.leaveRange : formDataBirth.leaveRangeEnd + leaveRangeEnd: checkDate.value + ? formDataBirth.leaveRange + : formDataBirth.leaveRangeEnd, }) .then((res: any) => { - hideLoader() + hideLoader(); const data = res.data.result; isLeave.value = data.isLeave; formDataBirth.leaveTotal = data.totalDate; @@ -162,7 +171,7 @@ async function fetchCheck() { : "จำนวนวันลาเกินที่กำหนด"; }) .catch((e: any) => { - hideLoader() + hideLoader(); messageError($q, e); }); } @@ -214,271 +223,293 @@ onMounted(() => {
-
- +
+
+ +
- - - - - - - - +
+ + + + + +
+ +
+ + + +
+
- - - - - - - - - - - - +
+ + + + + +
+ +
+ + + +
+
+
+ +
+
+
+ + + +
+ +
+ +
- + + /> +
- + + /> +
- + +
+ +
+
- - - +
+ + + +
diff --git a/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue b/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue index ee44839..590f2ea 100644 --- a/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue +++ b/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue @@ -182,10 +182,6 @@ async function fetchCheck() { isLeave.value = data.isLeave; formDataHelpWife.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday; - leaveText.value = calculateDurationYmd( - formDataHelpWife.leaveStartDate, - formDataHelpWife.leaveEndDate - ); reasonLeave.value = data.message ? data.message : "จำนวนวันลาเกินที่กำหนด"; @@ -210,11 +206,6 @@ watch(props.data, async () => { formDataHelpWife.leaveRangeEnd = props.data.leaveRangeEnd; formDataHelpWife.leaveRange = props.data.leaveRange; formDataHelpWife.leaveDetail = props.data.leaveDetail; - const leaveTotal = await calculateDurationYmd( - props.data.leaveStartDate, - props.data.leaveEndDate - ); - leaveText.value = leaveTotal; formDataHelpWife.leaveDocument = []; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; @@ -234,12 +225,6 @@ onMounted(async () => { leaveDocumentList.value = props.data.leaveDocument; formDataHelpWife.leaveRange = props.data.leaveRange; formDataHelpWife.leaveRangeEnd = props.data.leaveRangeEnd; - const leaveTotal = await calculateDurationYmd( - props.data.leaveStartDate, - props.data.leaveEndDate - ); - leaveText.value = leaveTotal; - statusCheck.value = props.data.status; leaveId.value = props.data.id; } @@ -254,188 +239,204 @@ onMounted(async () => {
- -
-
- - - - - - - - -
-
-
-
- - - - - - - - -
-
-
+
- - + hide-bottom-space + bg-color="white" + v-model="formDataHelpWife.leaveWrote" + label="เขียนที่" + :readonly="!edit || statusCheck === 'NEW'" + :rules="[(val:string) => !!val || `${'เขียนที่'}`]" + />
-
+ +
+
+
+ + + + + +
+ +
+ + + +
+
+
+ +
+
+
+ + + + + +
+ +
+ + + +
+
+
+ +
+
+
+ + + +
+
+
+ +
{ />
- - - - - +
+ + + + + +
+
- + + /> +
- + + /> +
- + +
+ +
+
- - - +
+ + + +
diff --git a/src/modules/05_leave/components/FormLeave/05_VacationForm.vue b/src/modules/05_leave/components/FormLeave/05_VacationForm.vue index 47b0ebc..2c6730d 100644 --- a/src/modules/05_leave/components/FormLeave/05_VacationForm.vue +++ b/src/modules/05_leave/components/FormLeave/05_VacationForm.vue @@ -1,7 +1,6 @@ @@ -267,200 +283,212 @@ onMounted(() => {
- +
+ +
- - - - - - - - -
+
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + +
- + +
+ +
+
(""); -const leaveHistoryText = ref(""); const edit = ref(true); const leaveId = ref(""); const checkDate = computed(() => { @@ -364,188 +363,199 @@ onMounted(async () => {
- -
-
- - - - - - - - -
-
-
-
- - - - - - - - -
-
-
+
- - + v-model="formDataFollowSpouse.leaveWrote" + label="เขียนที่" + :readonly="!edit || statusCheck === 'NEW'" + :rules="[(val:string) => !!val || `${'เขียนที่'}`]" + />
-
+ +
+
+
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + +
+
+
+ +
{ readonly />
-
+
{
{
{
{
{ (""); const leaveStartDateRef = ref(null); const leaveEndDateRef = ref(null); const leaveWroteRef = ref(null); +const leaveText = ref(""); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ @@ -146,6 +147,10 @@ async function fetchCheck() { const data = res.data.result; isLeave.value = data.isLeave; formDataRehabilitation.leaveTotal = data.totalDate; + leaveText.value = calculateDurationYmd( + formDataRehabilitation.leaveStartDate, + formDataRehabilitation.leaveEndDate + ); reasonLeave.value = data.message ? data.message @@ -185,7 +190,7 @@ const dateEndInputStyle = computed(() => { const leaveDocumentList = ref(); const leaveDraftDocument = ref(); const statusCheck = ref(""); -watch(props.data, () => { +watch(props.data, async () => { if (props.data) { formDataRehabilitation.leaveWrote = props.data.leaveWrote; formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); @@ -198,11 +203,16 @@ watch(props.data, () => { formDataRehabilitation.leaveDraftDocument = null; formDataRehabilitation.leaveDocument = []; statusCheck.value = props.data.status; + const leaveTotal = await calculateDurationYmd( + props.data.leaveStartDate, + props.data.leaveEndDate + ); + leaveText.value = leaveTotal; } }); /**Hook */ -onMounted(() => { +onMounted(async () => { if (props.data) { formDataRehabilitation.leaveWrote = props.data.leaveWrote; formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); @@ -216,6 +226,12 @@ onMounted(() => { leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; leaveId.value = props.data.id; + const leaveTotal = await calculateDurationYmd( + props.data.leaveStartDate, + props.data.leaveEndDate + ); + leaveText.value = leaveTotal; + fetchCheck(); } }); @@ -230,197 +246,207 @@ onMounted(() => {
- +
+ +
- - - - - - - - -
+
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + +
- +
+ +
{ outlined readonly bg-color="white" - v-model="dataStore.dear" + v-model="dataStore.commanderPosition" label="เรียน" /> + { const dateSendLeave = ref(); //วันที่ยื่นใบลา const leaveTypeName = ref(""); //Name ประเภทการลา const dear = ref(""); //เรียน + const commanderPosition = ref(""); //ตำแหน่งผู้บังคับบัญชา const fullName = ref(""); //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ const positionName = ref(""); //ตำแหน่งผู้ยื่นขอ const positionLevelName = ref(""); //ระดับผู้ยื่นขอ @@ -312,6 +313,7 @@ export const useLeaveStore = defineStore("Leave", () => { dateSendLeave.value = data.dateSendLeave; leaveTypeName.value = data.leaveTypeName; dear.value = data.dear; + commanderPosition.value = data.commanderPosition; fullName.value = data.fullName; positionName.value = data.positionName; positionLevelName.value = data.positionLevelName; @@ -370,6 +372,7 @@ export const useLeaveStore = defineStore("Leave", () => { dateSendLeave.value = data.dateSendLeave; typeLeave.value = data.leaveTypeName; dear.value = data.dear; + commanderPosition.value = data.commanderPosition; fullName.value = data.fullName; positionName.value = data.positionName; positionLevelName.value = data.positionLevelName; @@ -383,6 +386,7 @@ export const useLeaveStore = defineStore("Leave", () => { dateSendLeave.value = undefined; leaveTypeName.value = ""; dear.value = ""; + commanderPosition.value = ""; fullName.value = ""; positionName.value = ""; positionLevelName.value = ""; @@ -427,6 +431,7 @@ export const useLeaveStore = defineStore("Leave", () => { dateSendLeave, leaveTypeName, dear, + commanderPosition, fullName, positionName, positionLevelName, diff --git a/src/modules/05_leave/views/AddPage.vue b/src/modules/05_leave/views/AddPage.vue index 6afe67f..6688e3e 100644 --- a/src/modules/05_leave/views/AddPage.vue +++ b/src/modules/05_leave/views/AddPage.vue @@ -141,7 +141,7 @@ onMounted(async () => {
{
{ {