自定义指令按钮权限

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>
相关推荐
moxiaoran57531 分钟前
uni-app学习笔记九-vue3 v-for指令
笔记·学习·uni-app
北温凉1 小时前
【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(3)
笔记·机器学习
岂是尔等觊觎1 小时前
PCB设计教程【入门篇】——电路分析基础-电路定理
经验分享·笔记·嵌入式硬件·学习·pcb工艺
linly12191 小时前
MRI学习笔记-表征相似性分析(Representational Similarity Analysis, RSA)
笔记·学习
慕卿扬1 小时前
基于python的机器学习(七)—— 数据特征选择
笔记·python·学习·机器学习·scikit-learn
Sword-豪8 小时前
全平台开源电子书阅读器推荐,支持多端同步+AI朗读!支持epub/mobi/azw3/pdf常见电子书格式!
笔记·电脑
汇能感知9 小时前
关于光谱相机的灵敏度
经验分享·笔记·科技
悲伤小伞11 小时前
C++_数据结构_哈希表(hash)实现
数据结构·c++·笔记·算法·哈希算法·散列表
*TQK*12 小时前
高等数学笔记——向量代数与空间解析几何1
笔记·学习·高等数学
love530love13 小时前
【笔记】PyCharm 中创建Poetry解释器
运维·人工智能·windows·笔记·python·pycharm·conda