在 vuex 中建立一个 permission.js 文件用于合并静态和动态的路由规则
结果会获取完整的用户的路由规则
// 新建一个vuex模块来专门处理权限相关操作
import { constantRoutes, asyncRoutes } from "@/router"; export default {
namespaced: true,
state() {
return {
// 准备routes是静态路由和动态路由合并之后的内容(提供给侧边栏去渲染)
routes: constantRoutes,
};
},
getters: {},
mutations: {
setRoutes(state, data) {
// data就是整理好的当前用户的动态路由映射数组 菜单显示
state.routes = [...constantRoutes, ...data];
},
},
actions: {
// 用来整理出属于当前用户的动态路由映射数组
filterRoutes(context, data) {
// data是当前用户的权限点标识
// asyncRoutes 是完整的动态路由映射数组
// 思路:遍历每个动态路由映射是否在当前用户的页面权限标识中
// 如果在就说明拥有改页面访问权限,返回这个路由映射
let userAsyncRoutes = asyncRoutes.filter((item) => {
return data.includes(item.name);
});
// 当前用户的动态路由
// console.log(userAsyncRoutes);
// 赋给state里面的routes,形成完整的静态+动态
userAsyncRoutes.push({ path: "*", redirect: "/404", hidden: true });
context.commit("setRoutes", userAsyncRoutes);
// 返回该用户的动态路由信息
return userAsyncRoutes;
},
},
};
在 vuex 中建立一个 permission.js 文件用于合并静态和动态的路由规则的更多相关文章
- 如何用Docker建立一个Node.js的开发环境
建立一个文件夹 用管理员身份打开powershell. 在文件夹下面运行npm init, 根据提示填入信息,以便产生一个package.json文件. 在文件中加入需要的dependencies ...
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url ...
- 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 :
1 在一个另一个文件中 #include一个**dlg.h文件,会发生dlg的资源ID未定义的错误 : dlg1.h(23) : error C2065: 'IDD_DIALOG1' : und ...
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
ExpandoObject与DynamicObject的使用 using ImpromptuInterface; using System; using System.Dynamic; names ...
- JSFinder:一个在js文件中提取URL和子域名的脚本
JSFinder介绍 JSFinder是一款用作快速在网站的js文件中提取URL,子域名的脚本工具. 支持用法 简单爬取 深度爬取 批量指定URL/指定JS 其他参数 以往我们子域名多数使用爆破或DN ...
- 建立一个node.js服务器(使用express搭建第一个Web环境)
一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...
- Vue中ESlint配置文件eslintrc.js文件详解
最近在跟着视频敲项目时,代码提示出现很多奇奇怪怪的错误提示,百度了一下是eslintrc.js文件没有配置相关命令,ESlint的语法检测真的令人抓狂,现在总结一下这些命令的解释,方便以后查阅. 默认 ...
- 由js文件中引入另外的js文件想到的
1. html中,使用<script src="../static/js/xxx.js"></script>引入js文件. 2. 在js文件中,引入js ...
- MFC 中 删除一个非空文件夹
MFC中提供了删除文件夹的一个封装函数 RemoveDirectory(LPCTSTR lpPathName),我们只要把要删除的文件夹的路径传进去就可以删除了,貌似一切如此简单.我象征性的建立一个文 ...
- 如何在Apache中建立一个新端口
环境: Windows server 2008 R2, Apache, PHP5 步骤: 建立一个目录,里面放置一个index.php. 打开Apache\conf\httpd.conf 文件,做如下 ...
随机推荐
- bottle库上传文件
安装bottle库 pip install bottle 上传代码 import bottle @bottle.get('/upload') def upload_get(): return bott ...
- db2存储过程很慢如何查看
存储过程很慢 ,如何处理? #查看包的情况select r.routineschema, r.routinename, r.routinemodulename, rd.bname as package ...
- Eclipse创建maven-web项目时找不到archetype解决方法
转:https://blog.csdn.net/sunjinjuan/article/details/82943488
- STM32中HAL库和标准库的区别
转载自:https://www.lmonkey.com/t/RwykY8bBX STM32标准库与HAL库比较 ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL ...
- 2022.11.08 NOIP2022 模拟赛五
「LibreOJ NOIP Round #1」DNA 序列 注意到 \(k=10\),\(|\Sigma|=4\),故本质不同的子串个数只有 \(4^{10}\) 种,可以直接压位存下来. 时间复杂度 ...
- 统计包含关键字的 Key 的数量
- [OC] APP唤醒,URL Scheme,工程中的 URL Types 和 LSApplicationQueriesSchemes
1.网页唤醒APP: 假设我们有一个APP,名字叫做 "APP甲",需要通过网页唤起 APP甲,我们首先需要在 APP甲的工程文件里配置参数 URL Types: 在 info.p ...
- nodejs中的kafkajs,消费顺序,不重复消费
参考:https://kafka.js.org/docs 确保同一个消息发送到同一个partition,一个topic,一个partition,一个consumer,内部单线程消费1.封装kafkaU ...
- c++基础技能练习详解(回文数,字符串计数,指针比大小,递归求和,类的应用)
//1. 调用函数实现判定用户输入的正整数是否为"回文数",所谓"回文数"是指正读反读都相同的数. (25分) bool hw(string s) { for ...
- pandas的数据结构--Series创建使用
# 1. 使用Series创建一个空的系列:import pandas as pds=pd.Series()print(s)输出结果为:Series([], dtype: float64) # 2. ...