menu-item.vue 1009 B

12345678910111213141516171819202122232425262728293031323334
  1. <template>
  2. <el-submenu :index="index" v-if="item.children && item.children.length > 0">
  3. <template slot="title">
  4. <i :class="item.icons"></i>
  5. <span slot="title">{{ item.title }}</span>
  6. </template>
  7. <naf-menu-item v-for="(item, idx) in item.children" :key="idx" :index="item.path" :item="item" @naf-menu-item="$emit('naf-menu-item', $event)"></naf-menu-item>
  8. </el-submenu>
  9. <el-menu-item :index="index" @click="$emit('naf-menu-item', item)" v-else>
  10. <i :class="item.icons"></i>
  11. <span slot="title" v-if="item.title.length < 9">{{ item.title }}</span>
  12. <el-tooltip slot="title" v-else :content="item.title" placement="top" effect="light">
  13. <span>{{ item.title.substr(0, 9) + '...' }}</span>
  14. </el-tooltip>
  15. </el-menu-item>
  16. </template>
  17. <script>
  18. export default {
  19. name: 'naf-menu-item',
  20. props: {
  21. item: Object,
  22. index: String
  23. },
  24. components: {},
  25. data () {
  26. return {}
  27. },
  28. methods: {},
  29. mounted () {}
  30. }
  31. </script>
  32. <style lang="less" scoped></style>