当前位置: 首页 > news >正文

【vue】更改角色权限后,实现页面不刷新更改其可展示的导航菜单

登入的角色本身属于领导级别(集团权限),没有下级的不同权限:
在这里插入图片描述
切换不同身份(公司),以获得相应部门的不同导航菜单及权限
在这里插入图片描述
这里实现:更改角色权限后,实现页面 不刷新 更改其展示出来的 导航菜单

1、在右上角页面代码内,通过后端接口获取子角色(公司)的对应菜单路由(图2中data)
2、将路由数据和自身代码写入方式一样,写入store存储路由数据(参考自己代码首次获取路由后存储数据的方法)
3、通过事件总线$eventBus监听页面路由替换导航
4、清空、重新添加路由$router.addRoutes

在这里插入图片描述
导航组件里监听并操作:
在这里插入图片描述
代码片:

async toMenuChange(id) {//...省略前面非必要 此处调用自己的接口await getMenuListChange().then((mresult) => {// console.log('得到新路由列表:' , mresult);// 对数据进行改造:const sdata = JSON.parse(JSON.stringify(mresult.data)); const rdata = JSON.parse(JSON.stringify(mresult.data));const sidebarRoutes = this.filterAsyncRouter(sdata);const rewriteRoutes = this.filterAsyncRouter(rdata, false, true);rewriteRoutes.push({ path: "*", redirect: "/404", hidden: true });store.commit("SET_ROUTES", rewriteRoutes);store.commit("SET_SIDEBAR_ROUTERS",constantRoutes.concat(sidebarRoutes));store.commit("SET_DEFAULT_ROUTES", sidebarRoutes);store.commit("SET_TOPBAR_ROUTES", sidebarRoutes);// 在事件总线中发布事件 this.$bus.$emit('xxx','传递参数')this.$eventBus.$emit("changeTopBar");// 重置导航resetRouter();this.$router.addRoutes(sidebarRoutes);});
}
this.$eventBus.$on("changeTopBar", () => {// ...
});this.$eventBus.$off(["changeTopBar"]);
http://www.lryc.cn/news/133717.html

相关文章:

  • 【G-LAB】网络工程师常用排错命令详细版
  • Linux 桌面版关闭GUI桌面环境
  • ChatGPT能代替搜索引擎吗?ChatGPT和搜索引擎有什么区别?
  • PHP海外代购管理系统mysql数据库web结构apache计算机软件工程网页wamp
  • 游戏反外挂方案解析
  • 基于郊狼算法优化的BP神经网络(预测应用) - 附代码
  • 【腾讯云 TDSQL-C Serverless 产品测评】全面测评TDSQL-C Mysql Serverless
  • Qt应用开发(基础篇)——纯文本编辑窗口 QPlainTextEdit
  • 数据结构-->栈
  • 强训第36天
  • PyTorch bug记录
  • js中的正则表达式(一)
  • 免费开源使用的几款红黑网络流量工具,自动化的多功能网络侦查工具、超级关键词URL采集工具、Burpsuite被动扫描流量转发插件
  • 使用Mybatis Plus进行DAO层开发
  • Android中如何不编译源生模块
  • 安装Vue_dev_tools
  • 【数据结构入门指南】二叉树顺序结构: 堆及实现(全程配图,非常经典)
  • css实现三角形的几种方法
  • ❤ Vue工作常用的一些动态数据和方法处理
  • SQLite的命令用法
  • 在jupyter notebook中使用海龟绘图
  • 密码学学习笔记(十八):Diffie–Hellman (DH) 密钥交换
  • Linux —— 进程间通信(管道)
  • python常用
  • jeecg如何创建报表并配置到菜单中
  • Servlet+JDBC实战开发书店项目讲解第12讲:会员管理功能
  • java面向对象——继承以及super关键字
  • [机缘参悟-101] :IT人 - 遵从世界本源的样子,不带个人情感、道德、认知倾向,接纳一切,你就拥有无限的力量
  • C++--深度理解智能指针
  • Spring Boot使用MySQL的默认连接池