新增权限管理,打开页面token刷新和路由重新初始化过滤
This commit is contained in:
parent
ced198d097
commit
7b8854ae37
12
src/App.vue
12
src/App.vue
|
@ -11,7 +11,9 @@ import {ElConfigProvider} from "element-plus";
|
|||
import zhCn from "element-plus/lib/locale/lang/zh-cn";
|
||||
import {ReDialog} from "@/components/ReDialog";
|
||||
import {api} from "@/api/api";
|
||||
import {handleAsyncRoutes} from "@/router/utils";
|
||||
import {handleAsyncRoutes, initRouter} from "@/router/utils";
|
||||
import {spost} from "@/api/smebiz";
|
||||
import {useUserStore} from "@/store/modules/user";
|
||||
|
||||
export default defineComponent({
|
||||
name: "app",
|
||||
|
@ -23,6 +25,14 @@ export default defineComponent({
|
|||
currentLocale() {
|
||||
return zhCn;
|
||||
}
|
||||
}, beforeCreate() {
|
||||
useUserStore().refreshToken().then(res => {
|
||||
initRouter()
|
||||
})
|
||||
//
|
||||
// spost('/wd-smebiz/user/get_user_info').then(res => {
|
||||
// res.data.auth_data
|
||||
// })
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -38,6 +38,7 @@ const modules: Record<string, any> = import.meta.glob(
|
|||
"!./modules/companyDataManage.ts",
|
||||
"!./modules/rateManage.ts",
|
||||
"!./modules/companyUserManage.ts",
|
||||
// "!./modules/user.ts",
|
||||
],
|
||||
{
|
||||
eager: true
|
||||
|
|
|
@ -9,7 +9,8 @@ export default {
|
|||
keepAlive: true,
|
||||
icon: "edit",
|
||||
meta: {
|
||||
rank:1
|
||||
rank:1,
|
||||
roles:[1]
|
||||
}
|
||||
}
|
||||
// children: [
|
||||
|
|
|
@ -5,6 +5,7 @@ export default {
|
|||
icon: "edit",
|
||||
title: "审核",
|
||||
showLink: false,
|
||||
roles:[4]
|
||||
},
|
||||
children: [
|
||||
{
|
||||
|
@ -17,6 +18,7 @@ export default {
|
|||
// showParent: true,
|
||||
icon: "edit",
|
||||
activePath: "/manage/rate_work/examine_work_page",
|
||||
roles:[4]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -29,6 +31,7 @@ export default {
|
|||
// showParent: true,
|
||||
icon: "edit",
|
||||
activePath: "/manage/rate_work/rate_work_page",
|
||||
roles:[4]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -41,6 +44,7 @@ export default {
|
|||
// showParent: true,
|
||||
icon: "edit",
|
||||
activePath: "/manage/rate_work/serve_work_page",
|
||||
roles:[4]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ export default {
|
|||
keepAlive: true,
|
||||
icon: "edit",
|
||||
rank: 10,
|
||||
roles:[4]
|
||||
},
|
||||
// children: [
|
||||
// {
|
||||
|
|
|
@ -8,6 +8,7 @@ export default {
|
|||
meta: {
|
||||
icon: "avatar",
|
||||
title: "用户管理",
|
||||
roles:[2]
|
||||
},
|
||||
children: [
|
||||
{
|
||||
|
@ -17,26 +18,27 @@ export default {
|
|||
meta: {
|
||||
keepAlive:true,
|
||||
title: "用户管理",
|
||||
roles:[2]
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/user/department",
|
||||
name: "department",
|
||||
component: () => import("@/views/user/department.vue"),
|
||||
meta: {
|
||||
keepAlive:true,
|
||||
title: "部门管理",
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/user/post",
|
||||
name: "post",
|
||||
component: () => import("@/views/user/post.vue"),
|
||||
meta: {
|
||||
keepAlive:true,
|
||||
title: "职务管理",
|
||||
}
|
||||
},
|
||||
// {
|
||||
// path: "/user/department",
|
||||
// name: "department",
|
||||
// component: () => import("@/views/user/department.vue"),
|
||||
// meta: {
|
||||
// keepAlive:true,
|
||||
// title: "部门管理",
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: "/user/post",
|
||||
// name: "post",
|
||||
// component: () => import("@/views/user/post.vue"),
|
||||
// meta: {
|
||||
// keepAlive:true,
|
||||
// title: "职务管理",
|
||||
// }
|
||||
// },
|
||||
{
|
||||
path: "/user/auth_rule",
|
||||
name: "auth_rule",
|
||||
|
@ -44,6 +46,7 @@ export default {
|
|||
meta: {
|
||||
keepAlive:true,
|
||||
title: "权限规则",
|
||||
roles:[2]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -72,7 +72,7 @@ function filterChildrenTree(data: RouteComponent[]) {
|
|||
}
|
||||
|
||||
/** 判断两个数组彼此是否存在相同值 */
|
||||
function isOneOfArray(a: Array<string>, b: Array<string>) {
|
||||
function isOneOfArray(a: Array<string|number>, b: Array<string|number>) {
|
||||
return Array.isArray(a) && Array.isArray(b)
|
||||
? intersection(a, b).length > 0
|
||||
? true
|
||||
|
|
|
@ -64,6 +64,27 @@ export const useUserStore = defineStore({
|
|||
});
|
||||
});
|
||||
},
|
||||
async refreshToken() {
|
||||
return new Promise<any>((resolve, reject) => {
|
||||
http
|
||||
.post<any, any>("/wd-smebiz/user/refresh_token", {})
|
||||
.then(res => {
|
||||
const userInfo = res.user_info;
|
||||
const dataInfo: DataInfo<Date> = {
|
||||
username: userInfo.name,
|
||||
accessToken: res.token,
|
||||
expires: new Date(new Date().getTime() + 60 * 60 * 24 * 3 * 1000),
|
||||
refreshToken: res.token,
|
||||
roles: userInfo.auth_data || []
|
||||
};
|
||||
setToken(dataInfo);
|
||||
resolve(res);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
/** 前端登出(不调用接口) */
|
||||
logOut() {
|
||||
this.username = "";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 全局路由类型声明
|
||||
|
||||
import { type RouteComponent, type RouteLocationNormalized } from "vue-router";
|
||||
import {type RouteComponent, type RouteLocationNormalized} from "vue-router";
|
||||
|
||||
declare global {
|
||||
interface ToRouteType extends RouteLocationNormalized {
|
||||
|
@ -22,7 +22,7 @@ declare global {
|
|||
/** 是否显示父级菜单 `可选` */
|
||||
showParent?: boolean;
|
||||
/** 页面级别权限设置 `可选` */
|
||||
roles?: Array<string>;
|
||||
roles?: Array<string | number>;
|
||||
/** 按钮级别权限设置 `可选` */
|
||||
auths?: Array<string>;
|
||||
/** 路由组件缓存(开启 `true`、关闭 `false`)`可选` */
|
||||
|
@ -101,5 +101,6 @@ declare global {
|
|||
|
||||
// https://router.vuejs.org/zh/guide/advanced/meta.html#typescript
|
||||
declare module "vue-router" {
|
||||
interface RouteMeta extends CustomizeRouteMeta {}
|
||||
interface RouteMeta extends CustomizeRouteMeta {
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue