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

news2024/10/6 18:22:05

在这里插入图片描述

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

  1. menu/index.vue
<template>
  <el-menu
    class="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-item
        v-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.coloradmin.cn/o/669750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈电力通信与泛在电力物联网技术的应用与发展

安科瑞 崔丽洁 摘要&#xff1a;随着我国社会经济的快速发展&#xff0c;我国科技实力得到了巨大的提升&#xff0c;当前互联网通信技术在社会中得到了广泛的应用。随着电力通信技术的快速发展与更新&#xff0c;泛在电力物联网建设成为电力通讯发展的重要方向。本文已泛在电力…

股票量化分析工具QTYX使用攻略——每日涨停数据选股(更新2.6.6)

搭建自己的量化系统 如果要长期在市场中立于不败之地&#xff01;必须要形成一套自己的交易系统。 如何学会搭建自己的量化交易系统&#xff1f; 边学习边实战&#xff0c;在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习&#xff0c;也可以用于实战炒股分析的量…

深入剖析Java 8的Stream并行原理,加速你的程序!

大家好&#xff0c;我是小米&#xff0c;在本期技术分享中&#xff0c;我将为大家详细介绍JDK1.8中的Stream以及它的并行操作原理。Stream是Java 8引入的一个强大的数据处理工具&#xff0c;可以让我们以一种简洁、高效的方式对集合数据进行操作和处理。接下来&#xff0c;我们…

C++初阶—模板进阶

目录 1. 非类型模板参数及容器arrary 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3 类模板特化应用示例 3. 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 1. 非类型模板参数及容器a…

K8S:二进制安装K8S(单台master)安装etcd和master

系列文章目录 文章目录 系列文章目录一、安装K8S1.系统初始化配置2.部署docker引擎3.部署etcd集群 二、1.2. 总结 一、安装K8S 1.系统初始化配置 注意&#xff1a;该操作在所有node节点上进行&#xff0c;为k8s集群提供适合的初始化部署环境 #所有节点执行 systemctl stop f…

SSM长白山旅游网站-计算机毕设 附源码87175

SSM长白山旅游网站 目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3 论文结构与章节安排 2 长白山旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2…

编译原理笔记9:语法分析树、语法树、二义性的消除

目录 语法分析树分析树与语言和文法的关系 语法树二义性及二义性的消除二义性问题优先级、结合性&#xff1a;引起二义性的根本原因【悬空&#xff08;dangling&#xff09;else】 问题 二义性的消除1. 改写二义文法为非二义文法让我们来搞【悬空 else 】罢&#xff01; 2. 规定…

数据分析年轻人的消费动向,小红书盲盒营销怎么玩?

一、ESG营销视角&#xff1a;Z世代年轻价值观的转向 近期&#xff0c;深受品牌方热议的ESG营销是什么呢&#xff1f; ESG 是 Environment&#xff08;环境&#xff09;、Society&#xff08;社会&#xff09; 和 Governance&#xff08;治理&#xff09;的缩写&#xff0c;是…

【openvpn】TAP模式

TAP与TUN模式简介 在OpenVPN中有两种工作模式&#xff0c;一种称为 TUN(tunnel)模式&#xff0c;即通道的意思&#xff1b;另一种是TAP(Terminal Access Point)模式&#xff0c;即一种网络设备或软件虚拟设备的意思。 TUN模式是一种虚拟点对点的网络设备模式。通常用于实现点…

即视角|出海正当时:欧美、东南亚、中东、拉美市场观察

即视角 Insight 共享即构新洞察&#xff0c;共建行业新动能——ZEGO即构科技基于音视频技术领域的多年深耕&#xff0c;综合面向各行业的服务经验&#xff0c;推出【即视角】栏目&#xff0c;发布即构对行业的洞察。欢迎大家探讨论道&#xff0c;共驱前行。 https://v.douyin…

【Note9】

9.PECI&#xff08;Platform Environment Control Interface&#xff09;&#xff1a;peci是 intel提供的私有协议&#xff0c;openbmc是由intel授权的&#xff0c;其他不授权是不能用。硬件上是一根线&#xff0c;不像i2c是2根线 11.1 模式和命令介绍&#xff1a;peci1.1只支…

华为OD机试之拔河比赛(Java源码)

文章目录 拔河比赛题目描述输入描述输出描述示例代码 拔河比赛 题目描述 公司最近准备进行拔河比赛&#xff0c;需要在全部员工中进行挑选。 选拔的规则如下&#xff1a; 按照身高优先、体重次优先的方式准备比赛阵容&#xff1b;规定参赛的队伍派出10名选手。 请实现一个选…

Imagination如何引领更安全的汽车行业?

如果您想购买一款全新的车辆&#xff0c;它很有可能配备数字显示屏&#xff0c;为用户体验提供丰富的驾驶体验&#xff0c;并可自由设置显示。想要更动感的仪表盘&#xff1f;那也没问题&#xff0c;只需改变驾驶主题。亦或是把音乐放在居中位置&#xff0c;同时在另一个屏幕上…

兼容性测试可否提高用户满意度?

兼容性测试可否提高用户满意度? 在信息化时代&#xff0c;软件应用的兼容性一直是一个重要的问题。由于操作系统版本、硬件设备、浏览器等因素的差异&#xff0c;软件在不同环境下运行的稳定性和表现也会不同。因此&#xff0c;如果对软件在不同的环境下进行兼容性测试&#x…

qt信号槽

目录 自定义信号槽 所谓信号槽&#xff0c;实际就是观察者模式 (发布 - 订阅模式)。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是没有目的的&#xff0c;类似广播。如…

springboot实验室管理系统-计算机毕设 附源码86757

springboot实验室管理系统 摘 要 验室管理系统是将实验室的分析仪器通过计算机网络连起来&#xff0c;采用科学的管理思想和先进的数据库技术&#xff0c;实现以实验室为核心的整体环境的全方位管理。它集用户管理&#xff0c;实验室信息管理&#xff0c;实验室预约管理&#x…

【历史上的今天】6 月 21 日:第一台存储程序计算机首次运行;XML 之父诞生;IBM 推出 AS/400

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 6 月 21 日&#xff0c;在 23 年前的今天&#xff0c;中国联通公司在香港、纽约成功上市&#xff0c;筹资 56.5 亿美元&#xff0c;进入全球首次股票公开发行史…

LeetCode - #86 分隔链表

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…

Cortext-M3系列:M3的底层编程(7)

1、概览 在CM3上编程&#xff0c;既可以使用C也可以使用汇编&#xff0c;keil也支持C&#xff0c;但是大多数人还是会在C与汇编。C与汇编都“尺有所短&#xff0c;寸有所长”&#xff0c;不能互相取代。使用C能开发大型程序&#xff0c;而汇编则用于执行特种任务。 1.1 使用汇…

去中心化金融(DeFi)的发展历史

随着Web3.0的兴起&#xff0c;去中心化金融&#xff08;Decentralized Finance&#xff0c;DeFi&#xff09;正逐渐成为金融领域的热门话题。DeFi旨在通过区块链技术和智能合约&#xff0c;实现无需信任的金融交易和服务&#xff0c;摆脱传统金融中心化的限制。然而&#xff0c…