hrms-mgt/src/modules/12_evaluatePersonal/store/MeetingStore.ts

80 lines
2.6 KiB
TypeScript

import { defineStore } from "pinia";
import { ref } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import type { DataResponseList, MainList } from "@/modules/12_evaluatePersonal/interface/index/meeting";
import type { QTableProps } from "quasar";
// store ระบบวินัย >> ข้อมูลพื้นฐาน >> กรรมการ
export const useEvaluateMeetingDataStore = defineStore(
"evaluateMeeting",
() => {
const mixin = useCounterMixin()
const { date2Thai } = mixin
//ค้นหา คอลัมน์ คอลัมน์ที่แสดง
const visibleColumns = ref<string[]>([
"no",
"rounded",
"title",
"date",
]);
// หัวตาราง
const columns = ref<QTableProps["columns"]>([
{
name: "no",
align: "left",
label: "ลำดับ",
sortable: false,
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "rounded",
align: "left",
label: "ครั้งที่",
sortable: true,
field: "rounded",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "title",
align: "left",
label: "เรื่อง",
sortable: true,
field: "title",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "date",
align: "left",
label: "วันเวลาในการประชุม",
sortable: true,
field: "date",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
// ข้อมูลในตาราง
const rows = ref<MainList[]>([]);
function fetchData(data: DataResponseList[]) {
const dataList: MainList[] = data.map((item: DataResponseList) => ({
id: item.id,
rounded: item.rounded,
title: item.title,
date: `${date2Thai(item.dateStart as Date)} - ${date2Thai(item.dateEnd as Date)}`
}))
rows.value = dataList
}
return {
visibleColumns,
columns,
rows,
fetchData
};
}
);