博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue多页面 按钮级别权限控制 directive指令控制
阅读量:4983 次
发布时间:2019-06-12

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

利用driective 构建自己的指令,实现按钮级别权限

项目结构如下:

修改router.js

{        path: 'schools',        name: '列表',        component: () => import('./eduAdministration/SchoolList'),        meta: {          permissions: ['schools'],          btnpermissions:['admin','test'],          title: '列表',          icon: '',          scrollToTop: true        }      },

新建文件 btnPermission.js文件

内容如下

import Vue from 'vue'import store from '../index'/**权限指令**/const has = Vue.directive('has', {  bind: function (el, binding, vnode) {    // 获取按钮权限    let Permissions = vnode.context.$route.meta.btnpermissions;    console.log('permission',Permissions)    if (!Vue.prototype.$_has(Permissions)) {      let className=el.getAttribute("class")      className=className.concat(" hidden")      el.setAttribute("class",className)    }  }});// 权限检查方法Vue.prototype.$_has = function (value) {  let isExist = false;   debugger  let PermissionsStr =store.getters.roles;  if (PermissionsStr == undefined || PermissionsStr == null) {    return false;  }  PermissionsStr.forEach((per)=>{    if (value.indexOf(per) > -1) {      isExist = true;    }  })  return isExist;};export {has}

将文件引入index.js

import Vue from 'vue'import Vuex from 'vuex'import app from './modules/app'import user from './modules/user'import getters from './getters'import permission from './modules/permission'import has from './modules/btnPermission'Vue.use(Vuex)const store = new Vuex.Store({  modules: {    app,    user,    permission  },  getters})export default store

页面添加权限

el-button(size='mini' @click="handleEdit(scope.row)" v-has) 编辑

最后一步

在 css中添加hidden样式

 

大功告成

 

转载于:https://www.cnblogs.com/tsxylhs/p/10908345.html

你可能感兴趣的文章
SCOI2010 传送带 [三分/模拟退火]
查看>>
C#读取文件,返回字符串形式的文件内容
查看>>
卸载软件时出现的“不能够打开文件INSTALL.LOG”错误-清理注册表即可
查看>>
R学习笔记(3):绘图
查看>>
类的封装
查看>>
命名空间的定义
查看>>
Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比
查看>>
byte[]与各种数据类型互相转换示例
查看>>
swift 自定义TabBarItem
查看>>
Android 仿网易新闻v3.5:上下滑动的引导页
查看>>
php解析二维码
查看>>
Fragment 的生命周期及使用方法详解
查看>>
注意错误zoj2110-Tempter of the Bone
查看>>
Android中级第八讲--安卓子线程,以及定时任务使用讲解
查看>>
一对多的两个表,查询主表的信息和主表在子表中的记录条数
查看>>
主题演讲:未来新趋势电动车
查看>>
常用DNS列表(电信、网通)
查看>>
LeetCode-178:分数排名
查看>>
转:退火算法 Simulate Anneal Arithmetic (SAA,模拟退火算法)
查看>>
Django电商项目---完成商品主页显示day2
查看>>