com-third-menu.vue 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <el-submenu v-if="menuItem.children && menuItem.children.length >= 1" :index="menuItem.id+'sub'" :popper-append-to-body="false">
  3. <template slot="title">
  4. <template v-if="menuItem.lv===1" class="cs">
  5. <div class="csm-item">
  6. <i class="csm-icon" :class="menuItem.icon"></i>
  7. <div class="csm-name" :title="menuItem.name">{{menuItem.name}}</div>
  8. <i class="el-icon-arrow-right"></i>
  9. </div>
  10. </template>
  11. <template v-if="menuItem.lv>=2">
  12. <em class="csm-point">&middot;</em>
  13. <span class="csm-sec-name" :title=" menuItem.name">
  14. {{ menuItem.name }}
  15. </span>
  16. </template>
  17. </template>
  18. <com-thirdmenu v-for="item in menuItem.children" :key="item.id+'sub'" :menuItem="item"></com-thirdmenu>
  19. </el-submenu>
  20. <el-menu-item v-else :index="menuItem.id+'sub'">
  21. <template v-if="menuItem.lv===1">
  22. <div class="csm-item">
  23. <a class="menuItemA" :href="getHref(menuItem)" :target="getTarget(menuItem)">
  24. <i class="csm-icon" :class="menuItem.icon"></i>
  25. <div class="csm-name" :title="menuItem.name">{{menuItem.name}}</div>
  26. </a>
  27. </div>
  28. </template>
  29. <template v-if="menuItem.lv>=2">
  30. <a class="menuItemA" :href="getHref(menuItem)" :target="getTarget(menuItem)">
  31. <em class="csm-point">&middot;</em>
  32. <span class="csm-sec-name" :title=" menuItem.name">
  33. {{ menuItem.name }}
  34. </span>
  35. </a>
  36. </template>
  37. </el-menu-item>
  38. </template>
  39. <script>
  40. import comThirdmenu from './com-third-menu'
  41. export default {
  42. name: 'com-thirdmenu',
  43. data () {
  44. return {
  45. }
  46. },
  47. props: {
  48. menuItem: {
  49. type: Object,
  50. required: true
  51. }
  52. },
  53. components: {
  54. comThirdmenu
  55. },
  56. mounted () {
  57. // console.log(this.menuItem)
  58. },
  59. methods: {
  60. getHref (item) {
  61. // console.log(item.url, window.location)
  62. let host = window.location.host
  63. let href = window.location.href
  64. if (!item.url) {
  65. return 'javascript:void(0);'
  66. } else if (item.url.indexOf('http') > -1) {
  67. return item.url
  68. } else if (href.indexOf(host + '/#') > -1) {
  69. return '/#' + item.url
  70. }
  71. },
  72. getTarget (item) {
  73. if (!item.url) {
  74. return '_self'
  75. } else {
  76. return '_blank'
  77. }
  78. },
  79. gotoRouteHandle (item) {
  80. console.log(item)
  81. if (item.url) {
  82. // this.$router.push({ path: item.url })
  83. // window.open("http://www.jb51.net")
  84. }
  85. }
  86. }
  87. }
  88. </script>