# Permission 鉴权工具

根据用户权限不同,区分展示/隐藏或只读指定功能模块。

# v-permission 指令

判断是否有权限来展示/隐藏目标功能模块,在目标标签中使用 v-permission="权限标识"

<!-- 验证单个权限 -->
<a-button v-permission="'Delete'">删除</a-button>

<!-- 验证多个权限 -->
<DMorePopover v-permission="['ResetPassword', 'Grant']">
  <DMorePopoverItem v-permission="'ResetPassword'">
    <a-button type="link">重置密码</a-button>
  </DMorePopoverItem>
  <DMorePopoverItem v-permission="'Grant'">
    <a-button type="link">用户授权</a-button>
  </DMorePopoverItem>
</DMorePopover>

# v-permission-readonly 指令

判断是否有权限来只读目标功能模块,在目标标签中使用 v-permission-readonly="权限标识"

<!-- 验证单个权限 -->
<a-button v-permission-readonly="'Delete'">删除</a-button>

<!-- 验证多个权限 -->
<a-card v-permission-readonly="['Detail','Query']">...</a-card>

# matchPermission 方法

根据参数判断是否存在任意一个权限,返回 Boolean 结果。

// 引用鉴权方法
import { matchPermission } from '@datamp/common-component'

// 匹配验证单个权限
matchPermission('Delete')

// 匹配验证多个权限
matchPermission('Add', 'Delete', 'Update', 'Query')

// 在表格列中使用
columns: [
  {
    title: '操作',
    width: 120,
    align: 'center',
    fixed: 'right',
    slots: { default: 'operate' },
    // 匹配全部权限,如无任何权限,隐藏操作栏
    visible: matchPermission(['Edit', 'Delete','ResetPassword', 'Grant'])
  }
]