subMenu.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <template>
  2. <div>
  3. <template v-for="(item,index) in menuData">
  4. <div v-if="item.isMenu === '1'" :class="'menu-index-' + menuIndex">
  5. <el-submenu :index="String(item.id)"
  6. v-if="item.children && item.children.length > 0 && item.children.filter(node=>node.isMenu==='1').length > 0"
  7. :key="item.id">
  8. <template slot="title">
  9. <i v-if="item.iconClass" :class="item.iconClass + ' icon iconfont'"></i>
  10. <span slot="title" class="menu-title">{{item.title}}</span>
  11. </template>
  12. <sub-menu :menuData="item.children" :menuIndex="menuIndex+1"></sub-menu>
  13. </el-submenu>
  14. <el-menu-item :index="item.index" v-else :key="item.id" :name="item.index">
  15. <i v-if="item.iconClass" :class="item.iconClass + ' icon'"></i>
  16. <span slot="title" class="menu-title">{{item.title}}</span>
  17. </el-menu-item>
  18. </div>
  19. </template>
  20. </div>
  21. </template>
  22. <script>
  23. import subMenu from '@/layout/components/subMenu'
  24. export default {
  25. name: 'sub-menu',
  26. props: ['menuData', 'menuIndex'],
  27. components: {
  28. subMenu
  29. }
  30. }
  31. </script>
  32. <style>
  33. </style>