refactor: 项目简化
Former-commit-id: 73a4a6c9c41e013928e6205dd7c078d0e955f487
This commit is contained in:
@@ -2,7 +2,7 @@ import { PermissionState } from '@/types/store/permission';
|
||||
import { RouteRecordRaw } from 'vue-router';
|
||||
import { defineStore } from 'pinia';
|
||||
import { constantRoutes } from '@/router';
|
||||
import { listRoutes } from '@/api/system/menu';
|
||||
import { listRoutes } from '@/api/menu';
|
||||
|
||||
const modules = import.meta.glob('../../views/**/**.vue');
|
||||
export const Layout = () => import('@/layout/index.vue');
|
||||
@@ -12,7 +12,7 @@ const hasPermission = (roles: string[], route: RouteRecordRaw) => {
|
||||
if (roles.includes('ROOT')) {
|
||||
return true;
|
||||
}
|
||||
return roles.some((role) => {
|
||||
return roles.some(role => {
|
||||
if (route.meta?.roles !== undefined) {
|
||||
return (route.meta.roles as string[]).includes(role);
|
||||
}
|
||||
@@ -26,7 +26,7 @@ export const filterAsyncRoutes = (
|
||||
roles: string[]
|
||||
) => {
|
||||
const res: RouteRecordRaw[] = [];
|
||||
routes.forEach((route) => {
|
||||
routes.forEach(route => {
|
||||
const tmp = { ...route } as any;
|
||||
if (hasPermission(roles, tmp)) {
|
||||
if (tmp.component == 'Layout') {
|
||||
@@ -53,7 +53,7 @@ const usePermissionStore = defineStore({
|
||||
id: 'permission',
|
||||
state: (): PermissionState => ({
|
||||
routes: [],
|
||||
addRoutes: [],
|
||||
addRoutes: []
|
||||
}),
|
||||
actions: {
|
||||
setRoutes(routes: RouteRecordRaw[]) {
|
||||
@@ -63,18 +63,18 @@ const usePermissionStore = defineStore({
|
||||
generateRoutes(roles: string[]) {
|
||||
return new Promise((resolve, reject) => {
|
||||
listRoutes()
|
||||
.then((response) => {
|
||||
.then(response => {
|
||||
const asyncRoutes = response.data;
|
||||
const accessedRoutes = filterAsyncRoutes(asyncRoutes, roles);
|
||||
this.setRoutes(accessedRoutes);
|
||||
resolve(accessedRoutes);
|
||||
})
|
||||
.catch((error) => {
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
export default usePermissionStore;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { LoginFormData } from '@/types/api/system/login';
|
||||
import { LoginFormData } from '@/types/api/login';
|
||||
import { UserState } from '@/types/store/user';
|
||||
|
||||
import { localStorage } from '@/utils/storage';
|
||||
import { login, logout } from '@/api/login';
|
||||
import { getUserInfo } from '@/api/system/user';
|
||||
import { getUserInfo } from '@/api/user';
|
||||
import { resetRouter } from '@/router';
|
||||
|
||||
const useUserStore = defineStore({
|
||||
@@ -14,7 +14,7 @@ const useUserStore = defineStore({
|
||||
nickname: '',
|
||||
avatar: '',
|
||||
roles: [],
|
||||
perms: [],
|
||||
perms: []
|
||||
}),
|
||||
actions: {
|
||||
async RESET_STATE() {
|
||||
@@ -31,16 +31,16 @@ const useUserStore = defineStore({
|
||||
password: password,
|
||||
grant_type: 'captcha',
|
||||
code: code,
|
||||
uuid: uuid,
|
||||
uuid: uuid
|
||||
})
|
||||
.then((response) => {
|
||||
.then(response => {
|
||||
const { access_token, token_type } = response.data;
|
||||
const accessToken = token_type + ' ' + access_token;
|
||||
localStorage.set('token', accessToken);
|
||||
this.token = accessToken;
|
||||
resolve(access_token);
|
||||
})
|
||||
.catch((error) => {
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
@@ -65,7 +65,8 @@ const useUserStore = defineStore({
|
||||
this.perms = perms;
|
||||
resolve(data);
|
||||
})
|
||||
.catch((error) => {
|
||||
.catch(error => {
|
||||
console.log('error', error);
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
@@ -83,7 +84,7 @@ const useUserStore = defineStore({
|
||||
resetRouter();
|
||||
resolve(null);
|
||||
})
|
||||
.catch((error) => {
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
@@ -93,13 +94,13 @@ const useUserStore = defineStore({
|
||||
* 清除 Token
|
||||
*/
|
||||
resetToken() {
|
||||
return new Promise((resolve) => {
|
||||
return new Promise(resolve => {
|
||||
localStorage.remove('token');
|
||||
this.RESET_STATE();
|
||||
resolve(null);
|
||||
});
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
export default useUserStore;
|
||||
|
||||
Reference in New Issue
Block a user