通过VUE指令和pinia控制按钮权限

  • 权限state
import {defineStore} from "pinia/dist/pinia";

// 用户权限状态
export const userPermission = defineStore('userPermission', {
    // 状态
    state: () => {
        return {
            permissions: ['add', 'delete']
        }
    },
    actions: {},
    // 状态的一些方法,类似于计算属性
    getters: {}
})
  • 编写指令
import {userPermission} from "./state/pinia-state";

let permissions = userPermission()

app.directive('permission', (el, binding) => {
    if (permissions.permissions.indexOf(binding.value) < 0) {
        // 移除当前元素
        el.parentNode.removeChild(el)
    }
})
  • 按钮需要的权限
  <el-row class="mb-4">
    <el-button v-permission="`add`">增1</el-button>
    <el-button v-permission="`delete`" type="primary">删2</el-button>
    <el-button v-permission="`a1`" type="success">改3</el-button>
  </el-row>
  • 效果

image.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值