2023-10-06 13:32:54 +07:00
|
|
|
import { defineStore } from "pinia";
|
2023-11-08 18:02:52 +07:00
|
|
|
import { ref, onMounted } from "vue";
|
2023-10-06 13:32:54 +07:00
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
|
|
|
|
|
2023-11-09 17:20:10 +07:00
|
|
|
/** importType*/
|
2023-10-20 16:57:32 +07:00
|
|
|
import type { QTableProps } from "quasar";
|
2023-11-02 16:44:02 +07:00
|
|
|
import type { DataRows } from "@/modules/09_leave/interface/response/leave";
|
2023-11-17 15:28:03 +07:00
|
|
|
import type { FremData } from "@/modules/09_leave/interface/request/leave";
|
2023-10-06 13:32:54 +07:00
|
|
|
|
|
|
|
|
const mixin = useCounterMixin();
|
|
|
|
|
const { date2Thai, showLoader, hideLoader } = mixin;
|
2023-11-09 17:20:10 +07:00
|
|
|
|
2023-10-06 13:32:54 +07:00
|
|
|
export const useLeavelistDataStore = defineStore("leave", () => {
|
2023-11-21 15:29:02 +07:00
|
|
|
/** ข้อมูล Main*/
|
|
|
|
|
const tabMenu = ref<string>("1");
|
|
|
|
|
|
|
|
|
|
/** ข้อมูล Tab 1*/
|
|
|
|
|
const tabView = ref<string>("list");
|
|
|
|
|
|
2023-11-09 17:20:10 +07:00
|
|
|
/**ข้อมูลใน Table*/
|
2023-11-02 16:44:02 +07:00
|
|
|
const mainData = ref<any>([]);
|
|
|
|
|
const rows = ref<DataRows[]>([]);
|
|
|
|
|
const columns = ref<QTableProps["columns"]>([]);
|
|
|
|
|
const visibleColumns = ref<string[]>([]);
|
2023-11-17 15:28:03 +07:00
|
|
|
|
2023-11-09 17:20:10 +07:00
|
|
|
/**
|
2023-11-21 15:29:02 +07:00
|
|
|
* ฟังก์ชั่น fetchListLeave
|
2023-11-09 17:20:10 +07:00
|
|
|
* @param data รับข้อมูลจาก Page
|
|
|
|
|
*/
|
2023-11-21 15:29:02 +07:00
|
|
|
async function fetchListLeave(data: any[]) {
|
2023-11-14 13:29:21 +07:00
|
|
|
let datalist = data.map((e: FremData) => ({
|
2023-11-03 16:01:59 +07:00
|
|
|
id: e.id,
|
2023-11-14 13:29:21 +07:00
|
|
|
leaveTypeName: e.leaveTypeId && convertLeave(e.leaveTypeId),
|
|
|
|
|
leaveTypeId: e.leaveTypeId,
|
|
|
|
|
fullname: e.fullname,
|
|
|
|
|
dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave),
|
|
|
|
|
status: convertSatatus(e.status),
|
2023-11-02 16:44:02 +07:00
|
|
|
}));
|
2023-11-21 15:29:02 +07:00
|
|
|
|
|
|
|
|
mainData.value = datalist;
|
|
|
|
|
rows.value = mainData.value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ฟังก์ชั่น fetchListLeave
|
|
|
|
|
* @param data รับข้อมูลจาก Page
|
|
|
|
|
*/
|
|
|
|
|
async function fetchListLeaveReject(data: any[]) {
|
|
|
|
|
let datalist = data.map((e: FremData) => ({
|
|
|
|
|
id: e.id,
|
|
|
|
|
leaveTypeName: e.leaveTypeId && convertLeave(e.leaveTypeId),
|
|
|
|
|
leaveTypeId: e.leaveTypeId,
|
|
|
|
|
fullname: e.fullname,
|
|
|
|
|
dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave),
|
|
|
|
|
status: convertSatatus2(e.status),
|
|
|
|
|
}));
|
|
|
|
|
|
2023-11-08 18:02:52 +07:00
|
|
|
mainData.value = datalist;
|
2023-11-17 15:28:03 +07:00
|
|
|
rows.value = mainData.value;
|
2023-11-02 16:44:02 +07:00
|
|
|
}
|
2023-10-06 13:32:54 +07:00
|
|
|
|
2023-11-09 17:20:10 +07:00
|
|
|
/**
|
|
|
|
|
* ฟังก์ชั่นแปลงสถานะ
|
|
|
|
|
* @param val ค่าสถานะ
|
|
|
|
|
*/
|
2023-11-02 16:44:02 +07:00
|
|
|
function convertSatatus(val: string) {
|
|
|
|
|
switch (val) {
|
2023-11-03 15:08:53 +07:00
|
|
|
case "NEW":
|
2023-11-02 16:44:02 +07:00
|
|
|
return "ใหม่";
|
2023-11-03 15:08:53 +07:00
|
|
|
case "PENDING":
|
|
|
|
|
return "อยู่ระหว่างดำเนินการ";
|
|
|
|
|
case "APPROVE":
|
2023-11-02 16:44:02 +07:00
|
|
|
return "อนุมัติ";
|
2023-11-03 15:08:53 +07:00
|
|
|
case "REJECT":
|
|
|
|
|
return "ไม่อนุมัติ";
|
2023-10-06 13:32:54 +07:00
|
|
|
}
|
2023-11-02 16:44:02 +07:00
|
|
|
}
|
2023-11-09 17:20:10 +07:00
|
|
|
|
2023-11-21 15:29:02 +07:00
|
|
|
/**
|
|
|
|
|
* ฟังก์ชั่นแปลงสถานะ
|
|
|
|
|
* @param val ค่าสถานะ
|
|
|
|
|
*/
|
|
|
|
|
function convertSatatus2(val: string) {
|
|
|
|
|
switch (val) {
|
|
|
|
|
case "NEW":
|
|
|
|
|
return "ขอยกเลิก";
|
|
|
|
|
case "PENDING":
|
|
|
|
|
return "อนุมัติ";
|
|
|
|
|
case "APPROVE":
|
|
|
|
|
return "อนุมัติ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-09 17:20:10 +07:00
|
|
|
/**
|
|
|
|
|
* ฟังก์ชั่นแปลงประเภทการลา
|
|
|
|
|
* @param val ค่าประเภทของกาลา
|
|
|
|
|
*/
|
2023-11-06 12:12:54 +07:00
|
|
|
function convertLeave(val: string) {
|
|
|
|
|
switch (val) {
|
|
|
|
|
case "leave1":
|
|
|
|
|
return "ลากิจส่วนตัว";
|
|
|
|
|
case "leave2":
|
|
|
|
|
return "ลาป่วย";
|
2023-11-08 18:02:52 +07:00
|
|
|
case "leave3":
|
|
|
|
|
return "ลาคลอดบุตร";
|
|
|
|
|
case "leave4":
|
|
|
|
|
return "ลาไปช่วยเหลือภริยาที่คลอดบุตร";
|
|
|
|
|
case "leave5":
|
|
|
|
|
return "ลาพักผ่อน";
|
2023-11-09 17:20:10 +07:00
|
|
|
case "leave6":
|
|
|
|
|
return "ลาอุปสมบท";
|
|
|
|
|
case "leave7":
|
|
|
|
|
return "ลาประกอบพิธีฮัจย์";
|
|
|
|
|
case "leave8":
|
|
|
|
|
return "ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล";
|
|
|
|
|
case "leave9":
|
|
|
|
|
return "ลาไปศึกษา";
|
|
|
|
|
case "leave10":
|
|
|
|
|
return "ลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน";
|
|
|
|
|
case "leave11":
|
|
|
|
|
return "ลาไปปฏิบัติงานในองค์การระหว่างประเทศ";
|
|
|
|
|
case "leave12":
|
|
|
|
|
return "ลาติดตามคู่สมรส";
|
|
|
|
|
case "leave13":
|
|
|
|
|
return "ลาไปฟื้นฟูสมรรถภาพด้านอาชีพ";
|
2023-11-08 18:02:52 +07:00
|
|
|
}
|
|
|
|
|
}
|
2023-11-09 17:20:10 +07:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ฟังชั่นแปลงค่าการลา
|
|
|
|
|
* @param val ค่าของการลา
|
|
|
|
|
*/
|
2023-11-08 18:02:52 +07:00
|
|
|
function convertLeaveDaytype(val: string) {
|
|
|
|
|
switch (val) {
|
|
|
|
|
case "allday":
|
|
|
|
|
return "ลาทั้งวัน";
|
|
|
|
|
case "halfmorning":
|
|
|
|
|
return "ลาครึ่งวันเช้า";
|
|
|
|
|
case "halfafternoon":
|
|
|
|
|
return "ลาครึ่งวันบ่าย";
|
2023-11-06 12:12:54 +07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-02 16:44:02 +07:00
|
|
|
return {
|
2023-11-21 15:29:02 +07:00
|
|
|
/** ข้อมูล Main*/
|
|
|
|
|
tabMenu,
|
|
|
|
|
/** ข้อมูล Tab1*/
|
|
|
|
|
tabView,
|
2023-11-10 09:50:14 +07:00
|
|
|
/**ข้อมูลใน Table */
|
2023-11-02 16:44:02 +07:00
|
|
|
rows,
|
2023-11-21 15:29:02 +07:00
|
|
|
fetchListLeave,
|
2023-11-02 16:44:02 +07:00
|
|
|
columns,
|
|
|
|
|
visibleColumns,
|
2023-10-06 13:32:54 +07:00
|
|
|
|
2023-11-21 15:29:02 +07:00
|
|
|
fetchListLeaveReject,
|
|
|
|
|
|
2023-11-10 09:50:14 +07:00
|
|
|
/** Function แปลงค่า */
|
2023-11-08 18:02:52 +07:00
|
|
|
convertLeave,
|
|
|
|
|
convertLeaveDaytype,
|
2023-11-02 16:44:02 +07:00
|
|
|
};
|
|
|
|
|
});
|