element ui el-menu组件

本文详细介绍了如何使用Vue.js结合Element UI库创建动态路由菜单。内容包括:菜单组件的嵌套结构,使用<el-menu-item>和<el-submenu>创建菜单项,设置router属性和index激活路由,以及动态加载菜单数据。同时,提供了相关的CSS样式调整,如改变背景色、文本颜色等,并展示了如何从API获取并渲染菜单数据。
摘要由CSDN通过智能技术生成

1.组件需要先写在<el-menu></el-menu>里面

2.一点此单就能显示东西或进入路由的就用

<el-menu-item></el-menu-item>实现

3.点了展开下一级菜单的要写在

<el-submenu>

<template slot=‘title’>标题文本</template>

<el-menu-item></el-menu-item>

</el-submenu>

当el-menu设置router属性时,需要在el-menu-item和el-sunmenu里面写index

index的值必须是字符串,所以在

<el-submenu :index="index.toString()">这一句,需要把它转化成字符串

常用是属性

 background-color:设置导航菜单的背景颜色(默认值:#ffffff),可以取值为transparent(透明)。

    text-color:设置导航菜单的文本颜色。

    mode:设置导航菜单的摆放方式,默认值:vertical(垂直的),还可以取值为horizontal(水平的)。

    router:设置是否开启路由模式,若开启该模式,则<el-menu-item>的index属性需要指定路由地址。

    default-active:设置默认被激活的路由。

    collapse-transition:设置子菜单是否具备折叠动画。

    active-text-color:设置当前激活菜单项的文本颜色。

    unique-opened:设置是否只允许有一个子菜单处于展开状态。

有关导航菜单的CSS样式类:

    (1)去掉垂直导航菜单右侧默认的竖线:若是水平方式放置的导航栏菜单是下方默认的横线。

         .el-menu{ border-right:none; }

    (2)鼠标经过菜单项:

         .el-menu-item:hover

    (3)鼠标经过子菜单的标题文本:

         >>.el-submenu__title:hover(这里是两个下划线)

    (4)当前被激活菜单项:

         .el-menu-item.is-active

    (5)子菜单中的菜单项:

         .el-submenu .el-menu-item

4.如果动态生成菜单项

<template>
  <div class="myMenu">
    <el-menu
        background-color="transparent"
        text-color="#ffffff"
        router
        active-text-color="#ffffff"
    >
      <template v-for="(item,index) in menuData">
        <template v-if="item.children">
          <el-submenu :index="index.toString()">
              <template slot="title"><i :class="item.icon"></i>{{item.permissionName}}</template>
            <template v-for="(child,index2) in item.children">
                <el-menu-item :index="`/successPage/${child.path}`">{{child.permissionName}}</el-menu-item>
            </template>
          </el-submenu>
        </template>
        <template v-else>
          <el-menu-item :index="`/successPage/${item.path}`"><i :class="item.icon"></i>{{item.permissionName}}</el-menu-item>
        </template>
      </template>

    </el-menu>
  </div>
</template>

<script>
/*
mapState里面的内容
export default {
    userInfo:{}
}
multations里面的内容
export default {
    setUserInfo(state,payload){
        state.userInfo=payload
        state.userInfo.expiresTime=new Date().getTime()+payload.expires*1000
    }
}
* */
import {mapState} from 'vuex'
export default {
  name: "myMenu",
  data(){
    return{
      menuData:[]
    }
  },
  computed:{
    ...mapState(['userInfo'])
  },
  mounted(){
    let url='/api/getRouter.jsp';
    let data={
      params:{
        permissionIds:this.userInfo.permission
      }
    }
    this.$axios.get(url,data).then(res=>{
      if (res.data.code===200){
        this.menuData=res.data.data
      }
    })
  }
}
</script>

<style scoped>
.el-menu{
  border-right:none
}
>>>.el-submenu__title{
  color:#ffffff;
}
.el-menu-item.is-active,
>>>.el-submenu__title:hover,
.el-menu-item:hover{
  background-color: #197199 !important;
}
.el-submenu .el-menu-item{
  text-indent: 20px;
}
</style>

userInfo的数据 

要解决element ui el-menu侧边栏乱码的问题,你可以尝试以下几个步骤: 1. 确保你已经正确引入了Element UI组件库并且样式文件已经被正确加载。根据引用\[2\]中的代码,在main.js文件中导入Element UI并引入样式文件。确保路径正确,样式文件被正确加载。 2. 检查你的页面编码是否正确设置为UTF-8。在HTML文件的<head>标签中添加<meta charset="UTF-8">来确保页面使用UTF-8编码。 3. 确保你的字体文件被正确加载。Element UI的样式中使用了一些特定的字体图标,如果字体文件没有正确加载,可能会导致乱码。你可以在浏览器的开发者工具中检查网络请求,确保字体文件被正确加载。 4. 如果以上步骤都没有解决问题,你可以尝试在el-menu标签中添加一个属性:collapse-transition,设置为false。这个属性可以解决一些特定情况下的乱码问题。 希望以上方法能够帮助你解决element ui el-menu侧边栏乱码的问题。如果问题仍然存在,请提供更多的细节和代码,以便我们能够更好地帮助你解决问题。 #### 引用[.reference_title] - *1* *2* *3* [谷粒商城——第一篇 前后端基础](https://blog.csdn.net/qwqgood/article/details/125572140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值