自定义指令按钮权限

1、指令文件

javascript 复制代码
// 判断按钮权限逻辑
const checkPermission = (el, binding) => {
  // 获取自定义指令传过来的数组(binding.value)
  const btnRoles = binding.value
  console.log(btnRoles)
  // 取一下本地存的账号权限
  // const userRoles = JSON.parse(localStorage.getItem('role'))
  const userRoles = ['super', 'normal']
  // 判断自定义指令的传值,在账号权限数组中能否找到
  if (btnRoles) {
    // 能找到返回true
    const hasPermission = userRoles.some((v) => {
      return btnRoles.includes(v)
    })
    // 找不到返回false,使用自定义指令的钩子函数,操作dom元素删除该节点
    if (!hasPermission) {
      el.parentNode && el.parentNode.removeChild(el)
    }
  } else {
    throw new Error(`传入关于权限的数组,如 v-permission="['super','normal']"`)
  }
}

// 导出一个对象用作自定义指令的第二个参数
export default checkPermission

2、main.js文件引入,挂载在vue实例上

javascript 复制代码
import checkPermission from './plugins/directive/permission'
const app = createApp({})
app.directive('permission', checkPermission)
app.mount('#app')

3、页面使用

html 复制代码
    <Button v-permission="'super'">super</Button>
    <Button v-permission="'normal'">normal</Button>
    <Button v-permission="'other'">other</Button>
相关推荐
PC2005-cloud5 分钟前
Redis学习笔记:Cluster 集群读写分离实战,Lettuce + Spring Boot 从配置到验证
redis·笔记·学习
那个松鼠很眼熟w1 小时前
5.GBK字符集,字符编码
笔记
阿米亚波1 小时前
【C++ 异常处理】try-catch
开发语言·c++·笔记·try-catch
XS0301061 小时前
GitHub/Gitee 团队协作笔记
笔记·gitee·github
祁白_2 小时前
WebShell工具流量特征分析
笔记·web安全·流量特征·webshell工具
小陈的进阶之路2 小时前
爬虫三大解析库:lxml, jsonpath, bs4
开发语言·笔记·python
xieliyu.2 小时前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
天天爱吃肉82183 小时前
行业笔记|高压连接器瞬态接触退化通用检测方法论
人工智能·笔记·python·功能测试·学习·汽车
FENRON3 小时前
艺术涂料品牌怎么选?从五个维度拆解筛选逻辑
经验分享·笔记·其他
九硕智慧建筑一体化厂家3 小时前
无线动能开关|楼道电梯厅智能照明改造方案
运维·笔记·智慧城市