vue左侧菜单的实现
后端实现
django视图
def menu(request):
menu_list = models.Menu.objects.all().values('id', 'menu_name', 'parent_id') l = []
dic = {}
for item in menu_list:
if int(item['parent_id']) == 0:
l.append({
'id': item['id'],
'name': item['menu_name'],
'children' : []
})
else:
for i in l:
if int(item['parent_id']) == int(i['id']):
i['children'].append(item) dic['data'] = l
return JsonResponse(dic)
得到的数据格式
{
'data':
[
{
'id': 1,
'name': '一级菜单(1)',
'children': [
{'id': 2, 'menu_name': '一级菜单的儿子1', 'parent_id': '1'},
{'id': 3, 'menu_name': '一级菜单的儿子2', 'parent_id': '1'}
]},
{
'id': 4,
'name': '一级菜单(2)',
'children': [
{'id': 5, 'menu_name': '一级菜单的儿子1', 'parent_id': '4'},
{'id': 6, 'menu_name': '一级菜单的儿子2', 'parent_id': '4'}]
}
]
}
vue实现
<el-menu
background-color="RGB(52,58,64)"
text-color="#fff"
active-text-color="#ffd04b">
<!-- 一级菜单 -->
// 点击的时候要有效果 : 来绑定
v-for 循环要有:key
<el-submenu :index="item.id + '' " v-for="item in menuList" :key="item.id">
<!-- 一级菜单模板区 -->
<template slot="title">
<!-- 图标和文本 -->
<i class="el-icon-location"></i> <span>{{item.name}}</span>
</template>
<!-- 二级菜单 -->
<el-menu-item :index="sonChildren.id + ''" v-for="sonChildren in item.children" :key="sonChildren.id">
<template slot="title">
<!-- 图标和文本 -->
<i class="el-icon-location"></i> <span>{{sonChildren.menu_name}}</span>
</template>
</el-menu-item>
</el-submenu>
</el-menu>
<script>
export default {
data(){
return{
menuList:[]
} },
// 一启动就加载
created(){
this.getMenuList()
},
methods: {
getMenuList(){
// 发送请求
this.$axios.get('http://127.0.0.1:8000/menu/',{})
.then((response)=> {
console.log(response.data);
// 赋值到data()里
this.menuList = response.data.data }).catch((error) =>{ })
}
},
}
</script>

vue左侧菜单的实现的更多相关文章
- vue生成element左侧菜单
首先来总结element ui 官方文档的左侧菜单结构,带有el-submenu为子级节点,el-menu-item表示没有下级.当然,菜单不能写死,因为菜单也许不止两级,所以我们需要递归来实现.根据 ...
- vue 首页导航+左侧菜单
1. Mock.js 前后端分离开发开发过程当中,经常会遇到以下几个尴尬的场景: 1. 老大,接口文档还没输出,我的好多活干不下去啊! 2. 后端小哥,接口写好了没,我要测试啊! 前后端分离之后,前端 ...
- vue实现菜单权限控制
大家在做后台管理系统时一般都会涉及到菜单的权限控制问题.当然解决问题的方法无非两种——前端控制和后端控制.我们公司这边的产品迭代速度较快,所以我们是从前端控制路由迭代到后端控制路由.下面我会分别介绍这 ...
- SPA项目开发之首页导航+左侧菜单
Mock.js: 前后端分离之后,前端迫切需要一种机制,不再需要依赖后端接口开发,而mockjs就可以做到这一点 Mock.js是一个模拟数据的生成器,用来帮助前端调试开发.进行前后端的原型分离以及用 ...
- python : jquery实现左侧菜单
左侧菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...
- python :页面布局 ,后台管理页面之左侧菜单跟着滚动条动
左侧菜单跟着滚动条动 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...
- python : HTML+CSS (左侧菜单)
左侧菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...
- Flex 仿Winxp左侧菜单
呆毛放出,源码暂时不能公布,一直比较喜欢winxp的左侧菜单样式,以前也用xslt实现过,但总是达不到完美,没想到FLex轻松做到了这一点,几乎和winxp一模一样.
- 使用layui-tree美化左侧菜单,点击生成tab选项
layui-tree美化左侧菜单 html <div class="layui-side layui-bg-black"> <div class="la ...
随机推荐
- web页面的JS部分乱码了!!
在引用的地方给出编码即可 <script type='text/javascript' src='/zbjc/resources/normal/index_page.js' charset=&q ...
- modelsim10.4环境变量的设置
在用户变量中设置,注意路径还要包括license.txt 点击高级属性设置 点击环境变量 在用户变量一件名为:MGLS_LICENSE_FILE的变量 点击确定
- 「NOIP2009」靶形数独
传送门 Luogu 解题思路 这题其实挺简单的. 首先要熟悉数独,我们应该要优先搜索限制条件多的行,也就是可能方案少的行,显然这样可以剪枝,然后再发挥一下dfs的基本功就可以了. 细节注意事项 爆搜题 ...
- Raspbian设置静态ip
Raspbian static ip 最近入手了树莓派4b,并更具官方教程安装了Raspbian.由于直接通过wifi连接,每次ip跳来跳去很不方便,于是便想着设置静态ip. 由于Raspbian本身 ...
- BSD socket编程学习
1.socket简介 BSD是实现TCP/IP协议通信的软件系统,socket是应用编程接口,为app提供使用TCP/IP协议通信的接口. 网络层IP提供点到点服务(IP地址标识),传输层TCP和UD ...
- 条形码识别手持终端(PDA)人们每日触碰的科技
时尚达人的你,收快递物流时,毫无疑问在有时会好奇心,派送员腰部取出的那把“扫枪”,轻轻地一扫后,给你打开享有开拆快递物流的开心時刻.老湿机的你,是否会突然发觉,泊车交费时收费员哥哥已不找你许多零钱,只 ...
- k-近邻算法原理入门-机器学习
//2019.08.01下午机器学习算法1——k近邻算法1.k近邻算法是学习机器学习算法最为经典和简单的算法,它是机器学习算法入门最好的算法之一,可以非常好并且快速地理解机器学习的算法的框架与应用.2 ...
- 攻防世界--web新手练习区(1)
1. 题目描述:X老师想让小明同学查看一个网页的源代码,但小明却发现鼠标右键不管用了. http://111.198.29.45:53629 通过阅读题目描述分析,我们需要查看源码,但是鼠标右键 ...
- NodeJs koa2实现文件上传
[转载自:]https://www.jianshu.com/p/34d0e1a5ac70 知识讲解 koa2框架是一个基于中间件的框架,也就是说,需要使用到的功能,比如路由(koa-router),日 ...
- BZOJ1019 汉诺塔/洛谷P4285 [SHOI2008]汉诺塔
汉诺塔(BZOJ) P4285 [SHOI2008]汉诺塔 居然是省选题,还是DP!(我的DP菜得要死,碰见就丢分) 冥思苦想了1h+ \(\to\) ?! 就是普通的hanoi NOI or HNO ...