From 7b8ce4e0ab61b855dc2453ae23011c2c9abfe44d Mon Sep 17 00:00:00 2001 From: yinbangzhong <zhongbangyin@126.com> Date: 星期二, 06 八月 2024 09:55:34 +0800 Subject: [PATCH] 权限菜单控制 --- src/hooks/permission.ts | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/hooks/permission.ts b/src/hooks/permission.ts index 916e3ff..e86bfb7 100644 --- a/src/hooks/permission.ts +++ b/src/hooks/permission.ts @@ -1,5 +1,6 @@ -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(); @@ -7,8 +8,18 @@ accessRouter(route: RouteLocationNormalized | RouteRecordRaw) { //閬嶅巻userStore.resource let isok = false; + let user = getUserResources(); + let jsonObject = {}; + let resurces: any; if (userStore.resources) { - userStore.resources.forEach(r => { + 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; } @@ -24,13 +35,13 @@ } }, - 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 }; @@ -39,7 +50,7 @@ } } return null; - }, + } // You can add any rules you want }; } -- Gitblit v1.8.0