diff --git a/src/store/menu.ts b/src/store/menu.ts new file mode 100644 index 00000000..b03e4202 --- /dev/null +++ b/src/store/menu.ts @@ -0,0 +1,24 @@ +import { defineStore } from "pinia"; + +export const useMenuStore = defineStore({ + id: 'menu', + state: () => ({ + menus: {} as {[key: string]: string}, + }), + getters: { + hasPermission(state) { + return (menuCode: string | string[]) => { + if (!menuCode) { + return true + } + if (!!Object.keys(state.menus).length) { + if (typeof menuCode === 'string') { + return !!this.menus[menuCode] + } + return menuCode.some(code => !!this.menus[code]) + } + return false + } + } + } +}) \ No newline at end of file