后端实现

  1. django视图
    def menu(request):
  2. menu_list = models.Menu.objects.all().values('id', 'menu_name', 'parent_id')
  3.  
  4. l = []
  5. dic = {}
  6. for item in menu_list:
  7. if int(item['parent_id']) == 0:
  8. l.append({
  9. 'id': item['id'],
  10. 'name': item['menu_name'],
  11. 'children' : []
  12. })
  13. else:
  14. for i in l:
  15. if int(item['parent_id']) == int(i['id']):
  16. i['children'].append(item)
  17.  
  18. dic['data'] = l
  19. return JsonResponse(dic)

得到的数据格式

  1. {
  2. 'data':
  3. [
  4. {
  5. 'id': 1,
  6. 'name': '一级菜单(1)',
  7. 'children': [
  8. {'id': 2, 'menu_name': '一级菜单的儿子1', 'parent_id': '1'},
  9. {'id': 3, 'menu_name': '一级菜单的儿子2', 'parent_id': '1'}
  10. ]},
  11. {
  12. 'id': 4,
  13. 'name': '一级菜单(2)',
  14. 'children': [
  15. {'id': 5, 'menu_name': '一级菜单的儿子1', 'parent_id': '4'},
  16. {'id': 6, 'menu_name': '一级菜单的儿子2', 'parent_id': '4'}]
  17. }
  18. ]
  19. }

vue实现

  1.             <el-menu
  2. background-color="RGB(52,58,64)"
  3. text-color="#fff"
  4. active-text-color="#ffd04b">
  5. <!-- 一级菜单 -->
                        // 点击的时候要有效果 : 来绑定
                                       v-for 循环要有:key
  6. <el-submenu :index="item.id + '' " v-for="item in menuList" :key="item.id">
  7. <!-- 一级菜单模板区 -->
  8. <template slot="title">
  9. <!-- 图标和文本 -->
  10. <i class="el-icon-location"></i>
  11.  
  12. <span>{{item.name}}</span>
  13. </template>
  14. <!-- 二级菜单 -->
  15. <el-menu-item :index="sonChildren.id + ''" v-for="sonChildren in item.children" :key="sonChildren.id">
  16. <template slot="title">
  17. <!-- 图标和文本 -->
  18. <i class="el-icon-location"></i>
  19.  
  20. <span>{{sonChildren.menu_name}}</span>
  21. </template>
  22. </el-menu-item>
  23. </el-submenu>
  24. </el-menu>
  1. <script>
  2. export default {
  3. data(){
  4. return{
  5. menuList:[]
  6. }
  7.  
  8. },
        // 一启动就加载
  9. created(){
  10. this.getMenuList()
  11. },
  12. methods: {
  13. getMenuList(){
            // 发送请求
  14. this.$axios.get('http://127.0.0.1:8000/menu/',{})
  15. .then((response)=> {
  16. console.log(response.data);
                // 赋值到data()里
  17. this.menuList = response.data.data
  18.  
  19. }).catch((error) =>{
  20.  
  21. })
  22. }
  23. },
  24. }
  25. </script>

    

vue左侧菜单的实现的更多相关文章

  1. vue生成element左侧菜单

    首先来总结element ui 官方文档的左侧菜单结构,带有el-submenu为子级节点,el-menu-item表示没有下级.当然,菜单不能写死,因为菜单也许不止两级,所以我们需要递归来实现.根据 ...

  2. vue 首页导航+左侧菜单

    1. Mock.js 前后端分离开发开发过程当中,经常会遇到以下几个尴尬的场景: 1. 老大,接口文档还没输出,我的好多活干不下去啊! 2. 后端小哥,接口写好了没,我要测试啊! 前后端分离之后,前端 ...

  3. vue实现菜单权限控制

    大家在做后台管理系统时一般都会涉及到菜单的权限控制问题.当然解决问题的方法无非两种——前端控制和后端控制.我们公司这边的产品迭代速度较快,所以我们是从前端控制路由迭代到后端控制路由.下面我会分别介绍这 ...

  4. SPA项目开发之首页导航+左侧菜单

    Mock.js: 前后端分离之后,前端迫切需要一种机制,不再需要依赖后端接口开发,而mockjs就可以做到这一点 Mock.js是一个模拟数据的生成器,用来帮助前端调试开发.进行前后端的原型分离以及用 ...

  5. python : jquery实现左侧菜单

    左侧菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...

  6. python :页面布局 ,后台管理页面之左侧菜单跟着滚动条动

    左侧菜单跟着滚动条动 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...

  7. python : HTML+CSS (左侧菜单)

    左侧菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...

  8. Flex 仿Winxp左侧菜单

    呆毛放出,源码暂时不能公布,一直比较喜欢winxp的左侧菜单样式,以前也用xslt实现过,但总是达不到完美,没想到FLex轻松做到了这一点,几乎和winxp一模一样.

  9. 使用layui-tree美化左侧菜单,点击生成tab选项

    layui-tree美化左侧菜单 html <div class="layui-side layui-bg-black"> <div class="la ...

随机推荐

  1. JuJu团队1月10号工作汇报

    JuJu团队1月10号工作汇报 JuJu   Scrum 团队成员 今日工作 剩余任务 困难 飞飞 fix出现的bug -- 无 婷婷 完善main.jl 训练流程 -- 无 恩升 绘图 -- 无 金 ...

  2. java异常处理动手动脑问题解决和课后总结

    动手动脑 一.问题:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 1.源代码 import javax.swing.*; cl ...

  3. Mybatis入门(五)属性名和字段名不一致解决

    在学Mybatis的时候都需要创建一个实体类,但创建实体类的变量必须和数据库的一样,这章就来解决这个有趣的问题 目录: 问题是这样: 输出的结果是: password为空,这就很难受: 解决方法: 第 ...

  4. BugFix系列---开篇介绍

      这个系列的文章,主要目的在于积累总结实际开发中遇到的错误,记录下来自己的解决思路,用来提升自己. 不出意外,应该会持续不断的记录更新,在整个开发openstack的过程中,抓住机会吸取开源界大牛的 ...

  5. 【Unity】鼠标划定范围然后截图~

    有时候要重复用某一个场景的某一个角度,都过去好几步了结果总不能再把已经打乱的场景物体再移动回去吧.so~智慧的我完成了伟大的偷懒.截图保存,什么时候要看,直接上图片以假乱真棒棒哒~ 当然这个功能还能用 ...

  6. sklearn的train_test_split()各函数参数含义解释(非常全)

    sklearn之train_test_split()函数各参数含义(非常全) 在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,从 sklearn.model_selection ...

  7. navcat工具常用快捷键

     navcat工具常用快捷键 ctrl + n: 打开新查询窗口 ctrl + shit + r: 只运行选中的语句 ctrl + /: 注释 (选中要注释的行,然后用快捷键注释) ctrl + sh ...

  8. python-python基础2

    本章内容: 1.列表.元组 2.字典 3.集合 4.文件操作 5.字符编码与转码 一.列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 names= ...

  9. greenplum 数组操作

    参考:http://gpdb.docs.pivotal.io/4390/admin_guide/query/topics/functions-operators.html Table 4. Advan ...

  10. Python测试进阶——(4)Python程序监控、存储、分析并可视化CPU和内存利用率

    monitor190617.py 监控cpu和内存利用率信息,组织成json格式,并写入到 record.txt 文件中: import psutil import time import json ...