From 3859c26f42489e2c53fbe924e814027b8a86fafd Mon Sep 17 00:00:00 2001 From: Hooray <304327508@qq.com> Date: Mon, 9 Jun 2025 23:49:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=9C=AA=E5=BC=80=E5=90=AF=E6=97=B6=E8=8F=9C=E5=8D=95=E6=9C=AA?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E7=AE=80=E5=8C=96=E8=8F=9C=E5=8D=95=E8=BF=87=E6=BB=A4=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/menu.ts | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/src/store/modules/menu.ts b/src/store/modules/menu.ts index c64cfb45..f877c427 100755 --- a/src/store/modules/menu.ts +++ b/src/store/modules/menu.ts @@ -6,14 +6,12 @@ import menu from '@/menu' import { resolveRoutePath } from '@/utils' import useRouteStore from './route' import useSettingsStore from './settings' -import useUserStore from './user' const useMenuStore = defineStore( // 唯一ID 'menu', () => { const settingsStore = useSettingsStore() - const userStore = useUserStore() const routeStore = useRouteStore() const filesystemMenusRaw = ref([]) @@ -78,10 +76,7 @@ const useMenuStore = defineStore( else { returnMenus = filesystemMenusRaw.value } - // 如果权限功能开启,则需要对导航数据进行筛选过滤 - if (settingsStore.settings.app.enablePermission) { - returnMenus = filterAsyncMenus(returnMenus, userStore.permissions) - } + returnMenus = filterAsyncMenus(returnMenus) return returnMenus }) // 次导航数据 @@ -155,35 +150,15 @@ const useMenuStore = defineStore( return defaultOpenedPaths } - // 判断是否有权限 - function hasPermission(permissions: string[], menu: Menu.recordMainRaw | Menu.recordRaw) { - let isAuth = false - if (menu.meta?.auth) { - isAuth = permissions.some((auth) => { - if (typeof menu.meta?.auth === 'string') { - return menu.meta.auth !== '' ? menu.meta.auth === auth : true - } - else if (typeof menu.meta?.auth === 'object') { - return menu.meta.auth.length > 0 ? menu.meta.auth.includes(auth) : true - } - else { - return false - } - }) - } - else { - isAuth = true - } - return isAuth - } + const auth = useAuth() // 根据权限过滤导航 - function filterAsyncMenus(menus: T, permissions: string[]): T { + function filterAsyncMenus(menus: T): T { const res: any = [] menus.forEach((menu) => { - if (hasPermission(permissions, menu)) { + if (auth.auth(menu.meta?.auth ?? '')) { const tmpMenu = cloneDeep(menu) if (tmpMenu.children && tmpMenu.children.length > 0) { - tmpMenu.children = filterAsyncMenus(tmpMenu.children, permissions) as Menu.recordRaw[] + tmpMenu.children = filterAsyncMenus(tmpMenu.children) as Menu.recordRaw[] tmpMenu.children.length > 0 && res.push(tmpMenu) } else {