Menulist.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const template=`
  2. <template v-for="menu in list">
  3. <template v-if="menu.childlist && menu.childlist.length>0">
  4. <el-sub-menu :index="menu.id.toString()">
  5. <template #title>
  6. <i :class="menu.icon"></i>
  7. <span class="sle">{{menu.title}}</span>
  8. </template>
  9. <Menulist :list="menu.childlist" @onclickmenu="clickMenu"></Menulist>
  10. </el-sub-menu>
  11. </template>
  12. <template v-else>
  13. <el-menu-item :index="menu.id.toString()" @click="clickMenu(menu)">
  14. <i :class="menu.icon"></i>
  15. <template #title>
  16. <span class="sle">{{ menu.title }}</span>
  17. </template>
  18. </el-menu-item>
  19. </template>
  20. </template>
  21. `;
  22. export default {
  23. name: "Menulist",
  24. data: function () {
  25. return {
  26. }
  27. },
  28. props:{
  29. list: {
  30. type: Array,
  31. required: true,
  32. }
  33. },
  34. emits:['onclickmenu'],
  35. template:template,
  36. methods:{
  37. clickMenu:function (menu) {
  38. this.$emit('onclickmenu', menu);
  39. }
  40. }
  41. };