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

Vue3自定义指令实现前端权限控制 - 按钮权限

文章目录

  • 一、什么是按钮权限控制
  • 二、思路 (往往是后端返回的权限标识)
    • 三、实现
  • main.ts注册为全局指令
  • 总结


一、什么是按钮权限控制

概念:根据当前用户的权限数据控制按钮的显示和隐藏

二、思路 (往往是后端返回的权限标识)

后端返回的权限数据模拟

// 模拟权限mock数据
const permissions = [
    "park:bulidng:add",
    "park:bulidng:del",
    "park:bulidng:edit",
]

思路:每一个需要做权限控制的按钮都有一个自己独有的 标识 , 如果标识可以在权限数据列表中找到,则显示,找不到就隐藏

三、实现

按钮绑定上v-my-point自定义全局指令
代码如下(示例):


  <div class="container">
    <el-button v-my-point="'bulidng:add'" type="success">添加</el-button>
    <el-button v-my-point="'bulidng:del'" type="primary">编辑</el-button>
    <el-button v-my-point="'bulidng:edit'" type="danger">删除</el-button>
  </div>

main.ts注册为全局指令

// 自定义按钮权限directive
const myPointDirective:Directive<HTMLElement,string> = (el,binding) => {
    if (!permissions.includes(user + ":" + binding.value)) {
        el.style.display = 'none'
    }

}
//  全局注册指令
app.directive('my-point', myPointDirective);

在这里插入图片描述

效果:
后端返回的权限数据没有,则上面按钮就不会显示
在这里插入图片描述
在这里插入图片描述

总结

这样就实现了通过全局自定义指令来实现按钮权限的控制了。

相关文章:

  • 进制转换(c++)
  • 【LeetCode 热题100】 22. 括号生成 的算法思路及python代码
  • 从 0 到 1:深度学习模型,重构世界的数字蓝图
  • 【数据预测】基于遗传算法GA的LSTM光伏功率预测 GA-LSTM光伏功率预测【Matlab代码#91】
  • 【unordered_set和unordered_map】—— 我与C++的不解之缘(二十七)
  • 使用pycel将Excel移植到Python
  • 图解 ThreadLocal
  • 第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器
  • 深度学习 Deep Learning 第7章 深度学习的正则化
  • ESPNOW收发测试 基于esp-idf
  • 车载以太网网络测试-21【传输层-DOIP协议-4】
  • C++中的stoi和to_string函数详解:字符串与数值的高效转换工具
  • C++ 面向对象程序设计 - 学习笔记(持续更新中)
  • strstr!!!
  • 【信息系统项目管理师】【八大绩效域】知识点整合图
  • 管家婆工贸ERP PR010.任务单批量打印
  • (自用)yolo算法学习
  • vue3:i18n的使用
  • 信息系统运行管理员教程3--信息系统设施运维
  • Android开发技能 - Perfetto系列
  • 五一去哪玩?“时代交响”音乐会解锁艺术假期
  • 澎湃读报丨央媒头版集中刊发社论,庆祝“五一”国际劳动节
  • 马上评|扩大高速免费救援范围,打消出行后顾之忧
  • 乌副总理:乌美签署矿产协议
  • 中国代表:美“对等关税”和歧视性补贴政策严重破坏世贸规则
  • 上海科创再出发:“造星”的城和“摘星”的人