admin 初始化
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { getUserMenuRole } from '@/api/admin/login';
|
||||
|
||||
|
||||
const modules = import.meta.glob('../views/**/*.vue');
|
||||
|
||||
export const usePermissionStore = defineStore('permisson', {
|
||||
state: () => {
|
||||
return {
|
||||
addRouters: [],
|
||||
menuList: [],
|
||||
};
|
||||
},
|
||||
getters: {
|
||||
getRoutes: (state) => state.addRouters,
|
||||
},
|
||||
actions: {
|
||||
setMenuList(menus) {
|
||||
this.menuList = menus;
|
||||
},
|
||||
GenerateRoutes(routeList) {
|
||||
const routes = [];
|
||||
|
||||
routeList.forEach((item) => {
|
||||
const route = {};
|
||||
// if (item.visible == 0) {
|
||||
if (item.menuType === 'M' || item.menuType === 'C') {
|
||||
route.path = item.path;
|
||||
route.name = item.menuName;
|
||||
if (item.menuType === 'M') {
|
||||
route.component = modules[`../views/index.vue`];
|
||||
} else if (item.menuType === 'C') {
|
||||
route.component = modules[`../views${item.component}.vue`] || modules['../views/error-page/888.vue'];
|
||||
}
|
||||
route.meta = {
|
||||
title: item.title,
|
||||
permission: item.permission,
|
||||
};
|
||||
}
|
||||
|
||||
if (item.children) {
|
||||
route.children = this.GenerateRoutes(item.children);
|
||||
}
|
||||
routes.push(route);
|
||||
// }
|
||||
});
|
||||
|
||||
return routes;
|
||||
},
|
||||
async getMenuRole() {
|
||||
const res = await getUserMenuRole();
|
||||
console.log(res.data);
|
||||
this.setMenuList(res.data);
|
||||
this.addRouters = await this.GenerateRoutes(res.data);
|
||||
},
|
||||
ClearMenuList() {
|
||||
this.menuList = [];
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,48 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { setLocalStorage, getLocalStorage } from '@/utils/storage';
|
||||
import { getInfo } from '@/api/admin/sys-user';
|
||||
import { getAppConfig } from '@/api/admin/login';
|
||||
|
||||
export const useUserStore = defineStore('user', {
|
||||
state: () => {
|
||||
return {
|
||||
token: window.sessionStorage.getItem('token') || '',
|
||||
uid: window.sessionStorage.getItem('uid') || '',
|
||||
sysConfig: getLocalStorage('sysConfig'),
|
||||
userInfo: '',
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
roles: (state) => state.userInfo.roles || [],
|
||||
},
|
||||
actions: {
|
||||
setToken(token) {
|
||||
this.token = token;
|
||||
|
||||
window.sessionStorage.setItem('token', token);
|
||||
},
|
||||
async getUserInfo() {
|
||||
try {
|
||||
const res = await getInfo();
|
||||
// window.sessionStorage.setItem('uid', res.data.userId);
|
||||
window.localStorage.setItem('uid', res.data.userId);
|
||||
this.userInfo = res.data;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
},
|
||||
async getSysConfig() {
|
||||
try {
|
||||
const res = await getAppConfig();
|
||||
setLocalStorage('sysConfig', res.data);
|
||||
this.sysConfig = res.data;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
},
|
||||
userLogout() {
|
||||
this.token = null;
|
||||
this.userInfo = null;
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user