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([ { id: "dashboard", order: 0, icon: "mdi-home-variant-outline", sysName: "หน้าแรก", sysDescription: "หน้าแรก", path: "dashboard", parentId: null, children: [], }, ]); /** ข้อมูล Level3*/ const childLevelTree = ref({ 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, }; });