|
@@ -100,10 +100,16 @@ const router = new Router({
|
|
|
],
|
|
|
});
|
|
|
|
|
|
-function getRouteType(routeMatched) {
|
|
|
- const typeData = routeMatched.find(
|
|
|
+const homeExtraRoutes = ["CardRulePreview"];
|
|
|
+
|
|
|
+function getRouteType(routeData) {
|
|
|
+ let typeData = routeData.matched.find(
|
|
|
(item) => item.name === "Home" || item.name === "Admin"
|
|
|
);
|
|
|
+ if (!typeData && homeExtraRoutes.includes(routeData.name)) {
|
|
|
+ return "Home";
|
|
|
+ }
|
|
|
+
|
|
|
return typeData ? typeData.name : null;
|
|
|
}
|
|
|
|
|
@@ -136,8 +142,8 @@ router.beforeEach(async (to, from, next) => {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- const fromType = getRouteType(from.matched);
|
|
|
- const toType = getRouteType(to.matched);
|
|
|
+ const fromType = getRouteType(from);
|
|
|
+ const toType = getRouteType(to);
|
|
|
// 只有超管才可访问Admin
|
|
|
const isSuperAdmin =
|
|
|
Vue.ls.get("user", { loginName: "" }).loginName === SYS_ADMIN_NAME;
|
|
@@ -160,7 +166,8 @@ router.beforeEach(async (to, from, next) => {
|
|
|
// console.log(store.state.app.validRoutes);
|
|
|
// console.log(to.name);
|
|
|
|
|
|
- if (!store.state.app.validRoutes.includes(to.name)) {
|
|
|
+ const toName = to.meta?.privilege ? to.meta.privilege : to.name;
|
|
|
+ if (!store.state.app.validRoutes.includes(toName)) {
|
|
|
next({ name: "NotFound" });
|
|
|
return;
|
|
|
}
|