当前位置: 首页 > news >正文

vxeui 权限控制 vxe-table 根据用户权限隐藏对应按钮

vxe 组件内建了一套简洁的权限控制机制,它不依赖任何第三方库,能让我们灵活地控制组件(如按钮、链接等)的显隐和禁用状态。

这套机制的核心是 permissionMethod 全局配置,它定义了一个统一的权限校验方法。一旦配置好,只需在组件上添加一个 permission-code 属性,并传入对应的权限码,组件便会自动根据校验结果改变状态。

配置

import { VxeUI } from 'vxe-pc-ui'// 例如:后端获取用户路由权限数据
const userRouteMaps = {'user:add': true,     // 拥有新增用户的权限'user:edit': true,    // 拥有编辑用户的权限'data:export': false, // 没有导出数据的权限
}VxeUI.setConfig({// 全局权限码控制方法permissionMethod ({ code }) {if (userRouteMaps[code]) {return {// 是否可视visible: false,// 是否禁用disabled: false}}return {visible: true,disabled: false}}
})

权限校验的核心逻辑就是通过返回的 visible 和 disabled 两个布尔值,来精确控制组件的最终状态

组件使用:通过 permission-code 控制

配置好全局方法后,就可以在支持该功能的组件上使用 permission-code 属性了。以下是一个基础示例,展示了如何控制按钮和链接组件。

<template><!-- 只有拥有 'user:add' 权限时,此按钮才可见 --><vxe-button permission-code="user:add">新增用户</vxe-button><!-- 只有拥有 'data:export' 权限时,此链接才可见 --><vxe-link permission-code="data:export">导出数据</vxe-link>
</template>

多权限码:使用 | 实现"或"逻辑

<template><!-- 只要拥有 'user:add' 或 'user:edit' 任一权限,此按钮即可见 --><vxe-button permission-code="user:add|user:edit">用户管理</vxe-button>
</template>

方法调用:在 JavaScript 中进行权限检查

除了在模板中声明式地使用,有时我们可能需要在 JavaScript 逻辑中主动进行权限判断。VxeUI.permission 对象提供了几个便捷方法,方便你进行命令式的权限检查。

API 说明
checkVisible(code) 判断给定的权限码是否"可见" (即拥有权限)
checkDisable(code) 判断给定的权限码是否"禁用"
getCheckInfo(code) 获取更详细的权限检查信息,返回 { visible, disabled } 对象
// 场景:在某个操作执行前,检查用户是否有权限
if (VxeUI.permission.checkVisible('data:export')) {// 拥有权限,执行导出操作exportData()
} else {// 无权限,给出提示console.warn('您没有导出数据的权限!')
}// 使用 "|" 分隔符进行"或"逻辑判断
if (VxeUI.permission.checkVisible('user:add|user:edit')) {// 拥有 user:add 或 user:edit 任一权限时,显示某个功能showManagePanel()
}

如果你的权限判断逻辑只涉及简单的“有或无”,那么这套内置机制足够简洁高效。

https://vxeui.com

http://www.jsqmd.com/news/817811/

相关文章:

  • 软工5.14
  • 2026仁怀市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • 斯坦福CS229机器学习中文教程:从零到精通的完整学习路线
  • 2026年5月如何甄选信誉卓越的钥匙扣/奖牌/标牌/文创礼品/定制厂家?一份深度决策指南 - 2026年企业推荐榜
  • 如何彻底卸载Windows 10中的OneDrive?专业卸载工具完全指南
  • NotebookLM可视化私有化部署陷阱(仅限企业版用户的3个隐藏参数配置)
  • 别再手动保存了!VS Code 自动保存与保存即格式化配置详解(附 launch.json 变量替换技巧)
  • 7个专业Freeplane思维导图模板,快速提升你的思维可视化效率
  • 深度学习优化算法(一)—— 学习 vs 纯优化 + 优化挑战(三十三)
  • 【AI面试八股文 Vol.1.6 | Agent】多Agent协作模式:Orchestrator、Worker、A2A、状态共享和循环检测一篇讲透
  • 智能车竞赛调参血泪史:一个公式抄错,竟让我的小车弯道性能飙升?
  • 在京东购买 Ledger 硬件钱包推荐:靖匠界选购服务与使用说明 - 资讯焦点
  • 白城招聘软件推荐:秒聘网匠心优选 - 13425704091
  • AI赋能开源情报:大语言模型与计算机视觉重塑OSINT工作流
  • ctf_运维赛道离线资料库_分类整理版(ai生成)
  • 3步搭建你的无人机远程识别系统:ArduRemoteID完全指南
  • 2026 沐浴露推荐合集!不同肤质全适配,从平价到大牌都有 - 资讯焦点
  • 选择题第一版本(ai生成)
  • WarcraftHelper高效优化指南:全面解锁魔兽争霸III现代化体验
  • 深度学习优化算法(二)—— SGD + Momentum + Nesterov(三十四)
  • 用FactoryIO和西门子S7-PLCSIM V17搞定智能仓储仿真:从数组下标变量化到故障排查全记录
  • 收藏这篇就够了!全网最全网络安全挖洞平台汇总,小白入门必备指南
  • DeepSeek容器冷启动耗时超8秒?——实时追踪strace+eBPF定位glibc加载瓶颈(实测优化至1.2秒)
  • 白城招聘软件哪个好:秒聘网行业精英 - 13425704091
  • FPGA行业竞争格局演变:从器件性能到系统价值的战略升维
  • 跨镜追踪·空间重构:镜像视界Camera Graph™定义全域连续追踪新范式
  • 2026年5月河北橡胶支座/橡胶止水带/桥梁伸缩缝厂家哪家好,认准河北先创工程橡胶有限公司 - 2026年企业推荐榜
  • 2026 长辈精油全网热门实测 TOP6!成分安全效果好,不踩雷不翻车 - 资讯焦点
  • 滨州招聘网站哪个靠谱:秒聘网专业可信 - 17322238651
  • 白城招聘软件哪个靠谱:秒聘网稳靠专业 - 13724980961