menuInfo.vue 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div id="menuInfo">
  3. <el-row>
  4. <el-col :span="24" :style="`background-color:${backColor}`">
  5. <div class="w_1200">
  6. <el-menu
  7. :default-active="activeIndex1"
  8. class="el-menu-demo"
  9. mode="horizontal"
  10. background-color="#0457c7"
  11. text-color="#fff"
  12. active-text-color="#fff"
  13. :router="true"
  14. >
  15. <el-menu-item index="/">网站首页</el-menu-item>
  16. <!-- <el-menu-item index="/member">党员之家</el-menu-item> -->
  17. <template>
  18. <el-submenu index="/jobs">
  19. <template slot="title">
  20. {{ jobsMenu.title }}
  21. </template>
  22. <el-menu-item v-for="(sub, subIndex) in jobsMenu.children" :key="subIndex" :index="sub.path">{{ sub.title }}</el-menu-item>
  23. </el-submenu>
  24. </template>
  25. <template v-for="(item, index) in menuList">
  26. <el-submenu :index="`${index}`" :key="index" v-if="item.type !== 'url' && item.type !== 'content'">
  27. <template slot="title">
  28. {{ item.title }}
  29. </template>
  30. <template v-for="(sub, subIndex) in item.children">
  31. <el-menu-item :index="sub.path" :key="subIndex" v-if="sub.type !== 'url'">{{ sub.title }}</el-menu-item>
  32. <el-menu-item :index="``" :key="subIndex" @click="turnTo(sub.url)" v-else> {{ sub.title }}</el-menu-item>
  33. </template>
  34. </el-submenu>
  35. <el-menu-item v-else-if="item.type === 'content'" :index="item.path" :key="index">{{ item.title }}</el-menu-item>
  36. <el-menu-item v-else :index="``" :key="index" @click="turnTo(item.url)">{{ item.title }}</el-menu-item>
  37. </template>
  38. </el-menu>
  39. </div>
  40. </el-col>
  41. </el-row>
  42. </div>
  43. </template>
  44. <script>
  45. import { masterMenu } from '@/config/jobs-menu';
  46. export default {
  47. name: 'menuInfo',
  48. props: {
  49. menuList: null,
  50. backColor: null,
  51. },
  52. components: {},
  53. data: () => ({
  54. activeIndex1: '1',
  55. jobsMenu: masterMenu,
  56. }),
  57. created() {},
  58. computed: {},
  59. methods: {
  60. turnTo(url) {
  61. window.open(url);
  62. },
  63. },
  64. };
  65. </script>
  66. <style lang="less" scoped>
  67. .w_1200 {
  68. width: 1200px;
  69. margin: 0 auto;
  70. }
  71. /deep/.el-menu--horizontal > .el-menu-item {
  72. height: 50px;
  73. line-height: 50px;
  74. }
  75. /deep/.el-menu--horizontal > .el-submenu .el-submenu__title {
  76. height: 50px;
  77. line-height: 50px;
  78. }
  79. /deep/.el-menu--horizontal > .el-menu-item {
  80. border-bottom: none;
  81. }
  82. /deep/.el-menu--horizontal > .el-menu-item.is-active {
  83. border-bottom: none;
  84. background-color: #1b6edd5f !important;
  85. }
  86. </style>