import { defineStore } from "pinia"; import { ref } from "vue"; import { useCounterMixin } from "@/stores/mixin"; import type { QTableProps } from "quasar"; import type { DataOption } from '@/modules/11_discipline/interface/index/Main' import type { MainList, RowList, RowAddList } from '@/modules/11_discipline/interface/response/appealComplain' export const useAppealComplainStore = defineStore( "AppealComplainStore", () => { const rows = ref([]); const rowsAdd = ref([]); const visibleColumns = ref([]); const columns = ref([]); const mixin = useCounterMixin() const { date2Thai } = mixin const typeOptions = ref([ { id: "APPEAL", name: "อุทธรณ์" }, { id: "COMPLAIN", name: "ร้องทุกข์" }, ]); const fiscalyearOP = ref([ { id: "0", name: "ทั้งหมด" }, ]) const statusOptions = ref([ { id: "ALL", name: "ทั้งหมด" }, { id: "NEW", name: "ใหม่" }, { id: "RECEIVE_DOC", name: "ได้รับเอกสารแล้ว" }, { id: "RECEIVE_APPEAL", name: "รับอุทธรณ์/ร้องทุกข์" }, { id: "NO_RECEIVE_APPEAL", name: "ไม่รับอุทธรณ์/ร้องทุกข์" }, { id: "DIAGNOSTIC", name: "ตั้งองค์คณะวินิจฉัย" }, { id: "SUMMARY", name: "สรุปผลการพิจารณา" }, { id: "DONE", name: "ปิดคำร้อง" }, ]); const statusOptionsEdit = ref([ { id: "NEW", name: "ใหม่" }, { id: "RECEIVE_DOC", name: "ได้รับเอกสารแล้ว" }, { id: "RECEIVE_APPEAL", name: "รับอุทธรณ์/ร้องทุกข์" }, { id: "NO_RECEIVE_APPEAL", name: "ไม่รับอุทธรณ์/ร้องทุกข์" }, { id: "DIAGNOSTIC", name: "ตั้งองค์คณะวินิจฉัย" }, { id: "SUMMARY", name: "สรุปผลการพิจารณา" }, { id: "DONE", name: "ปิดคำร้อง" }, ]); /** * ฟังชั่นแปลง status เป็น ไทย * @param val status ที่รับมา * @returns ส่งที่เเปลงออกไป */ function typeConvert(val: string){ switch (val) { case "APPEAL": return "อุทธรณ์"; case "COMPLAIN": return "ร้องทุกข์"; default: return "-"; } }; /** * จัดเรียงข้อมูล * @param data ข้อมูลที่รับมาจาก API */ function fetchAppealComplain(data: MainList[]) { let dataList: RowList[] = data.map((e: MainList) => ({ id: e.id, profileId: e.profileId, type: typeConvert(e.type), title: e.title, description: e.description, year: e.year + 543, fullname: e.fullname, citizenId: e.citizenId, caseType: e.caseType, caseNumber: e.caseNumber, lastUpdatedAt: date2Thai(e.lastUpdatedAt), status: statusTothai(e.status) })); rows.value = dataList; } /** * ฟังชั่นเอาไว้เก็บข้อมูล * @param data ข้อมูลจาก list ทั้งหมด */ function getRow(data: RowAddList[]) { if (data) { rowsAdd.value = data } } /** * แปลง status เป็น Text * @param val status * @returns text */ function statusTothai(val: string) { switch (val) { case "NEW": return "ใหม่"; case "RECEIVE_DOC": return "ได้รับเอกสารแล้ว"; case "RECEIVE_APPEAL": return "รับอุทธรณ์/ร้องทุกข์"; case "NO_RECEIVE_APPEAL": return "ไม่รับอุทธรณ์/ร้องทุกข์"; case "DIAGNOSTIC": return "ตั้งองค์คณะวินิจฉัย"; case "SUMMARY": return "สรุปผลการพิจารณา"; case "DONE": return "ปิดคำร้อง"; default: return "-"; } }; return { rows, visibleColumns, columns, fetchAppealComplain, // filterSelector, typeOptions, statusOptions, fiscalyearOP, getRow, rowsAdd, statusOptionsEdit, statusTothai }; } );