From 09bbcfb386a2c97b1a56ce5613cd4f49cc1ecb07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=91=E7=BF=94?= <971366405@qq.com> Date: Wed, 20 Nov 2024 09:57:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20:bug:=20=E4=BF=AE=E5=A4=8D=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=E6=9F=A5=E7=BB=84=E4=BB=B6=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复增删改查组件报错的bug --- src/plugins/permission.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/plugins/permission.ts b/src/plugins/permission.ts index 43e04b69..09096cef 100644 --- a/src/plugins/permission.ts +++ b/src/plugins/permission.ts @@ -71,3 +71,18 @@ function redirectToLogin(to: RouteLocationNormalized, next: NavigationGuardNext) const redirect = queryString ? `${to.path}?${queryString}` : to.path; next(`/login?redirect=${encodeURIComponent(redirect)}`); } + +/** 判断是否有权限 */ +export function hasAuth(value: string | string[], type: "button" | "role" = "button") { + const { roles, perms } = useUserStore().userInfo; + + // 超级管理员 拥有所有权限 + if (type === "button" && roles.includes("ROOT")) { + return true; + } + + const auths = type === "button" ? perms : roles; + return typeof value === "string" + ? auths.includes(value) + : value.some((perm) => auths.includes(perm)); +}