42 lines
875 B
Vue
42 lines
875 B
Vue
<template>
|
|
<a-sub-menu
|
|
:key="menuInfo.key"
|
|
v-bind="$props"
|
|
v-on="$listeners"
|
|
>
|
|
<span slot="title">
|
|
<a-icon type="mail" /><span>{{ menuInfo.title }}</span>
|
|
</span>
|
|
<template v-for="item in menuInfo.children">
|
|
<a-menu-item
|
|
v-if="!item.children"
|
|
:key="item.key"
|
|
>
|
|
<a-icon type="pie-chart" />
|
|
<span>{{ item.title }}</span>
|
|
</a-menu-item>
|
|
<sub-menu
|
|
v-else
|
|
:key="item.key"
|
|
:menu-info="item"
|
|
/>
|
|
</template>
|
|
</a-sub-menu>
|
|
</template>
|
|
<script>
|
|
import { Menu } from 'ant-design-vue';
|
|
export default {
|
|
name: 'SubMenu',
|
|
// must add isSubMenu: true
|
|
isSubMenu: true,
|
|
props: {
|
|
...Menu.SubMenu.props,
|
|
// Cannot overlap with properties within Menu.SubMenu.props
|
|
menuInfo: {
|
|
type: Object,
|
|
default: ()=>({}),
|
|
},
|
|
},
|
|
};
|
|
</script>
|