vue自定义指令权限按钮

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

vue自定义指令权限按钮

suoh's Blog   2022-06-03 我要评论

一、在src下新建directive文件夹

二、定义index.js文件,在vue上注入自定义指令

import hasBtn from './permission/hasBtn'
const install = function (Vue) {
      Vue.directive('hasBtn', hasBtn)
}
if (window.Vue) {
      window['hasBtn'] = hasBtn
      Vue.use(install); // eslint-disable-line
}
export default install
 

三、编写自定义指令

hasBtn.js文件

/**
 * 设置操作权限标识符
 */
export default {
      inserted(el, binding, vnode) {
            /** 从binding中获取dom元素的value值 */
            const { value } = binding
            /** 存放value值 */
            const btn_permission = value;
            /** 拿到所有具备权限按钮的集合,通过传入的按钮id进行匹配 */
            const permissions = JSON.parse(sessionStorage.getItem('btnarr'))
            /** 利用some查询,只要有一个元素满足条件就返回true,全部不满足返回false */
            var hasPermissions = permissions.some(permission => {
                  return btn_permission == permission.menuId
            })
            /** 传入的按钮id不存在集合里面就移除该节点 */
            if (!hasPermissions) {
                  el.parentNode && el.parentNode.removeChild(el)
            }
      }
}

四、使用

例如在一个vue页面里面的一个新增按钮加上v-hasBtn属性

<el-button  v-hasBtn="15" type="primary" icon="el-icon-plus" size="mini" @click="addRelease">新增</el-button>

直接传入该按钮的id,即 v-hasBtn="15",vue的自定义指令都是用v-开头即可,此时就可以触发自定义指令定义的函数,达到按钮权限可控的目的。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们