pms/web/src/view/layout/aside/asideComponent/index.vue

39 lines
867 B
Vue
Raw Normal View History

2019-09-15 20:24:56 +08:00
<template>
<component :is="menuComponent" :routerInfo="routerInfo" v-if="!routerInfo.hidden">
<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',
computed: {
menuComponent() {
if (this.routerInfo.children&&this.routerInfo.children.filter(item=>!item.hidden).length) {
return 'AsyncSubmenu'
} else {
return 'MenuItem'
2019-09-15 20:24:56 +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>