89 lines
2.5 KiB
JavaScript
89 lines
2.5 KiB
JavaScript
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'],
|
||
// }
|
||
});
|