element-ui_NavMenu-典型导航菜单

element-ui_NavMenu-典型导航菜单

目录




内容

1、效果展示

通过点击三根白色竖线对应的区域,实现导航菜单的展开和折叠

  • 展开示例效果0-1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mkkAhf9Y-1597159258364)(./images/2020-08-11_nav-menu-expand.png)]

  • 折叠示例效果0-2:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xkTZX0II-1597159258366)(./images/2020-08-11_nav-menu-collapse.png)]

2、element-ui 导航菜单组件

  • 通用插槽

      <template slot="title">
        <i class="el-icon-user-solid"></i>
        <span>会员管理</span>
      </template>
    
    • i标签:图标,class指定图标名称,具体参考官网

      • 位置:放置在span标签前,图标出现在文字前;放置在span标签后,出现在文字后
    • span标签内文字:显示在菜单项中的文字

2.1、el-menu 菜单

  • 常用属性详解
属性名类型可接受值默认描述
background-colorstring-#ffffff白色背景色
text-colorstring-#303133文本颜色
default-activestring--默认激活的菜单项,一般设置为子菜单
active-text-colorstring-#409EFF激活的菜单项字体颜色
unique-openedbooleantrue/falsefalse是否只展开一个菜单及其子菜单项,即不同时展开多个菜单项(一级菜单)
collapsebooleantrue/falsefalse是否折叠
collapse-transitionbooleantrue/falsefalse是否显示折叠动画
routerbooleantrue/falsefalse是否激活vue-router模式

2.2、el-submenu 子菜单

属性名类型可接受值默认描述
indexstring--菜单项唯一标志,配合router属性使用

2.3、el-menu-item 菜单项

属性名类型可接受值默认描述
indexstring--菜单项唯一标志,配合router属性使用

3、实现

  • template代码:

      <div class="btn-toggle" @click="toggleCollapse">|||</div>
      	<el-menu
      	  background-color="#333744"
      	  text-color="#fff"
      	  default-active="/report"
      	  active-text-color="#ffd04b"
      	  unique-opened 
      	  :collapse="isCollapse"
      	  :collapse-transition="false"
      	  router 
      	>
      	  <el-submenu index="/index">
      		<template slot="title">
      		  <i class="el-icon-s-home"></i>
      		  <span>首页</span>
      		</template>
      		 <el-menu-item index="/report">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>报表</span>
      		  </template>
      		</el-menu-item>
      	  </el-submenu>
      	  <el-submenu index="2">
      		<template slot="title">
      		  <i class="el-icon-s-grid"></i>
      		  <span>商品管理</span>
      		</template>
      		<el-menu-item index="/category">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>分类管理</span>
      		  </template>
      		</el-menu-item>
      		<el-menu-item index="/brand">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>品牌管理</span>
      		  </template>
      		</el-menu-item>
      		<el-menu-item index="/goodsList">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>商品列表</span>
      		  </template>
      		</el-menu-item>
      		<el-menu-item index="/specification">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>规格参数</span>
      		  </template>
      		</el-menu-item>
      	  </el-submenu>
      	  <el-submenu index="/user">
      		<template slot="title">
      		  <i class="el-icon-user-solid"></i>
      		  <span>会员管理</span>
      		</template>
      		<el-menu-item index="/userList">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>会员管理</span>
      		  </template>
      		</el-menu-item>
      	  </el-submenu>
      	  <el-submenu index="/sale">
      		<template slot="title">
      		  <i class="el-icon-money"></i>
      		  <span>销售管理</span>
      		</template>
      		<el-menu-item index="/order">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>订单管理</span>
      		  </template>
      		</el-menu-item>
      	  </el-submenu>
      	  <el-submenu index="/authority">
      		<template slot="title">
      		  <i class="el-icon-s-tools"></i>
      		  <span>权限管理</span>
      		</template>
      		<el-menu-item index="/role">
      		  <template slot="title">
      			<i class="el-icon-menu"></i>
      			<span>角色管理</span>
      		  </template>
      		</el-menu-item>
      	  </el-submenu>
      	</el-menu>
    
  • script代码

      	...
      	data() {
      		return {
      			isCollapse: false
      		}
      	}
      	...
      	methods: {
      		...
      		toggleCollapse() {
      			this.isCollapse = !this.isCollapse
      		}
      		...
      	}
    

提示 :首页完整代码在博文’全栈项目-乐优商场-主页布局’中,后续菜单项会从数据库获取,实现菜单项的动态更新。

后记

本项目为参考某马视频开发,相关视频及配套资料可自行度娘或者联系本人。上面为自己编写的开发文档,持续更新。欢迎交流,本人QQ:806797785

前端项目源代码地址:https://gitee.com/gaogzhen/ly-bms    // 前端后台管理系统
后端JAVA源代码地址:https://gitee.com/gaogzhen/ly-backend        // 后端项目
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要修改 `NavMenu` 导航菜单里面 `sidebar-item`,需要按照以下步骤进行: 1. 在 `NavMenu` 中找到需要修改的 `sidebar-item`,确定其 `name` 属性。 2. 在你的代码中引入 `NavMenu` 组件。 3. 使用 `$refs` 获取 `NavMenu` 组件的实例。 4. 使用 `getItem()` 方法获取需要修改的 `sidebar-item` 的实例。 5. 修改该实例的属性,例如 `title`,`icon` 等。 6. 调用 `updateOpened()` 方法更新菜单。 以下是修改 `NavMenu` 导航菜单里面 `sidebar-item` 的示例代码: ```html <template> <div> <el-nav-menu ref="menu" :default-active="activeIndex" class="el-menu-vertical-demo" @select="handleSelect"> <template v-for="(item, index) in menuList"> <el-submenu v-if="item.children" :index="item.path" :key="index"> <template slot="title"> <i :class="item.icon"></i> <span slot="title">{{ item.title }}</span> </template> <el-menu-item v-for="(child, i) in item.children" :index="child.path" :key="i">{{ child.title }}</el-menu-item> </el-submenu> <el-menu-item v-else :index="item.path" :key="index"> <i :class="item.icon"></i> <span slot="title">{{ item.title }}</span> </el-menu-item> </template> </el-nav-menu> </div> </template> <script> import { mapState } from 'vuex'; export default { name: 'SidebarMenu', data() { return { activeIndex: '', menuList: [ { title: '首页', path: '/', icon: 'iconfont icon-home', }, { title: '文章', path: '/article', icon: 'iconfont icon-article', children: [ { title: '技术', path: '/article/tech', }, { title: '生活', path: '/article/life', }, ], }, ], }; }, mounted() { this.activeIndex = this.$route.path; }, methods: { handleSelect(index) { this.activeIndex = index; this.$router.push(index); }, }, computed: { ...mapState(['menu']), }, watch: { menu() { this.$nextTick(() => { // 获取需要修改的 sidebar-item 实例 const sidebarItem = this.$refs.menu.getItem('/article/tech'); // 修改该实例的属性 sidebarItem.title = '技术文章'; sidebarItem.icon = 'iconfont icon-tech'; // 更新菜单 this.$refs.menu.updateOpened(); }); }, }, }; </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值