import { defineStore } from "pinia"; import { ref } from "vue"; import type { DataOption } from "@/modules/04_registryNew/interface/index/Main"; import type { DataType, DataLevel, } from "@/modules/04_registryNew/interface/response/Main"; export const useRegistryNewDataStore = defineStore("registryNew", () => { const searchTypeOption = ref([ { id: "fullName", name: "ชื่อ-นามสกุล" }, { id: "citizenId", name: "เลขประจำตัวประชาชน" }, // { id: "posNo", name: "ตำแหน่งเลขที่" }, { id: "position", name: "ตำแหน่งสายงาน" }, ]); const employeeClassOps = ref([ { id: "officer", name: "ข้าราชการ กทม.สามัญ" }, { id: "perm", name: "ลูกจ้างประจำ" }, { id: "temp", name: "ลูกจ้างชั่วคราว" }, ]); const posTypeOps = ref([]); const posTypeMain = ref([]); const posLevelOps = ref([]); const yearOps = ref([]); const mode = ref("card"); function fetchType(data: DataType[]) { posTypeMain.value = data; const list: DataOption[] = data.map((e: DataType) => ({ id: e.id, name: e.posTypeName, })); posTypeOps.value = list; } function fetchLevel(data: DataLevel[]) { const list: DataOption[] = data.map((e: DataLevel) => ({ id: e.id, name: e.posLevelName, })); const seen = new Set(); posLevelOps.value = list.filter((item: DataOption) => { if (seen.has(item.name)) { return false; } else { seen.add(item.name); return true; } }); } return { fetchType, fetchLevel, posTypeMain, searchTypeOption, employeeClassOps, posTypeOps, posLevelOps, yearOps, mode, }; });