后台菜单数据递归展示

后台菜单数据递归展示

    • 效果示例图
    • aslide.vue
    • aslideItem.vue
    • menu

效果示例图

在这里插入图片描述

aslide.vue

<script setup>import {ref} from 'vue';const props = defineProps({isCollapse: {type: Boolean,default: false}});import AslideItem from "./aslideItem.vue"const defaultActive = ref('1');const menuList = ref([{id: 1,name: '地址管理',path: '',type: 'M',icon: '',children: [{id: 2,name: '地址列表',path: '',type: 'C',icon: ''}, {id: 3,name: '订单地址列表',path: '',type: 'C',icon: ''}, {id: 4,name: '商品地址管理',path: '',type: 'M',icon: '',children: [{id: 5,name: '商品地址列表',path: '',type: 'C',icon: ''}, {id: 6,name: '关联地址列表',path: '',type: 'C',icon: ''}, {id: 9,name: '数据管理',path: '',type: 'M',icon: '',children: [{id: 10,name: '数据列表',path: '',type: 'C',icon: ''}]}]}]}, {id: 7,name: '系统列表',path: '',type: 'C',icon: '',}, {id: 8,name: '用户列表',path: '',type: 'C',icon: '',}, {id: 11,name: '订单管理',path: '',type: "M",icon: '',children: []}])//点击-目录菜单const menuItemHandle = (row) => {defaultActive.value = row.id;}
</script><template><el-menu :default-active="defaultActive.toString()" class="el-menu-vertical-demo" :collapse="isCollapse"><template v-for="item in menuList" :key="item.id"><AslideItem :item="item" @clickEvent="menuItemHandle" /></template></el-menu>
</template><style lang="scss" scoped>
</style>

aslideItem.vue

<template><template v-if="item.children"><el-sub-menu :index="item.id.toString()"><template #title><el-icon><location /></el-icon><span>{{item.name}}</span></template><template v-for="child in item.children" :key="child.id"><AslideItem :item="child" @clickEvent="menuItemHandle" /></template></el-sub-menu></template><template v-else><el-menu-item :index="item.id.toString()" @click="menuItemHandle(item)"><el-icon><Setting /></el-icon><template #title>{{item.name}}</template></el-menu-item></template>
</template><script>export default {name: 'AslideItem',props: {item: {type: Object,default: () => {return {}}}},mounted() {},methods: {menuItemHandle(row) {this.$emit("clickEvent", row)}}}
</script><style lang="scss" scoped>
</style>

menu

<el-menu class="el-menu-vertical-demo"><el-sub-menu index="1"><template #title><el-icon><location /></el-icon><span>地址管理</span></template><el-menu-item index="1-1" @click="menuItemHandle('1-1')"><el-icon><Memo /></el-icon><span>地址列表</span></el-menu-item><el-menu-item index="1-2" @click="menuItemHandle('1-2')"><el-icon><Memo /></el-icon><span>订单地址列表</span></el-menu-item><el-sub-menu index="1-3"><template #title><el-icon><Menu /></el-icon><span>商品地址管理</span></template><el-menu-item index="1-3-1" @click="menuItemHandle('1-3-1')"><el-icon><Memo /></el-icon><span>商品地址列表</span></el-menu-item><el-menu-item index="1-3-2" @click="menuItemHandle('1-3-2')"><el-icon><Memo /></el-icon><span>关联地址列表</span></el-menu-item></el-sub-menu></el-sub-menu><el-menu-item index="2" @click="menuItemHandle('2')"><el-icon><Setting /></el-icon><template #title>系统管理</template></el-menu-item><el-menu-item index="3" @click="menuItemHandle('3')"><el-icon><UserFilled /></el-icon><template #title>用户管理</template></el-menu-item>
</el-menu>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706588.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA 配置JDK

IntelliJ IDEA-之配置JDK 我们的开发神器IDEA安装好了之后&#xff0c;在实际开发中&#xff0c;我们如何去配置好JDK的版本呢&#xff1f; 注意&#xff1a;需要保证JDK在已经成功安装的情况下&#xff0c;再进行IDEA的配置 现在就行动&#xff0c;让IntelliJ IDEA成为你征…

Nginx启动关闭重启用脚本实现

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Nginx(“engine x”…

Windows 10无法远程桌面连接:原因及解决方案

在信息技术日益发展的今天&#xff0c;远程桌面连接已成为企业日常运维、技术支持乃至个人用户远程办公的必备工具。然而&#xff0c;有时我们可能会遇到Windows 10无法远程桌面连接的问题&#xff0c;这无疑会给我们的工作和生活带来诸多不便。 原因分析 1、远程访问未启用&a…

AI智能体|案例实操:使用扣子Coze创建医药助手Bot

大家好&#xff0c;我是无界生长。 最近在做AI智能体定制项目&#xff0c;疯狂接单中&#xff0c;大家如果有定制需求可以联系我。下面分享一个实操案例&#xff1a;使用扣子Coze创建医药助手Bot&#xff0c;为了方便演示&#xff0c;对案例中的数据进行了简化及脱敏&#xff0…

JUnit5测试用例调度

maven中的junit5的一些注意点&#xff1a; maven-surefire-plugin maven对应有默认配置当需要修改一些测试相关执行策略的时候&#xff0c;就需要重修配置这个插件 mvn执行测试用例 命令行执行&#xff1a;通过按ALT和F12打开idea的终端 mvn test &#xff1a;执行案例下的…

GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))

1. GoF之代理模式&#xff08;静态代理动态代理(JDK动态代理CGLIB动态代理带有一步一步详细步骤)&#xff09; 文章目录 1. GoF之代理模式&#xff08;静态代理动态代理(JDK动态代理CGLIB动态代理带有一步一步详细步骤)&#xff09;每博一文案2. 代理模式的理解3. 静态代理4. 动…

使用Flask-RESTful构建RESTful API

文章目录 安装Flask-RESTful导入模块和类创建一个资源类运行应用测试API总结 Flask是一个轻量级的Python web开发框架&#xff0c;而Flask-RESTful是一个基于Flask的扩展&#xff0c;专门用于构建RESTful API。它提供了一些帮助类和方法&#xff0c;使构建API变得更加简单和高效…

R实验 基础(二)

实验目的&#xff1a; 掌握向量的几种类型&#xff1a;数值向量、逻辑向量、字符向量、复数向量&#xff1b;掌握生成向量几个的函数使用和向量的下标运算&#xff1b;掌握因子的定义和相关函数的使用。 实验内容&#xff1a; R语言中&#xff0c;数值向量用得非常多。生成数…

探索Docker:在本地开发与云端部署之间实现无缝切换

探索Docker&#xff1a;在本地开发与云端部署之间实现无缝切换 摘要&#xff1a; 在这个时代&#xff0c;我们都在寻找一种能够在本地和云端无缝切换的解决方案。我们的团队和一群【老六】一起&#xff0c;研究了如何使用Docker来实现这个目标。我们的研究成果将帮助IT开发人员…

错误、调试和测试

在程序运行过程中&#xff0c;总会遇到各种各样的错误。 有的错误是程序编写有问题造成的&#xff0c;比如本来应该输出整数结果输出了字符串&#xff0c;这种错误我们通常称之为bug&#xff0c;bug是必须修复的。 有的错误是用户输入造成的&#xff0c;比如让用户输入email地…

【k8s】kubernetes更新操作详解--kubectl apply(patch、replace)

1. 背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎&#xff0c;在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等控制器&#xff0c;但 OpenKruise 提供了更多的增强功能如&#xff1a;优雅原地升级、发布优先级/打散策略、多可用区workload抽象管理、…

C#知识|上位机子窗体嵌入主窗体方法(实例)

哈喽,你好啊,我是雷工! 上位机开发中,经常会需要将子窗体嵌入到主窗体, 本节练习C#中在主窗体的某个容器中打开子窗体的方法。 01 需求说明 本节练习将【账号管理】子窗体在主窗体的panelMain容器中打开。 账号管理子窗体如下: 主窗体的panelMain容器位置如图: 02 实现…