From c79dd89ef0c5a0e75c86136202e5c408c184a2f8 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期六, 24 八月 2024 19:25:39 +0800
Subject: [PATCH] 新建会话修改
---
src/hooks/permission.ts | 44 +++++++++++++++++++++++++++++++++-----------
1 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/src/hooks/permission.ts b/src/hooks/permission.ts
index de8cdc4..7930d0e 100644
--- a/src/hooks/permission.ts
+++ b/src/hooks/permission.ts
@@ -1,24 +1,46 @@
-import { RouteLocationNormalized, RouteRecordRaw } from 'vue-router';
-import { useUserStore } from '@/store';
+import { RouteLocationNormalized, RouteRecordRaw } from "vue-router";
+import { useUserStore } from "@/store";
+import { getUserInfo, getUserResources } from "@/utils/auth";
export default function usePermission() {
const userStore = useUserStore();
return {
accessRouter(route: RouteLocationNormalized | RouteRecordRaw) {
- return (
- !route.meta?.requiresAuth ||
- !route.meta?.roles ||
- route.meta?.roles?.includes('*') ||
- route.meta?.roles?.includes(userStore.role)
- );
+ //閬嶅巻userStore.resource
+ let isok = false;
+ let user = getUserResources();
+ let resurces: any;
+ if (userStore.resources) {
+ resurces = userStore.resources;
+ } else {
+ if (user) {
+ resurces = JSON.parse(user);
+ }
+ }
+ if (resurces) {
+ resurces.forEach(r => {
+ if ((r.menuType == 0 || r.menuType == 3) && (route.name == r.component || route.path == r.component)) {
+ isok = true;
+ }
+ });
+ return isok;
+ } else {
+ return (
+ !route.meta?.requiresAuth ||
+ !route.meta?.roles ||
+ route.meta?.roles?.includes("*") ||
+ route.meta?.roles?.includes(userStore.role)
+ );
+ }
+
},
- findFirstPermissionRoute(_routers: any, role = 'admin') {
+ findFirstPermissionRoute(_routers: any, role = "admin") {
const cloneRouters = [..._routers];
while (cloneRouters.length) {
const firstElement = cloneRouters.shift();
if (
firstElement?.meta?.roles?.find((el: string[]) => {
- return el.includes('*') || el.includes(role);
+ return el.includes("*") || el.includes(role);
})
)
return { name: firstElement.name };
@@ -27,7 +49,7 @@
}
}
return null;
- },
+ }
// You can add any rules you want
};
}
--
Gitblit v1.8.0