Refactoring code module 05_leave

This commit is contained in:
STW_TTTY\stwtt 2024-09-03 17:36:59 +07:00
parent 763ec2fd95
commit 4253226ac3
23 changed files with 383 additions and 532 deletions

View file

@ -1,22 +1,19 @@
<script setup lang="ts">
import { ref, reactive, watch, computed, onMounted } from "vue";
import type {
FormData,
FormRef,
} from "@/modules/05_leave/interface/request/SickForm";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { FormRef } from "@/modules/05_leave/interface/request/SickForm";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const router = useRouter();
const { date2Thai, dateToISO, messageError, dialogRemove } = mixin;
const { date2Thai, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
/** รับ props มาจากหน้าหลัก */

View file

@ -1,22 +1,22 @@
<script setup lang="ts">
import { ref, reactive, onMounted, computed, watch } from "vue";
import { useQuasar } from "quasar";
import type { FormRef } from "@/modules/05_leave/interface/request/BirthForm";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { FormRef } from "@/modules/05_leave/interface/request/BirthForm";
/** Use */
const $q = useQuasar();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const router = useRouter();
const $q = useQuasar();
const { date2Thai, dateToISO, dialogRemove, success, messageError, fails } =
mixin;
const { date2Thai, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** รับ props มาจากหน้าหลัก */
const props = defineProps({

View file

@ -1,32 +1,23 @@
<script setup lang="ts">
import { ref, reactive, onMounted, computed, watch } from "vue";
import type {
FormData,
FormRef,
} from "@/modules/05_leave/interface/request/HelpWifeForm";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { FormRef } from "@/modules/05_leave/interface/request/HelpWifeForm";
/** Use */
const $q = useQuasar();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const router = useRouter();
const $q = useQuasar();
const {
date2Thai,
calculateDurationYmd,
dateToISO,
dialogRemove,
fails,
success,
messageError,
} = mixin;
const { date2Thai, calculateDurationYmd, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** รับ props มาจากหน้าหลัก */
const props = defineProps({
@ -75,6 +66,13 @@ const leaveAddressRef = ref<object | null>(null);
const leaveDetailRef = ref<object | null>(null);
const leaveDocumentRef = ref<object | null>(null);
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
const isLeave = ref<boolean>(true);
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
const FormRef: FormRef = {
leaveWrote: leaveWroteRef,
@ -90,7 +88,6 @@ const FormRef: FormRef = {
};
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
files.forEach((file: any) => {
@ -156,7 +153,6 @@ function updateLeaveTotal() {
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true);
async function fetchCheck() {
await http
.post(config.API.leaveCheck(), {
@ -175,17 +171,10 @@ async function fetchCheck() {
});
}
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
watch(props.data, () => {
if (props.data) {
// console.log("data==>", props.data)
formDataHelpWife.leaveWrote = props.data.leaveWrote;
formDataHelpWife.wifeDayName = props.data.wifeDayName;
formDataHelpWife.wifeDayDateBorn = props.data.wifeDayDateBorn;
@ -204,7 +193,6 @@ watch(props.data, () => {
/**Hook */
onMounted(() => {
if (props.data) {
// console.log("data==>", props.data)
formDataHelpWife.leaveWrote = props.data.leaveWrote;
formDataHelpWife.wifeDayName = props.data.wifeDayName;
formDataHelpWife.wifeDayDateBorn = props.data.wifeDayDateBorn;

View file

@ -1,25 +1,23 @@
<script setup lang="ts">
import { ref, reactive, onMounted, computed, watch } from "vue";
import type {
FormData,
FormRef,
} from "@/modules/05_leave/interface/request/VacationForm";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { FormRef } from "@/modules/05_leave/interface/request/VacationForm";
/** Use */
const $q = useQuasar();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const router = useRouter();
const { date2Thai, dateToISO, dialogRemove, success, messageError, fails } =
mixin;
const { date2Thai, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** รับ props มาจากหน้าหลัก */
const props = defineProps({
@ -86,7 +84,6 @@ const FormRef: FormRef = {
};
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
files.forEach((file: any) => {
@ -94,6 +91,29 @@ const fileUploadDoc = async (files: any) => {
});
};
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<string>("");
/** ฟังก์ชั่นแปลงค่า ครึ่งวัน/ทั้งวัน */
const isReadOnly = computed(() => {
const conditionleaveRange =
formDataVacation.leaveRange === "MORNING" ||
formDataVacation.leaveRange === "AFTERNOON";
if (conditionleaveRange) {
formDataVacation.leaveEndDate = formDataVacation.leaveStartDate; // Set formDataVacation.leaveEndDate to null
formDataVacation.leaveTotal = 0.5;
} else {
formDataVacation.leaveTotal = null;
}
return conditionleaveRange;
});
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ฟังก์ชั่นตรวจสอบความถูกต้องของข้อมูลในฟอร์ม */
function onValidate() {
const hasError = [];
@ -167,34 +187,10 @@ function resetDate() {
formDataVacation.leaveStartDate = null;
formDataVacation.leaveEndDate = null;
}
console.log("testnull");
}
/** ฟังก์ชั่นแปลงค่า ครึ่งวัน/ทั้งวัน */
const isReadOnly = computed(() => {
const conditionleaveRange =
formDataVacation.leaveRange === "MORNING" ||
formDataVacation.leaveRange === "AFTERNOON";
if (conditionleaveRange) {
formDataVacation.leaveEndDate = formDataVacation.leaveStartDate; // Set formDataVacation.leaveEndDate to null
formDataVacation.leaveTotal = 0.5;
} else {
formDataVacation.leaveTotal = null;
}
return conditionleaveRange;
});
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
watch(props.data, () => {
if (props.data) {
// console.log("data==>", props.data)
formDataVacation.leaveWrote = props.data.leaveWrote;
formDataVacation.restDayOldTotal = props.data.restDayOldTotal;
formDataVacation.restDayCurrentTotal = props.data.restDayCurrentTotal;
@ -214,7 +210,6 @@ watch(props.data, () => {
/**Hook */
onMounted(() => {
if (props.data) {
// console.log("data==>", props.data)
formDataVacation.leaveWrote = props.data.leaveWrote;
formDataVacation.restDayOldTotal = props.data.restDayOldTotal;
formDataVacation.restDayCurrentTotal = props.data.restDayCurrentTotal;
@ -228,7 +223,6 @@ onMounted(() => {
statusCheck.value = props.data.status;
formDataVacation.leaveRange = props.data.leaveRange;
leaveId.value = props.data.id;
// formDataVacation.leaveDocument = props.data.leaveDocument;
}
});
</script>

View file

@ -1,30 +1,21 @@
<script setup lang="ts">
import { reactive, ref, onMounted, computed, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import type { OrdinationForm } from "@/modules/05_leave/interface/request/AddAbsence";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { OrdinationForm } from "@/modules/05_leave/interface/request/AddAbsence";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const router = useRouter();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
calculateDurationYmd,
fails,
dateToISO,
success,
messageError,
} = mixin;
const { date2Thai, calculateDurationYmd, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
const files = ref<any>(null);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** รับ props มาจากหน้าหลัก */
const props = defineProps({
@ -99,7 +90,6 @@ const formRef: OrdinationForm = {
};
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
files.forEach((file: any) => {
@ -210,7 +200,8 @@ const dateEndInputStyle = computed(() => {
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
const statusCheck = ref<string>("");
watch(props.data, () => {
if (props.data) {
formDataOrdination.leaveWrote = props.data.leaveWrote;
@ -257,7 +248,6 @@ onMounted(() => {
leaveDocumentList.value = props.data.leaveDocument;
statusCheck.value = props.data.status;
leaveId.value = props.data.id;
// formDataOrdination.leaveDocument = props.data.leaveDocument;
}
});
</script>
@ -504,7 +494,7 @@ onMounted(() => {
<q-radio
v-model="formDataOrdination.ordainDayStatus"
:disable="!edit || statusCheck === 'NEW'"
:val="true"
:val="'true'"
label="เคยบวช"
checked-icon="task_alt "
hide-bottom-space
@ -512,7 +502,7 @@ onMounted(() => {
<q-radio
v-model="formDataOrdination.ordainDayStatus"
:disable="!edit || statusCheck === 'NEW'"
:val="false"
:val="'false'"
label="ไม่เคยบวช"
checked-icon="task_alt"
hide-bottom-space

View file

@ -2,28 +2,20 @@
import { reactive, ref, onMounted, computed, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import type { HajiForm } from "@/modules/05_leave/interface/request/AddAbsence";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { HajiForm } from "@/modules/05_leave/interface/request/AddAbsence";
/** Use */
const router = useRouter();
const dataStore = useLeaveStore();
const $q = useQuasar();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
calculateDurationYmd,
fails,
messageError,
success,
dateToISO,
} = mixin;
const { date2Thai, calculateDurationYmd, messageError, dateToISO } = mixin;
const edit = ref<boolean>(true);
const files = ref<any>(null);
const leaveId = ref<any>("");
/** ตัวแปร ref สำหรับแสดง validate */
@ -127,7 +119,6 @@ function onValidate() {
*/
const isLeave = ref<boolean>(true);
async function fetchCheck() {
console.log("check");
await http
.post(config.API.leaveCheck(), {
type: dataStore.typeId ?? null,
@ -394,14 +385,14 @@ onMounted(() => {
<q-radio
v-model="formDataHaji.hajjDayStatus"
:disable="statusCheck === 'NEW'"
:val="true"
:val="'true'"
checked-icon="task_alt"
label="เคย"
/>
<q-radio
v-model="formDataHaji.hajjDayStatus"
:disable="statusCheck === 'NEW'"
:val="false"
:val="'false'"
checked-icon="task_alt"
label="ไม่เคยไปประกอบพิธีฮัจญ์"
/>

View file

@ -1,30 +1,21 @@
<script setup lang="ts">
import { reactive, ref, onMounted, computed, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import type { MilitaryForm } from "@/modules/05_leave/interface/request/AddAbsence";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { MilitaryForm } from "@/modules/05_leave/interface/request/AddAbsence";
/** Use */
const router = useRouter();
const dataStore = useLeaveStore();
const $q = useQuasar();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
calculateDurationYmd,
dateToISO,
success,
messageError,
fails,
} = mixin;
const { date2Thai, calculateDurationYmd, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
const files = ref<any>(null);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** ตัวแปร ref สำหรับแสดง validate */
const leaveStartDateRef = ref<object | null>(null);
@ -73,8 +64,7 @@ const formDataMilitary = reactive<any>({
leaveDetail: "",
});
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const isLeave = ref<boolean>(true);
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
files.forEach((file: any) => {
@ -82,6 +72,15 @@ const fileUploadDoc = async (files: any) => {
});
};
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
const formRef: MilitaryForm = {
leaveStartDate: leaveStartDateRef,
@ -143,7 +142,7 @@ function onValidate() {
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true);
async function fetchCheck() {
await http
.post(config.API.leaveCheck(), {
@ -170,17 +169,8 @@ function updateLeaveTotal() {
formDataMilitary.leaveEndDate
);
formDataMilitary.leaveTotal = newLeaveTotal;
console.log("test");
}
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
watch(props.data, () => {
if (props.data) {
formDataMilitary.leaveWrote = props.data.leaveWrote;
@ -214,7 +204,6 @@ onMounted(() => {
formDataMilitary.leaveDetail = props.data.leaveDetail;
leaveDocumentList.value = props.data.leaveDocument;
statusCheck.value = props.data.status;
// formDataMilitary.leaveDocument = props.data.leaveDocument;
leaveId.value = props.data.id;
}
});

View file

@ -1,33 +1,28 @@
<script setup lang="ts">
import { reactive, ref, computed, onMounted, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import type { studyDaySubjectForm } from "@/modules/05_leave/interface/request/AddAbsence";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useLeaveStore } from "@/modules/05_leave/store";
import { useCounterMixin } from "@/stores/mixin";
import type { studyDaySubjectForm } from "@/modules/05_leave/interface/request/AddAbsence";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const router = useRouter();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
calculateDurationYmd,
fails,
dateToISO,
success,
messageError,
arabicNumberToText,
} = mixin;
const edit = ref<boolean>(true);
const files = ref<any>(null);
const leaveId = ref<any>("");
/** ตัวแปร ref สำหรับแสดง validate */
const edit = ref<boolean>(true);
const leaveId = ref<string>("");
const leaveStartDateRef = ref<object | null>(null);
const leaveEndDateRef = ref<object | null>(null);
const leavebirthDateRef = ref<object | null>(null);
@ -102,14 +97,19 @@ const formRef: studyDaySubjectForm = {
leaveWrote: leaveWroteRef,
};
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
const leaveDocumentList = ref<any>();
const statusCheck = ref<string>("");
const isLeave = ref<boolean>(true);
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
async function fileUploadDoc(files: any) {
files.forEach((file: any) => {
fileDocDataUpload.value.push(file);
});
};
}
/** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */
function onValidate() {
@ -161,16 +161,6 @@ function onValidate() {
}
}
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true);
async function fetchCheck() {
await http
.post(config.API.leaveCheck(), {
@ -200,8 +190,6 @@ function updateLeaveTotal() {
}
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
watch(props.data, async () => {
if (props.data) {
formDataStudy.leaveWrote = props.data.leaveWrote;
@ -219,7 +207,6 @@ watch(props.data, async () => {
formDataStudy.studyDayUniversityName = props.data.studyDayUniversityName;
formDataStudy.studyDayDegreeLevel = props.data.studyDayDegreeLevel;
formDataStudy.studyDaySubject = props.data.studyDaySubject;
// formDataStudy.leaveDocument = props.data.leaveDocument;
formDataStudy.leaveDetail = props.data.leaveDetail;
formDataStudy.leaveDocument = [];
leaveDocumentList.value = props.data.leaveDocument;
@ -250,7 +237,6 @@ onMounted(async () => {
formDataStudy.studyDayUniversityName = props.data.studyDayUniversityName;
formDataStudy.studyDayDegreeLevel = props.data.studyDayDegreeLevel;
formDataStudy.studyDaySubject = props.data.studyDaySubject;
// formDataStudy.leaveDocument = props.data.leaveDocument;
formDataStudy.leaveDetail = props.data.leaveDetail;
leaveDocumentList.value = props.data.leaveDocument;
const leaveTotal = await calculateDurationYmd(

View file

@ -1,30 +1,27 @@
<script setup lang="ts">
import { reactive, ref, computed, onMounted, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import type { TrainForm } from "@/modules/05_leave/interface/request/AddAbsence";
import { useQuasar } from "quasar";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useQuasar } from "quasar";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { TrainForm } from "@/modules/05_leave/interface/request/AddAbsence";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const router = useRouter();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
arabicNumberToText,
calculateDurationYmd,
fails,
dateToISO,
success,
messageError,
} = mixin;
const edit = ref<boolean>(true);
const files = ref<any>(null);
const leaveId = ref<any>("");
/** รับ props มาจากหน้าหลัก */
@ -97,14 +94,12 @@ const formRef: TrainForm = {
leaveWrote: leaveWroteRef,
};
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
files.forEach((file: any) => {
fileDocDataUpload.value.push(file);
});
};
const isLeave = ref<boolean>(true);
const leaveDocumentList = ref<any>();
const statusCheck = ref<string>("");
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */
function onValidate() {
@ -126,7 +121,6 @@ function onValidate() {
formData.append("leaveDocument", file);
});
}
// formData.append("leaveDocument", formDataTrain.leaveDocument);
formData.append("type", formDataTrain.type); //
formData.append(
"leaveStartDate",
@ -137,11 +131,6 @@ function onValidate() {
dateToISO(new Date(formDataTrain.leaveEndDate))
); //
formData.append("studyDayCountry", formDataTrain.studyDayCountry);
// formData.append(
// "leavegovernmentDate",
// dateToISO(formDataTrain.leavegovernmentDate)
// );
// formData.append("leavebirthDate", dateToISO(new Date(formDataTrain.leavebirthDate)));
formData.append("studyDayTrainingName", formDataTrain.studyDayTrainingName);
formData.append(
"studyDayTrainingSubject",
@ -159,12 +148,6 @@ function onValidate() {
}
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true);
async function fetchCheck() {
await http
.post(config.API.leaveCheck(), {
@ -193,23 +176,6 @@ function updateLeaveTotal() {
formDataTrain.leaveTotal = newLeaveTotal;
}
/**
* แปลงตวเลขเงนเดอน
*/
const formattedSalary = computed(() => {
return formDataTrain.leaveSalary !== null
? formDataTrain.leaveSalary.toLocaleString("th-TH")
: "";
});
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
const dateEndInputStyle = computed(() => {
return !isLeave.value ? "input-alert" : "";
});
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const statusCheck = ref<any>("");
watch(props.data, async () => {
if (props.data) {
formDataTrain.leaveWrote = props.data.leaveWrote;

View file

@ -1,32 +1,25 @@
<script setup lang="ts">
import { ref, reactive, watch, onMounted, computed } from "vue";
import type { FormRef } from "@/modules/05_leave/interface/request/WorkInternationalForm";
import { useCounterMixin } from "@/stores/mixin";
import { useRouter } from "vue-router";
import { useQuasar } from "quasar";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import genReport from "@/plugins/genreport";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { FormRef } from "@/modules/05_leave/interface/request/WorkInternationalForm";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
fails,
dateToISO,
success,
messageError,
showLoader,
hideLoader,
} = mixin;
const { date2Thai, dateToISO, messageError, showLoader, hideLoader } = mixin;
const edit = ref<boolean>(true);
const router = useRouter();
const isSave = ref<boolean>(false);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** รับ props มาจากหน้าหลัก */
const props = defineProps({
@ -105,8 +98,6 @@ async function onValidate() {
formDataWorkInternational.leaveDocument.forEach((file: File) => {
formData.append("leaveDocument", file);
});
// formData.append("leaveDocument", formDataWorkInternational.leaveDocument)
}
if (formDataWorkInternational.leaveDraftDocument) {
@ -178,7 +169,8 @@ const dateEndInputStyle = computed(() => {
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const leaveDraftDocument = ref<string>();
const statusCheck = ref<any>("");
const statusCheck = ref<string>("");
watch(props, () => {
if (props.data) {
formDataWorkInternational.leaveWrote = props.data.leaveWrote;
@ -206,6 +198,7 @@ watch(
}
}
);
/**Hook */
onMounted(() => {
if (props.data) {
@ -215,7 +208,6 @@ onMounted(() => {
);
formDataWorkInternational.leaveEndDate = new Date(props.data.leaveEndDate);
formDataWorkInternational.leaveDetail = props.data.leaveDetail;
// formDataWorkInternational.leaveDocument = props.data.leaveDocument;
leaveDraftDocument.value = props.data.leaveDraftDocument;
leaveDocumentList.value = props.data.leaveDocument;
statusCheck.value = props.data.status;
@ -353,19 +345,6 @@ onMounted(() => {
</q-input>
</template>
</datepicker>
<!-- <q-input
class="col-md-3 col-sm-12"
dense
outlined
ref="leaveTotalRef"
for="leaveTotalRef"
type="number"
v-model="formDataWorkInternational.leaveTotal"
label="จำนวนวันที่ลา"
readonly
:rules="[val => !!val || `${'กรุณากรอกจำนวนวัน'}`]"
/> -->
<q-input
hide-bottom-space
type="textarea"
@ -466,9 +445,6 @@ onMounted(() => {
<div class="row">
<div class="col-sm-3 q-my-sm">
<div class="column q-mx-xs">
<!-- <div class="q-pl-sm text-weight-bold text-dark text-center">
ดาวนโหลด
</div> -->
<q-btn
color="primary"
icon="download"
@ -481,9 +457,6 @@ onMounted(() => {
</div>
<div class="col-sm-5 q-my-sm">
<div class="column q-mx-xs">
<!-- <div class="q-pl-sm text-weight-bold text-dark text-center">
ปโหลด
</div> -->
<q-file
v-model="formDataWorkInternational.leaveDraftDocument"
use-chips
@ -514,11 +487,6 @@ onMounted(() => {
/>
</div>
</div>
<!-- <div class="col-md-1 self-end q-mb-sm">
<q-btn v-if="formDataWorkInternational.leaveDraftDocument != null" use-chips flat round color="primary" icon="mdi-arrow-up-bold" @click="fileUploadDoc"
><q-tooltip>ปโหลด</q-tooltip></q-btn
>
</div> -->
</div>
</q-card>
</div>

View file

@ -1,33 +1,23 @@
<script setup lang="ts">
import { ref, reactive, computed, onMounted, watch } from "vue";
import type {
FormData,
FormRef,
} from "@/modules/05_leave/interface/request/FollowSpouseForm";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useLeaveStore } from "@/modules/05_leave/store";
import type { FormRef } from "@/modules/05_leave/interface/request/FollowSpouseForm";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const mixin = useCounterMixin();
const router = useRouter();
const {
dialogRemove,
date2Thai,
arabicNumberToText,
calculateDurationYmd,
dateToISO,
fails,
success,
messageError,
} = mixin;
const { date2Thai, calculateDurationYmd, dateToISO, messageError } = mixin;
const edit = ref<boolean>(true);
const leaveId = ref<any>("");
const leaveId = ref<string>("");
/** รับ props มาจากหน้าหลัก */
const props = defineProps({
@ -138,7 +128,6 @@ function onValidate() {
formData.append("leaveDocument", file);
});
}
// formData.append("leaveDocument", formDataFollowSpouse.leaveDocument);
formData.append("type", formDataFollowSpouse.type); //
formData.append(
"leaveStartDate",

View file

@ -1,35 +1,22 @@
<script setup lang="ts">
import { reactive, ref, onMounted, computed, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import type { RehabilitationForm } from "@/modules/05_leave/interface/request/AddAbsence";
import { useLeaveStore } from "@/modules/05_leave/store";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter } from "vue-router";
import genReport from "@/plugins/genreport";
/** Use */
const dataStore = useLeaveStore();
const $q = useQuasar();
const dataStore = useLeaveStore();
const mixin = useCounterMixin();
const {
date2Thai,
dialogRemove,
fails,
dateToISO,
success,
messageError,
showLoader,
hideLoader,
} = mixin;
const router = useRouter();
const { date2Thai, dateToISO, messageError, showLoader, hideLoader } = mixin;
const edit = ref<boolean>(true);
const isSave = ref<boolean>(false);
const files = ref<any>(null);
const leaveId = ref<any>("");
/** ตัวแปร ref สำหรับแสดง validate */
const leaveStartDateRef = ref<object | null>(null);
const leaveEndDateRef = ref<object | null>(null);
const leaveWroteRef = ref<object | null>(null);
@ -118,8 +105,6 @@ function onValidate() {
}
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
const nameFile = ref<string>("");
const nameFileDraft = ref<string>("");
const fileDocDataUpload = ref<File[]>([]);
const fileUploadDoc = async (files: any) => {
files.forEach((file: any) => {
@ -174,7 +159,7 @@ const dateEndInputStyle = computed(() => {
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
const leaveDocumentList = ref<any>();
const leaveDraftDocument = ref<string>();
const statusCheck = ref<any>("");
const statusCheck = ref<string>("");
watch(props.data, () => {
if (props.data) {
formDataRehabilitation.leaveWrote = props.data.leaveWrote;
@ -196,7 +181,6 @@ onMounted(() => {
formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate);
formDataRehabilitation.leaveEndDate = new Date(props.data.leaveEndDate);
formDataRehabilitation.leaveDetail = props.data.leaveDetail;
// formDataRehabilitation.leaveDocument = props.data.leaveDocument;
leaveDraftDocument.value = props.data.leaveDraftDocument;
leaveDocumentList.value = props.data.leaveDocument;
statusCheck.value = props.data.status;

View file

@ -1,11 +1,9 @@
<script setup lang="ts">
import { reactive, onMounted } from "vue";
import { onMounted } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import type { FormData } from "@/modules/05_leave/interface/request/AddAbsence";
import { useLeaveStore } from "@/modules/05_leave/store";
/**ตัวแปรที่ใช้ */
const mixin = useCounterMixin();
const dataStore = useLeaveStore();
const { date2Thai } = mixin;
@ -18,20 +16,6 @@ const props = defineProps({
},
});
/** ข้อมูล v-model ของฟอร์ม */
const formData = reactive<FormData>({
dateStart: new Date(),
subject: "เรื่อง",
who: "เรียนผู้ใด",
requestName: "ชื่อผู้ยื่น",
position: "ตำแหน่ง",
level: "ระดับ",
ocRequest: "สังกัด",
leaveabsentDaySummon: "2",
leaveUse: "1",
leaveRemaining: "1",
});
/**Hook */
onMounted(() => {
dataStore.typeLeave = "";