Vue3使用自定义指令实现按钮的权限管理

 1.新建directive文件夹,文件夹下面新建premission.js

         输入以下内容

export const hasPermission = {
    install(Vue){
        Vue.directive('has', {
            mounted(el, binding) {
                // 当前按钮传递的值( v-permission="'add'" 中的值)x
                console.log(binding,el,'asdfghjasdfgh')
                const currentTag = binding.value.action
                   /* function checkright(value){
                        const bindvalue = value
                        const currentRight = window.sessionStorage.getItem('right')
                        let item = currentRight.filter((item) => {
                                         return item === bindvalue
                                   })

                        // 不具备权限则删除(隐藏)或者禁用该按钮 (el.parentNode 获取当前节点的父节点),根据在芫荽绑定的值去决定
                        if (item.length === 0) {
                                el.disabled = true
                        }

                            }*/
                const effect = binding.value.effect
                // 获取存放在sessionStorage的权限
                const rightval =  window.sessionStorage.getItem('right')
                const currentRight = rightval.split(',')
                // this.$message.success(currentRight)
                // 判断是否存在对应的按钮权限
                let item = currentRight.filter((item) => {
                    return item === currentTag
                })
                //不具备权限则删除(隐藏)或者禁用该按钮 (el.parentNode 获取当前节点的父节点),根据在芫荽绑定的值去决定
                if (item.length === 0) {
                    if (effect === 'disabled') {
                        el.disabled = true
                        el.classList.add('is-disabled')
                    } else {
                        el.parentNode.removeChild(el)
                    }
                }
            }
        })
    }
}
export default hasPermission;



2.在main.js引入,并且挂载

import hasPermission from "@/directive/premission";
app.use(hasPermission)

3.在界面上使用

4.效果

 5.数据库权限格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值