hrms-mgt/src/modules/11_discipline/store/ComplaintsStore.ts

77 lines
No EOL
2.8 KiB
TypeScript

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 } from "@/modules/11_discipline/interface/response/complaint"
import type { QTableProps } from "quasar";
const mixin = useCounterMixin()
const { date2Thai } = mixin
export const useComplainstDataStore = defineStore("DisciplineComplainst", () => {
const rows = ref<DataListRow[]>([])
const visibleColumns = ref<string[]>([]);
const columns = ref<QTableProps["columns"]>([]);
function fetchComplainst(data: DataList[]) {
let datalist = data.map((e: DataList) => ({
subject: e.subject,
detail: e.detail,
complainant: e.complainant,
offenseDescription: e.offenseDescription,
creationDate: date2Thai(e.creationDate),
considerationLevel: e.considerationLevel,
considerationDeadlineDate: date2Thai(e.considerationDeadlineDate),
}))
rows.value = datalist
}
// filter options
const complainantoptionsMain = ref<DataOption[]>()
const complainantoptions = ref<DataOption[]>()
const agencytoptionsMain = ref<DataOption[]>()
const agencytoptions = ref<DataOption[]>()
const optionListNameMain = ref<DataOption[]>([])
const optionListName = ref<DataOption[]>([])
function fetchOptioin(complainantoptions: any, agencytoptions: any) {
complainantoptionsMain.value = complainantoptions
agencytoptionsMain.value = agencytoptions
}
function selectComplainantTpye(list: any) {
optionListNameMain.value = list
optionListName.value = list
}
function filterSelector(val: string, update: Function, type: string) {
update(() => {
if (type === "filtercomplainantType" && complainantoptionsMain.value) {
complainantoptions.value = complainantoptionsMain.value.filter(
(e) => e.name.search(val) !== -1
);
} else if (type === "filteragencytoptions" && agencytoptionsMain.value) {
agencytoptions.value = agencytoptionsMain.value.filter(
(e) => e.name.search(val) !== -1
);
} else if (type === "filtercomplainantOP" && optionListNameMain.value) {
optionListName.value = optionListNameMain.value.filter(
(e) => e.name.search(val) !== -1
);
}
})
}
return {
rows,
visibleColumns,
columns,
fetchComplainst,
selectComplainantTpye,
filterSelector,
fetchOptioin,
complainantoptions,
agencytoptions,
optionListName,
}
})