2018-07-17 21:54:38 +08:00
|
|
|
<template>
|
2018-08-24 17:05:32 +08:00
|
|
|
<el-menu mode="horizontal" :default-active="active" @select="handleMenuSelect">
|
2018-08-08 16:04:10 +08:00
|
|
|
<template v-for="(menu, menuIndex) in header">
|
2018-07-17 21:54:38 +08:00
|
|
|
<d2-layout-header-aside-menu-item v-if="menu.children === undefined" :menu="menu" :key="menuIndex"/>
|
|
|
|
|
<d2-layout-header-aside-menu-sub v-else :menu="menu" :key="menuIndex"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-menu>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2018-07-17 22:49:13 +08:00
|
|
|
import { mapState } from 'vuex'
|
2018-07-17 21:54:38 +08:00
|
|
|
import menuMixin from '../mixin/menu'
|
|
|
|
|
import d2LayoutMainMenuItem from '../components/menu-item/index.vue'
|
|
|
|
|
import d2LayoutMainMenuSub from '../components/menu-sub/index.vue'
|
|
|
|
|
export default {
|
|
|
|
|
name: 'd2-layout-header-aside-menu-header',
|
|
|
|
|
mixins: [
|
|
|
|
|
menuMixin
|
|
|
|
|
],
|
|
|
|
|
components: {
|
|
|
|
|
'd2-layout-header-aside-menu-item': d2LayoutMainMenuItem,
|
|
|
|
|
'd2-layout-header-aside-menu-sub': d2LayoutMainMenuSub
|
|
|
|
|
},
|
2018-07-17 22:49:13 +08:00
|
|
|
computed: {
|
2018-08-08 16:04:10 +08:00
|
|
|
...mapState('d2admin/menu', [
|
|
|
|
|
'header'
|
2018-08-08 09:19:11 +08:00
|
|
|
])
|
2018-08-24 17:05:32 +08:00
|
|
|
},
|
|
|
|
|
data () {
|
|
|
|
|
return {
|
|
|
|
|
active: ''
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
watch: {
|
|
|
|
|
'$route.matched': {
|
|
|
|
|
handler (val) {
|
|
|
|
|
this.active = val[val.length - 1].path
|
|
|
|
|
},
|
|
|
|
|
immediate: true
|
|
|
|
|
}
|
2018-07-17 21:54:38 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|