From fa5fd89d1fd0f2d0b0bb1944b3ac4a452c49f83a Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期六, 17 八月 2024 16:30:33 +0800 Subject: [PATCH] fix: 修改分页id --- 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