Skip to content

BizAuthButton 权限按钮 ​

按钮级权限收口:权限码对照权限集合判定,无权限时隐藏或禁用置灰;属性 / 事件 / 插槽全量透传给 BizButton(继承 el-button 全部能力)。配套 v-auth 指令控制任意元素。权限集合来源两级:组件级 permissions 优先,其次 configureBizAuth() 全局注入;两者皆未配置时默认放行(避免权限服务未接入阻塞页面)。

基础用法(隐藏) ​

configureBizAuth 注入权限码数组,无权按钮不渲染。

无权置灰 ​

mode="disable" 保留占位提示「功能存在但未授权」。

数组任一命中 / 函数断言 ​

code 传数组时任一命中即放行;权限集合支持 (code) => boolean 断言函数(通配权限模型)。

v-auth 指令 ​

查看修订历史(a 标签)
v-auth="'code'" 隐藏任意元素;v-auth.disable="'code'" 置灰原生按钮 / 开关等。

useAuth 编程式判定 ​

订单 内容区
无权页签直接不渲染(hasAuth 在模板中响应式,权限集合变更即更新)
useAuth().hasAuth(code) 在模板 / computed 中响应式判定:tab 页签、区块显隐、路由守卫等非按钮场景统一收口。

组件级权限覆盖 ​

特殊页面用 permissions 指定局部权限集合,不依赖全局注入。

列表工具栏权限组合 ​

新增 / 导出 / 批量删除按权限码分别收口(含图标透传与 @click)。

Props ​

属性名类型默认值说明
codestring | string[]—权限码;数组为任一命中即放行;不传则不受权限控制
mode'hide' | 'disable''hide'无权限处理方式:隐藏 / 禁用置灰
permissionsstring[] | ((code: string) => boolean)—组件级权限集合,优先于全局配置

其余属性(type / size / icon / loading / plain / @click …)经 $attrs 全量透传 BizButton → el-button。

全局 API ​

名称说明
configureBizAuth(permissions?)登录态就绪后注入全局权限集合;undefined 表示不启用(默认放行)
getBizAuthPermissions()响应式读取全局权限集合(自定义扩展消费)
vAuthv-auth 指令对象(按需导入场景局部注册)
useAuth()编程式权限判定(hasAuth(code) 模板中响应式;permissions 响应式集合)
ts
import { configureBizAuth, vAuth } from 'vue3-ep-biz-lib'

configureBizAuth(['order:add', 'order:export'])
app.use(Vue3EpBizLib) // 全局安装时自动注册 v-auth 指令

指令用法 ​

vue
<ElButton v-auth="'doc:edit'">编辑</ElButton>
<ElSwitch v-auth.disable="'doc:publish'" />