超级好用的elementui动态循环菜单

简介: 超级好用的elementui动态循环菜单
<template>
    <div>
        <el-menu
            @select="selectMenu"
            :default-active="currentIndexLight"
            class="el-menu-vertical-demo"
            @open="handleOpen"
            @close="handleClose"
            background-color="#545c64"
            text-color="#fff"
            :router="startRouter"
            active-text-color="#ffd04b"
        >
            <!--  
            :default-openeds="arrIndex"
            -->
            <div v-for="item in menuList" :key="item.path">
                <!-- 没有子菜单 -->
                <template v-if="item.children && item.children.length == 0">
                    <el-menu-item :index="item.path">
                        <i class="el-icon-menu"></i>
                        {{item.title}}
                    </el-menu-item>
                </template>
                <!-- 有子菜单 -->
                <el-submenu v-else :index="item.path">
                    <template slot="title">
                        <i class="el-icon-menu"></i>
                        {{item.title}}
                    </template>
                    <template v-for="child in item.children">
                        <!-- 这里是类似递归循环 -->
                        <sidebar-item
                            v-if="child.children&&child.children.length>0"
                            :item="child"
                            :key="child.path"
                        />
                        <el-menu-item v-else :key="child.path" :index="child.path">
                            <i class="el-icon-location"></i>
                            {{child.title}}
                        </el-menu-item>
                    </template>
                </el-submenu>
            </div>
        </el-menu>
    </div>
</template>
<script>


export default {
    data() {
        return {
            startRouter: true,//开启路由标识, ,启用该模式会在激活导航时以 index 作为 path 进行路由跳转
            currentIndexLight: '',//当前激活菜单的 index  高亮显示
            arrIndex: [],
            menuList: [
                {
                    "path": "/awaitdoing",     //菜单项所对应的路由路径
                    "title": "功能1",     //菜单项名称
                    "children": []        //是否有子菜单,若没有,则为[]
                },
                {
                    "path": "/quickset",
                    "title": "功能2",
                    "children": []
                },
                {
                    "path": "aa",
                    "title": "功能3",
                    "children": [
                        {
                            "path": "/awaitdo",
                            "title": "功能3-1",
                            "children": []
                        },
                        {
                            "path": "/alreadygreen",
                            "title": "功能3-2",
                            "children": []
                        },
                        {
                            "path": "/approvedby",
                            "title": "功能3-3",
                            "children": []
                        },
                    ]
                },
                {
                    "path": "/func10",
                    "title": "功能10",
                    "children": []
                }
            ]
        }
    },
    methods: {
        selectMenu(key, keyPath) {
            console.log(key, keyPath)
            this.currentIndexLight = key;
        },
        // 展开指定的 sub-menu
        handleOpen(key, keyPath) {
            console.log('展开的时候触发', key, keyPath);
        },
        //    收起指定的 sub-menu
        handleClose(key, keyPath) {
            console.log('收起的时候触发', key, keyPath);
        }
    }
}
</script>


1425695-20200918222328237-536746244.png


目录
打赏
0
0
0
0
2
分享
相关文章
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
192 0
看一下ARM的IP:SMMUU
看一下ARM的IP:SMMUU
593 1
Logic Error: 如何识别和修复逻辑错误
识别和修复逻辑错误是软件开发中的重要技能。通过理解程序需求、使用调试工具、打印日志和编写单元测试,可以有效地识别逻辑错误。修复逻辑错误时,需仔细阅读代码,回溯错误来源,并进行全面的重新测试。遵循最佳实践,如保持代码简洁、进行代码审查和使用持续集成,可以进一步减少逻辑错误的发生,提高代码质量。希望本文能帮助开发者更好地识别和修复逻辑错误,编写出高质量的软件。
430 16
|
8月前
|
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
208 2
配置Harbor支持https功能实战篇
关于如何配置Harbor支持HTTPS功能的详细教程。
585 12
配置Harbor支持https功能实战篇
前端研发链路之代码规范
大家好,我是徐徐。本文将探讨前端研发链路中的代码规范,包括业界流行规范、CSS命名规范和相关工具。通过保持代码整洁和一致性,不仅能提高团队协作效率,还能减少错误,提升开发质量。文中详细对比了几种常见的代码规范和工具,如 Airbnb Style Guide、BEM、Eslint 和 Prettier,并展望了未来代码规范的发展趋势。希望对大家有所帮助。
227 1
前端研发链路之代码规范
AI在环保中的角色:污染监测与防治
【10月更文挑战第6天】AI在环保领域的应用,不仅提升了污染监测的精准度和防治效率,还推动了环保技术的创新和升级。作为未来环保事业的重要力量,AI正以其独特的优势,为构建更加绿色、可持续的生态环境贡献着智慧与力量。我们有理由相信,在AI的助力下,我们的地球将变得更加美好。
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
283 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问