import { defineStore } from "pinia"; import { ref } from "vue"; import type { QTableProps } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; import type { MainList, ListResponse, } from "@/modules/06_evaluate/interface/main"; const mixin = useCounterMixin(); const { date2Thai } = mixin; export const useEvaluateStore = defineStore("evaluateStore", () => { const filterKeyword = ref(""); const columns = ref([]); const visibleColumns = ref([]); const row = ref([]); /** * function เรียกข่อมูลรายการประเมิน * @param data ข้อมูลรายการประเมิน */ async function fetchEvaluateList(data: any) { const list = data.map((e: ListResponse) => ({ id: e.id, typeparam: e.type, type: e.type, type_th: e.type_th, dateSend: date2Thai(e.updatedAt), status: convertStatus(e.step), step: e.step, })); row.value = list; } const tabMenu = ref("1"); const checkFileupload = ref(false); const showLoadStatus = ref(false); const step = ref(1); const currentStep = ref(1); const statusUpload = ref(false); const title = ref([ "ตรวจสอบคุณสมบัติ", "จัดเตรียมเอกสารเล่ม 1", "ตรวจสอบเอกสารเล่ม 1", "รอตรวจสอบคุณสมบัติ", "ประกาศบนเว็บไซต์", "จัดเตรียมเอกสารเล่ม 2", "ตรวจสอบเอกสารเล่ม 2", "รอพิจารณาผลการประเมิน", "เสร็จสิ้น", ]); /** * function แปรงสถานะ * @param val สถานะ */ function convertStatus(val: string) { switch (val) { case "CHECK_SPEC": return "ตรวจสอบคุณสมบัติด้วยตนเอง"; case "PREPARE_DOC_V1": return "จัดเตรียมเอกสารเล่ม 1"; case "CHECK_DOC_V1": return "ตรวจสอบเอกสารเล่ม 1"; case "WAIT_CHECK_DOC_V1": return "รอตรวจสอบคุณสมบัติ"; case "ANNOUNCE_WEB": return "ประกาศบนเว็บไซต์"; case "PREPARE_DOC_V2": return "จัดเตรียมเอกสารเล่ม 2"; case "WAIT_CHECK_DOC_V2": return "ตรวจสอบเอกสารเล่ม 2"; case "CHECK_DOC_V2": return "รอพิจารณาผลการประเมิน"; case "DONE": return "เสร็จสิ้น"; } } const tabPanels = ref("1"); const evaluateId = ref(""); return { filterKeyword, columns, visibleColumns, row, fetchEvaluateList, tabMenu, checkFileupload, step, currentStep, statusUpload, title, tabPanels, evaluateId, showLoadStatus, }; });