SidebarItem.vue 980 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <div>
  3. <template v-if="!item.children">
  4. <app-link :to="item.path">
  5. <el-menu-item :index="item.path">
  6. <item
  7. :icon="item.meta.icon"
  8. :title="item.meta.title"
  9. />
  10. </el-menu-item>
  11. </app-link>
  12. </template>
  13. <el-submenu
  14. v-else
  15. ref="subMenu"
  16. :index="item.path"
  17. >
  18. <template #title>
  19. <item
  20. :icon="item.meta.icon"
  21. :title="item.meta.title"
  22. />
  23. </template>
  24. <sidebar-item
  25. v-for="child in item.children"
  26. :key="child.path"
  27. class="nest-menu"
  28. :item="child"
  29. />
  30. </el-submenu>
  31. </div>
  32. </template>
  33. <script>
  34. import Item from './Item'
  35. import AppLink from './Link'
  36. import FixiOSBug from './FixiOSBug'
  37. export default {
  38. name: 'SidebarItem',
  39. components: {
  40. Item,
  41. AppLink
  42. },
  43. mixins: [FixiOSBug],
  44. props: {
  45. item: {
  46. type: Object,
  47. required: true
  48. }
  49. }
  50. }
  51. </script>