2023-08-26 15:59:09 +07:00
|
|
|
import { defineStore } from "pinia";
|
|
|
|
|
import { ref, } from "vue";
|
|
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
|
|
|
|
|
|
|
|
|
const mixin = useCounterMixin();
|
|
|
|
|
const {
|
|
|
|
|
date2Thai,
|
|
|
|
|
} = mixin;
|
|
|
|
|
|
2023-08-28 14:45:47 +07:00
|
|
|
export const useAllocateDataStore = defineStore("insigniaallocate", () => {
|
2023-09-15 17:22:58 +07:00
|
|
|
const roundId = ref<string>('')
|
|
|
|
|
const roundYear = ref<number>()
|
2023-08-26 15:59:09 +07:00
|
|
|
const insigniaName = ref<string>('')
|
|
|
|
|
const insignia = ref<string>('')
|
|
|
|
|
const insigniaOp = ref<any[]>([{ name: "ทั้งหมด", id: "", type: "" }])
|
|
|
|
|
const insigniaType = ref<any>()
|
|
|
|
|
const rows = ref<any>([])
|
|
|
|
|
const listInsignia = ref<any>([])
|
2023-09-07 16:05:25 +07:00
|
|
|
const mainTab = ref<string>("")
|
2023-10-25 12:54:49 +07:00
|
|
|
const type = ref<any[]>([])
|
2023-08-26 15:59:09 +07:00
|
|
|
const fetchDatainsignia = async (data: any) => {
|
2023-09-15 17:22:58 +07:00
|
|
|
// insignia.value = ''
|
2023-08-26 15:59:09 +07:00
|
|
|
insigniaOp.value = [{ name: "ทั้งหมด", id: "", type: "" }]
|
|
|
|
|
data.forEach((e: any) => {
|
2023-10-25 12:54:49 +07:00
|
|
|
insigniaOp.value.push({ name: `${e.name} (${e.shortName})`, id: e.id, type: e.insigniaType.id })
|
2023-08-26 15:59:09 +07:00
|
|
|
});
|
2023-10-25 12:54:49 +07:00
|
|
|
data.forEach((e: any) => {
|
|
|
|
|
type.value.push({
|
|
|
|
|
name:e.name,
|
|
|
|
|
shortName:e.shortName,
|
|
|
|
|
})})
|
2023-08-26 15:59:09 +07:00
|
|
|
}
|
2023-09-07 16:05:25 +07:00
|
|
|
const fetchDatainsigniaType = async (data: any,) => {
|
2023-08-26 15:59:09 +07:00
|
|
|
insigniaType.value = data.map((e: any) => ({ name: e.id, label: e.name }))
|
2023-09-07 16:05:25 +07:00
|
|
|
// mainTab.value = insigniaType.value[0].name
|
|
|
|
|
|
2023-08-26 15:59:09 +07:00
|
|
|
}
|
2023-08-28 14:45:47 +07:00
|
|
|
const listinsignia = async (data: any) => {
|
2023-08-26 15:59:09 +07:00
|
|
|
rows.value = [];
|
2023-08-28 14:45:47 +07:00
|
|
|
let list = await data.map((e: any) => ({
|
2023-08-26 15:59:09 +07:00
|
|
|
id: e.id,
|
2023-10-25 12:54:49 +07:00
|
|
|
insignia: `${e.insignia} (${type.value.find(item => item.name === e.insignia)?.shortName || ''})`,
|
2023-08-28 14:45:47 +07:00
|
|
|
insigniaId: e.insigniaId,
|
|
|
|
|
total: e.total,
|
|
|
|
|
allocate: e.allocate,
|
|
|
|
|
remain: e.remain,
|
|
|
|
|
year: e.year,
|
|
|
|
|
}))
|
|
|
|
|
rows.value = list
|
|
|
|
|
listInsignia.value = list
|
2023-09-15 17:22:58 +07:00
|
|
|
selectInsignia(insignia.value)
|
2023-08-26 15:59:09 +07:00
|
|
|
}
|
2023-09-15 17:22:58 +07:00
|
|
|
const selectInsignia = (type: string) => {
|
|
|
|
|
insignia.value = type
|
2023-08-28 16:38:04 +07:00
|
|
|
if (insignia.value !== "") {
|
|
|
|
|
rows.value = listInsignia.value.filter((e: any) => e.insigniaId === insignia.value)
|
|
|
|
|
} else rows.value = listInsignia.value
|
|
|
|
|
|
2023-08-26 15:59:09 +07:00
|
|
|
}
|
|
|
|
|
const profileType = (val: string) => {
|
|
|
|
|
switch (val) {
|
|
|
|
|
case "officer":
|
|
|
|
|
return "ข้าราชการ กทม.สามัญ";
|
|
|
|
|
case "employee":
|
|
|
|
|
return "ลูกจ้างประจำ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return {
|
2023-09-15 17:22:58 +07:00
|
|
|
roundId,
|
|
|
|
|
roundYear,
|
2023-08-26 15:59:09 +07:00
|
|
|
rows,
|
|
|
|
|
insignia,
|
|
|
|
|
insigniaOp,
|
|
|
|
|
insigniaType,
|
|
|
|
|
fetchDatainsignia,
|
|
|
|
|
fetchDatainsigniaType,
|
2023-08-28 14:45:47 +07:00
|
|
|
listinsignia,
|
|
|
|
|
selectInsignia,
|
2023-08-26 15:59:09 +07:00
|
|
|
profileType,
|
2023-09-07 16:05:25 +07:00
|
|
|
insigniaName,
|
|
|
|
|
mainTab
|
2023-08-26 15:59:09 +07:00
|
|
|
};
|
|
|
|
|
});
|