背景

  最近用到D2Admin开发项目,用户登录菜单要根据用户角色权限获取,但是又不想用官网的方案(vue基于d2-admin的RBAC权限管理解决方案),所以自己加了个只修改

menuAside的方案。方案如下:
 
step 1. 在demo/src/api/modules/sys.user.api.js中
  export default 前新增:

import util from '@/libs/util'
import router from '@/router'
const toLogin = () => {
util.cookies.remove('token')
util.cookies.remove('uuid')
// 清空 vuex 用户信息
// this.$store.dispatch('d2admin/user/set', {}, { root: true })
router.push({ name: 'login' })
}
  export default 内新增:  

,
getMenuList () {
const token = util.cookies.get('token')
if (token === undefined) {
toLogin()
}
return request({
url: '/spd/system/getMenuList',
headers: {
Authorization: token,
},
method: 'post',
data: {}
})

step 2. 在demo/src/store/modules/d2admin/modules/account.js中

  export default 前新增:

import store from '@/store/index'
import { menuHeader, menuAside } from '@/menu' // 右侧菜单数据处理
const clearTreeChild = async (dataMap) => {
dataMap.map((item,index)=>{
// item.path 为空导致菜单全部收缩问题
if(item.path === null || item.path === ''){
item.path = 'd2-menu-empty-spd-' + index
}
// 包含children的菜单含下拉图标
if(item.children == null || item.children.length == 0){
delete item.children
} else {
clearTreeChild (item.children)
}
})
}

  export default 内方法‘async load ({ dispatch })’新增:

1 const res = await api.getMenuList()
2 //res.data内是menuAside格式的菜单数据
3 clearTreeChild (res.data)
4 //用户权限菜单合并固定菜单
5 let allMenuAside = [...menuAside, ...res.data]
6 store.commit('d2admin/menu/asideSet', allMenuAside)

注:项目右侧固定菜单为 demosrc/menu/index.js中menuAside,可根据实际情况自行删改

相关资源:

D2Admin的API文档地址: https://d2.pub/zh/doc/d2-admin/

 vue基于d2-admin的RBAC权限管理解决方案:https://github.com/wjkang/d2-admin-pm
 
 
作  者:文静~
出  处:https://www.cnblogs.com/tong2018/p/d2admin-menuAside.html
关于博主:后端搬砖,业余前端。评论和私信会在第一时间回复。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
 
 
 

D2Admin 登录用户重新初始话右侧菜单的更多相关文章

  1. java—不同的用户登录以后可以看到不同的菜单(后台可以实现对用户菜单的管理) 1 (55)

    实现不同的用户登录以后可以看到不同的菜单.(后台可以实现对用户菜单的管理.) 第一步:分析数据结构        1:用户表 表名:users 列名 类型 说明 id Varchar(32) 主键 n ...

  2. 【Linux_Fedora_系统管理系列】_1_用户登录和系统初始配置

    发现一个问题,在FC14 的Firefox浏览器中,编辑和排版好的博文,在windows下用chrome或者猎豹浏览器打开后,排版就变得阅读 不是很容易里,而且经常不经意的断行.不知道园子的管理人员时 ...

  3. uniapp根据登录用户的角色动态的改变tabBar的数量和内容

    此文章借鉴于https://blog.csdn.net/fuyuumiai/article/details/109746357,在此基础上修改小部分内容,适用于我这种uniapp小白 介绍: 现在我们 ...

  4. linux 下如何查看和踢除正在登陆的其它用户 ==>Linux下用于查看系统当前登录用户信息的4种方法

    在linux系统中用pkill命令踢出在线登录用户 由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍 所以需要有时踢出指定的用户 1/#who   查出当前有那些终端登录(用 ...

  5. Linux查看用户数、登录用户

    如果是系统中全部只要默认shell是bash的就包括那么二楼正解,就是cat /etc/passwd|grep bash|wc -l如果是正在登陆系统的账户中使用bash shell的,那么ps -e ...

  6. PLSQL配置登录用户信息

    PLSQL配置登录用户信息 2012-08-30 08:47:02     我来说两句      作者:lsxy117 收藏    我要投稿 PLSQL配置登录用户信息   工作中经常使用PLSQL ...

  7. 防止未登录用户操作—struts2拦截器简单实现(转)

    原文地址:http://blog.csdn.net/zhutulang/article/details/38351629 尊重原创,请访问原地址 一般,我们的web应用都是只有在用户登录之后才允许操作 ...

  8. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  9. Linux下用于查看系统当前登录用户信息 w命令

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

随机推荐

  1. Nosql 和 Sql 简单概念介绍

    Nosql (非关系数据库) 代表数据库:redis / hbase /mongoDB /CouchDB /Neo4J 存储数据使用的是数据结构化存储方法的集合,意味着数据的存储可以是文档.集合.键值 ...

  2. ubuntu20.04 系统初始化与美化

    ubuntu20.04 系统初始化与美化 参考博客:https://mp.weixin.qq.com/s/JowjHrs9GMVlolaoaSGiEg 参考博客:https://www.linuxmi ...

  3. 面试 21-面试题整理 by smyhvae

    21-面试题整理 by smyhvae #JavaScript #存储相关:请描述以下cookie.localStorage.sessionStorage的区别 在H5之前,cookie一直都是本地存 ...

  4. Python 刷题笔记

    Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...

  5. SQLServer之 Stuff和For xml path

    示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA ...

  6. 浅析Python装饰器

    1.什么是装饰器 在介绍装饰器之前,我们先来思考一个问题:使用Python语言进行程序设计时,如果我们想扩展一个函数的功能,一般会怎么做呢? 比如,有一个名为print_info函数,当前该函数内只做 ...

  7. 1.Redis基础命令

    重要概念 redis是单线程模型,所有命令都会进入一个队列,然后依次被执行. 全局命令 >>>select dbindex #切换数据库,默认有16个库,库标识符为0-15 > ...

  8. 魔改redis之添加命令hrandmember

    魔改redis之添加命令hrandmember 目录 魔改redis之添加命令hrandmember 正文 前言 Set类型与srandmember命令 Hash类型对比Set类型 hrandmemb ...

  9. sql 中 foreach 中传入多个不同的参数问题

    <!--查找某用户绑定的药物不良反应报告列表--> <select id="selectSurveyListByUserProId" resultType=&qu ...

  10. [leetcode]404. Sum of Left Leaves左叶子之和

    弄个flag记录是不是左节点就行 int res = 0; public int sumOfLeftLeaves(TreeNode root) { if (root==null) return res ...