首页 > 其他 > 详细

Element-UI 写后台【一】 左侧导航

时间:2019-10-21 23:31:34      阅读:95      评论:0      收藏:0      [点我收藏+]

左侧导航菜单使用 element-ui的导航菜单

<el-menu
      default-active="2"
      class="el-menu-vertical-demo"
      @open="handleOpen"
      @close="handleClose"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b">

 <--多级菜单-->
      <el-submenu index="1">
        <template slot="title">
          <i class="el-icon-location"></i>
          <span>导航一</span>
        </template>
   
 <--单级菜单-->
      <el-menu-item index="2">
        <i class="el-icon-menu"></i>
        <span slot="title">导航二</span>
      </el-menu-item>

    </el-menu>
例子的数组:

asideMenu: [
                    {
                        path: /, //地址
                        label: 首页, // 菜单标识
                        icon: home, //图标选取的是element图表,然后拼接到上面
                    },
                    {
                        path: "/video",
                        label: 视频管理,
                        icon: video-play
                    },
                    {
                        path: "/user",
                        label: 用户管理,
                        icon: user
                    },
                    //二级菜单
                    {
                        label: 多级菜单,
                        icon: user,
                        children: [
                            {
                                path: "/page1",
                                label: 页面1,
                                icon: setting
                            },
                            {
                                path: "/page2",
                                label: 页面1,
                                icon: user
                            },
                        ]
                    },
                ]

将数组循环到导航菜单上面, 因为里面有二级菜单,而且是独立的部分 ,使用v-for不是很好,这里使用 计算属性判断是否含有children

computed: {
    noChildren() {
        return this.asideMenu.filter(item =>
            !item.children
        )
    },

    hasChildren() {
        return this.asideMenu.filter(item =>
            item.children
        )
    }
},
<!--        单级菜单-->
<el-menu-item 
:index="item.path"
 v-for="item in noChildren" 
:key="item.path">
    <i :class="‘el-icon-‘ + item.icon"></i>
      <span slot="title">{{item.label}}</span>
</el-menu-item>

<!--        多级菜单-->
        <el-submenu index="index" v-for="(item,index) in hasChildren" :key="index">
            <template slot="title">
      <i class="el-icon-menu"></i>

      <span>{{item.label}}</span> </template>

            <el-menu-item-group>

                <el-menu-item :index="subItem.path"
                              v-for="(subItem,subIndex) in item.children"
                              :key="subIndex">
                    {{subItem.label}}
                </el-menu-item>
            </el-menu-item-group>
        </el-submenu>

 

Element-UI 写后台【一】 左侧导航

原文:https://www.cnblogs.com/0520euv/p/11716617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!