权限按钮(Ts)

//main.ts全局挂载

import { useUserStore } from "@/stores/admin/index";//引入状态管理
/**
 * 自定义全局组件
 */
app.directive("permission",{
    mounted(el,binding){
        // 当前按钮传递的值( v-permission="'add'" 中的值)
        let val = binding.value//获取状态里面信息
        // 获取到存放在 store 中的权限数据
        const store = useUserStore()
        var permissionList = store.permissionList || []//为了防止空指向异常
        if (-1===permissionList.indexOf(val)) {//  //判断按钮显隐 是否存在对应的按钮权限
            // 没有权限
            el.remove?.();
        }
    }
})

//index.ts状态管理

getters: {
    /**
     * 用户权限列表
     * @param state 状态管理仓库
     * @returns 权限列表
     */
    permissionList:(state)=>{
      return state.user.perms
    }
  },

//role.vue最后我们在页面中就可以通过自定义指令 v-permission来判断

<el-button size="small" type="primary"  @click="handleEdit(scope.$index, scope.row)" v-permission="'sys:role:update'">修改</el-button>

("'sys:role:update'"当前角色的按钮的权限状态,不同的状态页面,角色状态也是不同的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值