hrms-user/src/modules/06_evaluate/stores/evaluteDetail.ts
2024-07-09 15:04:07 +07:00

275 lines
7.3 KiB
TypeScript

import { defineStore } from "pinia";
import { ref } from "vue";
import type { QTableProps } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
/** columns TableViewStep1*/
const mixin = useCounterMixin();
const { date2Thai } = mixin;
const columnsCertificates = ref<QTableProps["columns"]>([
{
name: "certificateType",
align: "left",
label: "ชื่อใบอนุณาต",
sortable: false,
field: "certificateType",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "issuer",
align: "left",
label: "หน่วยงานผู้ออกใบอนุญาต",
sortable: true,
field: "issuer",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "certificateNo",
align: "left",
label: "เลขที่ใบอนุญาต",
sortable: true,
field: "certificateNo",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "issueDate",
align: "left",
label: "วันที่ออกใบอนุญาต",
sortable: true,
field: (value) => date2Thai(value),
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "expireDate",
align: "left",
label: "วันที่หมดอายุ",
sortable: true,
field: (value) => date2Thai(value),
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
const columnSalaries = ref<QTableProps["columns"]>([
{
name: "date",
align: "left",
label: "วัน เดือน ปี",
sortable: true,
field: "date",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
format: (v) => date2Thai(v),
},
{
name: "amount",
align: "left",
label: "เงินเดือน",
sortable: true,
field: "amount",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
format: (v) => Number(v).toLocaleString(),
},
{
name: "positionSalaryAmount",
align: "left",
label: "เงินประจำตำแหน่ง",
sortable: true,
field: "positionSalaryAmount",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
format: (v) => Number(v).toLocaleString(),
},
{
name: "mouthSalaryAmount",
align: "left",
label: "เงินค่าตอบแทนรายเดือน",
sortable: true,
field: "mouthSalaryAmount",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
format: (v) => Number(v).toLocaleString(),
},
{
name: "posNo",
align: "left",
label: "ตำแหน่งเลขที่",
sortable: true,
field: "posNo",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "positionType",
align: "left",
label: "ประเภทตำแหน่ง",
sortable: true,
field: "positionType",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "positionLevel",
align: "left",
label: "ระดับ",
sortable: true,
field: "positionLevel",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "templateDoc",
align: "left",
label: "เอกสารอ้างอิง",
sortable: true,
field: "templateDoc",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "refCommandNo",
align: "left",
label: "เลขที่คำสั่ง",
sortable: true,
field: "refCommandNo",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
const columnTraining = ref<QTableProps["columns"]>([
{
name: "name",
align: "left",
label: "ชื่อโครงการ/หลักสูตรการฝึกอบรม",
sortable: false,
field: "name",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "topic",
align: "left",
label: "หัวข้อการฝึกอบรม/ดูงาน",
sortable: true,
field: "topic",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "startDate",
align: "left",
label: "วันเริ่มต้นการฝึกอบรม/ดูงาน",
sortable: true,
field: (value) => date2Thai(value),
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "endDate",
align: "left",
label: "วันสิ้นสุดการฝึกอบรม/ดูงาน",
sortable: true,
field: (value) => date2Thai(value),
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "yearly",
align: "left",
label: "ปีที่อบรม/ดูงาน",
sortable: true,
field: "yearly",
format(val, row) {
return row.yearly + 543
},
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "duration",
align: "left",
label: "รวมระยะเวลาในการฝึกอบรม/ดูงาน",
sortable: true,
field: "duration",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "department",
align: "left",
label: "หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน",
sortable: true,
field: "department",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
const columnProjectsProposed = ref<QTableProps["columns"]>([
{
name: "receivedDate",
align: "center",
label: "วันที่ได้รับ",
sortable: true,
field: (value) => date2Thai(value),
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "authority",
align: "left",
label: "ผู้มีอำนาจลงนาม",
sortable: true,
field: "authority",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "detail",
align: "left",
label: "รายละเอียด",
sortable: true,
field: "detail",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "orderNumber",
align: "left",
label: "เลขที่คำสั่ง",
sortable: true,
field: "orderNumber",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "doce",
align: "left",
label: "เอกสารอ้างอิง",
sortable: true,
field: (value) => date2Thai(value),
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
return {
columnsCertificates,
columnSalaries,
columnTraining,
columnProjectsProposed,
};
});