vue 权限按钮显示隐藏 (组件法)

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

  1. 创建一个权限显示隐藏的公共组件
<template>
  <div>
    <slot v-if="isShow" />
  </div>
</template>

<script>
  export default {
    props: {
      authItem: {
        type: [String, Array], //类型
        required: true, //必要性
      },
    },
    data() {
      return {
        isShow: false,
      }
    },
    created() {
      const authArr = this.$router.history.current.meta.btnPermissions
      const authItem = this.authItem
      if (Object.prototype.toString.call(this.authItem) === '[object Array]') {
        // 数组
        if (
          JSON.stringify(authArr.sort()) === JSON.stringify(authItem.sort())
        ) {
          this.isShow = true
        } else {
          this.isShow = false
        }
      } else {
        //字符串
        authArr.forEach((i) => {
          authItem == i ? (this.isShow = true) : (this.isShow = false)
        })
      }
    },
  }
</script>

 这里 我用的是直接从 路由数组中拿到 该页的 按钮权限标记 

 拿到使用 权限按钮组件的该页按钮权限标记数组 然后就可以进行判断

这里我做了判断 传过来的是单个字符串 或者 数组 

  1. 如果接收的是单个字符串 咱们就查看 权限标记数组里面是否有这个字符串 有就显示 没有就隐藏 
  2. 如果接收的是数组  咱们就对比 传过来的数组 和 权限标记数组 是否内容相同 相同就显示 反之隐藏

使用:

这里我传的是数组 必须该页权限数组和咱们传的这个数组一样 才会显示

组件可以局部注册 也可以全局注册 大家都会 我就不做介绍了哈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值