120 lines
3.1 KiB
TypeScript
120 lines
3.1 KiB
TypeScript
import { defineStore } from "pinia";
|
|
import { ref } from "vue";
|
|
|
|
/**
|
|
* importType
|
|
*/
|
|
import type { ListMenu, ChildLevelTree } from "@/interface/response/main";
|
|
|
|
export const useMenuDataStore = defineStore("menuUse", () => {
|
|
/** รายการเมนู*/
|
|
const menuList = ref<ListMenu[]>([
|
|
{
|
|
id: "dashboard",
|
|
order: 0,
|
|
icon: "mdi-home-variant-outline",
|
|
sysName: "หน้าแรก",
|
|
sysDescription: "หน้าแรก",
|
|
path: "dashboard",
|
|
parentId: null,
|
|
children: [],
|
|
},
|
|
]);
|
|
|
|
/** ข้อมูล Level3*/
|
|
const childLevelTree = ref<ChildLevelTree>({
|
|
SYS_EVA_INDICATOR: [
|
|
{
|
|
sysName: "ตามแผน",
|
|
path: "KPIIndicatorByPlan",
|
|
},
|
|
{
|
|
sysName: "ตามตำแหน่ง",
|
|
path: "KPIIndicatorByRole",
|
|
},
|
|
{
|
|
sysName: "งานที่ได้รับมอบหมาย",
|
|
path: "KPIAssignment",
|
|
},
|
|
],
|
|
SYS_EXAM_CONTEST: [
|
|
{
|
|
sysName: "จัดการรอบสอบแข่งขัน",
|
|
path: "competePeriod",
|
|
},
|
|
{
|
|
sysName: "สถิติสมัครสอบแข่งขัน",
|
|
path: "competePeriodStat",
|
|
},
|
|
],
|
|
SYS_EXAM_SELECT: [
|
|
{
|
|
sysName: "จัดการรอบคัดเลือก",
|
|
path: "qualifyPeriod",
|
|
},
|
|
{
|
|
sysName: "จัดการรอบคัดเลือกคนพิการ",
|
|
path: "disablePeriod",
|
|
},
|
|
{
|
|
sysName: "จัดการรายชื่อคัดเลือก",
|
|
path: "manage",
|
|
},
|
|
{
|
|
sysName: "สถิติสมัครคัดเลือก",
|
|
path: "qualifyPeriodStat",
|
|
},
|
|
{
|
|
sysName: "สถิติสมัครคัดเลือกคนพิการ",
|
|
path: "qualifyPeriodStatDisable",
|
|
},
|
|
],
|
|
SYS_DISCIPLINE_INFO: [
|
|
{
|
|
sysName: "กรรมการ",
|
|
path: "disciplineDirector",
|
|
},
|
|
{
|
|
sysName: "ช่องทางการร้องเรียน",
|
|
path: "disciplineChannel",
|
|
},
|
|
],
|
|
SYS_EVA_INFO: [
|
|
{
|
|
sysName: "กรรมการ",
|
|
path: "evaluateDirector",
|
|
},
|
|
{
|
|
sysName: "การประชุม",
|
|
path: "evaluateMeeting",
|
|
},
|
|
],
|
|
});
|
|
|
|
/**
|
|
* function เรียกรายการเมนูทั้งหมด
|
|
* @param data ข้อมูลรายการทั้งหมด
|
|
*/
|
|
function fetchListMenu(data: ListMenu[]) {
|
|
data.forEach((item) => {
|
|
if (item.children && item.children.length !== 0) {
|
|
item.children.forEach((q: ListMenu) => {
|
|
const config: any = childLevelTree.value[q.id];
|
|
if (config) {
|
|
if (!q.children) {
|
|
q.children = [];
|
|
}
|
|
// เพิ้ม ข้อมูลเลเวล 3
|
|
q.children.push(...config);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
menuList.value.push(...data);
|
|
}
|
|
|
|
return {
|
|
fetchListMenu,
|
|
menuList,
|
|
};
|
|
});
|