博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue权限问题
阅读量:6965 次
发布时间:2019-06-27

本文共 1691 字,大约阅读时间需要 5 分钟。

vue控制权限问题


后台返回的接口

{  "code": 200,  "data": [{      path: '/',      meta: {        title: '首页',        show: true,        limits: ['test'],      },    },    {      path: '/about',      meta: {        title: '关于',        show: false      },    },    {      path: '/test',      meta: {        title: '测试',        show: true,      },    },    {      path: '/more',      meta: {        title: '更多',        show: true      },      children: [{          path: '/more/navone',          meta: {            title: '更多一',            show: false          },        },        {          path: '/more/navtwo',          meta: {            title: '更多二',            show: true          },        }      ]    }  ]}

权限指令

import Vue from 'vue';import store from '@/store/index' // v-permission: 功能权限指令Vue.directive('permission', {    bind(el, binding, vnode, oldVnode) {        const { value } = binding        const limits = store.getters && store.getters.limits        if (value) {            const permissionRoles = value            const hasPermission = limits.some(limit => {                return permissionRoles==limit            })            if (!hasPermission) {                el.parentNode && el.parentNode.removeChild(el)            }        } else {            throw new Error(`need limits! Like v-permission="'test'"`)        }     }})

vuex操作权限

import {syncRouter, asyncRouter,router } from '@/router/index'/** * 递归过滤异步路由表,返回符合用户角色权限的路由表 * @param asyncRouterMap * @param roles */function filterAsyncRouter(asyncRouter, roles) {  asyncRouter.map((item)=>{    roles.forEach((inItem)=>{      if(item.path==inItem.path){        if(item.redirect){          for(let i=0;i

功能绑定

测试功能显示

参考链接:

转载地址:http://vawsl.baihongyu.com/

你可能感兴趣的文章
.net微信公众号开发——消息与事件
查看>>
动态网站维护基本命令
查看>>
透视表提取不反复记录(2)-每一个物品的全部分类
查看>>
基于jQuery/CSS3实现拼图效果的相册插件
查看>>
【问题解决】小数点前面不显示0的问题
查看>>
ios学习笔记(二)第一个应用程序--Hello World
查看>>
Maven学习总结(四)——Maven核心概念——转载
查看>>
怎么用CIFilter给图片加上各种各样的滤镜_2
查看>>
android:关于主工程和library project
查看>>
CodeForces 2A Winner
查看>>
Window环境配置Mongodb
查看>>
制作和unity调用动态链接库dll文件
查看>>
exsi6.0远程修改密码
查看>>
Header和Cookie相关内容
查看>>
20个可能你不知道Linux网路工具
查看>>
Android 关于listView 显示不全的问题
查看>>
构造函数创建私有变量(防继承)
查看>>
scrum 开发方式学习笔记
查看>>
Terraform使用案例
查看>>
Mac下brew方式安装mysql
查看>>