import { defineStore } from "pinia"; import { ref, } from "vue"; import { useCounterMixin } from "@/stores/mixin"; const mixin = useCounterMixin(); const { date2Thai, } = mixin; export const useResultDataStore = defineStore("insigniaResult", () => { const insigniaName = ref('') const insignia = ref('') const insigniaOp = ref([{ name: "ทั้งหมด", id: "", type: "" }]) const insigniaOp2 = ref([]) const insigniaType = ref() const invoiceType = ref('all') const invoiceTypeop = ref([{ name: "ทั้งหมด", id: "all" }, { name: "ใบกำกับที่ค้างจ่าย", id: "noDate" }, { name: "ใบกำกับที่จ่ายแล้ว", id: "haveDate" }]) const rows = ref([]) const listInsignia = ref([]) const fetchDatainsignia = async (data: any) => { insignia.value = '' invoiceType.value = 'all' insigniaOp.value = [{ name: "ทั้งหมด", id: "", type: "" }] data.forEach((e: any) => { insigniaOp.value.push({ name: e.name, id: e.id, type: e.insigniaType.id }) }); } const fetchDatainsigniaType = async (data: any) => { insigniaType.value = data.map((e: any) => ({ name: e.id, label: e.name })) } const fetchlistinsignia = async (data: any) => { rows.value = []; let alllist = await data.map((e: any) => ({ id: e.id, citizenId: e.citizenId, prefix: e.prefix, position: e.position, status: status(e.status), dateReceive: date2Thai(e.dateReceive), name: e.fullName, type: e.requestInsignia, employeeType: profileType(e.profileType), profileType: e.profileType, page: e.page, number: e.no, vatnumber: e.number, datepay: date2Thai(e.datePayment), typepay: e.typePayment, address: e.address, })); rows.value = alllist listInsignia.value = alllist selectInvoice(invoiceType.value) } const selectInvoice = (invoice: string) => { console.log(invoice); if (invoice === "noDate") { let list = listInsignia.value.filter((e: any) => e.datepay === null) rows.value = list } else if (invoice === "haveDate") { let list = listInsignia.value.filter((e: any) => e.datepay !== null) rows.value = list } else rows.value = listInsignia.value } const status = (val: string) => { switch (val) { case "PENDING": return "รอบันทึกข้อมูล"; case "REJECT": return "ยกเลิก"; case "DELETE": return "ลบ"; case "DONE": return "บันทึกลง ก.พ. 7 แล้ว"; } } const profileType = (val: string) => { switch (val) { case "officer": return "ข้าราชการ กทม.สามัญ"; case "employee": return "ลูกจ้างประจำ"; } } return { rows, insignia, insigniaOp, insigniaOp2, insigniaType, invoiceType, invoiceTypeop, fetchDatainsignia, fetchDatainsigniaType, status, profileType, fetchlistinsignia, selectInvoice, insigniaName }; });