Forráskód Böngészése

fix: auth兼容字符串

wanggaokun 3 hete
szülő
commit
1eba88622e
2 módosított fájl, 10 hozzáadás és 8 törlés
  1. 9 7
      src/directives/modules/auth.ts
  2. 1 1
      src/views/system/role/index.vue

+ 9 - 7
src/directives/modules/auth.ts

@@ -11,18 +11,20 @@ const auth: Directive = {
     const all_permission = '*:*:*'
     const permissions = useUserStore().permissionCodes
 
-    if (value && value instanceof Array && value.length > 0) {
-      const permissionFlag = value
-
-      const hasPermissions = permissions.some(permission => {
-        return all_permission === permission || permissionFlag.includes(permission)
-      })
+    if (typeof value === 'string') {
+      if (!permissions.includes(value)) {
+        el.parentNode && el.parentNode.removeChild(el)
+      }
+      return
+    }
 
+    if (value && value instanceof Array && value.length > 0) {
+      const hasPermissions = value.every(item => all_permission === item || permissions.includes(item))
       if (!hasPermissions) {
         el.parentNode && el.parentNode.removeChild(el)
       }
     } else {
-      throw new Error(`请设置操作权限标签值`)
+      return false
     }
   }
 }

+ 1 - 1
src/views/system/role/index.vue

@@ -9,7 +9,7 @@
 
       <template #operation="{ row }">
         <div class="operation-group">
-          <el-button type="primary" link icon="EditPen" @click="openDrawer('编辑', row)"> 编辑 </el-button>
+          <el-button type="primary" link icon="EditPen" v-auth="[]" @click="openDrawer('编辑', row)"> 编辑 </el-button>
           <el-button v-if="row.isLock !== '1'" type="primary" link icon="Delete" @click="deleteRow(row)"> 删除 </el-button>
           <div class="group" v-if="row.isLock !== '1'">
             <el-dropdown trigger="click">