vue使用自定义指令实现按钮权限展示功能

 更新时间:2022年04月29日 09:28:20   作者:suoh's Blog  
这篇文章主要介绍了vue中使用自定义指令实现按钮权限展示功能,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、在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-开头即可,此时就可以触发自定义指令定义的函数,达到按钮权限可控的目的。

到此这篇关于vue中使用自定义指令实现按钮权限展示问题的文章就介绍到这了,更多相关vue自定义指令按钮权限展示内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Element中el-input密码输入框浏览器自动填充账号密码问题的解决方法

    Element中el-input密码输入框浏览器自动填充账号密码问题的解决方法

    自己写了一个管理系统,登录成功之后,浏览器提示我保存账号密码,每次登录时就会自动回填记住的账号密码,方便用户快速登录,下面这篇文章主要给大家介绍了关于Element中el-input密码输入框浏览器自动填充账号密码问题的解决方法,需要的朋友可以参考下
    2022-09-09
  • Vue生命周期与setup深入详解

    Vue生命周期与setup深入详解

    Vue的生命周期就是vue实例从创建到销毁的全过程,也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载 等⼀系列过程,称这是Vue的⽣命周期
    2022-09-09
  • 详解VUE前端按钮权限控制

    详解VUE前端按钮权限控制

    这篇文章主要介绍了VUE前端按钮权限控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Vue3实现折叠面板组件的示例代码

    Vue3实现折叠面板组件的示例代码

    折叠面板大家都不陌生,很多时候需要实现一些复杂的交互,就会用到它,简洁直观还美观,下面就跟随小编一起学习一下如果使用Vue3实现折叠面板组件吧
    2024-01-01
  • 前端项目中的Vue、React错误监听

    前端项目中的Vue、React错误监听

    这篇文章主要介绍了前端项目中的Vue、React错误监听,文章围绕主题的相关资料展开详细内容介绍需要的小伙伴可以参考一下
    2022-04-04
  • vue-cli webpack配置文件分析

    vue-cli webpack配置文件分析

    这篇文章主要介绍了vue-cli webpack配置文件分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 详解在vue-cli项目中使用mockjs(请求数据删除数据)

    详解在vue-cli项目中使用mockjs(请求数据删除数据)

    本篇文章主要介绍了在vue-cli项目中使用mockjs(请求数据删除数据),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题

    为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题

    这篇文章主要介绍了为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题,需要的朋友可以参考下
    2018-04-04
  • Vue2+Echarts封装组件之专注逻辑,图表生成自动化方式

    Vue2+Echarts封装组件之专注逻辑,图表生成自动化方式

    文章介绍了使用Vue2封装的Echarts图表组件,简化了图表的生成和渲染过程,提供了多种图表类型和交互功能,提高了开发效率,帮助开发者专注于业务逻辑的开发
    2025-02-02
  • 简述vue路由打开一个新的窗口的方法

    简述vue路由打开一个新的窗口的方法

    这篇文章主要介绍了vue路由打开一个新的窗口的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11

最新评论