รายละเอียดการลา
This commit is contained in:
parent
7f3deec9e6
commit
80f04105a4
22 changed files with 475 additions and 307 deletions
|
|
@ -21,11 +21,12 @@ export default {
|
|||
leaveType: () => `${leave}/type`,
|
||||
leaveList: () => `${leave}/admin`,
|
||||
leaveListDelete: () => `${leave}/admin/delete`,
|
||||
leaveListDeleteByid: (id: string) => `${leave}/user/delete/${id}`,
|
||||
leaveListById: (id: string) => `${leave}/admin/${id}`,
|
||||
leaveCalendar: () => `${leave}/user/calendar`,
|
||||
leaveApproveToComander: (id: string) =>
|
||||
`${leave}/admin/approve/officer/${id}`,
|
||||
leaveComanderApprove: (id: string) => `${leave}/admin/comander/${id}`,
|
||||
leaveComanderApprove: (id: string) => `${leave}/admin/approve/comander/${id}`,
|
||||
leaveApprove: (id: string) => `${leave}/admin/approve/${id}`,
|
||||
leaveReject: (id: string) => `${leave}/admin/reject/${id}`,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,8 +11,12 @@ import { useQuasar } from "quasar";
|
|||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
import { useRouter } from "vue-router";
|
||||
import keycloak from "@/plugins/keycloak";
|
||||
|
||||
import type { DataDateMonthObject } from "@/modules/09_leave/interface/response/leave";
|
||||
import type {
|
||||
DataDateMonthObject,
|
||||
ResCalendar,
|
||||
} from "@/modules/09_leave/interface/response/leave";
|
||||
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useLeavelistDataStore } from "@/modules/09_leave/stores/LeaveStore";
|
||||
|
|
@ -23,6 +27,10 @@ const { showLoader, hideLoader, messageError, monthYear2Thai } = mixin;
|
|||
|
||||
const $q = useQuasar();
|
||||
const router = useRouter();
|
||||
|
||||
const keycloakId = ref<string>(
|
||||
keycloak.tokenParsed ? keycloak.tokenParsed.sub!.toString() : ""
|
||||
);
|
||||
/**
|
||||
* Option ของปฏิทิน
|
||||
*/
|
||||
|
|
@ -62,7 +70,7 @@ const dateMonth = ref<DataDateMonthObject>({
|
|||
month: new Date().getMonth(),
|
||||
year: new Date().getFullYear(),
|
||||
});
|
||||
const mainData = ref<any>([]);
|
||||
const mainData = ref<ResCalendar[]>([]);
|
||||
|
||||
async function fetchDataCalendar() {
|
||||
showLoader();
|
||||
|
|
@ -74,22 +82,22 @@ async function fetchDataCalendar() {
|
|||
mainData.value = res.data.result;
|
||||
|
||||
const double_name = [
|
||||
...new Set(mainData.value.map((item: any) => item.fullName)),
|
||||
...new Set(mainData.value.map((item: ResCalendar) => item.keycloakId)),
|
||||
];
|
||||
|
||||
filterLists.value = [];
|
||||
for (let i = 1; i <= double_name.length; i++) {
|
||||
filterLists.value = [];
|
||||
const name = double_name[i - 1];
|
||||
const filterName = {
|
||||
id: name,
|
||||
name: name,
|
||||
color: name === "นางสาวสาวิตรี ศรีสมัย" ? "green" : "grey",
|
||||
name: convertKeycloakId(name),
|
||||
color: name === keycloakId.value ? "green" : "grey",
|
||||
};
|
||||
|
||||
filterLists.value.push(filterName);
|
||||
}
|
||||
|
||||
const data = mainData.value.filter(
|
||||
(e: any) => e.fullName === "นางสาวสาวิตรี ศรีสมัย"
|
||||
(e: any) => e.keycloakId === keycloakId.value
|
||||
);
|
||||
|
||||
const event = data.map((e: any) => ({
|
||||
|
|
@ -101,7 +109,6 @@ async function fetchDataCalendar() {
|
|||
color: leaveStore.colorType(e.leaveTypeId),
|
||||
textColor: "black",
|
||||
}));
|
||||
console.log(event);
|
||||
|
||||
calendarOptions.value.events = event;
|
||||
})
|
||||
|
|
@ -117,17 +124,24 @@ async function fetchDataCalendar() {
|
|||
});
|
||||
}
|
||||
|
||||
function convertKeycloakId(id: any) {
|
||||
const filterName = mainData.value.find(
|
||||
(e: ResCalendar) => e.keycloakId === id
|
||||
);
|
||||
return filterName?.fullName;
|
||||
}
|
||||
|
||||
// filter calendar left
|
||||
const filterLists = ref<any[]>([]);
|
||||
const filterVal = ref(["นางสาวสาวิตรี ศรีสมัย"]);
|
||||
const filterVal = ref<any>([]);
|
||||
|
||||
watch(
|
||||
() => filterVal.value,
|
||||
() => {
|
||||
const eventData = filterVal.value.map((item: any) => {
|
||||
return mainData.value
|
||||
.filter((e: any) => e.fullName === item)
|
||||
.map((e: any) => ({
|
||||
.filter((e: ResCalendar) => e.keycloakId === item)
|
||||
.map((e: ResCalendar) => ({
|
||||
id: e.id,
|
||||
title: `${e.fullName} (${e.leaveTypeName}) `,
|
||||
start: e.leaveStartDate,
|
||||
|
|
@ -137,7 +151,8 @@ watch(
|
|||
allDay: true,
|
||||
}));
|
||||
});
|
||||
calendarOptions.value.events = eventData[0];
|
||||
const allEventData = [].concat(...eventData);
|
||||
calendarOptions.value.events = allEventData;
|
||||
}
|
||||
);
|
||||
|
||||
|
|
@ -149,37 +164,14 @@ function redirectToDetail(id: string) {
|
|||
* เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้
|
||||
*/
|
||||
onMounted(async () => {
|
||||
filterVal.value.push(keycloakId.value);
|
||||
await fetchDataCalendar();
|
||||
// if (fullCalendar !== undefined) {
|
||||
// const calen = fullCalendar.value.getApi();
|
||||
// const date = new Date(dateMonth.value.year, dateMonth.value.month);
|
||||
// calen.gotoDate(date);
|
||||
// }
|
||||
});
|
||||
|
||||
async function changCalendar() {
|
||||
await fetchDataCalendar();
|
||||
}
|
||||
|
||||
/**
|
||||
* ค่า props(วันเดือนปีที่เลือก) ตอนอัพเดท ค่าฏิทินให้อัพเดทใหม่
|
||||
*/
|
||||
// watch(props, async (count, prevCount) => {
|
||||
// const calen = fullCalendar.value.getApi();
|
||||
// const date = new Date(props.dateYear, props.dateMonth);
|
||||
// calen.gotoDate(date);
|
||||
// });
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นยกเลิก model
|
||||
* @param text
|
||||
*/
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นเปิด model
|
||||
* @param text
|
||||
*/
|
||||
|
||||
const monthYearThai = (val: DataDateMonthObject) => {
|
||||
if (val == null) return "";
|
||||
else return monthYear2Thai(val.month, val.year);
|
||||
|
|
|
|||
|
|
@ -130,7 +130,8 @@ const formData = reactive<FremData>({
|
|||
coupleDayStartDateHistory: new Date(), //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDayEndDateHistory: new Date(), //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
step: "",
|
||||
approveStep: "",
|
||||
dear: "",
|
||||
});
|
||||
|
||||
onMounted(async () => {
|
||||
|
|
@ -153,8 +154,10 @@ async function fetchDetailLeave(paramsId: string) {
|
|||
const data = res.data.result;
|
||||
console.log(data);
|
||||
formData.id = data.id;
|
||||
formData.reasonCommander = data.reasonCommander;
|
||||
formData.reasonOligarch = data.reasonOligarch;
|
||||
formData.reasonCommander = data.reasonCommander
|
||||
? data.reasonCommander
|
||||
: "-";
|
||||
formData.reasonOligarch = data.reasonOligarch ? data.reasonOligarch : "-";
|
||||
formData.positionName = data.positionName;
|
||||
formData.positionLevelName = data.positionLevelName;
|
||||
formData.organizationName = data.organizationName;
|
||||
|
|
@ -167,7 +170,7 @@ async function fetchDetailLeave(paramsId: string) {
|
|||
data.leaveStartDate && date2Thai(data.leaveStartDate);
|
||||
formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate);
|
||||
formData.leaveCount = data.leaveCount;
|
||||
formData.status = data.status && data.status;
|
||||
formData.status = data.status && stores.convertSatatus(data.status);
|
||||
formData.leaveLimit = data.leaveLimit;
|
||||
formData.leaveSummary = data.leaveSummary;
|
||||
formData.leaveRemain = data.leaveRemain;
|
||||
|
|
@ -229,7 +232,8 @@ async function fetchDetailLeave(paramsId: string) {
|
|||
formData.coupleDayEndDateHistory =
|
||||
data.coupleDayEndDateHistory && date2Thai(data.coupleDayEndDateHistory);
|
||||
formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory;
|
||||
formData.step = data.step;
|
||||
formData.approveStep = data.approveStep;
|
||||
formData.dear = data.dear ? data.dear : "-";
|
||||
await fectOptionType();
|
||||
|
||||
/** ส่งประเภทของการลาไป Function เช็คประเภทการลา*/
|
||||
|
|
@ -604,9 +608,9 @@ function clickSave(reason: string) {
|
|||
bordered
|
||||
class="row col-12 text-dark q-mt-sm"
|
||||
v-if="
|
||||
formData.step === 'st3' ||
|
||||
formData.step === 'st4' ||
|
||||
formData.step === 'st5'
|
||||
formData.approveStep === 'st3' ||
|
||||
formData.approveStep === 'st4' ||
|
||||
formData.approveStep === 'st5'
|
||||
"
|
||||
>
|
||||
<div
|
||||
|
|
@ -620,7 +624,9 @@ function clickSave(reason: string) {
|
|||
<div class="row col-12 q-pa-md">
|
||||
<div class="col-12 row bg-white q-col-gutter-md">
|
||||
<div class="col-xs-6 row items-start">
|
||||
<div class="col-12 text-detail">-</div>
|
||||
<div class="col-12 text-detail">
|
||||
{{ formData.reasonCommander }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -630,7 +636,9 @@ function clickSave(reason: string) {
|
|||
<q-card
|
||||
bordered
|
||||
class="row col-12 text-dark q-mt-sm"
|
||||
v-if="formData.step === 'st4' || formData.step === 'st5'"
|
||||
v-if="
|
||||
formData.approveStep === 'st4' || formData.approveStep === 'st5'
|
||||
"
|
||||
>
|
||||
<div
|
||||
class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"
|
||||
|
|
@ -646,13 +654,15 @@ function clickSave(reason: string) {
|
|||
<div class="col-12 text-weight-bold text-top">
|
||||
ผลการพิจารณา
|
||||
</div>
|
||||
<div class="col-12 text-detail">อนุมัติ</div>
|
||||
<div class="col-12 text-detail">{{ formData.status }}</div>
|
||||
</div>
|
||||
<div class="col-xs-6 row items-start">
|
||||
<div class="col-12 text-weight-bold text-top">
|
||||
ความคิดเห็น
|
||||
</div>
|
||||
<div class="col-12 text-detail">-</div>
|
||||
<div class="col-12 text-detail">
|
||||
{{ formData.reasonOligarch }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -662,9 +672,12 @@ function clickSave(reason: string) {
|
|||
</div>
|
||||
</div>
|
||||
<q-separator />
|
||||
<div class="row q-pa-md q-gutter-md justify-end">
|
||||
<div
|
||||
class="row q-pa-md q-gutter-md justify-end"
|
||||
v-if="formData.status !== 'ยกเลิก'"
|
||||
>
|
||||
<q-btn
|
||||
v-if="formData.step === 'st1'"
|
||||
v-if="formData.approveStep === 'st1'"
|
||||
unelevated
|
||||
color="orange-5"
|
||||
label="ส่งไปยังผู้บังคับบัญชา"
|
||||
|
|
@ -673,7 +686,7 @@ function clickSave(reason: string) {
|
|||
</q-btn>
|
||||
|
||||
<q-btn
|
||||
v-if="formData.step === 'st2'"
|
||||
v-if="formData.approveStep === 'st2'"
|
||||
unelevated
|
||||
color="orange-5"
|
||||
label="ส่งไปยังผู้มีอำนาจ"
|
||||
|
|
@ -682,7 +695,7 @@ function clickSave(reason: string) {
|
|||
</q-btn>
|
||||
|
||||
<q-btn
|
||||
v-if="formData.step === 'st3'"
|
||||
v-if="formData.approveStep === 'st3'"
|
||||
unelevated
|
||||
color="orange-5"
|
||||
label="ไม่อนุมัติ"
|
||||
|
|
@ -690,7 +703,7 @@ function clickSave(reason: string) {
|
|||
><q-tooltip>ไม่อนุมัติ</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="formData.step === 'st3'"
|
||||
v-if="formData.approveStep === 'st3'"
|
||||
unelevated
|
||||
color="primary"
|
||||
label="อนุมัติ"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
import { ref, reactive, onMounted } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { useQuasar } from "quasar";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
|
||||
/** importStore */
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useLeavelistDataStore } from "@/modules/09_leave/stores/LeaveStore";
|
||||
|
|
@ -10,8 +13,11 @@ import DialogReason from "@/components/Dialogs/PopupReason.vue";
|
|||
const APIDATA = useLeavelistDataStoreTest();
|
||||
|
||||
/** importType */
|
||||
import type {
|
||||
LeaveType,
|
||||
FormReject,
|
||||
} from "@/modules/09_leave/interface/response/leave";
|
||||
import type { FremData } from "@/modules/09_leave/interface/request/leave";
|
||||
|
||||
/** importForm*/
|
||||
import FormMain from "@/modules/09_leave/components/2_Leave/formDetail/formMain.vue"; // from ซ้าย
|
||||
import FormLeave from "@/modules/09_leave/components/2_Leave/formDetail/formLeave.vue"; // ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว
|
||||
|
|
@ -29,7 +35,8 @@ import FormVocationalRehabilitation from "@/modules/09_leave/components/2_Leave/
|
|||
/** use */
|
||||
const $q = useQuasar();
|
||||
const mixin = useCounterMixin();
|
||||
const { dialogConfirm, showLoader, hideLoader, date2Thai } = mixin;
|
||||
const { dialogConfirm, showLoader, hideLoader, date2Thai, messageError } =
|
||||
mixin;
|
||||
const stores = useLeavelistDataStore();
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
|
@ -51,6 +58,22 @@ function upLoadFile() {
|
|||
}
|
||||
|
||||
/** Form รายละเอียดข้อมูล*/
|
||||
const formDataReject = reactive<FormReject>({
|
||||
id: "", //*Id การยื่นขอลา
|
||||
leaveTypeName: "", //Name ประเภทการลา
|
||||
fullName: "", //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
status: "", //สถานะการของลา
|
||||
leaveDocDelete: "", //เอกสารการยกเลิกการลา
|
||||
leaveResonDelete: "", //เหตุผลการยกเลิกการลา
|
||||
leaveWrote: "", //เขียนที่
|
||||
leaveAddress: "", //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: "", //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: "", //รายละเอียดการลา
|
||||
leaveTotal: 0, //จำนวนวันที่ลา
|
||||
leaveStartDate: new Date(), //วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: new Date(), //วัน เดือน ปีสิ้นสุดลา
|
||||
});
|
||||
|
||||
const formData = reactive<FremData>({
|
||||
id: "", //Id การยื่นขอลา
|
||||
reasonCommander: "", //เหตุผลผู้บังคับบัญชา
|
||||
|
|
@ -69,8 +92,6 @@ const formData = reactive<FremData>({
|
|||
leaveLimit: 0, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน
|
||||
leaveSummary: 0, //ลาป่วยไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน
|
||||
leaveRemain: 0, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน
|
||||
// leaveStartDate: new Date(), //*วัน เดือน ปีเริ่มต้นลา
|
||||
// leaveEndDate: new Date(), //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveWrote: "", //เขียนที่
|
||||
leaveAddress: "", //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: "", //หมายเลขที่ติดต่อขณะลา
|
||||
|
|
@ -118,13 +139,14 @@ const formData = reactive<FremData>({
|
|||
coupleDayStartDateHistory: new Date(), //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDayEndDateHistory: new Date(), //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
step: "",
|
||||
approveStep: "",
|
||||
dear: "",
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
// showLoader();
|
||||
onMounted(async () => {
|
||||
if (paramsId) {
|
||||
fetchDetailLeave(paramsId);
|
||||
await fetchDetailDeleteLeave(paramsId);
|
||||
await fetchDetailLeave(paramsId);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -132,120 +154,184 @@ onMounted(() => {
|
|||
* Function fetch รายละเอียดของข้อมูล
|
||||
* @param paramsId รับ ID จาก paramID
|
||||
*/
|
||||
function fetchDetailLeave(paramsId: string) {
|
||||
const dataAPI = APIDATA.data;
|
||||
const data = dataAPI.filter((e: any) => e.id === paramsId);
|
||||
console.log(data);
|
||||
data.map((e: any) => {
|
||||
formData.id = e.id;
|
||||
formData.reasonCommander = e.reasonCommander;
|
||||
formData.reasonOligarch = e.reasonOligarch;
|
||||
formData.positionName = e.positionName;
|
||||
formData.positionLevelName = e.positionLevelName;
|
||||
formData.organizationName = e.organizationName;
|
||||
formData.leaveTypeName = e.leaveTypeName
|
||||
? e.leaveTypeName
|
||||
: stores.convertLeave(e.leaveTypeId);
|
||||
formData.leaveTypeId = e.leaveTypeId;
|
||||
formData.fullName = e.fullname;
|
||||
formData.dateSendLeave = e.dateSendLeave && date2Thai(e.dateSendLeave);
|
||||
formData.leaveDateStart = e.leaveDateStart && date2Thai(e.leaveDateStart);
|
||||
formData.leaveDateEnd = e.leaveDateEnd && date2Thai(e.leaveDateEnd);
|
||||
formData.leaveCount = e.leaveCount;
|
||||
formData.status = e.status && e.status;
|
||||
formData.leaveLimit = e.leaveLimit;
|
||||
formData.leaveSummary = e.leaveSummary;
|
||||
formData.leaveRemain = e.leaveRemain;
|
||||
formData.leaveWrote = e.leaveWrote;
|
||||
formData.leaveAddress = e.leaveAddress;
|
||||
formData.leaveNumber = e.leaveNumber;
|
||||
formData.leaveDetail = e.leaveDetail;
|
||||
formData.leaveDocument = e.leaveDocument;
|
||||
formData.leaveDraftDocument = e.leaveDraftDocument;
|
||||
formData.leaveLastStart = e.leaveLastStart && date2Thai(e.leaveLastStart);
|
||||
formData.leaveLastEnd = e.leaveLastStart && date2Thai(e.leaveLastEnd);
|
||||
formData.leaveTotal = e.leaveTotal;
|
||||
formData.leavebirthDate = e.leavebirthDate && date2Thai(e.leavebirthDate);
|
||||
formData.leavegovernmentDate =
|
||||
e.leavegovernmentDate && date2Thai(e.leavegovernmentDate);
|
||||
formData.leaveSalary = e.leaveSalary;
|
||||
formData.leaveSalaryText = e.leaveSalaryText;
|
||||
formData.leaveTypeDay =
|
||||
e.leaveTypeDay && stores.convertLeaveDaytype(e.leaveTypeDay);
|
||||
formData.wifeDayName = e.wifeDayName;
|
||||
formData.wifeDayDateBorn =
|
||||
e.wifeDayDateBorn && date2Thai(e.wifeDayDateBorn);
|
||||
formData.restDayOldTotal = e.restDayOldTotal;
|
||||
formData.restDayCurrentTotal = e.restDayCurrentTotal;
|
||||
formData.ordainDayStatus = e.ordainDayStatus;
|
||||
formData.ordainDayLocationName = e.ordainDayLocationName;
|
||||
formData.ordainDayLocationAddress = e.ordainDayLocationAddress;
|
||||
formData.ordainDayLocationNumber = e.ordainDayLocationNumber;
|
||||
formData.ordainDayOrdination =
|
||||
e.ordainDayOrdination && date2Thai(e.ordainDayOrdination);
|
||||
formData.ordainDayBuddhistLentName = e.ordainDayBuddhistLentName;
|
||||
formData.ordainDayBuddhistLentAddress = e.ordainDayBuddhistLentAddress;
|
||||
formData.hajjDayStatus = e.hajjDayStatus;
|
||||
formData.absentDaySummon = e.absentDaySummon;
|
||||
formData.absentDayLocation = e.absentDayLocation;
|
||||
formData.absentDayRegistorDate =
|
||||
e.absentDayRegistorDate && date2Thai(e.absentDayRegistorDate);
|
||||
formData.absentDayGetIn = e.absentDayGetIn;
|
||||
formData.absentDayAt = e.absentDayAt;
|
||||
formData.studyDaySubject = e.studyDaySubject;
|
||||
formData.studyDayDegreeLevel = e.studyDayDegreeLevel;
|
||||
formData.studyDayUniversityName = e.studyDayUniversityName;
|
||||
formData.studyDayTrainingSubject = e.studyDayTrainingSubject;
|
||||
formData.studyDayTrainingName = e.studyDayTrainingName;
|
||||
formData.studyDayCountry = e.studyDayCountry;
|
||||
formData.studyDayScholarship = e.studyDayScholarship;
|
||||
formData.coupleDayName = e.coupleDayName;
|
||||
formData.coupleDayPosition = e.coupleDayPosition;
|
||||
formData.coupleDayLevel = e.coupleDayLevel;
|
||||
formData.coupleDayLevelCountry = e.coupleDayLevelCountry;
|
||||
formData.coupleDayCountryHistory = e.coupleDayCountryHistory;
|
||||
formData.coupleDayTotalHistory = e.coupleDayTotalHistory;
|
||||
formData.coupleDayStartDateHistory =
|
||||
e.coupleDayStartDateHistory && date2Thai(e.coupleDayStartDateHistory);
|
||||
formData.coupleDayEndDateHistory =
|
||||
e.coupleDayEndDateHistory && date2Thai(e.coupleDayEndDateHistory);
|
||||
formData.coupleDaySumTotalHistory = e.coupleDaySumTotalHistory;
|
||||
formData.step = e.step;
|
||||
});
|
||||
|
||||
/** ส่งประเภทของการลาไป Function เช็คประเภทการลา*/
|
||||
checkLeaveType(formData.leaveTypeId ? formData.leaveTypeId : "");
|
||||
// hideLoader();
|
||||
async function fetchDetailDeleteLeave(paramsId: string) {
|
||||
showLoader();
|
||||
await http
|
||||
.get(config.API.leaveListDeleteByid(paramsId))
|
||||
.then((res) => {
|
||||
const data = res.data.result;
|
||||
console.log(data.id);
|
||||
(formDataReject.id = data.id),
|
||||
(formDataReject.leaveTypeName = data.leaveTypeName),
|
||||
(formDataReject.fullName = data.fullName),
|
||||
(formDataReject.status = data.status);
|
||||
(formDataReject.leaveDocDelete = data.leaveDocDelete),
|
||||
(formDataReject.leaveResonDelete = data.leaveReasonDelete
|
||||
? data.leaveReasonDelete
|
||||
: "-"),
|
||||
(formDataReject.leaveWrote = data.leaveWrote),
|
||||
(formDataReject.leaveAddress = data.leaveAddress),
|
||||
(formDataReject.leaveNumber = data.leaveNumber),
|
||||
(formDataReject.leaveDetail = data.leaveDetail),
|
||||
(formDataReject.leaveTotal = data.leaveTotal),
|
||||
(formDataReject.leaveStartDate = data.leaveStartDate),
|
||||
(formDataReject.leaveEndDate = data.leaveEndDate),
|
||||
console.log(formData);
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
async function fetchDetailLeave(paramsId: string) {
|
||||
showLoader();
|
||||
await http
|
||||
.get(config.API.leaveListById(paramsId))
|
||||
.then(async (res) => {
|
||||
const data = res.data.result;
|
||||
console.log(data);
|
||||
formData.id = data.id;
|
||||
formData.reasonCommander = data.reasonCommander;
|
||||
formData.reasonOligarch = data.reasonOligarch;
|
||||
formData.positionName = data.positionName;
|
||||
formData.positionLevelName = data.positionLevelName;
|
||||
formData.organizationName = data.organizationName;
|
||||
formData.leaveTypeName = data.leaveTypeName;
|
||||
formData.leaveTypeId = data.leaveTypeId;
|
||||
formData.fullName = data.fullName;
|
||||
formData.dateSendLeave =
|
||||
data.dateSendLeave && date2Thai(data.dateSendLeave);
|
||||
formData.leaveDateStart =
|
||||
data.leaveStartDate && date2Thai(data.leaveStartDate);
|
||||
formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate);
|
||||
formData.leaveCount = data.leaveCount;
|
||||
formData.status = data.status && data.status;
|
||||
formData.leaveLimit = data.leaveLimit;
|
||||
formData.leaveSummary = data.leaveSummary;
|
||||
formData.leaveRemain = data.leaveRemain;
|
||||
formData.leaveWrote = data.leaveWrote;
|
||||
formData.leaveAddress = data.leaveAddress;
|
||||
formData.leaveNumber = data.leaveNumber;
|
||||
formData.leaveDetail = data.leaveDetail;
|
||||
formData.leaveDocument = data.leaveDocument;
|
||||
formData.leaveDraftDocument = data.leaveDraftDocument;
|
||||
formData.leaveLastStart =
|
||||
data.leaveLastStart && date2Thai(data.leaveLastStart);
|
||||
formData.leaveLastEnd =
|
||||
data.leaveLastStart && date2Thai(data.leaveLastEnd);
|
||||
formData.leaveTotal = data.leaveTotal;
|
||||
formData.leavebirthDate =
|
||||
data.leavebirthDate && date2Thai(data.leavebirthDate);
|
||||
formData.leavegovernmentDate =
|
||||
data.leavegovernmentDate && date2Thai(data.leavegovernmentDate);
|
||||
formData.leaveSalary = data.leaveSalary;
|
||||
formData.leaveSalaryText = data.leaveSalaryText;
|
||||
formData.leaveTypeDay =
|
||||
data.leaveTypeDay && stores.convertLeaveDaytype(data.leaveTypeDay);
|
||||
formData.wifeDayName = data.wifeDayName;
|
||||
formData.wifeDayDateBorn =
|
||||
data.wifeDayDateBorn && date2Thai(data.wifeDayDateBorn);
|
||||
formData.restDayOldTotal = data.restDayOldTotal;
|
||||
formData.restDayCurrentTotal = data.restDayCurrentTotal;
|
||||
formData.ordainDayStatus = data.ordainDayStatus;
|
||||
formData.ordainDayLocationName = data.ordainDayLocationName;
|
||||
formData.ordainDayLocationAddress = data.ordainDayLocationAddress;
|
||||
formData.ordainDayLocationNumber = data.ordainDayLocationNumber;
|
||||
formData.ordainDayOrdination =
|
||||
data.ordainDayOrdination && date2Thai(data.ordainDayOrdination);
|
||||
formData.ordainDayBuddhistLentName = data.ordainDayBuddhistLentName;
|
||||
formData.ordainDayBuddhistLentAddress = data.ordainDayBuddhistLentAddress;
|
||||
formData.hajjDayStatus = data.hajjDayStatus;
|
||||
formData.absentDaySummon = data.absentDaySummon;
|
||||
formData.absentDayLocation = data.absentDayLocation;
|
||||
formData.absentDayRegistorDate =
|
||||
data.absentDayRegistorDate && date2Thai(data.absentDayRegistorDate);
|
||||
formData.absentDayGetIn = data.absentDayGetIn;
|
||||
formData.absentDayAt = data.absentDayAt;
|
||||
formData.studyDaySubject = data.studyDaySubject;
|
||||
formData.studyDayDegreeLevel = data.studyDayDegreeLevel;
|
||||
formData.studyDayUniversityName = data.studyDayUniversityName;
|
||||
formData.studyDayTrainingSubject = data.studyDayTrainingSubject;
|
||||
formData.studyDayTrainingName = data.studyDayTrainingName;
|
||||
formData.studyDayCountry = data.studyDayCountry;
|
||||
formData.studyDayScholarship = data.studyDayScholarship;
|
||||
formData.coupleDayName = data.coupleDayName;
|
||||
formData.coupleDayPosition = data.coupleDayPosition;
|
||||
formData.coupleDayLevel = data.coupleDayLevel;
|
||||
formData.coupleDayLevelCountry = data.coupleDayLevelCountry;
|
||||
formData.coupleDayCountryHistory = data.coupleDayCountryHistory;
|
||||
formData.coupleDayTotalHistory = data.coupleDayTotalHistory;
|
||||
formData.coupleDayStartDateHistory =
|
||||
data.coupleDayStartDateHistory &&
|
||||
date2Thai(data.coupleDayStartDateHistory);
|
||||
formData.coupleDayEndDateHistory =
|
||||
data.coupleDayEndDateHistory && date2Thai(data.coupleDayEndDateHistory);
|
||||
formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory;
|
||||
formData.approveStep = data.approveStep;
|
||||
formData.dear = data.dear ? data.dear : "-";
|
||||
await fectOptionType();
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
const leaveType = ref<LeaveType[]>();
|
||||
/** function เรียกประเภทการลา */
|
||||
async function fectOptionType() {
|
||||
await http
|
||||
.get(config.API.leaveType())
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
leaveType.value = res.data.result;
|
||||
checkLeaveType(formData.leaveTypeId, formData.leaveTypeName);
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
});
|
||||
}
|
||||
|
||||
/**Status Form การลา*/
|
||||
const checkForm = ref<string>("");
|
||||
/**
|
||||
* Function เช็คประเภทการลา
|
||||
* @param type รับค่า
|
||||
*/
|
||||
function checkLeaveType(type: string) {
|
||||
if (type === "leave1" || type === "leave2" || type === "leave3") {
|
||||
checkForm.value = "FormLeave";
|
||||
} else if (type === "leave4") {
|
||||
checkForm.value = "FormChildbirth";
|
||||
} else if (type === "leave5") {
|
||||
checkForm.value = "FormHoliday";
|
||||
} else if (type === "leave6") {
|
||||
checkForm.value = "FormUpasom";
|
||||
} else if (type === "leave7") {
|
||||
checkForm.value = "FormHajj";
|
||||
} else if (type === "leave8") {
|
||||
checkForm.value = "FormCheckSelect";
|
||||
} else if (type === "leave9") {
|
||||
checkForm.value = "FormStudy";
|
||||
} else if (type === "leave10") {
|
||||
checkForm.value = "FormLeaveToTraining";
|
||||
} else if (type === "leave11") {
|
||||
checkForm.value = "FormLeaveToWorkInternational";
|
||||
} else if (type === "leave12") {
|
||||
checkForm.value = "FormSpouse";
|
||||
} else if (type === "leave13") {
|
||||
checkForm.value = "FormVocationalRehabilitation";
|
||||
function checkLeaveType(leaveTypeId: string, leaveTypeName: string) {
|
||||
if (leaveType.value) {
|
||||
const filtertype: LeaveType | undefined = leaveType.value.find(
|
||||
(e: any) => e.id === leaveTypeId
|
||||
);
|
||||
const type = filtertype?.code;
|
||||
if (type === "LV-001" || type === "LV-002" || type === "LV-003") {
|
||||
checkForm.value = "FormLeave";
|
||||
} else if (type === "LV-004") {
|
||||
checkForm.value = "FormChildbirth";
|
||||
} else if (type === "LV-005") {
|
||||
checkForm.value = "FormHoliday";
|
||||
} else if (type === "LV-006") {
|
||||
checkForm.value = "FormUpasom";
|
||||
} else if (type === "LV-006" && leaveTypeName === "พิธีฮัจญ์ฯ") {
|
||||
checkForm.value = "FormHajj";
|
||||
} else if (type === "LV-007") {
|
||||
checkForm.value = "FormCheckSelect";
|
||||
} else if (type === "LV-008" && leaveTypeName === "ลาไปศีกษา") {
|
||||
checkForm.value = "FormStudy";
|
||||
} else if (type === "LV-008") {
|
||||
checkForm.value = "FormLeaveToTraining";
|
||||
} else if (type === "LV-009") {
|
||||
checkForm.value = "FormLeaveToWorkInternational";
|
||||
} else if (type === "LV-010") {
|
||||
checkForm.value = "FormSpouse";
|
||||
} else if (type === "LV-011") {
|
||||
checkForm.value = "FormVocationalRehabilitation";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -317,7 +403,7 @@ function clickSave() {
|
|||
<!-- <q-file
|
||||
v-model="filesUpload"
|
||||
dense
|
||||
label="อัพโหลดไฟล์"
|
||||
label="อัปโหลดไฟล์"
|
||||
outlined
|
||||
class="col-xs-12 col-sm-3 col-md-2"
|
||||
bg-color="white"
|
||||
|
|
@ -355,24 +441,39 @@ function clickSave() {
|
|||
<div class="col-xs-3 row items-start">
|
||||
<div class="col-12 text-weight-bold text-top">เขียนที่</div>
|
||||
<div class="col-12 text-detail">
|
||||
{{ formData.leaveWrote }}
|
||||
{{ formDataReject.leaveWrote }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-3 row items-start">
|
||||
<div class="col-12 text-weight-bold text-top">วันที่</div>
|
||||
<div class="col-12 text-detail">
|
||||
{{ formData.dateSendLeave }}
|
||||
{{ date2Thai(formDataReject.leaveStartDate) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-3 row items-start">
|
||||
<div class="col-12 text-weight-bold text-top">เหตุผล</div>
|
||||
<div class="col-12 text-detail">-</div>
|
||||
<div class="col-12 text-detail">
|
||||
{{ formDataReject.leaveResonDelete }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-3 row items-start">
|
||||
<div class="col-12 text-weight-bold text-top">
|
||||
เอกสารประกอบ
|
||||
</div>
|
||||
<div class="col-12 text-detail">-</div>
|
||||
<div class="col-12 text-detail">
|
||||
<q-btn
|
||||
v-if="formDataReject.leaveDocDelete"
|
||||
:href="formDataReject.leaveDocDelete"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
<span v-else>-</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -385,10 +486,7 @@ function clickSave() {
|
|||
<div class="col-12 row">
|
||||
<div class="col-xs-5 col-sm-3 text-grey-8">ประเภทการลา</div>
|
||||
<div class="col text-primary">
|
||||
{{
|
||||
formData.leaveTypeId &&
|
||||
stores.convertLeave(formData.leaveTypeId)
|
||||
}}
|
||||
{{ formData.leaveTypeName }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 row">
|
||||
|
|
@ -421,7 +519,7 @@ function clickSave() {
|
|||
class="col-12 items-center row q-px-md q-py-sm"
|
||||
>
|
||||
<div class="text-h6 text-weight-bold text-light-blue-6">
|
||||
{{ formData.leaveTotal }}
|
||||
{{ formData.leaveSummary }}
|
||||
</div>
|
||||
<div class="col-12 text-subtitle2 text-weight-regular">
|
||||
<span class="gt-xs">ใช้ไป</span>
|
||||
|
|
@ -520,7 +618,9 @@ function clickSave() {
|
|||
<q-card
|
||||
bordered
|
||||
class="row col-12 text-dark q-mt-sm"
|
||||
v-if="formData.step === 'st2' || formData.step === 'st3'"
|
||||
v-if="
|
||||
formData.approveStep === 'st2' || formData.approveStep === 'st3'
|
||||
"
|
||||
>
|
||||
<div
|
||||
class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"
|
||||
|
|
@ -554,7 +654,7 @@ function clickSave() {
|
|||
<q-separator />
|
||||
<div class="row q-pa-md q-gutter-md justify-end">
|
||||
<q-btn
|
||||
v-if="formData.step === 'st1'"
|
||||
v-if="formData.approveStep === 'st1'"
|
||||
unelevated
|
||||
color="orange-5"
|
||||
label="ไม่อนุมัติการยกเลิก"
|
||||
|
|
@ -562,7 +662,7 @@ function clickSave() {
|
|||
><q-tooltip>ไม่อนุมัติการยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="formData.step === 'st1'"
|
||||
v-if="formData.approveStep === 'st1'"
|
||||
unelevated
|
||||
color="primary"
|
||||
label="อนุมัติการยกเลิก"
|
||||
|
|
|
|||
|
|
@ -44,11 +44,9 @@ async function fecthLeaveList() {
|
|||
await http
|
||||
.post(config.API.leaveList(), querySting)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
const data = res.data.result;
|
||||
maxPage.value = Math.ceil(data.total / querySting.pageSize);
|
||||
fetchListLeave(data.data); /** ส่งข้อมูลไป stores*/
|
||||
console.log(maxPage.value);
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
|
|
@ -77,7 +75,6 @@ async function updatePaging(
|
|||
querySting.page = newPage;
|
||||
querySting.pageSize = pageSize ? pageSize : querySting.pageSize;
|
||||
querySting.keyword = dateFilter ? dateFilter.keyword : querySting.keyword;
|
||||
console.log(querySting);
|
||||
await fecthLeaveList();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ const querySting = reactive<QuerySting>({
|
|||
type: leaveStore.filter.type, //*Id ประเภทการลา
|
||||
status: leaveStore.filter.status, //*สถานะการของลา
|
||||
page: 1, //*หน้า
|
||||
pageSize: 5, //*จำนวนแถวต่อหน้า
|
||||
pageSize: 10, //*จำนวนแถวต่อหน้า
|
||||
keyword: leaveStore.filter.keyword, //keyword ค้นหา
|
||||
});
|
||||
const maxPage = ref<number>(1);
|
||||
|
|
@ -42,9 +42,12 @@ async function fecthLeaveList() {
|
|||
await http
|
||||
.post(config.API.leaveListDelete(), querySting)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
const data = res.data.result;
|
||||
console.log(data);
|
||||
|
||||
maxPage.value = Math.ceil(data.length / querySting.pageSize);
|
||||
maxPage.value = Math.ceil(data.total / querySting.pageSize);
|
||||
console.log(maxPage.value);
|
||||
fetchListLeaveReject(data.data); /** ส่งข้อมูลไป stores*/
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
|
|
@ -52,9 +55,7 @@ async function fecthLeaveList() {
|
|||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
const data = APIDATA.data;
|
||||
|
||||
fetchListLeaveReject(data); /** ส่งข้อมูลไป stores*/
|
||||
// const data = APIDATA.data;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -72,7 +73,7 @@ async function updatePaging(
|
|||
querySting.type = dateFilter ? dateFilter.type : querySting.type;
|
||||
querySting.status = dateFilter ? dateFilter.status : querySting.status;
|
||||
querySting.page = newPage;
|
||||
querySting.pageSize = pageSize;
|
||||
querySting.pageSize = pageSize ? pageSize : querySting.pageSize;
|
||||
querySting.keyword = dateFilter ? dateFilter.keyword : querySting.keyword;
|
||||
|
||||
console.log(querySting);
|
||||
|
|
@ -84,7 +85,10 @@ onMounted(async () => {
|
|||
});
|
||||
</script>
|
||||
<template>
|
||||
<ToolBar />
|
||||
<ToolBar
|
||||
:rowsPerPage="querySting.pageSize"
|
||||
@update:querySting="updatePaging"
|
||||
/>
|
||||
<TableList
|
||||
:page="querySting.page"
|
||||
:rowsPerPage="querySting.pageSize"
|
||||
|
|
|
|||
|
|
@ -82,14 +82,14 @@ const optionStatus2 = ref<DataOption[]>([
|
|||
},
|
||||
{
|
||||
id: "NEW",
|
||||
name: "ขอยกเลิก",
|
||||
name: "ใหม่",
|
||||
},
|
||||
{
|
||||
id: "APPROVE ",
|
||||
id: "APPROVE",
|
||||
name: "อนุมัติ",
|
||||
},
|
||||
{
|
||||
id: "REJECT ",
|
||||
id: "REJECT",
|
||||
name: "ไม่อนุมัติ",
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ console.log(props);
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col">
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
|
|
@ -65,6 +65,7 @@ console.log(props);
|
|||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -47,16 +47,19 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col"><q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
></div>
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -40,16 +40,19 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col"><q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
></div>
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col">
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
|
|
@ -64,6 +64,7 @@ const props = defineProps({
|
|||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -50,16 +50,19 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col"><q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
></div>
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -71,16 +71,19 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col"><q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
></div>
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -27,16 +27,19 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col"><q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
></div>
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ const props = defineProps({
|
|||
required: true,
|
||||
},
|
||||
});
|
||||
console.log(props);
|
||||
console.log(props.data);
|
||||
</script>
|
||||
<template>
|
||||
<q-card-section>
|
||||
|
|
@ -20,7 +20,7 @@ console.log(props);
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4 text-grey-8">เรียน</div>
|
||||
<div class="col">{{ props.data.notification }}</div>
|
||||
<div class="col">{{ props.data.dear }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4 text-grey-8">ชื่อผู้ยื่นขอ</div>
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col">
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
|
|
@ -90,6 +90,7 @@ const props = defineProps({
|
|||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col">
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
|
|
@ -86,6 +86,7 @@ const props = defineProps({
|
|||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -65,16 +65,19 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col"><q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
></div>
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
outline
|
||||
color="blue"
|
||||
label="ดาวน์โหลด"
|
||||
size="12px"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ const props = defineProps({
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-grey-8">เอกสารแนบ</div>
|
||||
<div class="col">
|
||||
<div class="col" v-if="props.data.leaveDocument">
|
||||
<q-btn
|
||||
:href="props.data.leaveDocument"
|
||||
target="_blank"
|
||||
|
|
@ -39,6 +39,7 @@ const props = defineProps({
|
|||
<q-tooltip>ดาวน์โหลดไฟล์</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
<div class="col" v-else>-</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,8 @@ interface FremData {
|
|||
coupleDayStartDateHistory: Date | null; //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDayEndDateHistory: Date | null; //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDaySumTotalHistory: string; //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
step: string;
|
||||
approveStep: string;
|
||||
dear: string;
|
||||
}
|
||||
|
||||
export type { ListsData, FremData, QuerySting, DateFilter };
|
||||
|
|
|
|||
|
|
@ -39,4 +39,40 @@ interface LeaveType {
|
|||
name: string;
|
||||
}
|
||||
|
||||
export type { DataRows, FormData, DataDateMonthObject, ListLeave, LeaveType };
|
||||
interface FormReject {
|
||||
id: string; //*Id การยื่นขอลา
|
||||
leaveTypeName: string; //Name ประเภทการลา
|
||||
fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
status: string; //สถานะการของลา
|
||||
leaveDocDelete: string; //เอกสารการยกเลิกการลา
|
||||
leaveResonDelete: string; //เหตุผลการยกเลิกการลา
|
||||
leaveWrote: string; //เขียนที่
|
||||
leaveAddress: string; //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveTotal: number; //จำนวนวันที่ลา
|
||||
leaveStartDate: Date; //วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date; //วัน เดือน ปีสิ้นสุดลา
|
||||
}
|
||||
|
||||
interface ResCalendar {
|
||||
dateSendLeave: Date;
|
||||
fullName: string;
|
||||
id: string;
|
||||
keycloakId: string;
|
||||
leaveEndDate: Date;
|
||||
leaveStartDate: Date;
|
||||
leaveTypeId: string;
|
||||
leaveTypeName: string;
|
||||
status: string;
|
||||
}
|
||||
|
||||
export type {
|
||||
DataRows,
|
||||
FormData,
|
||||
DataDateMonthObject,
|
||||
ListLeave,
|
||||
LeaveType,
|
||||
FormReject,
|
||||
ResCalendar,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ export const useLeavelistDataStore = defineStore("leave", () => {
|
|||
async function fetchListLeaveReject(data: any[]) {
|
||||
let datalist = data.map((e: FremData) => ({
|
||||
id: e.id,
|
||||
leaveTypeName: e.leaveTypeId && convertLeave(e.leaveTypeId),
|
||||
leaveTypeName: e.leaveTypeName,
|
||||
leaveTypeId: e.leaveTypeId,
|
||||
fullName: e.fullName,
|
||||
dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave),
|
||||
|
|
@ -73,7 +73,7 @@ export const useLeavelistDataStore = defineStore("leave", () => {
|
|||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นแปลงสถานะ
|
||||
* ฟังก์ชั่นแปลงสถานะ tab1
|
||||
* @param val ค่าสถานะ
|
||||
*/
|
||||
function convertSatatus(val: string) {
|
||||
|
|
@ -92,54 +92,54 @@ export const useLeavelistDataStore = defineStore("leave", () => {
|
|||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นแปลงสถานะ
|
||||
* ฟังก์ชั่นแปลงสถานะ tab2
|
||||
* @param val ค่าสถานะ
|
||||
*/
|
||||
function convertSatatus2(val: string) {
|
||||
switch (val) {
|
||||
case "NEW":
|
||||
return "ขอยกเลิก";
|
||||
case "PENDING":
|
||||
return "อนุมัติ";
|
||||
return "ใหม่";
|
||||
case "APPROVE":
|
||||
return "อนุมัติ";
|
||||
case "REJECT":
|
||||
return "ไม่อนุมัติ";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชั่นแปลงประเภทการลา
|
||||
* @param val ค่าประเภทของกาลา
|
||||
*/
|
||||
function convertLeave(val: string) {
|
||||
switch (val) {
|
||||
case "leave1":
|
||||
return "ลากิจส่วนตัว";
|
||||
case "leave2":
|
||||
return "ลาป่วย";
|
||||
case "leave3":
|
||||
return "ลาคลอดบุตร";
|
||||
case "leave4":
|
||||
return "ลาไปช่วยเหลือภริยาที่คลอดบุตร";
|
||||
case "leave5":
|
||||
return "ลาพักผ่อน";
|
||||
case "leave6":
|
||||
return "ลาอุปสมบท";
|
||||
case "leave7":
|
||||
return "ลาประกอบพิธีฮัจญ์";
|
||||
case "leave8":
|
||||
return "ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล";
|
||||
case "leave9":
|
||||
return "ลาไปศึกษา";
|
||||
case "leave10":
|
||||
return "ลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน";
|
||||
case "leave11":
|
||||
return "ลาไปปฏิบัติงานในองค์การระหว่างประเทศ";
|
||||
case "leave12":
|
||||
return "ลาติดตามคู่สมรส";
|
||||
case "leave13":
|
||||
return "ลาไปฟื้นฟูสมรรถภาพด้านอาชีพ";
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * ฟังก์ชั่นแปลงประเภทการลา
|
||||
// * @param val ค่าประเภทของกาลา
|
||||
// */
|
||||
// function convertLeave(val: string) {
|
||||
// switch (val) {
|
||||
// case "leave1":
|
||||
// return "ลากิจส่วนตัว";
|
||||
// case "leave2":
|
||||
// return "ลาป่วย";
|
||||
// case "leave3":
|
||||
// return "ลาคลอดบุตร";
|
||||
// case "leave4":
|
||||
// return "ลาไปช่วยเหลือภริยาที่คลอดบุตร";
|
||||
// case "leave5":
|
||||
// return "ลาพักผ่อน";
|
||||
// case "leave6":
|
||||
// return "ลาอุปสมบท";
|
||||
// case "leave7":
|
||||
// return "ลาประกอบพิธีฮัจญ์";
|
||||
// case "leave8":
|
||||
// return "ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล";
|
||||
// case "leave9":
|
||||
// return "ลาไปศึกษา";
|
||||
// case "leave10":
|
||||
// return "ลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน";
|
||||
// case "leave11":
|
||||
// return "ลาไปปฏิบัติงานในองค์การระหว่างประเทศ";
|
||||
// case "leave12":
|
||||
// return "ลาติดตามคู่สมรส";
|
||||
// case "leave13":
|
||||
// return "ลาไปฟื้นฟูสมรรถภาพด้านอาชีพ";
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* ฟังชั่นแปลงค่าการลา
|
||||
|
|
@ -198,9 +198,10 @@ export const useLeavelistDataStore = defineStore("leave", () => {
|
|||
visibleColumns,
|
||||
|
||||
fetchListLeaveReject,
|
||||
convertSatatus,
|
||||
|
||||
/** Function แปลงค่า */
|
||||
convertLeave,
|
||||
// convertLeave,
|
||||
convertLeaveDaytype,
|
||||
|
||||
leaveType,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue