import { defineStore } from "pinia"; import { ref } from "vue"; /** * importType */ import type { ListMenu, ChildLevelTree, DataPermissions, } from "@/interface/response/main"; export const useMenuDataStore = defineStore("menuUse", () => { /****************** เมนู **************************/ /** รายการเมนู*/ const menuList = ref([]); /** ข้อมูล Level3*/ const childLevelTree = ref({ SYS_EVA_INDICATOR: [ { sysName: "ตามแผน", path: "KPIIndicatorByPlan", meta: { Auth: true, Key: "SYS_EVA_INDICATOR", Role: "STAFF", }, }, { sysName: "ตามตำแหน่ง", path: "KPIIndicatorByRole", meta: { Auth: true, Key: "SYS_EVA_INDICATOR", Role: "STAFF", }, }, { sysName: "งานอื่นๆ ที่ได้รับมอบหมาย", path: "KPIAssignment", meta: { Auth: true, Key: "SYS_EVA_INDICATOR", Role: "STAFF", }, }, ], 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[]) { if (data) { menuList.value = [ { id: "dashboard", order: 0, icon: "mdi-home-variant-outline", sysName: "หน้าแรก", sysDescription: "หน้าแรก", path: "dashboard", parentId: null, children: [], }, ...data, ]; } } /****************** สิทธิ์ **************************/ const permissions = ref(); /** * function เรียก * @param data ข้อมูลสิทธิ์ */ function fetchDataPermission(data: DataPermissions) { permissions.value = data; } return { /****************** เมนู **************************/ fetchListMenu, menuList, /****************** สิทธิ์ **************************/ fetchDataPermission, permissions, }; });