index.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <v-page>
  3. <template v-for="item in navList">
  4. <component
  5. v-if="cashViews.includes(item.tel)"
  6. v-show="tab == item.tel"
  7. :is="item.tel"
  8. :key="item.tel"
  9. :isShow="tab == item.tel && tabShow"
  10. class="layout-main"
  11. ></component>
  12. </template>
  13. <ComFooter></ComFooter>
  14. </v-page>
  15. </template>
  16. <script>
  17. import Home from "./home";
  18. import ExchangeOperation from "./exchange-operation";
  19. import Mine from "./mine";
  20. import OptionList from "./option-list";
  21. // import List from "./list";
  22. import Contract from "./contract";
  23. import { navList } from "@/config";
  24. import ComFooter from "./components/footer.vue";
  25. export default {
  26. name: "Base",
  27. components: {
  28. Home,
  29. ExchangeOperation,
  30. OptionList,
  31. Mine,
  32. Contract,
  33. ComFooter,
  34. },
  35. computed: {},
  36. data() {
  37. return {
  38. cashViews: [],
  39. tab: "",
  40. tabShow: true,
  41. navList: navList(this),
  42. };
  43. },
  44. methods: {
  45. tabChange(name) {
  46. this.tab = name;
  47. if (!this.cashViews.includes(name)) {
  48. this.cashViews.push(name);
  49. }
  50. },
  51. },
  52. onShow() {
  53. this.tabShow = true;
  54. },
  55. onLoad(query) {
  56. if (query.tel) {
  57. this.tabChange(query.tel);
  58. } else {
  59. this.tabChange("home");
  60. }
  61. },
  62. mounted() {},
  63. onHide() {
  64. this.tabShow = false;
  65. },
  66. };
  67. </script>
  68. <style lang="scss" scoped>
  69. .router-link-active {
  70. color: $theme-1;
  71. }
  72. </style>