element-ui菜单el-menu的使用

效果演示

先给大家看一下效果吧

el-menu详解

属性名说明类型可选值默认值
mode菜单展示模式stringhorizontal / verticalvertical
collapse是否水平折叠收起菜单(仅在 mode 为 vertical 时可用)booleanfalse
ellipsis是否省略多余的子项(仅在横向模式生效)booleantrue
background-color菜单的背景颜色(十六进制格式)(已被废弃,使用--bg-colorstring#ffffff
text-color文字颜色(十六进制格式)(已被废弃,使用--text-colorstring#303133
active-text-color活动菜单项的文本颜色(十六进制格式)(已被废弃,使用--active-colorstring#409EFF
default-active页面加载时默认激活菜单的 indexstring
default-openeds默认打开的 sub-menu 的 index 的数组Array
unique-opened是否只保持一个子菜单的展开booleanfalse
menu-trigger子菜单打开的触发方式,只在 mode 为 horizontal 时有效。stringhover / clickhover
router是否启用 vue-router 模式。 启用该模式会在激活导航时以 index 作为 path 进行路由跳转 使用 default-active 来设置加载时的激活项。booleanfalse
collapse-transition是否开启折叠动画booleantrue
popper-effectTooltip 主题,内置了 dark / light 两种主题stringdark / lightdark
方法名说明参数
open展开指定的 sub-menuindex: 需要打开的 sub-menu 的 index
close收起指定的 sub-menuindex: 需要收起的 sub-menu 的 index
事件名说明回调参数
select菜单激活回调index: 选中菜单项的 index, indexPath: 选中菜单项的 index path, item: 选中菜单项, routeResult: vue-router 的返回值(如果 router 为 true)
opensub-menu 展开的回调index: 打开的 sub-menu 的 index, indexPath: 打开的 sub-menu 的 index path
closesub-menu 收起的回调index: 收起的 sub-menu 的 index, indexPath: 收起的 sub-menu 的 index path
插槽名说明子标签
自定义默认内容SubMenu / Menu-Item / Menu-Item-Group
属性名说明类型可选值默认值
index唯一标志string
popper-class为 popper 添加类名string
show-timeout展开 sub-menu 的延时number300
hide-timeout收起 sub-menu 的延时number300
disabled是否禁用booleanfalse
popper-append-to-body(已废弃)是否将弹出菜单插入至 body 元素。 在菜单的定位出现问题时,可尝试修改该属性boolean一级子菜单:true / 非一级子菜单:false
teleported是否将 popup 的下拉列表插入至 body 元素boolean一级子菜单:true / 非一级子菜单:false
popper-offset弹出窗口偏移number6
expand-close-icon父菜单展开且子菜单关闭时的图标, expand-close-iconexpand-open-icon 需要一起配置才能生效string | Component
expand-open-icon父菜单展开且子菜单打开时的图标, expand-open-iconexpand-close-icon 需要一起配置才能生效string | Component
collapse-close-icon父菜单收起且子菜单关闭时的图标, expand-close-iconexpand-open-icon 需要一起配置才能生效string | Component
collapse-open-icon父菜单收起且子菜单打开时的图标, expand-open-iconexpand-close-icon 需要一起配置才能生效string | Component
插槽名说明子标签
自定义默认内容SubMenu / Menu-Item / Menu-Item-Group
title自定义标题内容
属性名说明类型可选值默认值
index唯一标志string/nullnull
routeVue Router 路径对象object
disabled是否禁用booleanfalse
事件名说明回调参数
click菜单点击时的回调函数el-menu-item 实例
插槽名说明
自定义默认内容
title自定义标题内容
属性名说明类型可选值默认值
title组标题string
插槽名说明子标签
默认插槽内容Menu-Item
title自定义组标题内容

直接上代码

  <!--添加动画效果:设置内部样式-->
    <div class="slider-navs" :style="{ width: menuStore.isCollapse ? '64px' : '210px' }">
        <div v-if="menuStore.toggleStore" class="logo">{{ menuStore.isCollapse ? 'J' : "JKW" }}</div>
        <!--background-color:背景颜色(只有菜单这块,菜单占多少背景占多少) 
            text-color:文本颜色 
            active-text-color:选中后文本颜色
            :default-active="active":点击高亮(与index=""搭配,在script设置默认访问/)
            router:可以把点击高亮里的index的地址变为路由地址,进行路由访问
            :collapse:是否开启折叠面板
            unique-opened 是否只保持一个子菜单的展开
            点击的是el-sub-menu,所以el-sub-menu 的唯一性是必须的,设置index属性来保持唯一性
        -->
        <el-menu background-color="rgba(255,255,255,.1)" text-color="rgb(214, 205, 251)" active-text-color="orange"
            :default-active="active" router class="el-menu-vertical-demo" :collapse="menuStore.isCollapse" unique-opened>
            <el-menu-item index="/home/index">
                <el-icon>
                    <HomeFilled />
                </el-icon>
                <span>首页</span>
            </el-menu-item>

            <el-sub-menu index="99">
                <template #title>
                    <el-icon>
                        <Tickets />
                    </el-icon>
                    <span>页面</span>
                </template>
                <el-menu-item index="/:pathMath(.*)*">
                    <el-icon>
                        <Warning />
                    </el-icon>
                    <span>404</span>
                </el-menu-item>

            </el-sub-menu>

            <el-sub-menu index="1">
                <template #title>
                    <el-icon>
                        <Management />
                    </el-icon>
                    <span>分析</span>
                </template>
                <el-menu-item index="/annlysis/Analysis1">
                    <el-icon>
                        <Operation />
                    </el-icon>
                    <span>样例1</span>

                </el-menu-item>

            </el-sub-menu>

            <el-sub-menu index="2">
                <template #title>
                    <el-icon>
                        <Tools />
                    </el-icon>
                    <span>系统</span>
                </template>
                <el-menu-item index="/sys/admin">
                    <el-icon>
                        <User />
                    </el-icon>
                    <span>用户</span>
                </el-menu-item>
                <el-menu-item index="/sys/role">
                    <el-icon>
                        <CopyDocument />
                    </el-icon>
                    <span>角色</span>
                </el-menu-item>
                <el-menu-item index="/sys/permission">
                    <el-icon>
                        <Lock />
                    </el-icon>
                    <span>权限</span>
                </el-menu-item>
            </el-sub-menu>


        </el-menu>
    </div>

<script setup>
import { ref } from 'vue';
import { useMenuStore } from "@/stores/menuStore.js";//stores
//解决页面刷新后 菜单高亮与面包屑不匹配
const menuStore = useMenuStore()
const active = ref("/")
if (localStorage.getItem("active")) {
    active.value = localStorage.getItem("active")
}
</script>
<style scoped>
.slider-navs {
    background-image: linear-gradient(135deg, #EE9AE5 10%, #5961F9 100%) !important;
    /*固定在左侧(position: fixed生成绝对定位的元素, 相对于浏览器窗口进行定位) */
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    /*width: 210px;*/

    /*设置动画过渡 和<el-menu>内部的一样 */
    transition: 0.3s ease-in;
}

.el-menu-vertical-demo {
    background-image: linear-gradient(to bottom right, rgb(114, 135, 254), rgb(130, 88, 186));

}

.logo {
    background-image: linear-gradient(120deg, #00e4d0, #5983e8) !important;
    /*需要在App.vue设置公共样式,把element menu的右边框去掉,否则对不齐 */
    width: 100%;
    height: 60px;
    background-color: #364e6d;
    font-size: 45px;
    font-weight: 900;
    color: rgb(124, 101, 215);
    text-align: center;
    /*左右居中 */
    line-height: 60px;
    /*上下居中:和高度保持一致 */
}

.icon {
    width: 16px;
    height: 16px;
    margin-right: 5px;
    /*让图标和文字有空隙 */
}
</style>

app.vue全局样式的设计

/**侧边栏样式修改 */
.el-menu{
  border-radius: 5px!important;
  background-image: linear-gradient(135deg, #EE9AE5 10%, #5961F9 100%) !important;

}
.el-menu-item{
  border-radius: 15px!important;
}
.el-menu-item.is-active {
 
  font-weight: 900!important;
  font-size: 20px!important;
  color: #c1ecef!important;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试之自动化测试详解

文章目录 一.前言二.selenium介绍三.selenium的组成部分四.Selenium的环境搭建下载浏览器配置环境变量验证环境是否搭建成功 五.Selenium的API打开浏览器元素的定位操作测试对象等待操作信息获取鼠标操作键盘操作选项操作浏览器操作 六.需要用到的包 一.前言 自动化测试指软件…

SQL面试必备:100道高频考题解析

前言 在众多IT职场中&#xff0c;SQL技术一直是一个非常重要的技能点。如果你正在准备SQL相关的面试&#xff0c;那么这份“SQL面试 100 问”绝对是你不能错过的宝藏&#xff01; 这份清单涵盖了100道高频考题&#xff0c;从基础知识到复杂应用都有所涉及&#xff0c;帮助你全…

树莓派485转USB串口调试教程

步骤1&#xff1a;接线方式&#xff1a;485转USB 注意接线口是否对应&#xff1a;A1B1 步骤2&#xff1a;查看串口配置—映射关系是否正确 命令&#xff1a;ls -l /dev serial0即GPIO映射的串口&#xff0c;默认是ttyS0&#xff0c;即mini串口 serial1即板载蓝牙映射的串口&am…

关于原生feign发起请求时,参数注解的相关问题

先说结论&#xff1a; POST请求必须指定请求头&#xff0c;body参数用RequestBody或者Param&#xff08;需要一个一个写&#xff09;。 GET请求&#xff0c;传参只能用QueryMap&#xff0c;后边变量是Map形式&#xff0c;哪怕是一个参数也必须放到map里边。如果是路径变量&…

Java 集合中 ArrayList 的扩容机制原理(面试+读源码)

在 Java 中&#xff0c;ArrayList 内部是通过一个数组来存储元素的&#xff0c;是一个数组结构的存储容器。当向一个 ArrayList 中添加元素时&#xff0c;如果当前数组已经满了&#xff0c;就需要扩容。 集合的继承关系图 一、面试回答 ( ArrayList 的扩容机制原理 ) 面试…

Solidity基础六

生活本来就是平凡琐碎的&#xff0c;哪有那么多惊天动地的大事&#xff0c;快乐的秘诀就是不管对大事小事都要保持热情 目录 一、Solidity的特殊变量(全局) 二、Solidity的不可变量 immutable的赋值方式 三、Solidity的事件与日志 事件和日志加深理解 四、Solidity的异常…

ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》

论文总结 以下是我阅读完整篇论文做的个人总结&#xff0c;基本包含了chatGPT1设计的完整框架思路&#xff0c;可以仅看【论文总结】章节。 在GPT1实现的核心架构中&#xff0c;包含两个阶段。 第一阶段 在第一阶段基于一个包含7000本书籍内容的海量未标注文本数据集进行无…

注解-反射-XML配置原理

java刚开始原本是直接在方法中创建对象执行程序等&#xff0c;部分代码重复率高&#xff0c;后来就发展成方法封装调用&#xff0c;再后来出现的像spring框架等&#xff0c;引入了XML配置&#xff0c;使得程序更加简洁&#xff0c;方便等&#xff0c;其中XML配置也是基于java反…

java+iClientOpenlayers实现污水排放扩散模拟(湖库污染排放扩散模拟)

软件实现效果 一、应用背景 湖库污染是一个日益严峻的环境问题。随着城市化和工业化的加速发展&#xff0c;越来越多的有害物质被排放入湖库中&#xff0c;导致湖库污染加剧并扩散到周围地区。本文将探讨湖库污染扩散的原因、影响和解决方法。 首先&#xff0c;湖库污染扩散的…

堆排序之——TopK问题

思维导图&#xff1a; 一&#xff0c;TopK算法的运用 TopK的算法在我们的日常生活中可谓是大有用处&#xff0c;比如你在点外卖时外卖榜单上的销量前几名的筛选&#xff0c;富豪排行榜的榜单人物的筛选&#xff0c;游戏排位……等等领域都会有TopK算法的涉及。TopK问题的用处可…

github创建仓库和拉取代码

目录 一、git创建仓库 第一步&#xff1a;首先登录github 第二步&#xff1a;进入建立的仓库(或者新建仓库) 第三步&#xff1a;创建成功 第四步&#xff1a;在本地新建一个文件夹&#xff0c;然后在文件夹下打开git bash 第五步&#xff1a;在git bash命令框执行git init…

专业解读财务共享实现财务数智化转型的有效路径

近年来&#xff0c;随着数字经济的飞速发展&#xff0c;各大企业全面开启数智化转型之路&#xff0c;作为企业数智化转型的重要内容&#xff0c;财务数智化转型始于财务共享服务。然而&#xff0c;财务共享建设并不是一蹴而就的&#xff0c;如何通过财务共享实现财务数智化转型…

什么是分布式软件系统

:什么是分布式软件系统&#xff1f;分布式软件系统是什么意思&#xff1f; 分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分…

阻抗板是否高可靠,华秋有话说

随着高频高速电子产品的快速发展&#xff0c;信号传输过程更容易出现反射、串扰等信号完整性问题&#xff0c;且频率越高、传输速率越快&#xff0c;信号损耗越严重&#xff0c;如何降低信号在传输过程中的损耗、保证信号完整性是高频高速PCB发展中的巨大挑战。 在高速PCB设计…

Spring源码(一) — 序言

序言 Java程序员的日常开发一定都离不开Spring的框架&#xff0c;从Spring、SpringMVC、SpringBoot、SpringCloud… 而Spring框架就是Spring家族中最基础也是最重要的一个框架。 Spring 我们常说的Spring往往都绕不开IOC&#xff08;控制反转&#xff09;和AOP&#xff08;切…

【TellMeCode】使用VSCODE + ChatGPT辅助分析推测源码

【TellMeCode】使用VSCODE ChatGPT辅助分析推测源码 0x00 功能简介 根据代码上下文相关信息&#xff0c;如工作区文件夹名称&#xff0c;代码所在路径等一系列信息&#xff0c;提供给大模型更多元和尽可能多的信息&#xff0c;利用其自身优势去检索相关的文档和博客&#xf…

QT开发实战-动态壁纸软件

动态壁纸软件开发 项目源代码在下面链接获取: ----------------------------- 开发者:CodeSharkSJ 希望此项目能加强你对Qt的应用 文章目录 项目图与开发环境核心技术原理自定义窗口程序UI布局背景绘制样式表基本实现QWebEngineQMedia使用系统托盘隐藏记忆功能应用程序打包 …

RestCloud荣膺广东省优秀软件产品奖,引领国内数据集成领域!

近日&#xff0c;“2022年广东软件风云榜”名单公布&#xff0c;“谷云ETL数据交换软件”凭借其在助力企业数字化转型升级过程中的卓越表现&#xff0c;荣获由羊城晚报报业集团、广东软件行业协会、广东省大数据协会联合颁发的“优秀软件产品和解决方案”奖。 数字化转型是推动…

【P38】JMeter 随机控制器(Random Controller)

文章目录 一、随机控制器&#xff08;Random Controller&#xff09;参数说明二、测试计划设计2.1、测试计划一2.2、测试计划二2.3、勾选忽略子控制器块 一、随机控制器&#xff08;Random Controller&#xff09;参数说明 可以让控制器内部的逻辑随机执行一个&#xff0c;一般…

深度学习-第T8周——猫狗识别

深度学习-第T8周——猫狗识别 深度学习-第T8周——猫狗识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目 四、数据预处理1、 加载数据1.1、设置图片格式1.2、划分训练集1.3、划分验证集1.4、查看标签1.5、再次检查数据1.6、配置数据集 2、数据可视化 五、搭建…