浏览代码

v-perm支持多key字符串

刘洋 1 年之前
父节点
当前提交
d898d3b454
共有 2 个文件被更改,包括 13 次插入1 次删除
  1. 2 1
      src/directives/perm.js
  2. 11 0
      src/utils/tool.js

+ 2 - 1
src/directives/perm.js

@@ -3,7 +3,8 @@ const perm = (el, binding) => {
   const userStore = useUserStore();
   const { value } = binding;
   if (!!value) {
-    if (!userStore.finePermissionIds.includes(String(value))) {
+    const keys = value.split(',');
+    if (keys.every((key) => !userStore.finePermissionIds.includes(key))) {
       // el.parentNode && el.parentNode.removeChild(el);
       el.remove();
     }

+ 11 - 0
src/utils/tool.js

@@ -1,4 +1,5 @@
 import { cloneDeep } from 'lodash';
+import { useUserStore } from '@/store';
 
 export const extractFileName = (str) => {
   if (/filename=([^;\s]*)/gi.test(str)) {
@@ -376,3 +377,13 @@ export const dictToOptionList = (data) => {
     return { value: kstr, label: data[k] };
   });
 };
+
+/**
+ * 判断用户的权限集里有没有
+ * @param {*} key
+ * @returns
+ */
+export const hasPerm = (key) => {
+  const userStore = useUserStore();
+  return userStore.finePermissionIds.includes(key);
+};