vue elementUI封装的无限多级导航菜单(递归循环)

news/2024/11/19 19:24:54/

在这里插入图片描述

需要封装成两个文件:
在这里插入图片描述

  1. menu/index.vue
<template><el-menuclass="box-card"unique-opened:collapse="$store.state.isCollapse":default-active="$store.state.nowPage"background-color="#2f3332"text-color="#fff"active-text-color="#4af4d2"><MenuList :data="$store.state.permissionMenu"></MenuList></el-menu>
</template><script>
/*** @author        全易* @time          2020-10-05 16:38:30  星期一* @description   菜单栏*/
import MenuList from "./list";export default {name: "Menu",components: {MenuList,},
};
</script><style lang="less" scoped>
.no-menus {color: #ffffff;padding: 15px;
}
.fa {vertical-align: middle;margin-right: 5px;width: 24px;text-align: center;
}
.box-card {border: none;height: 100vh;overflow: auto;.menu {height: calc(100vh - 175px);overflow: auto;}.often {z-index: 1;position: sticky;top: 0;color: #ffffff;padding: 10px 0;border-bottom: 1px solid #6b6b6b;background-color: #2f3332;.title {margin-bottom: 8px;padding-left: 8px;}.item {height: 28px;line-height: 28px;font-size: 12px;}}
}
</style>
  1. menu/list.vue
    注意这个文件用到了vue-fragment插件,需要安装
<template><vue-fragment class="menu-list"><template v-for="item in data"><el-menu-itemv-if="item.children.length < 1":key="item.menuIdStr":index="item.menuIdStr"@click="goPage(item)"><i :class="item.icon"></i><span slot="title">{{ item.menuName }}</span></el-menu-item><el-submenu v-else :key="item.menuIdStr" :index="item.menuIdStr"><template slot="title"><i :class="item.icon"></i><span slot="title">{{ item.menuName }}</span></template><MenuList :data="item.children"></MenuList></el-submenu></template></vue-fragment>
</template><script>
/*** @author        全易* @time          2021-04-26 08:48:57  星期一* @description   菜单栏列表*/
import { Fragment } from 'vue-fragment'export default {name: "MenuList",components: { 'vue-fragment':Fragment },props: {data: {type: Array,default() {return [];},},},methods: {// 跳转页面goPage(page) {// console.log(page);if (this.$route.path !== page.url) {this.$router.push(page.url);}},},
};
</script><style lang="less" scoped>
.fa {vertical-align: middle;margin-right: 5px;width: 24px;text-align: center;
}
</style>

两个文件封装完成,在使用的地方引入就好了
在这里插入图片描述


http://www.ppmy.cn/news/497386.html

相关文章

大疆智图的常见问题

大疆智图部分功能不能正常使用&#xff0c;需收费&#xff1a;在网页激活之后&#xff0c;在智图个人中心查看许可证是否绑定&#xff0c;软件激活之后无网使用需要隔两天进行一次登录 连接不上服务器&#xff0c;无法进行权限验证&#xff1a;1、注销后重新登录/更换网络环境&…

大疆无人机参数解释YAW/Roll/Pitch

大疆无人机安卓Mobile Sdk开发&#xff08;一&#xff09;简单介绍 很多人对yaw&#xff0c;roll&#xff0c;和picth的含义不是很懂&#xff0c;下面用大疆官方的一张图给大家解释一下&#xff0c;一目了然 pitch是俯仰&#xff0c;roll是横滚&#xff0c;yaw是航向&#xf…

大疆红外相机测温

一、API&#xff08;以Android SDK为例&#xff09; 1、isThermalCamera // 判断是否是热成像相机 判断是否是热成像相机&#xff0c;只有热成像相机&#xff0c;调用以下的API才有意义2、setDisplayMode // 设置热成像相机显示模式&#xff1a;&#xff08;1&#xff09;可…

大疆激光雷达livox avia 在ubuntu18.04+ROS中基本使用方法

Readme 大疆livox avia 固态激光雷达操作步骤&#xff1a; 1.参考本人CSDN博客lsg_dawn中收藏中的一篇关于ubuntu18.04中使用livox avia 雷达的文章 Livox Avia 雷达测试使用 ----- 测试使用&#xff08;Ubuntu18.04 ROS Melodic&#xff09;_杰尼君的博客-CSDN博客 2.连接好…

大疆无人机飞行器航空器坐标知识整理

一、大地坐标系。GIS开发&#xff0c;移动开发&#xff0c;web开发&#xff0c;GPS&#xff08;非专业GIS人士&#xff0c;若有错误求轻锤&#xff09;。全文以大疆无人机开发为背景举例说明。 我们常用的民用坐标系常用的有&#xff1a; 1、WGS84坐标系&#xff1a;即地球坐…

大疆热红外图片温度读取

适用于 大疆禅思 Zenmuse H20 系列拍摄的红外图片&#xff0c;依赖于大疆发布的TSDK&#xff08;DJI Thermal SDK&#xff09;&#xff0c;可用于视频的动态测温。 其实对TSDK并未深入研究&#xff0c;只是某一个小项目要使用TSDK处理H20拍摄的红外照片&#xff0c;利用TSDK中…

无人机自由飞行测试台 FFT GYRO 600

产品简介 无人机在研制过程中需要不断地进行飞行测试&#xff0c;而测试的过程不是万无一失的&#xff0c;飞行过程中发生任何错误都有可能会导致无人机的损毁或破坏&#xff0c;更严重地甚至会造成外界伤害。 基于此我们推出了无人机的三旋转自由度(3-DOF)飞行平台测试系统&…

序列化框架的选择- hession2、kyro、protostuff

序列化框架的选择 前言Hessian 2KryoProtostuff性能对比其他比较 前言 当涉及到序列化框架时&#xff0c;Hessian 2、Kryo 和 Protostuff 是三个常见的选择。它们在性能、跨语言支持、序列化大小和使用灵活性等方面存在一些差异。hession2、kyro、protostuff都是第三方开源的序…