hospital-admin/src/store/permission.js
2024-12-30 09:24:36 +08:00

89 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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'],
// }
});