import { defineStore } from 'pinia'; import { getUserMenuRole,getUserButtonRole } from '@/api/admin/login'; import { Message } from '@arco-design/web-vue'; // import { getCurrentInstance} from 'vue'; // const { proxy } = getCurrentInstance(); const modules = import.meta.glob('../views/**/*.vue'); export const usePermissionStore = defineStore('permisson', { state: () => { return { addRouters: [], menuList: [], buttonPermissions:[] }; }, getters: { getRoutes: (state) => state.addRouters, }, actions: { setMenuList(menus) { this.menuList = menus; console.log('-------'); console.log(menus) }, GenerateRoutes(routeList) { const routes = []; const buttons=[]; routeList.forEach((item) => { const route = {}; if (item.menu_type ==1 || item.menu_type ==2) { route.path = item.path; route.name = item.menu_name; if (item.menu_type ==1) { route.component = modules[`../views/index.vue`]; } else if (item.menu_type ==2) { //console.log(`${item.component}`); route.component = modules[`../views${item.component}.vue`] || modules['../views/error-page/888.vue']; } route.meta = { title: item.menu_title, permission: item.permission, }; } if (item.children) { route.children = this.GenerateRoutes(item.children); } routes.push(route); // } }); return routes; }, async getMenuRole() { const {code,data,message}= await getUserMenuRole(); if(code==200){ this.setMenuList(data); this.addRouters =await this.GenerateRoutes(data); console.log(this.addRouters); }else{ return false } }, async getButtonRole() { const {code,data,message} = await getUserButtonRole(); if(code==200){ this.buttonPermissions=data; }else{ return false } }, clearRouters(){ this.addRouters = []; }, ClearMenuList() { this.menuList = []; } }, // persist: { // // 修改存储中使用的键名称,默认为当前 Store的 id // key: 'permession', // // 修改为 sessionStorage,默认为 localStorage // // storage: window.sessionStorage, // // 按需持久化,默认不写会存储全部 // //paths: ['token'], // } });