2019-09-15 20:24:56 +08:00
|
|
|
<template>
|
2019-11-15 18:10:06 +08:00
|
|
|
<component :is="menuComponent" :routerInfo="routerInfo" v-if="!routerInfo.hidden">
|
2020-05-06 11:19:35 +08:00
|
|
|
<template v-if="routerInfo.children&&routerInfo.children.length">
|
2019-09-15 20:24:56 +08:00
|
|
|
<AsideComponent :key="item.name" :routerInfo="item" v-for="item in routerInfo.children" />
|
|
|
|
</template>
|
|
|
|
</component>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import MenuItem from './menuItem'
|
2019-09-15 21:33:53 +08:00
|
|
|
import AsyncSubmenu from './asyncSubmenu'
|
2019-09-15 20:24:56 +08:00
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'AsideComponent',
|
2019-12-12 17:17:27 +08:00
|
|
|
computed: {
|
|
|
|
menuComponent() {
|
2020-05-06 11:19:35 +08:00
|
|
|
if (this.routerInfo.children&&this.routerInfo.children.filter(item=>!item.hidden).length) {
|
2019-12-12 17:17:27 +08:00
|
|
|
return 'AsyncSubmenu'
|
|
|
|
} else {
|
|
|
|
return 'MenuItem'
|
2019-09-15 20:24:56 +08:00
|
|
|
}
|
2019-12-12 17:17:27 +08:00
|
|
|
}
|
2019-09-15 20:24:56 +08:00
|
|
|
},
|
|
|
|
props: {
|
|
|
|
routerInfo: {
|
|
|
|
default: function() {
|
|
|
|
return null
|
|
|
|
},
|
|
|
|
type: Object
|
|
|
|
}
|
|
|
|
},
|
|
|
|
components: {
|
|
|
|
MenuItem,
|
2019-09-15 21:33:53 +08:00
|
|
|
AsyncSubmenu
|
2019-09-15 20:24:56 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
|
|
</style>
|