【Vue】按钮权限

该博客详细介绍了在Vue应用中如何实现权限管理,包括在`Home.vue`组件中通过API获取用户菜单和操作权限,并存储到Vuex store中。同时,定义了一个名为`has`的Vue指令,用于在`User.vue`组件中动态控制按钮的显示和移除,基于用户权限决定按钮是否可见。这一实现确保了前端界面根据用户权限动态展示相应功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// components/Home.vue

async getMenuList() {
      try {
        const { menuList, actionList } = await this.$api.getPermissionList();
        this.userMenu = menuList;
        this.$store.commit("saveUserMenu", menuList);
        this.$store.commit("saveUserAction", actionList);
      } catch (error) {
        console.error(error);
      }
    }
// main.js

// 按钮权限
app.directive('has', {
    beforeMount: (el, binding) => {
        // 获取按钮权限
        let actionList = storage.getItem('actionList')
        let value = binding.value
        // 判断列表中是否有对应按钮权限标识
        let hasPermission = actionList.includes(value)
        if (!hasPermission) {
            el.style = 'display:none;'
            // 添加一个宏任务
            setTimeout(() => {
                el.parentNode.removeChild(el)
            }, 0);
        }
    }
})
// views/User.vue

<el-button 
		@click="handleEdit(scope.row)"
    size="mini"
		v-has:add="'user-delete'"
>编辑</el-button>
<el-button
    type="danger"
    size="mini"
    @click="handleDel(scope.row)"
    v-has:add="'user-delete'"
>删除</el-button>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值