vue-admin-template动态菜单后台获取菜单
vue-admin-template、vue-element-admin配置动态菜单,菜单数据从后台获取。
我在网上search了几个小时也没有找到想要的emm,翻官网也没有说明,只说明了路由覆盖。只能自己手撸试调,并实现了该功能。因为场景一般都是根据不同角色访问不同菜单的。
首先这是我后台传来的菜单:
{
"code":0,
"msg":null,
"data":[
{
"id":1,
"parentId":0,
"title":"仪表盘",
"path":"/dashboard",
"icon":"dashboard",
"sortNumber":1,
"status":"1"
},
{
"id":2,
"parentId":0,
"title":"表单",
"path":"/form/index",
"icon":"form",
"sortNumber":2,
"status":"1"
},
{
"id":3,
"parentId":0,
"title":"nested",
"path":"/nested",
"icon":"nested",
"sortNumber":1,
"status":"1"
},
{
"id":4,
"parentId":3,
"title":"menu1",
"path":"/menu1",
"icon":null,
"sortNumber":1,
"status":"1"
},
{
"id":7,
"parentId":3,
"title":"menu2",
"path":"/nested/menu2",
"icon":null,
"sortNumber":2,
"status":"1"
},
{
"id":5,
"parentId":4,
"title":"menu1-1",
"path":"/nested/menu1/menu1-1",
"icon":null,
"sortNumber":1,
"status":"1"
},
{
"id":6,
"parentId":4,
"title":"menu1-2",
"path":"/nested/menu1/menu1-2",
"icon":null,
"sortNumber":2,
"status":"1"
}
]
}
在api中定义了获取菜单的请求函数
export function getMenus() {
return request({
url: '/user/menus',
method: 'get'
})
}
在src\layout\components\Sidebar\index.vue中
// 修改路由遍历,变量为 requestMenus
<sidebar-item v-for="route in requestMenus" :key="route.path" :item="route" :base-path="route.path" />
// 导入获取菜单请求
import { getMenus } from '@/api/user'
data() {
return {
requestMenus: [] // 自定义的菜单变量
}
},
// ...其他不变
created() {
// 页面创建时获取菜单,算是初始化
this.menus()
},
methods: {
menus() {
getMenus().then(res => {
this.requestMenus = this.listToTree(res.data, 0)
})
}, listToTree(list, parentId) { // 递归转换
const tree = []
for (let i = 0; i < list.length; i++) {
const temp = list[i]
temp.meta = { title: temp.title, icon: temp.icon }
if (temp.parentId === parentId) {
// 递归子节点
temp.children = this.listToTree(list, temp.id)
tree.push(temp)
}
}
return tree
}
}
以上配置的前提是router/index.js中的路由,能匹配后台传来路由路径。原来写死的路由配置我没有修改过
效果

vue-admin-template动态菜单后台获取菜单的更多相关文章
- 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??
在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...
- vue $refs 无法动态拼接,获取不到对象(转)
原文地址: http://www.php.cn/js-tutorial-410304.html 本篇文章给大家带来的内容是关于vue $refs中不使用拼接的原因以及解决方法,有一定的参考价值,有需要 ...
- vue addRoutes路由动态加载
需求:增加权限控制,实现不同角色显示不同的路由导航 思路:每次登陆后请求接口返回当前角色路由 核心方法:vue-router2.2.0的addRoutes方法 + vuex 以下是我实现的获取菜单路由 ...
- vue、iview动态菜单(可折叠)
vue项目与iview3实现可折叠动态菜单. 菜单实现一下效果: 动态获取项目路由生成动态三级菜单导航 可折叠展开 根据路由name默认打开子目录,选中当前项 自动过滤需要隐藏的路由(例:登陆) 在手 ...
- 使用vue-element-admin框架从后端动态获取菜单
1.前言 vue-element-admin是一个纯前端的框架,左侧菜单是根据路由生成的.实际开发中经常需要根据当前登陆人员的信息从后端获取菜单进行展示,本文将详细介绍如何实现该功能. 2.详解 ...
- ligerUI---下拉菜单(menubar)动态显示(从后台获取数据)
写在前面: ligerui的下拉菜单是有点丑的,这也是没有办法的事........这里主要记录下,如何从后台获取数据进行菜单显示. 有两种方式:1.使用json数组来动态添加 2.字符串拼接. 其 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多 ...
- vue 后台管理系统菜单权限管理
来自:https://www.cnblogs.com/fqh123/p/11094296.html 侵删 login登录方法 login() { if (!this.username) { retur ...
- vue+element UI 使用select元素动态的从后台获取到
VUE select元素动态的从后台获取到 <el-form-item label="选择店铺"> <el-select v-model="value& ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(20)-权限管理系统-根据权限获取菜单
系列目录 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多的时间来更新,多谢大家的一路支持.如果你觉得好,记得帮我点击推荐^-^ 我们在之前已经插入一些真实数据,其中包含了一个用户和 ...
随机推荐
- C++20起支持的一个小特性
注释掉的为传统的写法,从C++20起支持default关键字修饰的写法,即使是成员变量有多个的时候也支持,减轻了程序员的心智负担.
- https://www.oracle.com/au/cloud/free/
https://www.oracle.com/au/cloud/free/ "Oracle Cloud Free "免费云在线注册关于个人应用的用户在注册和试用的过程中遇到任何问题 ...
- 【译】A unit of profiling makes the allocations go away
在 Visual Studio 17.8 Preview 2 中,我们更新了单元测试分析,允许你在性能分析器中使用任何可用的工具--而不仅仅是仪表工具.有了这个更改,可以很容易地快速分析孤立的小工作单 ...
- Chromium Command Buffer原理解析
Command Buffer 是支撑 Chromium 多进程硬件加速渲染的核心技术之一.它基于 OpenGLES2.0 定义了一套序列化协议,这套协议规定了所有 OpenGLES2.0 命令的序列化 ...
- Spring扩展接口(4):InstantiationAwareBeanPostProcessor
在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景.并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图.这样,我们也可以看到bean是如何 ...
- RSA总结 From La神
常用工具 分解大素数 factordb (http://www.factordb.com / API: http://factordb.com/api?query=) yafu (p q 相差过大或过 ...
- HanLP — Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机
双数组字典树能在O(1)(1是模式串长度)时间内高速完成单串匹配,并且内存消耗可控,然而软肋在于多模式匹配.如果要匹配多个模式串,必须先实现前缀查询,然后频繁截取文本后缀才可多匹配.比如 ushers ...
- coco漫画获取隐藏的图片链接
网站分析 打开目标网站:https://www.cocomanhua.com/, 随便打开一部漫画: https://www.cocomanhua.com/10330/1/205.html F12 打 ...
- 【scipy 基础】--插值
插值运算是一种数据处理方法,主要用来填补数据之间的空白或缺失值.因为在实际应用中,数据往往不是完整的,而是存在着空白或缺失值,这些空白或缺失值可能是由于数据采集困难.数据丢失或数据处理错误等原因造成的 ...
- 题解 P7325
前言 数学符号约定 \(a,b,p\):表示任意自然数. \(F_x\):表示广义斐波那契数列的第 \(x\) 项. \(f_x\):表示普通斐波那契数列的第 \(x\) 项. 如非特殊说明,将会按照 ...