Merge branch 'develop' into dev
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m5s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m5s
* develop: fix(scholarship)delete codeComment fix(scholarship):display budgetSourceOther fix(leave) : bug watch fix(leave):bug watch fix:add function calculateFiscalYear
This commit is contained in:
commit
a720984473
23 changed files with 283 additions and 289 deletions
|
|
@ -7,6 +7,10 @@ import config from "@/app.config";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
|
import type {
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
|
} from "@/modules/05_leave/interface/index/main";
|
||||||
import type { FormRef } from "@/modules/05_leave/interface/request/SickForm";
|
import type { FormRef } from "@/modules/05_leave/interface/request/SickForm";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
|
|
@ -52,7 +56,7 @@ const formDataSick = reactive<any>({
|
||||||
leaveDetail: "",
|
leaveDetail: "",
|
||||||
leaveDocument: [],
|
leaveDocument: [],
|
||||||
});
|
});
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
|
|
||||||
/** ตัวแปร ref สำหรับแสดง validate */
|
/** ตัวแปร ref สำหรับแสดง validate */
|
||||||
const leaveWroteRef = ref<object | null>(null);
|
const leaveWroteRef = ref<object | null>(null);
|
||||||
|
|
@ -79,14 +83,27 @@ const FormRef: FormRef = {
|
||||||
leaveDetail: leaveDetailRef,
|
leaveDetail: leaveDetailRef,
|
||||||
};
|
};
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
const isLeave = ref<boolean>(true); // check ว่าลาได้ไหม จาก api
|
||||||
const nameFile = ref<string>("");
|
const reasonLeave = ref<string>(""); // ข้อความแจ้งเตือน กรณีลาไม่ได้
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const leaveId = ref<string>("");
|
||||||
async function fileUploadDoc(files: any) {
|
const statusCheck = ref<string>("");
|
||||||
files.forEach((file: any) => {
|
|
||||||
fileDocDataUpload.value.push(file);
|
/** ตรวจสอบวันลา */
|
||||||
});
|
const checkDate = computed(() => {
|
||||||
}
|
if (
|
||||||
|
convertDateToAPI(formDataSick.leaveStartDate) ==
|
||||||
|
convertDateToAPI(formDataSick.leaveEndDate)
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
|
||||||
|
const dateEndInputStyle = computed(() => {
|
||||||
|
return !isLeave.value ? "input-alert" : "";
|
||||||
|
});
|
||||||
|
|
||||||
/** ฟังก์ชั่นตรวจสอบความถูกต้องของข้อมูลในฟอร์ม */
|
/** ฟังก์ชั่นตรวจสอบความถูกต้องของข้อมูลในฟอร์ม */
|
||||||
function onValidate() {
|
function onValidate() {
|
||||||
|
|
@ -129,25 +146,7 @@ function onValidate() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** ฟังก์ชันตรวจสอบวันลา */
|
||||||
* check ว่าลาได้ไหม จาก api
|
|
||||||
* @param formData
|
|
||||||
*/
|
|
||||||
const isLeave = ref<boolean>(true);
|
|
||||||
const reasonLeave = ref<string>("");
|
|
||||||
|
|
||||||
const checkDate = computed(() => {
|
|
||||||
if (
|
|
||||||
convertDateToAPI(formDataSick.leaveStartDate) ==
|
|
||||||
convertDateToAPI(formDataSick.leaveEndDate)
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// const totalCheck = ref<number | null>(null);
|
|
||||||
async function fetchCheck() {
|
async function fetchCheck() {
|
||||||
if (formDataSick.leaveStartDate && formDataSick.leaveEndDate) {
|
if (formDataSick.leaveStartDate && formDataSick.leaveEndDate) {
|
||||||
isLoadLeaveDate.value = true;
|
isLoadLeaveDate.value = true;
|
||||||
|
|
@ -161,12 +160,11 @@ async function fetchCheck() {
|
||||||
? formDataSick.leaveRange
|
? formDataSick.leaveRange
|
||||||
: formDataSick.leaveRangeEnd,
|
: formDataSick.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
formDataSick.leaveTotal =
|
formDataSick.leaveTotal =
|
||||||
data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
||||||
// totalCheck.value =
|
|
||||||
// data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
|
||||||
reasonLeave.value =
|
reasonLeave.value =
|
||||||
data.message != ""
|
data.message != ""
|
||||||
? data.message
|
? data.message
|
||||||
|
|
@ -175,9 +173,8 @@ async function fetchCheck() {
|
||||||
: "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
: "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
||||||
isLeave.value = formDataSick.leaveTotal > 0 ? data.isLeave : false;
|
isLeave.value = formDataSick.leaveTotal > 0 ? data.isLeave : false;
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
// totalCheck.value = null;
|
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
leaveDocumentRef.value.resetValidation();
|
leaveDocumentRef.value.resetValidation();
|
||||||
|
|
@ -186,41 +183,16 @@ async function fetchCheck() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
|
/** ฟังก์ชันสำหรับ map ข้อมูลจาก props เข้า form */
|
||||||
const dateEndInputStyle = computed(() => {
|
function mapPropsToFormData() {
|
||||||
return !isLeave.value ? "input-alert" : "";
|
|
||||||
});
|
|
||||||
|
|
||||||
const leaveId = ref<any>("");
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
|
||||||
const statusCheck = ref<any>("");
|
|
||||||
watch(
|
|
||||||
() => props.data,
|
|
||||||
() => {
|
|
||||||
if (props.data) {
|
|
||||||
// totalCheck.value = null;
|
|
||||||
formDataSick.leaveWrote = props.data.leaveWrote;
|
|
||||||
formDataSick.leaveStartDate = new Date(props.data.leaveStartDate);
|
|
||||||
formDataSick.leaveEndDate = new Date(props.data.leaveEndDate);
|
|
||||||
formDataSick.contractTel = props.data.contractTel;
|
|
||||||
formDataSick.leaveTotal = props.data.leaveTotal;
|
|
||||||
formDataSick.leaveDetail = props.data.leaveDetail;
|
|
||||||
formDataSick.leaveRange = props.data.leaveRange;
|
|
||||||
formDataSick.leaveRangeEnd = props.data.leaveRangeEnd;
|
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
|
||||||
statusCheck.value = props.data.status;
|
|
||||||
formDataSick.leaveDocument = [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
/** Hook */
|
|
||||||
onMounted(() => {
|
|
||||||
if (props.data) {
|
if (props.data) {
|
||||||
// totalCheck.value = null;
|
|
||||||
formDataSick.leaveWrote = props.data.leaveWrote;
|
formDataSick.leaveWrote = props.data.leaveWrote;
|
||||||
formDataSick.leaveStartDate = new Date(props.data.leaveStartDate);
|
formDataSick.leaveStartDate = props.data.leaveStartDate
|
||||||
formDataSick.leaveEndDate = new Date(props.data.leaveEndDate);
|
? new Date(props.data.leaveStartDate)
|
||||||
|
: null;
|
||||||
|
formDataSick.leaveEndDate = props.data.leaveEndDate
|
||||||
|
? new Date(props.data.leaveEndDate)
|
||||||
|
: null;
|
||||||
formDataSick.contractTel = props.data.contractTel;
|
formDataSick.contractTel = props.data.contractTel;
|
||||||
formDataSick.leaveTotal = props.data.leaveTotal;
|
formDataSick.leaveTotal = props.data.leaveTotal;
|
||||||
formDataSick.leaveDetail = props.data.leaveDetail;
|
formDataSick.leaveDetail = props.data.leaveDetail;
|
||||||
|
|
@ -229,7 +201,22 @@ onMounted(() => {
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
leaveId.value = props.data.id;
|
leaveId.value = props.data.id;
|
||||||
|
formDataSick.leaveDocument = [];
|
||||||
|
console.log(props.data.leaveDocument);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.data,
|
||||||
|
() => {
|
||||||
|
mapPropsToFormData();
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
/** Hook */
|
||||||
|
onMounted(() => {
|
||||||
|
mapPropsToFormData();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -391,7 +378,7 @@ onMounted(() => {
|
||||||
dense
|
dense
|
||||||
bg-color="white"
|
bg-color="white"
|
||||||
v-model="formDataSick.leaveRangeEnd"
|
v-model="formDataSick.leaveRangeEnd"
|
||||||
:options="dataStore.rangeOptions.filter((items:any)=> items.id !== 'AFTERNOON')"
|
:options="dataStore.rangeOptions.filter((items:DataOptions)=> items.id !== 'AFTERNOON')"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { FormRef } from "@/modules/05_leave/interface/request/BirthForm";
|
import type { FormRef } from "@/modules/05_leave/interface/request/BirthForm";
|
||||||
|
import type {
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
|
} from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -64,6 +68,12 @@ const leaveAddressRef = ref<object | null>(null);
|
||||||
const leaveDetailRef = ref<object | null>(null);
|
const leaveDetailRef = ref<object | null>(null);
|
||||||
const leaveDocumentRef = ref<object | null>(null);
|
const leaveDocumentRef = ref<object | null>(null);
|
||||||
|
|
||||||
|
const isLeave = ref<boolean>(true); // ตัวแปรตรวจสอบการลา
|
||||||
|
const reasonLeave = ref<string>(""); // ตัวแปรเก็บข้อความแจ้งเตือนการลา
|
||||||
|
const fileDocDataUpload = ref<File[]>([]); // ตัวแปรเก็บไฟล์เอกสารประกอบ
|
||||||
|
const leaveDocumentList = ref<DocumentLists[]>([]); // ตัวแปรเก็บรายการเอกสารประกอบ
|
||||||
|
const statusCheck = ref<string>(""); // ตัวแปรเก็บสถานะการลา
|
||||||
|
|
||||||
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
|
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
|
||||||
const FormRef: FormRef = {
|
const FormRef: FormRef = {
|
||||||
leaveWrote: leaveWroteRef,
|
leaveWrote: leaveWroteRef,
|
||||||
|
|
@ -76,11 +86,29 @@ const FormRef: FormRef = {
|
||||||
leaveDocument: leaveDocumentRef,
|
leaveDocument: leaveDocumentRef,
|
||||||
};
|
};
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ตรวจสอบวันลา */
|
||||||
const nameFile = ref<string>("");
|
const checkDate = computed(() => {
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
if (
|
||||||
async function fileUploadDoc(files: any) {
|
convertDateToAPI(formDataBirth.leaveEndDate) ==
|
||||||
files.forEach((file: any) => {
|
convertDateToAPI(formDataBirth.leaveStartDate)
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
|
||||||
|
const dateEndInputStyle = computed(() => {
|
||||||
|
return !isLeave.value ? "input-alert" : "";
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ฟังก์ชั่นอัพโหลดเอกสารประกอบ
|
||||||
|
* @param files ไฟล์เอกสารประกอบ
|
||||||
|
*/
|
||||||
|
async function fileUploadDoc(files: File[]) {
|
||||||
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -126,20 +154,6 @@ function onValidate() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isLeave = ref<boolean>(true);
|
|
||||||
const reasonLeave = ref<string>("");
|
|
||||||
|
|
||||||
const checkDate = computed(() => {
|
|
||||||
if (
|
|
||||||
convertDateToAPI(formDataBirth.leaveEndDate) ==
|
|
||||||
convertDateToAPI(formDataBirth.leaveStartDate)
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/** ตรวจสอบวันลา */
|
/** ตรวจสอบวันลา */
|
||||||
async function fetchCheck() {
|
async function fetchCheck() {
|
||||||
if (formDataBirth.leaveStartDate && formDataBirth.leaveEndDate) {
|
if (formDataBirth.leaveStartDate && formDataBirth.leaveEndDate) {
|
||||||
|
|
@ -185,47 +199,38 @@ async function fetchCheck() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
|
/** ฟังก์ชันสำหรับ map ข้อมูลจาก props เข้า form */
|
||||||
const dateEndInputStyle = computed(() => {
|
async function onMapDataProps() {
|
||||||
return !isLeave.value ? "input-alert" : "";
|
|
||||||
});
|
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
|
||||||
const leaveDocumentList = ref<any>();
|
|
||||||
const statusCheck = ref<any>("");
|
|
||||||
watch(
|
|
||||||
() => props.data,
|
|
||||||
() => {
|
|
||||||
if (props.data) {
|
|
||||||
// totalCheck.value = null;
|
|
||||||
formDataBirth.leaveWrote = props.data.leaveWrote;
|
|
||||||
formDataBirth.leaveStartDate = props.data.leaveStartDate;
|
|
||||||
formDataBirth.leaveEndDate = props.data.leaveEndDate;
|
|
||||||
formDataBirth.leaveTotal = props.data.leaveTotal;
|
|
||||||
formDataBirth.leaveDetail = props.data.leaveDetail;
|
|
||||||
formDataBirth.leaveRangeEnd = props.data.leaveRangeEnd;
|
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
|
||||||
statusCheck.value = props.data.status;
|
|
||||||
formDataBirth.leaveDocument = [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
/** Hook */
|
|
||||||
onMounted(() => {
|
|
||||||
if (props.data) {
|
if (props.data) {
|
||||||
// totalCheck.value = null;
|
|
||||||
formDataBirth.leaveWrote = props.data.leaveWrote;
|
formDataBirth.leaveWrote = props.data.leaveWrote;
|
||||||
formDataBirth.leaveStartDate = props.data.leaveStartDate;
|
formDataBirth.leaveStartDate = props.data.leaveStartDate;
|
||||||
formDataBirth.leaveEndDate = props.data.leaveEndDate;
|
formDataBirth.leaveEndDate = props.data.leaveEndDate;
|
||||||
formDataBirth.leaveTotal = props.data.leaveTotal;
|
formDataBirth.leaveTotal = props.data.leaveTotal;
|
||||||
formDataBirth.leaveDetail = props.data.leaveDetail;
|
formDataBirth.leaveDetail = props.data.leaveDetail;
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
|
||||||
formDataBirth.leaveRange = props.data.leaveRange;
|
formDataBirth.leaveRange = props.data.leaveRange;
|
||||||
formDataBirth.leaveRangeEnd = props.data.leaveRangeEnd;
|
formDataBirth.leaveRangeEnd = props.data.leaveRangeEnd;
|
||||||
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
leaveId.value = props.data.id;
|
leaveId.value = props.data.id;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** ตรวจสอบการเปลี่ยนแปลงข้อมูลใน props */
|
||||||
|
watch(
|
||||||
|
() => props.data,
|
||||||
|
async () => {
|
||||||
|
await onMapDataProps();
|
||||||
|
formDataBirth.leaveDocument = [];
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
/** Hook */
|
||||||
|
onMounted(() => {
|
||||||
|
if (props.data) {
|
||||||
|
onMapDataProps();
|
||||||
|
leaveId.value = props.data.id;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -387,7 +392,7 @@ onMounted(() => {
|
||||||
dense
|
dense
|
||||||
bg-color="white"
|
bg-color="white"
|
||||||
v-model="formDataBirth.leaveRangeEnd"
|
v-model="formDataBirth.leaveRangeEnd"
|
||||||
:options="dataStore.rangeOptions.filter((items:any)=> items.id !== 'AFTERNOON')"
|
:options="dataStore.rangeOptions.filter((items:DataOptions)=> items.id !== 'AFTERNOON')"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { FormRef } from "@/modules/05_leave/interface/request/HelpWifeForm";
|
import type { FormRef } from "@/modules/05_leave/interface/request/HelpWifeForm";
|
||||||
|
import type {
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
|
} from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -65,8 +69,8 @@ const leaveAddressRef = ref<object | null>(null);
|
||||||
const leaveDetailRef = ref<object | null>(null);
|
const leaveDetailRef = ref<object | null>(null);
|
||||||
const leaveDocumentRef = ref<object | null>(null);
|
const leaveDocumentRef = ref<object | null>(null);
|
||||||
|
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<any>("");
|
const statusCheck = ref<string>("");
|
||||||
const isLeave = ref<boolean>(true);
|
const isLeave = ref<boolean>(true);
|
||||||
const dateEndInputStyle = computed(() => {
|
const dateEndInputStyle = computed(() => {
|
||||||
return !isLeave.value ? "input-alert" : "";
|
return !isLeave.value ? "input-alert" : "";
|
||||||
|
|
@ -88,8 +92,8 @@ const FormRef: FormRef = {
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -168,7 +172,7 @@ async function fetchCheck() {
|
||||||
? formDataHelpWife.leaveRange
|
? formDataHelpWife.leaveRange
|
||||||
: formDataHelpWife.leaveRangeEnd,
|
: formDataHelpWife.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
formDataHelpWife.leaveTotal =
|
formDataHelpWife.leaveTotal =
|
||||||
data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
||||||
|
|
@ -207,7 +211,8 @@ watch(
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
@ -386,7 +391,7 @@ onMounted(async () => {
|
||||||
dense
|
dense
|
||||||
bg-color="white"
|
bg-color="white"
|
||||||
v-model="formDataHelpWife.leaveRangeEnd"
|
v-model="formDataHelpWife.leaveRangeEnd"
|
||||||
:options="dataStore.rangeOptions.filter((items:any)=> items.id !== 'AFTERNOON')"
|
:options="dataStore.rangeOptions.filter((items:DataOptions)=> items.id !== 'AFTERNOON')"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { FormRef } from "@/modules/05_leave/interface/request/VacationForm";
|
import type { FormRef } from "@/modules/05_leave/interface/request/VacationForm";
|
||||||
import type { DataOption } from "@/modules/14_IDP/interface/Main";
|
import type { DataOption } from "@/modules/14_IDP/interface/Main";
|
||||||
|
import type { DocumentLists } from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -84,14 +85,14 @@ const FormRef: FormRef = {
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<string>("");
|
const statusCheck = ref<string>("");
|
||||||
|
|
||||||
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
|
/** แจ้งเมื่อวันลาไม่ถูกต้อง */
|
||||||
|
|
@ -173,7 +174,7 @@ async function fetchCheck() {
|
||||||
? formDataVacation.leaveRange
|
? formDataVacation.leaveRange
|
||||||
: formDataVacation.leaveRangeEnd,
|
: formDataVacation.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
formDataVacation.leaveTotal =
|
formDataVacation.leaveTotal =
|
||||||
data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
data.totalDate - data.sumDateWork - data.sumDateHoliday;
|
||||||
|
|
@ -186,7 +187,7 @@ async function fetchCheck() {
|
||||||
: "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
: "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
||||||
isLeave.value = formDataVacation.leaveTotal > 0 ? data.isLeave : false;
|
isLeave.value = formDataVacation.leaveTotal > 0 ? data.isLeave : false;
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -213,7 +214,8 @@ watch(
|
||||||
formDataVacation.leaveRange = props.data.leaveRange;
|
formDataVacation.leaveRange = props.data.leaveRange;
|
||||||
formDataVacation.leaveDocument = [];
|
formDataVacation.leaveDocument = [];
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { OrdinationForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
import type { OrdinationForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
||||||
|
import type {
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
|
} from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -92,8 +96,8 @@ const formRef: OrdinationForm = {
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -195,7 +199,7 @@ async function fetchCheck() {
|
||||||
? formDataOrdination.leaveRange
|
? formDataOrdination.leaveRange
|
||||||
: formDataOrdination.leaveRangeEnd,
|
: formDataOrdination.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
formDataOrdination.leaveTotal = data.totalDate;
|
formDataOrdination.leaveTotal = data.totalDate;
|
||||||
reasonLeave.value =
|
reasonLeave.value =
|
||||||
|
|
@ -207,7 +211,7 @@ async function fetchCheck() {
|
||||||
isLeave.value =
|
isLeave.value =
|
||||||
formDataOrdination.leaveTotal > 0 ? data.isLeave : false;
|
formDataOrdination.leaveTotal > 0 ? data.isLeave : false;
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -222,7 +226,7 @@ const dateEndInputStyle = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<string>("");
|
const statusCheck = ref<string>("");
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
@ -253,7 +257,8 @@ watch(
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
formDataOrdination.leaveDocument = [];
|
formDataOrdination.leaveDocument = [];
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/** Hook */
|
/** Hook */
|
||||||
|
|
@ -450,7 +455,7 @@ onMounted(async () => {
|
||||||
dense
|
dense
|
||||||
bg-color="white"
|
bg-color="white"
|
||||||
v-model="formDataOrdination.leaveRangeEnd"
|
v-model="formDataOrdination.leaveRangeEnd"
|
||||||
:options="dataStore.rangeOptions.filter((items:any)=> items.id !== 'AFTERNOON')"
|
:options="dataStore.rangeOptions.filter((items:DataOptions)=> items.id !== 'AFTERNOON')"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@ import config from "@/app.config";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { HajiForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
import type { HajiForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
||||||
|
import type {
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
|
} from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const dataStore = useLeaveStore();
|
const dataStore = useLeaveStore();
|
||||||
|
|
@ -22,7 +26,7 @@ const {
|
||||||
} = mixin;
|
} = mixin;
|
||||||
|
|
||||||
const edit = ref<boolean>(true);
|
const edit = ref<boolean>(true);
|
||||||
const leaveId = ref<any>("");
|
const leaveId = ref<string>("");
|
||||||
const leaveText = ref<string>("");
|
const leaveText = ref<string>("");
|
||||||
|
|
||||||
/** ตัวแปร ref สำหรับแสดง validate */
|
/** ตัวแปร ref สำหรับแสดง validate */
|
||||||
|
|
@ -78,8 +82,8 @@ const formRef: HajiForm = {
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -156,7 +160,7 @@ async function fetchCheck() {
|
||||||
? formDataHaji.leaveRange
|
? formDataHaji.leaveRange
|
||||||
: formDataHaji.leaveRangeEnd,
|
: formDataHaji.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
formDataHaji.leaveTotal = data.totalDate;
|
formDataHaji.leaveTotal = data.totalDate;
|
||||||
leaveText.value = calculateDurationYmd(
|
leaveText.value = calculateDurationYmd(
|
||||||
|
|
@ -171,7 +175,7 @@ async function fetchCheck() {
|
||||||
: "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
: "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
||||||
isLeave.value = formDataHaji.leaveTotal > 0 ? data.isLeave : false;
|
isLeave.value = formDataHaji.leaveTotal > 0 ? data.isLeave : false;
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -186,8 +190,8 @@ const dateEndInputStyle = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<any>("");
|
const statusCheck = ref<string>("");
|
||||||
watch(
|
watch(
|
||||||
() => props.data,
|
() => props.data,
|
||||||
async () => {
|
async () => {
|
||||||
|
|
@ -205,7 +209,8 @@ watch(
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
formDataHaji.leaveDocument = [];
|
formDataHaji.leaveDocument = [];
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
@ -377,7 +382,7 @@ onMounted(async () => {
|
||||||
class="col-12 col-md-3 col-sm-6 inputgreen"
|
class="col-12 col-md-3 col-sm-6 inputgreen"
|
||||||
bg-color="white"
|
bg-color="white"
|
||||||
v-model="formDataHaji.leaveRangeEnd"
|
v-model="formDataHaji.leaveRangeEnd"
|
||||||
:options="dataStore.rangeOptions.filter((items:any)=> items.id !== 'AFTERNOON')"
|
:options="dataStore.rangeOptions.filter((items:DataOptions)=> items.id !== 'AFTERNOON')"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { MilitaryForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
import type { MilitaryForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
||||||
|
import type {
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
|
} from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const dataStore = useLeaveStore();
|
const dataStore = useLeaveStore();
|
||||||
|
|
@ -69,8 +73,8 @@ const formDataMilitary = reactive<any>({
|
||||||
|
|
||||||
const isLeave = ref<boolean>(true);
|
const isLeave = ref<boolean>(true);
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -81,8 +85,8 @@ const dateEndInputStyle = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<any>("");
|
const statusCheck = ref<string>("");
|
||||||
|
|
||||||
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
|
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
|
||||||
const formRef: MilitaryForm = {
|
const formRef: MilitaryForm = {
|
||||||
|
|
@ -173,7 +177,7 @@ async function fetchCheck() {
|
||||||
? formDataMilitary.leaveRange
|
? formDataMilitary.leaveRange
|
||||||
: formDataMilitary.leaveRangeEnd,
|
: formDataMilitary.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
isLeave.value = data.isLeave;
|
isLeave.value = data.isLeave;
|
||||||
formDataMilitary.leaveTotal = data.totalDate;
|
formDataMilitary.leaveTotal = data.totalDate;
|
||||||
|
|
@ -184,7 +188,7 @@ async function fetchCheck() {
|
||||||
reasonLeave.value =
|
reasonLeave.value =
|
||||||
data.message != "" ? data.message : "จำนวนวันลาเกินที่กำหนด";
|
data.message != "" ? data.message : "จำนวนวันลาเกินที่กำหนด";
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -209,7 +213,7 @@ watch(
|
||||||
formDataMilitary.absentDayAt = props.data.absentDayAt;
|
formDataMilitary.absentDayAt = props.data.absentDayAt;
|
||||||
formDataMilitary.leaveRange = props.data.leaveRange;
|
formDataMilitary.leaveRange = props.data.leaveRange;
|
||||||
formDataMilitary.leaveRangeEnd = props.data.leaveRangeEnd;
|
formDataMilitary.leaveRangeEnd = props.data.leaveRangeEnd;
|
||||||
const leaveTotal = await calculateDurationYmd(
|
const leaveTotal = calculateDurationYmd(
|
||||||
props.data.leaveStartDate,
|
props.data.leaveStartDate,
|
||||||
props.data.leaveEndDate
|
props.data.leaveEndDate
|
||||||
);
|
);
|
||||||
|
|
@ -219,7 +223,8 @@ watch(
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
formDataMilitary.leaveDocument = [];
|
formDataMilitary.leaveDocument = [];
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
@ -239,7 +244,7 @@ onMounted(async () => {
|
||||||
|
|
||||||
formDataMilitary.leaveRange = props.data.leaveRange;
|
formDataMilitary.leaveRange = props.data.leaveRange;
|
||||||
formDataMilitary.leaveRangeEnd = props.data.leaveRangeEnd;
|
formDataMilitary.leaveRangeEnd = props.data.leaveRangeEnd;
|
||||||
const leaveTotal = await calculateDurationYmd(
|
const leaveTotal = calculateDurationYmd(
|
||||||
props.data.leaveStartDate,
|
props.data.leaveStartDate,
|
||||||
props.data.leaveEndDate
|
props.data.leaveEndDate
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
import type { studyDaySubjectForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
import type { studyDaySubjectForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
||||||
|
import type { DocumentLists } from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -99,15 +100,15 @@ const formRef: studyDaySubjectForm = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<string>("");
|
const statusCheck = ref<string>("");
|
||||||
const isLeave = ref<boolean>(true);
|
const isLeave = ref<boolean>(true);
|
||||||
const dateEndInputStyle = computed(() => {
|
const dateEndInputStyle = computed(() => {
|
||||||
return !isLeave.value ? "input-alert" : "";
|
return !isLeave.value ? "input-alert" : "";
|
||||||
});
|
});
|
||||||
|
|
||||||
async function fileUploadDoc(files: any) {
|
async function fileUploadDoc(files: File[]) {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -193,7 +194,7 @@ async function fetchCheck() {
|
||||||
? formDataStudy.leaveRange
|
? formDataStudy.leaveRange
|
||||||
: formDataStudy.leaveRangeEnd,
|
: formDataStudy.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
isLeave.value = data.isLeave;
|
isLeave.value = data.isLeave;
|
||||||
formDataStudy.leaveTotal = data.totalDate;
|
formDataStudy.leaveTotal = data.totalDate;
|
||||||
|
|
@ -206,7 +207,7 @@ async function fetchCheck() {
|
||||||
? data.message
|
? data.message
|
||||||
: "จำนวนวันลาเกินที่กำหนด";
|
: "จำนวนวันลาเกินที่กำหนด";
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -240,14 +241,15 @@ watch(
|
||||||
formDataStudy.leaveRangeEnd = props.data.leaveRangeEnd;
|
formDataStudy.leaveRangeEnd = props.data.leaveRangeEnd;
|
||||||
formDataStudy.leaveDocument = [];
|
formDataStudy.leaveDocument = [];
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
const leaveTotal = await calculateDurationYmd(
|
const leaveTotal = calculateDurationYmd(
|
||||||
props.data.leaveStartDate,
|
props.data.leaveStartDate,
|
||||||
props.data.leaveEndDate
|
props.data.leaveEndDate
|
||||||
);
|
);
|
||||||
leaveText.value = leaveTotal;
|
leaveText.value = leaveTotal;
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
@ -275,7 +277,7 @@ onMounted(async () => {
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
formDataStudy.leaveTotal = props.data.leaveTotal;
|
formDataStudy.leaveTotal = props.data.leaveTotal;
|
||||||
|
|
||||||
const leaveTotal = await calculateDurationYmd(
|
const leaveTotal = calculateDurationYmd(
|
||||||
props.data.leaveStartDate,
|
props.data.leaveStartDate,
|
||||||
props.data.leaveEndDate
|
props.data.leaveEndDate
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import { useQuasar } from "quasar";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { TrainForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
import type { TrainForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
||||||
|
import type { DocumentLists } from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -23,7 +24,7 @@ const {
|
||||||
|
|
||||||
const leaveText = ref<string>("");
|
const leaveText = ref<string>("");
|
||||||
const edit = ref<boolean>(true);
|
const edit = ref<boolean>(true);
|
||||||
const leaveId = ref<any>("");
|
const leaveId = ref<string>("");
|
||||||
|
|
||||||
/** รับ props มาจากหน้าหลัก */
|
/** รับ props มาจากหน้าหลัก */
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
@ -96,7 +97,7 @@ const formRef: TrainForm = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const isLeave = ref<boolean>(true);
|
const isLeave = ref<boolean>(true);
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<string>("");
|
const statusCheck = ref<string>("");
|
||||||
const dateEndInputStyle = computed(() => {
|
const dateEndInputStyle = computed(() => {
|
||||||
return !isLeave.value ? "input-alert" : "";
|
return !isLeave.value ? "input-alert" : "";
|
||||||
|
|
@ -180,7 +181,7 @@ async function fetchCheck() {
|
||||||
? formDataTrain.leaveRange
|
? formDataTrain.leaveRange
|
||||||
: formDataTrain.leaveRangeEnd,
|
: formDataTrain.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
isLeave.value = data.isLeave;
|
isLeave.value = data.isLeave;
|
||||||
formDataTrain.leaveTotal = data.totalDate;
|
formDataTrain.leaveTotal = data.totalDate;
|
||||||
|
|
@ -193,7 +194,7 @@ async function fetchCheck() {
|
||||||
? data.message
|
? data.message
|
||||||
: "จำนวนวันลาเกินที่กำหนด";
|
: "จำนวนวันลาเกินที่กำหนด";
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -231,7 +232,8 @@ watch(
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { FormRef } from "@/modules/05_leave/interface/request/WorkInternationalForm";
|
import type { FormRef } from "@/modules/05_leave/interface/request/WorkInternationalForm";
|
||||||
|
import type { DocumentLists } from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -79,8 +80,8 @@ const FormRef: FormRef = {
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -187,7 +188,7 @@ async function fetchCheck() {
|
||||||
? formDataWorkInternational.leaveRange
|
? formDataWorkInternational.leaveRange
|
||||||
: formDataWorkInternational.leaveRangeEnd,
|
: formDataWorkInternational.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
isLeave.value = data.isLeave;
|
isLeave.value = data.isLeave;
|
||||||
formDataWorkInternational.leaveTotal = data.totalDate;
|
formDataWorkInternational.leaveTotal = data.totalDate;
|
||||||
|
|
@ -199,7 +200,7 @@ async function fetchCheck() {
|
||||||
? data.message
|
? data.message
|
||||||
: "จำนวนวันลาเกินที่กำหนด";
|
: "จำนวนวันลาเกินที่กำหนด";
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -214,7 +215,7 @@ const dateEndInputStyle = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const leaveDraftDocument = ref<string>();
|
const leaveDraftDocument = ref<string>();
|
||||||
const statusCheck = ref<string>("");
|
const statusCheck = ref<string>("");
|
||||||
|
|
||||||
|
|
@ -245,21 +246,10 @@ watch(
|
||||||
);
|
);
|
||||||
leaveText.value = leaveTotal;
|
leaveText.value = leaveTotal;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
// watch(
|
|
||||||
// () => formDataWorkInternational.leaveEndDate,
|
|
||||||
// () => {
|
|
||||||
// if (
|
|
||||||
// formDataWorkInternational.leaveStartDate !== null &&
|
|
||||||
// formDataWorkInternational.leaveEndDate !== null
|
|
||||||
// ) {
|
|
||||||
// fetchCheck();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (props.data) {
|
if (props.data) {
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
|
||||||
import type { FormRef } from "@/modules/05_leave/interface/request/FollowSpouseForm";
|
import type { FormRef } from "@/modules/05_leave/interface/request/FollowSpouseForm";
|
||||||
|
import type { DocumentLists } from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
/** Use */
|
/** Use */
|
||||||
const dataStore = useLeaveStore();
|
const dataStore = useLeaveStore();
|
||||||
|
|
@ -116,10 +117,9 @@ const FormRef: FormRef = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const nameFile = ref<string>("");
|
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -220,7 +220,7 @@ async function fetchCheck() {
|
||||||
? formDataFollowSpouse.leaveRange
|
? formDataFollowSpouse.leaveRange
|
||||||
: formDataFollowSpouse.leaveRangeEnd,
|
: formDataFollowSpouse.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
isLeave.value = data.isLeave;
|
isLeave.value = data.isLeave;
|
||||||
formDataFollowSpouse.leaveTotal = data.totalDate;
|
formDataFollowSpouse.leaveTotal = data.totalDate;
|
||||||
|
|
@ -234,7 +234,7 @@ async function fetchCheck() {
|
||||||
: "จำนวนวันลาเกินที่กำหนด";
|
: "จำนวนวันลาเกินที่กำหนด";
|
||||||
checkTotalHistory();
|
checkTotalHistory();
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
@ -275,8 +275,8 @@ const dateEndInputStyle = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const statusCheck = ref<any>("");
|
const statusCheck = ref<string>("");
|
||||||
watch(
|
watch(
|
||||||
() => props.data,
|
() => props.data,
|
||||||
async () => {
|
async () => {
|
||||||
|
|
@ -308,13 +308,13 @@ watch(
|
||||||
props.data.coupleDayEndDateHistory;
|
props.data.coupleDayEndDateHistory;
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
checkTotalHistory();
|
checkTotalHistory();
|
||||||
const leaveTotal = await calculateDurationYmd(
|
const leaveTotal = calculateDurationYmd(
|
||||||
props.data.leaveStartDate,
|
props.data.leaveStartDate,
|
||||||
props.data.leaveEndDate
|
props.data.leaveEndDate
|
||||||
);
|
);
|
||||||
leaveText.value = leaveTotal;
|
leaveText.value = leaveTotal;
|
||||||
|
|
||||||
const coupleDayTotalHistory = await calculateDurationYmd(
|
const coupleDayTotalHistory = calculateDurationYmd(
|
||||||
props.data.coupleDayStartDateHistory,
|
props.data.coupleDayStartDateHistory,
|
||||||
props.data.coupleDayEndDateHistory
|
props.data.coupleDayEndDateHistory
|
||||||
);
|
);
|
||||||
|
|
@ -322,7 +322,8 @@ watch(
|
||||||
statusCheck.value = props.data.status;
|
statusCheck.value = props.data.status;
|
||||||
formDataFollowSpouse.leaveDocument = [];
|
formDataFollowSpouse.leaveDocument = [];
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
@ -356,13 +357,13 @@ onMounted(async () => {
|
||||||
props.data.coupleDayEndDateHistory;
|
props.data.coupleDayEndDateHistory;
|
||||||
leaveDocumentList.value = props.data.leaveDocument;
|
leaveDocumentList.value = props.data.leaveDocument;
|
||||||
checkTotalHistory();
|
checkTotalHistory();
|
||||||
const leaveTotal = await calculateDurationYmd(
|
const leaveTotal = calculateDurationYmd(
|
||||||
props.data.leaveStartDate,
|
props.data.leaveStartDate,
|
||||||
props.data.leaveEndDate
|
props.data.leaveEndDate
|
||||||
);
|
);
|
||||||
leaveText.value = leaveTotal;
|
leaveText.value = leaveTotal;
|
||||||
|
|
||||||
const coupleDayTotalHistory = await calculateDurationYmd(
|
const coupleDayTotalHistory = calculateDurationYmd(
|
||||||
props.data.coupleDayStartDateHistory,
|
props.data.coupleDayStartDateHistory,
|
||||||
props.data.coupleDayEndDateHistory
|
props.data.coupleDayEndDateHistory
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref, onMounted, computed, watch } from "vue";
|
import { reactive, ref, onMounted, computed, watch } from "vue";
|
||||||
import { is, useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
import type { RehabilitationForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
import type { RehabilitationForm } from "@/modules/05_leave/interface/request/AddAbsence";
|
||||||
|
|
@ -8,7 +8,8 @@ import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import genReport from "@/plugins/genreport";
|
import genReport from "@/plugins/genreport";
|
||||||
import { load } from "@/router/loader";
|
|
||||||
|
import type { DocumentLists } from "@/modules/05_leave/interface/index/main";
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const dataStore = useLeaveStore();
|
const dataStore = useLeaveStore();
|
||||||
|
|
@ -24,7 +25,7 @@ const {
|
||||||
|
|
||||||
const edit = ref<boolean>(true);
|
const edit = ref<boolean>(true);
|
||||||
const isSave = ref<boolean>(false);
|
const isSave = ref<boolean>(false);
|
||||||
const leaveId = ref<any>("");
|
const leaveId = ref<string>("");
|
||||||
const leaveStartDateRef = ref<object | null>(null);
|
const leaveStartDateRef = ref<object | null>(null);
|
||||||
const leaveEndDateRef = ref<object | null>(null);
|
const leaveEndDateRef = ref<object | null>(null);
|
||||||
const leaveWroteRef = ref<object | null>(null);
|
const leaveWroteRef = ref<object | null>(null);
|
||||||
|
|
@ -106,8 +107,8 @@ async function onValidate() {
|
||||||
|
|
||||||
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
/** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */
|
||||||
const fileDocDataUpload = ref<File[]>([]);
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const fileUploadDoc = async (files: any) => {
|
const fileUploadDoc = async (files: File[]) => {
|
||||||
files.forEach((file: any) => {
|
files.forEach((file: File) => {
|
||||||
fileDocDataUpload.value.push(file);
|
fileDocDataUpload.value.push(file);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -146,7 +147,7 @@ async function fetchCheck() {
|
||||||
? formDataRehabilitation.leaveRange
|
? formDataRehabilitation.leaveRange
|
||||||
: formDataRehabilitation.leaveRangeEnd,
|
: formDataRehabilitation.leaveRangeEnd,
|
||||||
})
|
})
|
||||||
.then((res: any) => {
|
.then((res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
isLeave.value = data.isLeave;
|
isLeave.value = data.isLeave;
|
||||||
formDataRehabilitation.leaveTotal = data.totalDate;
|
formDataRehabilitation.leaveTotal = data.totalDate;
|
||||||
|
|
@ -160,7 +161,7 @@ async function fetchCheck() {
|
||||||
? data.message
|
? data.message
|
||||||
: "จำนวนวันลาเกินที่กำหนด";
|
: "จำนวนวันลาเกินที่กำหนด";
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e) => {
|
||||||
messageError($q, e);
|
messageError($q, e);
|
||||||
// totalCheck.value = null
|
// totalCheck.value = null
|
||||||
})
|
})
|
||||||
|
|
@ -193,7 +194,7 @@ const dateEndInputStyle = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
|
||||||
const leaveDocumentList = ref<any>();
|
const leaveDocumentList = ref<DocumentLists[]>([]);
|
||||||
const leaveDraftDocument = ref<string>();
|
const leaveDraftDocument = ref<string>();
|
||||||
const statusCheck = ref<string>("");
|
const statusCheck = ref<string>("");
|
||||||
watch(
|
watch(
|
||||||
|
|
@ -220,7 +221,8 @@ watch(
|
||||||
);
|
);
|
||||||
leaveText.value = leaveTotal;
|
leaveText.value = leaveTotal;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hook */
|
/**Hook */
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted } from "vue";
|
import { ref, onMounted } from "vue";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useLeaveStore } from "@/modules/05_leave/store";
|
import { useLeaveStore } from "@/modules/05_leave/store";
|
||||||
|
import { calculateFiscalYear } from "@/utils/functions";
|
||||||
|
|
||||||
import type { LeaveType } from "@/modules/05_leave/interface/response/leave";
|
import type { LeaveType } from "@/modules/05_leave/interface/response/leave";
|
||||||
|
|
||||||
|
|
@ -26,7 +27,7 @@ const leaveType = ref<LeaveType[]>();
|
||||||
const leaveStatus = ref<string>("");
|
const leaveStatus = ref<string>("");
|
||||||
|
|
||||||
/** filter */
|
/** filter */
|
||||||
const year = ref<number>(new Date().getFullYear());
|
const year = ref<number>(LeaveData.fiscalYearyear);
|
||||||
const type = ref<string>("00000000-0000-0000-0000-000000000000");
|
const type = ref<string>("00000000-0000-0000-0000-000000000000");
|
||||||
const status = ref<string>("ALL");
|
const status = ref<string>("ALL");
|
||||||
const filter = ref<string>("");
|
const filter = ref<string>("");
|
||||||
|
|
@ -139,6 +140,7 @@ async function updateFilterTable(y: number, t: string, s: string, k: string) {
|
||||||
type.value = t;
|
type.value = t;
|
||||||
status.value = s;
|
status.value = s;
|
||||||
filter.value = k;
|
filter.value = k;
|
||||||
|
LeaveData.fiscalYearyear = y;
|
||||||
await fetchDataTable();
|
await fetchDataTable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -180,6 +182,7 @@ function convert(val: any) {
|
||||||
* เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้
|
* เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้
|
||||||
*/
|
*/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
year.value = LeaveData.fiscalYearyear;
|
||||||
await fectOptionType();
|
await fectOptionType();
|
||||||
await fetchDataTable();
|
await fetchDataTable();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ watch(
|
||||||
);
|
);
|
||||||
|
|
||||||
/** filter */
|
/** filter */
|
||||||
const year = ref<number>(new Date().getFullYear());
|
const year = ref<number>(leaveStore.fiscalYearyear);
|
||||||
const filter = ref<string>("");
|
const filter = ref<string>("");
|
||||||
|
|
||||||
/** updateVisible*/
|
/** updateVisible*/
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ interface LeaveItem {
|
||||||
remain: number;
|
remain: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MainList{
|
interface MainList {
|
||||||
id: string;
|
id: string;
|
||||||
leaveTypeName: string;
|
leaveTypeName: string;
|
||||||
leaveLimit: number;
|
leaveLimit: number;
|
||||||
|
|
@ -128,6 +128,17 @@ interface FormData {
|
||||||
leaveRange: string;
|
leaveRange: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface DocumentLists {
|
||||||
|
docId: string;
|
||||||
|
path: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DataOptions {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
OptionData,
|
OptionData,
|
||||||
FormLeavetMainData,
|
FormLeavetMainData,
|
||||||
|
|
@ -135,5 +146,7 @@ export type {
|
||||||
TypeLeave,
|
TypeLeave,
|
||||||
LeaveItem,
|
LeaveItem,
|
||||||
MainList,
|
MainList,
|
||||||
FormData
|
FormData,
|
||||||
|
DocumentLists,
|
||||||
|
DataOptions,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import type {
|
||||||
ListLeaveTable,
|
ListLeaveTable,
|
||||||
} from "@/modules/05_leave/interface/response/leave";
|
} from "@/modules/05_leave/interface/response/leave";
|
||||||
import type { DataOption } from "../14_IDP/interface/Main";
|
import type { DataOption } from "../14_IDP/interface/Main";
|
||||||
|
import { calculateFiscalYear } from "@/utils/functions";
|
||||||
|
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const { date2Thai, showLoader, hideLoader } = mixin;
|
const { date2Thai, showLoader, hideLoader } = mixin;
|
||||||
|
|
@ -25,7 +26,7 @@ export const useLeaveStore = defineStore("Leave", () => {
|
||||||
const typeLeave = ref<string | undefined>("");
|
const typeLeave = ref<string | undefined>("");
|
||||||
const LeaveType = ref<string | null>("0");
|
const LeaveType = ref<string | null>("0");
|
||||||
const LeaveStatus = ref<string | null>("0");
|
const LeaveStatus = ref<string | null>("0");
|
||||||
const fiscalYearyear = ref<Number | null>(new Date().getFullYear());
|
const fiscalYearyear = ref<number>(calculateFiscalYear(new Date()));
|
||||||
const rows = ref<ListLeaveTable[]>([]);
|
const rows = ref<ListLeaveTable[]>([]);
|
||||||
const leaveTypeData = ref<TypeLeave[]>([]);
|
const leaveTypeData = ref<TypeLeave[]>([]);
|
||||||
const isLoadingProfile = ref<boolean>(false); // สถานะการโหลดข้อมูลโปรไฟล์
|
const isLoadingProfile = ref<boolean>(false); // สถานะการโหลดข้อมูลโปรไฟล์
|
||||||
|
|
|
||||||
|
|
@ -177,8 +177,7 @@ async function fetchDataDetail(id: string) {
|
||||||
formData.studyDaySubject = data.studyDaySubject ?? "-";
|
formData.studyDaySubject = data.studyDaySubject ?? "-";
|
||||||
formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-";
|
formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-";
|
||||||
formData.studyDayUniversityName = data.studyDayUniversityName ?? "-";
|
formData.studyDayUniversityName = data.studyDayUniversityName ?? "-";
|
||||||
formData.studyDayTrainingSubject =
|
formData.studyDayTrainingSubject = data.studyDayTrainingSubject ?? "-";
|
||||||
data.studyDayTrainingSubject ?? "-" ?? "-";
|
|
||||||
formData.studyDayTrainingName = data.studyDayTrainingName ?? "-";
|
formData.studyDayTrainingName = data.studyDayTrainingName ?? "-";
|
||||||
formData.studyDayCountry = data.studyDayCountry ?? "-";
|
formData.studyDayCountry = data.studyDayCountry ?? "-";
|
||||||
formData.studyDayScholarship = data.studyDayScholarship ?? "-";
|
formData.studyDayScholarship = data.studyDayScholarship ?? "-";
|
||||||
|
|
@ -254,9 +253,7 @@ function onSubmit(formData: any, isLeave: boolean = true) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** function ยื่นใบลา*/
|
||||||
* funciotn ยื่นใบลา
|
|
||||||
*/
|
|
||||||
function onConfirm() {
|
function onConfirm() {
|
||||||
dialogConfirm(
|
dialogConfirm(
|
||||||
$q,
|
$q,
|
||||||
|
|
@ -282,26 +279,21 @@ function onConfirm() {
|
||||||
|
|
||||||
//เเจ้งเตือนลบข้อมูล
|
//เเจ้งเตือนลบข้อมูล
|
||||||
function clickDelete(id: string, docId: string) {
|
function clickDelete(id: string, docId: string) {
|
||||||
dialogRemove($q, () => onClickDelete(id, docId));
|
dialogRemove($q, async () => {
|
||||||
}
|
showLoader();
|
||||||
|
await http
|
||||||
/**
|
.delete(config.API.leaveDocumentId(id, docId))
|
||||||
* function ลบรายการ
|
.then(async () => {
|
||||||
* @param id
|
await fetchDataDetail(personalId.value);
|
||||||
*/
|
success($q, "ลบไฟล์สำเร็จ");
|
||||||
async function onClickDelete(id: string, docId: string) {
|
})
|
||||||
await http
|
.catch((err) => {
|
||||||
.delete(config.API.leaveDocumentId(id, docId))
|
messageError($q, err);
|
||||||
.then(async () => {
|
})
|
||||||
await fetchDataDetail(personalId.value);
|
.finally(() => {
|
||||||
success($q, "ลบไฟล์สำเร็จ");
|
hideLoader();
|
||||||
})
|
});
|
||||||
.catch((err) => {
|
});
|
||||||
messageError($q, err);
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
hideLoader();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** function เรียกประเภทการลา */
|
/** function เรียกประเภทการลา */
|
||||||
|
|
@ -423,6 +415,7 @@ onMounted(async () => {
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<SickForm
|
<SickForm
|
||||||
v-if="model === 'LV-001' || model === 'LV-002'"
|
v-if="model === 'LV-001' || model === 'LV-002'"
|
||||||
|
:type="model"
|
||||||
:data="formData"
|
:data="formData"
|
||||||
:on-submit="onSubmit"
|
:on-submit="onSubmit"
|
||||||
:on-confirm="onConfirm"
|
:on-confirm="onConfirm"
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useAppealComplainStore } from "@/modules/07_appealComplain/store";
|
import { useAppealComplainStore } from "@/modules/07_appealComplain/store";
|
||||||
|
import { calculateFiscalYear } from "@/utils/functions";
|
||||||
|
|
||||||
import type { PropsTable } from "@/interface/PropsTable";
|
import type { PropsTable } from "@/interface/PropsTable";
|
||||||
import type { FormType } from "@/modules/07_appealComplain/interface/response/mainType";
|
import type { FormType } from "@/modules/07_appealComplain/interface/response/mainType";
|
||||||
|
|
@ -37,7 +38,7 @@ const pagination = ref<PropsTable.Pagination>({
|
||||||
const formData = reactive<FormType>({
|
const formData = reactive<FormType>({
|
||||||
type: "ALL",
|
type: "ALL",
|
||||||
status: "ALL",
|
status: "ALL",
|
||||||
year: new Date().getFullYear(),
|
year: calculateFiscalYear(new Date()),
|
||||||
});
|
});
|
||||||
const visibleColumns = ref<string[]>([
|
const visibleColumns = ref<string[]>([
|
||||||
"no",
|
"no",
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,13 @@ import { ref, reactive } from "vue";
|
||||||
import type { DataOptions } from "./interface/index/Main";
|
import type { DataOptions } from "./interface/index/Main";
|
||||||
import type { FormQuery } from "@/modules/08_KPI/interface/request/index";
|
import type { FormQuery } from "@/modules/08_KPI/interface/request/index";
|
||||||
import type { DataProfile } from "@/interface/Main";
|
import type { DataProfile } from "@/interface/Main";
|
||||||
|
import { calculateFiscalYear } from "@/utils/functions";
|
||||||
|
|
||||||
export const useKpiDataStore = defineStore("KPIDate", () => {
|
export const useKpiDataStore = defineStore("KPIDate", () => {
|
||||||
const mainRowData = ref<any>();
|
const mainRowData = ref<any>();
|
||||||
const isUpdate = ref<boolean>(false);
|
const isUpdate = ref<boolean>(false);
|
||||||
const tabMainevaluator = ref<string>("1");
|
const tabMainevaluator = ref<string>("1");
|
||||||
const yearRound = ref<number>(new Date().getFullYear());
|
const yearRound = ref<number>(calculateFiscalYear(new Date()));
|
||||||
const formQuery = reactive<FormQuery>({
|
const formQuery = reactive<FormQuery>({
|
||||||
page: 1,
|
page: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import config from "@/app.config";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||||
|
import { calculateFiscalYear } from "@/utils/functions";
|
||||||
|
|
||||||
import type { QTableProps } from "quasar";
|
import type { QTableProps } from "quasar";
|
||||||
import type { DataProfile } from "@/interface/Main";
|
import type { DataProfile } from "@/interface/Main";
|
||||||
|
|
@ -94,7 +95,7 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/** List*/
|
/** List*/
|
||||||
const year = ref<number>(new Date().getFullYear());
|
const year = ref<number>(calculateFiscalYear(new Date()));
|
||||||
const round = ref<string>("");
|
const round = ref<string>("");
|
||||||
const roundMainOp = ref<DataOptions[]>([]);
|
const roundMainOp = ref<DataOptions[]>([]);
|
||||||
const roundDialgOp = ref<DataOptions[]>([]);
|
const roundDialgOp = ref<DataOptions[]>([]);
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,7 @@ interface DataSholarship {
|
||||||
status: string;
|
status: string;
|
||||||
planType: string; // INPLAN ในแผนฯ, OUTPLAN นอกแผนฯ
|
planType: string; // INPLAN ในแผนฯ, OUTPLAN นอกแผนฯ
|
||||||
isNoUseBudget: boolean; // ไม่ใช้งบประมาณ
|
isNoUseBudget: boolean; // ไม่ใช้งบประมาณ
|
||||||
|
budgetSourceOther: string; //
|
||||||
}
|
}
|
||||||
|
|
||||||
export type { FormsSholarship, DataSholarship };
|
export type { FormsSholarship, DataSholarship };
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, reactive, ref } from "vue";
|
import { onMounted, reactive, ref } from "vue";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import axios from "axios";
|
|
||||||
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
@ -15,7 +14,6 @@ import type {
|
||||||
} from "@/modules/09_scholarship/interface/request/index";
|
} from "@/modules/09_scholarship/interface/request/index";
|
||||||
|
|
||||||
import DialogReturn from "@/modules/09_scholarship/components/Dialog/DialogReturn.vue";
|
import DialogReturn from "@/modules/09_scholarship/components/Dialog/DialogReturn.vue";
|
||||||
import genReport from "@/plugins/genreport";
|
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
@ -27,8 +25,6 @@ const {
|
||||||
messageError,
|
messageError,
|
||||||
date2Thai,
|
date2Thai,
|
||||||
calculateDurationYmd,
|
calculateDurationYmd,
|
||||||
dialogConfirm,
|
|
||||||
success,
|
|
||||||
} = mixin;
|
} = mixin;
|
||||||
|
|
||||||
const isLoad = ref<boolean>(false);
|
const isLoad = ref<boolean>(false);
|
||||||
|
|
@ -39,7 +35,6 @@ const fileList = ref<any[]>();
|
||||||
|
|
||||||
const dialogReturn = ref<boolean>(false);
|
const dialogReturn = ref<boolean>(false);
|
||||||
|
|
||||||
const documentFile = ref<any>(null);
|
|
||||||
const id = ref<string>(route.params.id.toLocaleString());
|
const id = ref<string>(route.params.id.toLocaleString());
|
||||||
const budgetSourceOp = ref<DataOptions[]>([
|
const budgetSourceOp = ref<DataOptions[]>([
|
||||||
{ id: "BKK", name: "งบประมาณ กทม." },
|
{ id: "BKK", name: "งบประมาณ กทม." },
|
||||||
|
|
@ -190,40 +185,6 @@ const fundTypeOp = ref<DataOptions[]>([
|
||||||
{ id: "FUND5", name: "ทุนส่วนตัว" },
|
{ id: "FUND5", name: "ทุนส่วนตัว" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const convertStudyPlace = () => {
|
|
||||||
switch (formBody.studyTopic) {
|
|
||||||
case "ศึกษา":
|
|
||||||
return "สถานที่ไปศึกษา (เมือง/ประเทศ)";
|
|
||||||
case "ฝึกอบรม":
|
|
||||||
return "สถานที่เข้ารับการฝึกอบรม (เมือง/ประเทศ)";
|
|
||||||
case "ดูงาน":
|
|
||||||
return "สถานที่ไปดูงาน";
|
|
||||||
case "ประชุม":
|
|
||||||
return "สถานที่จัดประชุม (เมือง/ประเทศ)";
|
|
||||||
case "ปฏิบัติการวิจัย":
|
|
||||||
return "สถานที่ไปปฏิบัติการวิจัย (เมือง/ประเทศ)";
|
|
||||||
default:
|
|
||||||
return "สถานที่ (เมือง/ประเทศ)";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const convertCourse = () => {
|
|
||||||
switch (formBody.studyTopic) {
|
|
||||||
case "ศึกษา":
|
|
||||||
return "หลักสูตรการศึกษา";
|
|
||||||
case "ฝึกอบรม":
|
|
||||||
return "หลักสูตรการฝึกอบรม";
|
|
||||||
case "ดูงาน":
|
|
||||||
return "หัวข้อการไปดูงาน";
|
|
||||||
case "ประชุม":
|
|
||||||
return "ชื่อการประชุม";
|
|
||||||
case "ปฏิบัติการวิจัย":
|
|
||||||
return "หลักสูตร";
|
|
||||||
default:
|
|
||||||
return "หลักสูตร";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function updateTotalPeriod(
|
function updateTotalPeriod(
|
||||||
startDate: any,
|
startDate: any,
|
||||||
endDate: any,
|
endDate: any,
|
||||||
|
|
@ -288,8 +249,8 @@ function changeStartDate(type: string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFile() {
|
async function getFile() {
|
||||||
http
|
await http
|
||||||
.get(
|
.get(
|
||||||
config.API.developmentSalaryFile(
|
config.API.developmentSalaryFile(
|
||||||
"ระบบพัฒนาบุคคล",
|
"ระบบพัฒนาบุคคล",
|
||||||
|
|
@ -302,8 +263,7 @@ function getFile() {
|
||||||
const dataFile = res.data;
|
const dataFile = res.data;
|
||||||
fileList.value = dataFile[0];
|
fileList.value = dataFile[0];
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
.finally(() => {});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function downloadFile(file: any) {
|
function downloadFile(file: any) {
|
||||||
|
|
@ -328,9 +288,9 @@ function downloadFile(file: any) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchDataDetail(id: string) {
|
async function fetchDataDetail(id: string) {
|
||||||
isLoad.value = true;
|
isLoad.value = true;
|
||||||
http
|
await http
|
||||||
.get(config.API.developmentScholarship + `/${id}`)
|
.get(config.API.developmentScholarship + `/${id}`)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const data: DataSholarship = res.data.result;
|
const data: DataSholarship = res.data.result;
|
||||||
|
|
@ -361,6 +321,7 @@ function fetchDataDetail(id: string) {
|
||||||
formBody.posTypeguarantorId = data.posTypeguarantorId;
|
formBody.posTypeguarantorId = data.posTypeguarantorId;
|
||||||
formBody.scholarshipYear = data.scholarshipYear;
|
formBody.scholarshipYear = data.scholarshipYear;
|
||||||
formBody.budgetSource = data.budgetSource;
|
formBody.budgetSource = data.budgetSource;
|
||||||
|
formBody.budgetSourceOther = data.budgetSourceOther;
|
||||||
formBody.budgetApprove = data.budgetApprove;
|
formBody.budgetApprove = data.budgetApprove;
|
||||||
formBody.bookNo = data.bookNo;
|
formBody.bookNo = data.bookNo;
|
||||||
formBody.bookNoDate = data.bookNoDate;
|
formBody.bookNoDate = data.bookNoDate;
|
||||||
|
|
@ -422,7 +383,6 @@ function fetchDataDetail(id: string) {
|
||||||
dataGuarantor.org = data.guarantorOrg ? data.guarantorOrg : "-";
|
dataGuarantor.org = data.guarantorOrg ? data.guarantorOrg : "-";
|
||||||
isStatus.value = data.status;
|
isStatus.value = data.status;
|
||||||
isGuarantor.value = data.guarantorCitizenId ? true : false;
|
isGuarantor.value = data.guarantorCitizenId ? true : false;
|
||||||
isLoad.value = false;
|
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
messageError($q, err);
|
messageError($q, err);
|
||||||
|
|
@ -433,8 +393,7 @@ function fetchDataDetail(id: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchDataDetail(id.value);
|
await Promise.all([fetchDataDetail(id.value), getFile()]);
|
||||||
await getFile();
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
10
src/utils/functions.ts
Normal file
10
src/utils/functions.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
/**
|
||||||
|
* คำนวณปีงบประมาณ
|
||||||
|
*
|
||||||
|
* @param date วันที่ปัจจุบัน
|
||||||
|
* @returns ปีงบประมาณ
|
||||||
|
*/
|
||||||
|
export function calculateFiscalYear(date: Date) {
|
||||||
|
const month = date.getMonth() + 1;
|
||||||
|
return month >= 10 ? date.getFullYear() + 1 : date.getFullYear();
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue