You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					52 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					52 lines
				
				1.3 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								<template>
							 | 
						||
| 
								 | 
							
								  <div v-if="menu.showFlag">
							 | 
						||
| 
								 | 
							
								    <el-submenu
							 | 
						||
| 
								 | 
							
								      v-if="menu.children && menu.children.length >= 1"
							 | 
						||
| 
								 | 
							
								      :index="menu.id"
							 | 
						||
| 
								 | 
							
								      ref="subMenu"
							 | 
						||
| 
								 | 
							
								      popper-append-to-body
							 | 
						||
| 
								 | 
							
								    >
							 | 
						||
| 
								 | 
							
								      <template slot="title">
							 | 
						||
| 
								 | 
							
								        <svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								          <use :xlink:href="`#${menu.icon}`" />
							 | 
						||
| 
								 | 
							
								        </svg>
							 | 
						||
| 
								 | 
							
								        <span>{{ menu.name }}</span>
							 | 
						||
| 
								 | 
							
								      </template>
							 | 
						||
| 
								 | 
							
								      <sub-menu v-for="item in menu.children" :key="item.id" :menu="item"></sub-menu>
							 | 
						||
| 
								 | 
							
								    </el-submenu>
							 | 
						||
| 
								 | 
							
								    <el-menu-item v-else   :index="menu.id" @click="gotoRouteHandle(menu.id)">
							 | 
						||
| 
								 | 
							
								        <svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								          <use :xlink:href="`#${menu.icon}`" />
							 | 
						||
| 
								 | 
							
								        </svg>
							 | 
						||
| 
								 | 
							
								        <span>{{ menu.name }}</span>
							 | 
						||
| 
								 | 
							
								    </el-menu-item>
							 | 
						||
| 
								 | 
							
								  </div>
							 | 
						||
| 
								 | 
							
								</template>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
								import SubMenu from './main-sidebar-sub-menu'
							 | 
						||
| 
								 | 
							
								export default {
							 | 
						||
| 
								 | 
							
								  name: 'sub-menu',
							 | 
						||
| 
								 | 
							
								  props: {
							 | 
						||
| 
								 | 
							
								    menu: {
							 | 
						||
| 
								 | 
							
								      type: Object,
							 | 
						||
| 
								 | 
							
								      required: true
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  components: {
							 | 
						||
| 
								 | 
							
								    SubMenu
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  methods: {
							 | 
						||
| 
								 | 
							
								    // 通过menuId与动态(菜单)路由进行匹配跳转至指定路由
							 | 
						||
| 
								 | 
							
								    gotoRouteHandle (menuId) {
							 | 
						||
| 
								 | 
							
								      var route = window.SITE_CONFIG['dynamicMenuRoutes'].filter(
							 | 
						||
| 
								 | 
							
								        (item) => item.meta.menuId === menuId
							 | 
						||
| 
								 | 
							
								      )[0]
							 | 
						||
| 
								 | 
							
								      if (route) {
							 | 
						||
| 
								 | 
							
								        this.$router.push({ name: route.name })
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								</script>
							 |