因?yàn)閑lement ui 的模板不支持多級(jí)渲染菜單,需要我們自己去重構(gòu):
那就開(kāi)始吧:我的這個(gè)需要通過(guò)路由傳參啄刹,所以做了點(diǎn)修改:
1. 新建一個(gè)組件 test.vue:上代碼:
<template>
? <div class="navMenu">
? ? <label v-for="navMenu in navMenus" :key="navMenu.entity.Id">
? ? ? <!-- <i class="el-icon-location"></i> -->?
? ? ? <div v-if="navMenu.childs==null&&navMenu.entity" :key="navMenu.entity.Id" :data="navMenu" >? //判斷是否有子路由,
? ? ? ? <el-menu-item >
??<router-link :to="{path:navMenu.entity.url,query:{ID:navMenu.entity.Id}}">? //不需要組件提供的路由模式段只,用路由傳參傳入對(duì)應(yīng)參數(shù)
??????????? <span class="item_title">{{navMenu.entity.label}}</span>? //菜單名稱(chēng)
??????????</router-link>
? ? ? ? ? </el-menu-item>
? ? ? </div>? ? ? ?
? ? ? <el-submenu v-if="navMenu.childs&&navMenu.entity"
? ? ? ? ? ? ? ? ? :key="navMenu.entity.Id" :data="navMenu" :index="navMenu.entity.Id" >? //判斷是否有子路由税稼,
? ? ? ? <template slot="title">
? ? ? ? <i class="el-icon-location"></i>? //圖標(biāo)顯示,可根據(jù)返回的路徑動(dòng)態(tài)渲染
? ? ? ? ? <span class="item_title"> {{navMenu.entity.label}}</span>? //菜單名稱(chēng)
? ? ? ? </template>
? ? ? ? <NavMenu :navMenus="navMenu.childs"></NavMenu>? //重新調(diào)用組件郎仆,迭代
? ? ? </el-submenu>
? ? </label>
? </div>
</template>
<script>
? export default {
? ? name: 'NavMenu',
? ? props: ['navMenus'],
? ? data() {
? ? ? return {}
? ? },
? ? mounted(){
? ? ? ? console.log(this.navMenus)
? ? },
? ? methods: {}
? }
</script>
<style scoped>
? .navMenu{
? ? width: 100%;
? ? height: 100%;
? ? background: #00142a !important;
? }
.item_title{
? color:#fff ;
? background-color: #00142a !important
}
</style>
<style>
.el-submenu .el-submenu__title{
? ? background-color: #00142a !important;
? ? color:#eee !important;
? text-align: left !important;
? }
.el-submenu .el-menu-item{
? color:#eee !important;
? background-color: #00142a !important;
}
</style>
2 . 在外部頁(yè)面引用:
?<div class="forSideHeight" style="overflow-y: scroll;">
????<el-menu
????default-active="2"
????style="padding-bottom: 90px;"
????class="el-menu-vertical-demo"
????@open="handleOpen"? ?
????@close="handleClose"
????router
????background-color="rgba(0, 21, 41, 1)"
????text-color="#fff"
????active-text-color="#ffd04b"
????active-background-color="#ffd04b">
? ? ?<NavMenu :navMenus="leftMenus.childs"></NavMenu>
? ? ? ? </el-menu>
??? ??</div>?
3.這里所用到的數(shù)據(jù)格式只祠,最好讓后端配合:
{
? ? "entity": null,
? ? "childs": [{
? ? ? ? "entity": {
? ? ? ? ? "Id": '42',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "交易管理",
? ? ? ? ? "num": "1",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? "entity": {
? ? ? ? ? ? "Id": '43',
? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? "label": "交易明細(xì)",
? ? ? ? ? ? "num": null,
? ? ? ? ? ? "remark": null,
? ? ? ? ? ? "url": "/homedetail"
? ? ? ? ? },
? ? ? ? ? "childs": null
? ? ? ? }, ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '44',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "商戶(hù)管理",
? ? ? ? ? "num": "2",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '45',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "商戶(hù)信息(直營(yíng))",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/storelist"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '46',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "商戶(hù)信息(所有)",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/storelist2"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '47',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "代理商管理",
? ? ? ? ? "num": "3",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '48',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "代理商列表",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/agentpage"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '49',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "提現(xiàn)審批",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/approval"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '50',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "市場(chǎng)管理",
? ? ? ? ? "num": "4",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '51',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "業(yè)務(wù)員管理(直營(yíng))",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/salesman"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '52',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "業(yè)務(wù)員管理(所有)",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/salesman2"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '53',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "二維碼管理",
? ? ? ? ? "num": "5",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '54',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "添加二維碼",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/addqrcode"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '55',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "直營(yíng)二維碼",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/qrcodelist"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '56',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "所有二維碼",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/qrcodelist2"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '57',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "設(shè)備碼管理",
? ? ? ? ? "num": "6",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '58',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "添加設(shè)備碼",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/adddevice"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '59',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "直營(yíng)設(shè)備碼",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/devicecodelist"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '60',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "所有設(shè)備碼",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/devicecodelist2"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '61',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "權(quán)限管理",
? ? ? ? ? "num": "7",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '62',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "賬號(hào)管理",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/usersupervise"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '63',
? ? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? ? "label": "權(quán)限管理",
? ? ? ? ? ? ? "num": "7",
? ? ? ? ? ? ? "remark": null,
? ? ? ? ? ? ? "url": "/jurisdiction"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": null
? ? ? ? ? },
? ? ? ? ]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '64',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "系統(tǒng)參數(shù)管理",
? ? ? ? ? "num": "8",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? "entity": {
? ? ? ? ? ? "Id": '65',
? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? "label": "系統(tǒng)參數(shù)",
? ? ? ? ? ? "num": null,
? ? ? ? ? ? "remark": null,
? ? ? ? ? ? "url": "/system"
? ? ? ? ? },
? ? ? ? ? "childs": null
? ? ? ? }]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '75',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "菜單管理",
? ? ? ? ? "num": "9",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? "entity": {
? ? ? ? ? ? "Id": '76',
? ? ? ? ? ? 'PicName': '#',
? ? ? ? ? ? "PicUrl": '#',
? ? ? ? ? ? "label": "菜單功能管理",
? ? ? ? ? ? "num": null,
? ? ? ? ? ? "remark": null,
? ? ? ? ? ? "url": "/menu"
? ? ? ? ? },
? ? ? ? ? "childs": null
? ? ? ? }]
? ? ? },
? ? ? {
? ? ? ? "entity": {
? ? ? ? ? "Id": '88',
? ? ? ? ? 'PicName': '#',
? ? ? ? ? "PicUrl": '#',
? ? ? ? ? "label": "測(cè)試",
? ? ? ? ? "num": "10",
? ? ? ? ? "remark": null,
? ? ? ? ? "url": ""
? ? ? ? },
? ? ? ? "childs": [{
? ? ? ? ? "entity": {
? ? ? ? ? ? "Id": '89',
? ? ? ? ? ? 'PicName': '',
? ? ? ? ? ? "PicUrl": '',
? ? ? ? ? ? "label": "測(cè)試11",
? ? ? ? ? ? "num": null,
? ? ? ? ? ? "remark": '',
? ? ? ? ? ? "url": "/ab"
? ? ? ? ? },
? ? ? ? ? "childs": [{
? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? "Id": '90',
? ? ? ? ? ? ? 'PicName': '',
? ? ? ? ? ? ? "PicUrl": '',
? ? ? ? ? ? ? "label": "測(cè)dfgdfgdfg試22",
? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? "remark": '',
? ? ? ? ? ? ? "url": "/aps"
? ? ? ? ? ? },
? ? ? ? ? ? "childs": [
???????? {
? ? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? ? "Id": '91',
? ? ? ? ? ? ? ? 'PicName': '',
? ? ? ? ? ? ? ? "PicUrl": '',
? ? ? ? ? ? ? ? "label": "測(cè)dfgdgdfgdg試33",
? ? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? ? "remark": '',
? ? ? ? ? ? ? ? "url": "/ass"
? ? ? ? ? ? ? },
? ? ? ? ? ? ? "childs": [
????????? ? {
? ? ? ? ? ? ? "entity": {
? ? ? ? ? ? ? ? "Id": '92',
? ? ? ? ? ? ? ? 'PicName': '',
? ? ? ? ? ? ? ? "PicUrl": '',
? ? ? ? ? ? ? ? "label": "測(cè)試3jodfguhiu33",
? ? ? ? ? ? ? ? "num": null,
? ? ? ? ? ? ? ? "remark": '',
? ? ? ? ? ? ? ? "url": "/ass5"
? ? ? ? ? ? ? },
? ? ? ? ? ? ? "childs": null
?????? }
??????? ]
?????? }
?????? ]
? ? ? ? ? }]
? ? ? ? }]
? ? ? },
? ? ]
? }