import { defineStore } from "pinia"; import { ref } from "vue"; import { useCounterMixin } from "@/stores/mixin"; import type { DataOption } from "@/modules/11_discipline/interface/index/Main"; import type { DataList, DataListRow, DataAdd, DataAddResponse } from "@/modules/11_discipline/interface/response/complaint" import type { QTableProps } from "quasar"; const mixin = useCounterMixin() const { date2Thai } = mixin // id // cardId // prefix // firstName // lastName // position // level // oc export const useComplainstDataStore = defineStore("DisciplineComplainst", () => { const rows = ref([]) const rowsAdd = ref([]) const visibleColumns = ref([]); const columns = ref([]); function fetchComplainstAdd(data: DataAddResponse[]) { console.log(data) let datalist = data.map((e: DataAddResponse) => ({ id: e.id, idcard: e.idcard, name: e.name, positionNo: e.positionNo, position: e.position, positionLevel: e.positionLevel, salary: addCommas(e.salary), organization: e.organization, })) rowsAdd.value = datalist } function addCommas(salaryString: string): string { const salaryNumber = parseFloat(salaryString.replace(/,/g, '')); return salaryNumber.toLocaleString(); } function fetchComplainst(data: DataList[]) { let datalist: DataListRow[] = data.map((e: DataList) => ({ id: e.id, title: e.title, description: e.description, respondent: e.respondent, descMistake: e.descMistake, createdAt: date2Thai(e.createdAt)!, devLevel: e.devLevel, considerationDate: date2Thai(e.considerationDate)!, complaintStatus: statusTothai(e.complaintStatus), })); rows.value = datalist; } // filter options const complainantoptionsMain = ref([ { id: "PERSON", name: "บุคคล" }, { id: "ORGANIZATION", name: "หน่วยงาน" }, { id: "BANGKOK", name: "กรุงเทพมหานคร" }, ]); const complainantoptions = ref(complainantoptionsMain.value) const consideredAgencytoptions = ref([ { id: "0", name: "หน่ายงานเอ" }, { id: "1", name: "หน่ายงานบี" }, { id: "2", name: "หน่ายงานชี" }, ]); const officeOp = ref([ { id: "0", name: "สำนักงาน1" }, { id: "1", name: "สำนักงาน2" }, { id: "2", name: "สำนักงาน3" }, ]); const statusTothai = (val: string) => { switch (val) { case 'NEW': return "ใหม่"; case 'STOP': return "ยุติเรื่อง"; case 'SEND_INVESTIGATE': return "มีมูลส่งไปสืบสวนแล้ว"; default: return "-"; } }; const agencytoptions = ref(consideredAgencytoptions.value) const optionListNameMain = ref([]) const optionListName = ref([]) function selectComplainantTpye(list: any) { optionListNameMain.value = list optionListName.value = list } function filterSelector(val: string, update: Function, type: string) { update(() => { const needle = val.toLowerCase(); if (type === "filtercomplainantType") { complainantoptions.value = complainantoptionsMain.value.filter( (v: any) => v.name.toLowerCase().indexOf(needle) > -1 ); } else if (type === "filteragencytoptions") { agencytoptions.value = consideredAgencytoptions.value.filter( (v: any) => v.name.toLowerCase().indexOf(needle) > -1 ); } else if (type === "filtercomplainantOP") { optionListName.value = optionListNameMain.value.filter( (v: any) => v.name.toLowerCase().indexOf(needle) > -1 ); } }); } return { rows, rowsAdd, visibleColumns, columns, fetchComplainst, selectComplainantTpye, filterSelector, complainantoptions, consideredAgencytoptions, optionListName, fetchComplainstAdd, officeOp } })