Files
ba_web/src/layout/components/SideBar/SideBarItem.vue

32 lines
834 B
Vue
Raw Normal View History

2025-09-22 09:01:41 +08:00
<template>
2025-10-28 18:26:31 +08:00
<el-sub-menu v-if="route.children?.length > 0" :index="route.path">
2025-09-22 09:01:41 +08:00
<template #title>
<MenuItem :title="route.meta.title" :icon="route.meta.icon"></MenuItem>
</template>
<!---循环渲染--->
<SideBarItem v-for="item in route.children" :key="item.path" :route="item"></SideBarItem>
</el-sub-menu>
<el-menu-item v-else :index="route.path">
<MenuItem :title="route.meta.title" :icon="route.meta.icon"></MenuItem>
</el-menu-item>
</template>
<script setup>
import MenuItem from './MenuItem.vue'
import { defineProps } from 'vue';
2025-10-28 18:26:31 +08:00
// 导入自身组件以支持递归调用
import { defineAsyncComponent } from 'vue'
const SideBarItem = defineAsyncComponent(() => import('./SideBarItem.vue'))
2025-09-22 09:01:41 +08:00
defineProps({
route: {
type: Object,
required: true
}
})
</script>
<style>
</style>