vue权限处理

本文介绍了在Vue项目中实现权限管理的三个关键部分:菜单权限、按钮显示权限和路由跳转权限。通过后端返回的功能code,动态渲染菜单和按钮,并进行路由拦截,确保用户只能访问其被授权的页面。代码示例展示了如何使用自定义指令判断按钮显示,并解释了路由跳转的逻辑。
摘要由CSDN通过智能技术生成

vue 权限处理

最近在做关于vue的权限处理的内容,做完之后来总结一下
关于此次vue权限我主要分为三个模块来讲解

  • 1.菜单权限
  • 2.按钮显示权限
  • 3.路由跳转权限

整体思路: 登录–>获取用户信息,菜单以及对应的功能code。所谓功能code就是每一功能都对应的一项功能,如下图所示,对于公寓管理模块,我只有查看的功能,code为 apartment_view,我们登录的时候后台会返给我们一系列的code,[‘apartment_view’,‘apartment_add’],如果我们的code可以在该code列表中找到,即可以匹配功能;还有就是路由拦截,首先把我们的路由去匹配大菜单,如果匹配得到,那就直接路由跳转,如果匹配不大,那就去看功能菜单里是否可以访问通过,比如apartment_add功能对应的页面有多个,如:“add_step1”,“add_step2”,“add_step3”,只要我们能通过url找到对应的code,再和权限code进行对比即可,下面将详细的去说明以及代码

在这里插入图片描述

1.菜单权限

菜单权限比较简单 就是正常的根据权限配置的路由菜单,登录的时候又后端返回list,然后渲染到菜单,在这里就不重点提出了

2.按钮显示

这里的按钮权限主要是通过后台返回的code,比如新增文章是add_code,这个时候我们是通过绑定了自定义指令去判断后台返回的code是否包含该code,如果不包含,即移除该元素 ,代码如下

// 绑定权限code
<button v-has="'add_code'">新增文章</button>
// 多code通过-去连接
<button v-has="'add_code-delete_code'">新增文章</button>
// 自定义指令
import Vue from 'vue'
import {
    Base64 } from 'js-base64'
/**权限指令**/
const has = Vue.directive('has', {
   
  inserted: function (el, binding, vnode) {
   
    // 获取页面按钮权限
    if (!Vue.prototype.$_has(binding.value)) {
   
      // 不满足条件 移除该元素
      el.parentNode.removeChild(el);
    }
  }
});
// 权限检查方法
Vue.prototype.$_has = 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值