自定义指令按钮权限

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>
相关推荐
AnalogElectronic3 分钟前
树莓派 RP2040 学习笔记1
笔记·学习
ouliten12 分钟前
[CUTLASS笔记2]host端工具类
c++·笔记·cuda·cutlass
Cathy Bryant16 分钟前
线性代数直觉(六):向量通过矩阵
人工智能·笔记·线性代数·机器学习·矩阵
Larry_Yanan36 分钟前
QML学习笔记(六十四)动画相关:State状态、Transition过渡和Gradient渐变
开发语言·c++·笔记·qt·学习
智者知已应修善业1 小时前
【花费最少钱加油到最后(样例数据推敲)】2024-11-18
c语言·c++·经验分享·笔记·算法
就叫飞六吧1 小时前
文件共享协议科普
笔记
写bug的小屁孩2 小时前
EDA 事件驱动架构从入门到精通,老师不让外传的内部笔记
笔记
读研的武3 小时前
Golang学习笔记 入门篇
笔记·学习·golang
自传丶4 小时前
【学习笔记】大模型应用开发系列(二)Embedding 模型
笔记·学习·embedding
左左右右左右摇晃5 小时前
Java 对象:创建方式与内存回收机制
java·笔记