index.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <Basic>
  3. <div class="home">
  4. <el-tabs
  5. v-model="activeName"
  6. @tab-click="RouterLink"
  7. >
  8. <el-tab-pane
  9. label="首页"
  10. name="0"
  11. >
  12. </el-tab-pane>
  13. <el-tab-pane
  14. label="知识库"
  15. name="1"
  16. >
  17. </el-tab-pane>
  18. <el-tab-pane
  19. label="习题练习"
  20. name="2"
  21. >
  22. </el-tab-pane>
  23. <el-tab-pane
  24. label="模拟考试"
  25. name="3"
  26. >
  27. </el-tab-pane>
  28. <el-tab-pane
  29. label="正式考试"
  30. name="4"
  31. >
  32. </el-tab-pane>
  33. <el-tab-pane
  34. label="考试记录"
  35. name="5"
  36. >
  37. </el-tab-pane>
  38. <el-tab-pane
  39. label="错题集"
  40. name="6"
  41. ></el-tab-pane>
  42. </el-tabs>
  43. <div class="content">
  44. <!-- 解决首页倒计时的状态问题 -->
  45. <keep-alive>
  46. <router-view v-if="$route.meta.keepAlive" />
  47. </keep-alive>
  48. <router-view v-if="!$route.meta.keepAlive" />
  49. </div>
  50. </div>
  51. </Basic>
  52. </template>
  53. <script>
  54. const Basic = () => import("@/components/Basic/index");
  55. export default {
  56. components: {
  57. Basic
  58. },
  59. data () {
  60. return {
  61. activeName: '0',
  62. // 路由
  63. routers: ['/', '/knowledgebase', '/practice', '/mockexamination', '/formalexamination', '/examinationrecord', "/wrongquestion"]
  64. }
  65. },
  66. methods: {
  67. // 解决标签页与路由的联动
  68. RouterLink () {
  69. let routers = this.routers, path = this.$route.path;
  70. if (path == routers[this.activeName]) return false;
  71. this.$router.replace(routers[this.activeName])
  72. }
  73. },
  74. created () {
  75. // 解决标签页与路由的联动
  76. let routers = this.routers, path = this.$route.path;
  77. this.activeName = routers.indexOf(path).toString();
  78. },
  79. watch: {
  80. // 解决首页与路由的联动
  81. $route (val, old) {
  82. let routers = this.routers, path = val.path;
  83. this.activeName = routers.indexOf(path).toString();
  84. }
  85. }
  86. }
  87. </script>
  88. <style lang="less" >
  89. </style>