native.vue 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <div id="native">
  3. <el-row>
  4. <el-col :span="24">
  5. <el-menu :default-active="activeIndex2" class="el-menu-demo" mode="horizontal"
  6. background-color="#336699" text-color="#fff" active-text-color="#fff" style="height:40px;" :router="true">
  7. <!-- 循环菜单↓ -->
  8. <template v-for="(item, index) in menu">
  9. <el-submenu :index="`${index}`" :key="index" v-if="item.type !== 'url' && item.type !== 'content'">
  10. <!-- 输出一级栏目↓ -->
  11. <template slot="title">
  12. {{ item.title }}
  13. </template>
  14. <template v-for="(sub, subIndex) in item.children">
  15. <el-submenu :index="`${index}-${subIndex}`" :key="subIndex+'sub'" v-if="sub.children">
  16. <template slot="title">
  17. {{ sub.title }}
  18. </template>
  19. <template v-for="(thr,thrIndex) in sub.children">
  20. <el-menu-item :index="thr.path" :key="thrIndex+'thr'" v-if="thr.type !== 'url'">{{ thr.title }}</el-menu-item>
  21. <el-menu-item :index="``" :key="thrIndex+'thr'" @click="turnTo(thr.url)" v-else> {{ thr.title }}</el-menu-item>
  22. </template>
  23. </el-submenu>
  24. <el-menu-item :index="sub.path" :key="subIndex+'sub'" v-else-if="sub.type === 'content'||sub.type==='column'">{{ sub.title }}</el-menu-item>
  25. <el-menu-item :index="`${index}-${subIndex}`" :key="subIndex+'sub'" @click="turnTo(sub.url)" v-else> {{ sub.title }}</el-menu-item>
  26. </template>
  27. </el-submenu>
  28. <!-- 一级栏目非常规栏目情况 -->
  29. <el-menu-item v-else-if="item.type === 'content'" :index="item.path" :key="index">{{ item.title }}</el-menu-item>
  30. <el-menu-item v-else :index="``" :key="index" @click="turnTo(item.url)">{{ item.title }}</el-menu-item>
  31. <!-- 输出一级栏目结束↑ -->
  32. </template>
  33. <!-- 循环菜单结束↑ -->
  34. </el-menu>
  35. </el-col>
  36. </el-row>
  37. </div>
  38. </template>
  39. <script>
  40. import { mapActions, mapState,mapMutations } from 'vuex';
  41. export default {
  42. name: 'native',
  43. props: {},
  44. components: {},
  45. data: () => ({
  46. activeIndex2: '',
  47. }),
  48. created() {},
  49. computed: {
  50. ...mapState(['menu']),
  51. },
  52. methods: {
  53. turnTo(url) {
  54. window.open(url);
  55. },
  56. },
  57. };
  58. </script>
  59. <style lang="less" scoped>
  60. .el-menu--horizontal > .el-menu-item {
  61. height: 40px;
  62. line-height: 40px;
  63. }
  64. /deep/.el-menu--horizontal > .el-submenu .el-submenu__title {
  65. height: 40px;
  66. line-height: 40px;
  67. }
  68. </style>