From fe75cffbf3bae6777aa2794fd89fa5dc37f5df8d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 15 七月 2025 10:11:23 +0800
Subject: [PATCH] 项目初始化

---
 src/plugins/auth.ts |   83 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 83 insertions(+), 0 deletions(-)

diff --git a/src/plugins/auth.ts b/src/plugins/auth.ts
new file mode 100644
index 0000000..ebf8bf4
--- /dev/null
+++ b/src/plugins/auth.ts
@@ -0,0 +1,83 @@
+import useUserStore from "@/store/modules/user";
+function authPermission(permission: string): boolean {
+  const all_permission = "*:*:*";
+  const permissions: Array<string> = useUserStore().permissions;
+  if (permission && permission.length > 0) {
+    return permissions.some((v) => {
+      return all_permission === v || v === permission;
+    });
+  } else {
+    return false;
+  }
+}
+
+function authRole(role: string): boolean {
+  const super_admin = "admin";
+  const roles: Array<string> = useUserStore().roles;
+  if (role && role.length > 0) {
+    return roles.some((v) => {
+      return super_admin === v || v === role;
+    });
+  } else {
+    return false;
+  }
+}
+
+export default {
+  /**
+   * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
+   * @param permission 鏉冮檺绗�
+   * @returns
+   */
+  hasPermi(permission: string): boolean {
+    return authPermission(permission);
+  },
+  /**
+   * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽彧闇�鍖呭惈鍏朵腑涓�涓�
+   * @param permissions 鏉冮檺绗︽暟缁�
+   * @returns
+   */
+  hasPermiOr(permissions: Array<string>): boolean {
+    return permissions.some((item) => {
+      return authPermission(item);
+    });
+  },
+  /**
+   * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾鏉冮檺锛屽繀椤诲叏閮ㄦ嫢鏈�
+   * @param permissions 鏉冮檺绗︽暟缁�
+   * @returns
+   */
+  hasPermiAnd(permissions: Array<string>): boolean {
+    return permissions.every((item) => {
+      return authPermission(item);
+    });
+  },
+  /**
+   * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愯鑹�
+   * @param role 瑙掕壊
+   * @returns
+   */
+  hasRole(role: string): boolean {
+    return authRole(role);
+  },
+  /**
+   * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽彧闇�鍖呭惈鍏朵腑涓�涓�
+   * @param roles 瑙掕壊鏁扮粍
+   * @returns
+   */
+  hasRoleOr(roles: Array<string>): boolean {
+    return roles.some((item) => {
+      return authRole(item);
+    });
+  },
+  /**
+   * 楠岃瘉鐢ㄦ埛鏄惁鍚湁鎸囧畾瑙掕壊锛屽繀椤诲叏閮ㄦ嫢鏈�
+   * @param roles 瑙掕壊鏁扮粍
+   * @returns
+   */
+  hasRoleAnd(roles: Array<string>): boolean {
+    return roles.every((item) => {
+      return authRole(item);
+    });
+  },
+};

--
Gitblit v1.9.3