vue 权限按钮显示隐藏 (自定义指令法)

2023-11-03

咱们做后台管理系统 肯定避免不了 权限菜单 权限按钮的显示与隐藏  我分享一下 我的实现:

import Vue from 'vue'

Vue.directive('auth', {
  inserted: function (el, binding, vnode) {
    const authItem = binding.value.authItem
    const authArr = [...new Set(binding.value.authArr)]
    if (Object.prototype.toString.call(authItem) === '[object Array]') {
      // 数组
      if (JSON.stringify(authItem.sort()) === JSON.stringify(authArr.sort())) {
        //存在不做操作
      } else {
        //不存在
        el.parentNode.removeChild(el)
      }
    } else {
      //字符串
      if (authArr.indexOf(authItem) < 0) {
        el.parentNode.removeChild(el)
      }
    }
  },
})

这里创建了一个 js 文件  具体逻辑如上

在 main.js 中引入

 使用

 这里传了两个参数 

authItem 是当前按钮的权限标记 可以传 字符串/数组 

authArr 是当前页的权限标记数组

 

 这里我是通过当前router获取的 你们也可以通过 vuex pinia 等状态管理工具 获取你们后台返回的路由数组中的meta 中的权限标记数组 具体根据项目而定 请自行修改

传的这两个参数 就是比较

authItem如果为字符串 authArr中存在这个字符串 就显示 

authItem如果为数组 authArr中的数组内容和authItem的数组内容 一样就显示

嗯....  我是这样做的 有大佬有更好的方法 欢迎评论 哈哈哈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 权限按钮显示隐藏 (自定义指令法) 的相关文章

随机推荐

  • Couldn‘t find meta-data for provider with authority com.wust.camerademo

    报错信息 Couldn t find meta data for provider with authority com wust camerademo 报错原因 AndroidManifest xml 清单文件中未注册 provider
  • ae渲染出现错误是什么问题_After Effects错误:写入文件.....时发生渲染错误.输出模块失败.文件可能已损坏。(-1610153464)...

    我来回答一下 你在电脑里安装了其他下载的aex文件格式的插件 你只要把你这些插件删除掉 问题就可以解决 安装插件不正确 或者有相同的插件也出现提示框 其实 这个提示不重要 你正常开启AE以后 正常使用软件 只是 安装错误的插件 使用起来没有
  • 正负样本不平衡处理方法总结

    1 Bootstrapping hard negative mining 最原始的一种方法 主要使用在传统的机器学习方法中 比如 训练随机森林 对于每一个树就是采样booststraping方法采样 也算是随机森林的其中一个随机性表现 再比
  • java 获取当前时间所在月份的每周日期区间

    获取当前时间所在月份的每周日期区间 每周的起始日是周一 结束日期是周日 例子 假设当前时间是2020 03 04 那么这个月跨度有6周 第一周 2020 03 01 2020 03 01 第二周 2020 03 02 2020 03 08
  • 个人用户如何搭建一个全面的WEB服务器(中)

    第四 建立Win Media在线影视 按照第一步中图三 图四和图五的走法 只不过在图五中选择 流式媒体服务器 点击确定 这样系统将会自动在你的WEB服务器下创建一个Win Media流式媒体服务器站点 接下来就是如何管理这个服务器以及制作流
  • Pytorch+LSTM 的 英译中

    usr bin env Python3 coding utf 8 version v1 0 Author Meng Li contact 925762221 qq com FILE torch seq2seq py Time 2022 6
  • 【记录】看门狗定时器基础

    原文 概要 我们平时使用的电脑 由于某种原因导致动作异常 反复执行指定外的操作 或者没有任何反应 这种情况被认定为程序失控 out of control 或者程序中止了 对于用户而言 可以知道程序出现了异常 需要采取一定的措施 对于嵌入式系
  • 华为OD机试真题-任务调度【2023.Q1】

    题目内容 现有一个CPU和一些任务需要处理 已提前获知每个任务的任务ID 优先级 所需执行时间和到达时间 CPU同时只能运行一个任务 请编写一个任务调度程序 采用 可抢占优先权调度 调度算法进行任务调度 规则如下 1 如果一个任务到来时 C
  • Spring源码剖析之IOC容器创建流程

    ApplicationContextConfiguration为核心配置类 ApplicationContext applicationContext new AnnotationConfigApplicationContext Appli
  • Android手机RTMP播放工具(APK,支持秒开)

    Android手机RTMP播放工具是一款可以在安卓手机播放rtmp流的工具 基于FFmpeg openCV开发 下载地址 Android手机RTMP播放工具 APK 支持秒开 C 文档类资源 CSDN下载
  • 【后端】SSM框架体系(一)

    SSM框架 Spring 一 Spring相关概念 1 初识Spring 1 1 Spring家族 官网 https spring io 从官网我们可以大概了解到 Spring能做什么 用以开发web 微服务以及分布式系统等 光这三块就已经
  • gpexpand分析

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由maxluo发表于云 社区专栏 一 gp扩容步骤 1 1 初始化机器 目标 新增加的机器需要初始化和已有机器环境一样 具体包括不限于以下内容 创建用户名 设置环境变量 创建数据
  • 一维数组寻找两个数字之和为N的组合

    问题是这样的 一维数组 包含不重复的数字 求两个数相加之和为N的所有组合 笛卡尔乘积方式 public static void Addition2WithCartesian HashSet
  • odoo中详情页字段可编辑状态与只读状态的设置

    odoo中遇到这样的情景 form详情页 比如有三个字段 name age sex 要求当name为空是age和sex可编辑 当name有值时age和sex只读 可使用attrs进行限制如下
  • 欧拉计划问题五matlab实现

    Problem 5 Smallest multiple 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without
  • HDLBits练习(五)锁存器和DFF

    1 创建具有高电平有效同步复位的8 D触发器 触发器必须重置为0x34而不是零 所有DFF应由clk的负边缘触发 module top module input clk input reset input 7 0 d output 7 0
  • nvprof 使用笔记

    1 nvprof metrics gld efficiency gst efficiency myproc 检测内存加载存储效率 2 nvprof query metrics 查看所有能用的参数命令 3 nvprof metrics sta
  • java mail 报错550 Mailbox not found or access denied

    运行了几年的发邮件程序 最近集体发邮件报错 org springframework mail MailSendException Failed messages javax mail SendFailedException Invalid
  • 力扣刷题记录 (七)动态规划(五)子序列系列

    题号300 最长递增子序列 给你一个整数数组 nums 找到其中最长严格递增子序列的长度 子序列是由数组派生而来的序列 删除 或不删除 数组中的元素而不改变其余元素的顺序 例如 3 6 2 7 是数组 0 3 1 6 2 2 7 的子序列
  • vue 权限按钮显示隐藏 (自定义指令法)

    咱们做后台管理系统 肯定避免不了 权限菜单 权限按钮的显示与隐藏 我分享一下 我的实现 import Vue from vue Vue directive auth inserted function el binding vnode co