hrms-mgt/src/modules/11_discipline/store/SuspendStore.ts

85 lines
2.8 KiB
TypeScript

import { defineStore } from "pinia";
import { ref } from 'vue'
import type { listData, dataType ,DataOption} from '@/modules/11_discipline/interface/response/suspend'
import type { QTableProps } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
export const useDisciplineSuspendStore = defineStore(
"disciplineSuspendStore",
() => {
const rows = ref<dataType[]>([])
const columns = ref<QTableProps["columns"]>([])
const visibleColumns = ref<string[]>([])
const mixin = useCounterMixin()
const { date2Thai } = mixin
const offenseDetailsOps = ref<DataOption[]>([
{ id: "NOT_SPECIFIED", name: "ยังไม่ระบุ" },
{ id: "NOT_DEADLY", name: "ไม่ร้ายแรง" },
{ id: "DEADLY", name: "ร้ายแรง" },
]);
function getData(data: listData[]) {
console.log(data)
const dataList: dataType[] = data.map((item: listData) => ({
id: item.id,
citizenId: item.citizenId,
name: `${item.prefix}${item.firstName} ${item.lastName}`,
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
organization: item.organization,
position: item.position,
posNo: item.posNo,
positionLevel: item.positionLevel,
salary: item.salary,
status: statusTothai(item.status),
statusEn: item.status,
descriptionSuspend: item.descriptionSuspend,
dateTotal:item.startDateSuspend && item.endDateSuspend ? `${date2Thai(item.startDateSuspend)} - ${date2Thai(item.endDateSuspend)}`:'-',
startDateSuspend: item.startDateSuspend,
endDateSuspend: item.endDateSuspend,
title: item.title,
offenseDetails: item.offenseDetails,
disciplinaryFaultLevel: item.disciplinaryFaultLevel,
disciplinaryCaseFault: item.disciplinaryCaseFault,
}))
console.log('dataList ===',dataList)
rows.value = dataList
}
const statusTothai = (val: string) => {
switch (val) {
case "WAITTING":
return "รอดำเนินการ";
case "PENDING":
return "รอออกคำสั่ง";
case "APPROVE":
return "อนุมัติ";
case "REJECT":
return "ไม่อนุมัติ";
case "REPORT":
return "ส่งรายชื่อไปออกคำสั่ง";
case "DONE":
return "ออกคำสั่งเสร็จแล้ว";
default:
return "-";
}
};
function convertOffenseDetails(val: string) {
const result = offenseDetailsOps.value.find((x: any) => x.id == val)?.name;
return result ? result : "-";
}
return {
rows,
columns,
visibleColumns,
getData,
offenseDetailsOps
};
}
);