85 lines
2.8 KiB
TypeScript
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
|
|
};
|
|
}
|
|
);
|