SubMenus.vue 947 B

123456789101112131415161718192021222324252627282930
  1. <template>
  2. <template v-for="item in menus" :key="item.name">
  3. <ElSubMenu v-if="item.children" :index="item.name" class="bg-aside">
  4. <template #title>
  5. <div class="w-5 h-5 mr-2" v-if="item.icon">
  6. <component :is="item.icon"></component>
  7. </div>
  8. {{ item.title }}
  9. </template>
  10. <SubMenus :menus="item.children"></SubMenus>
  11. </ElSubMenu>
  12. <ElMenuItem v-else :index="item.name" class="bg-aside">
  13. <template #title>
  14. <div class="w-5 h-5 mr-2" v-if="item.icon">
  15. <component :is="item.icon"></component>
  16. </div>
  17. {{ item.title }}
  18. </template>
  19. </ElMenuItem>
  20. </template>
  21. </template>
  22. <script setup>
  23. import { computed } from 'vue'
  24. const props = defineProps({
  25. menus: {
  26. type: Array,
  27. default: () => []
  28. }
  29. })
  30. </script>