自定义指令按钮权限

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>
相关推荐
问心无愧05133 分钟前
ctf show web入门110
前端·笔记
道一2327 分钟前
Windows系统查看端口占用进程的3种实用方法
windows·笔记
lunzi_08261 小时前
【学习笔记】《Python编程 从入门到实践》第8章:函数定义、参数传递与模块导入
笔记·python·学习
郭庆汝4 小时前
FastAPI使用笔记
笔记·fastapi
爱讲故事的4 小时前
计算机网络第七章:无线与移动网络复习笔记
网络·笔记·计算机网络
小陈phd4 小时前
Text2SQL智能体学习笔记(一)——NL2SQL及执行流程介绍
笔记·学习
问心无愧05134 小时前
ctf sow web入门112
android·前端·笔记
稷下元歌4 小时前
系统学习plc 基础指令上篇,官方资料课程笔记整 理
笔记·学习
超人不会飞_Jay5 小时前
26.6.8LangChain笔记
笔记
xian_wwq6 小时前
【学习笔记】「大模型安全:攻击面演化史」第 02 篇-越狱攻防战
笔记·学习