UserAsset.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <template>
  2. <!-- 我的资产 -->
  3. <HeaderNav headerText="资产"></HeaderNav>
  4. <div class="user-asset">
  5. <div class="notifi-classifi">
  6. <div
  7. class="classifi-item"
  8. :class="current == 'overview' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'"
  9. @click="messageChange('overview')">
  10. 总览
  11. </div>
  12. <div
  13. class="classifi-item"
  14. :class="current == 'balance' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'"
  15. @click="messageChange('balance')">
  16. 余额
  17. </div>
  18. <div
  19. class="classifi-item"
  20. :class="current == 'contract' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'"
  21. @click="messageChange('contract')">
  22. 合约
  23. </div>
  24. <div
  25. class="classifi-item"
  26. :class="
  27. current == 'financialManagement' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'
  28. "
  29. @click="messageChange('financialManagement')">
  30. 理财
  31. </div>
  32. <div
  33. class="classifi-item"
  34. :class="current == 'option' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'"
  35. @click="messageChange('option')">
  36. 期权
  37. </div>
  38. <div
  39. class="classifi-item"
  40. :class="current == 'miaoContract' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'"
  41. @click="messageChange('miaoContract')">
  42. 秒合约
  43. </div>
  44. <div
  45. class="classifi-item"
  46. :class="current == 'lever' ? 'current-classifi' : 'pf600 fs14 fcA8A8A8'"
  47. @click="messageChange('lever')">
  48. 币币
  49. </div>
  50. </div>
  51. <component :is="currentComponent" />
  52. </div>
  53. </template>
  54. <script setup>
  55. import HeaderNav from "../index/components/HeaderNav.vue";
  56. import Balance from "./myAsset/Balance.vue";
  57. import Contract from "./myAsset/Contract.vue";
  58. import FinancialManagement from "./myAsset/FinancialManagement.vue";
  59. import Lever from "./myAsset/Lever.vue";
  60. import MiaoContract from "./myAsset/MiaoContract.vue";
  61. import Option from "./myAsset/Option.vue";
  62. import Overview from "./myAsset/Overview.vue";
  63. import { ref, computed } from "vue";
  64. const current = ref("overview");
  65. const componentsMap = {
  66. balance: Balance,
  67. contract: Contract,
  68. financialManagement: FinancialManagement,
  69. lever: Lever,
  70. miaoContract: MiaoContract,
  71. option: Option,
  72. overview: Overview,
  73. };
  74. const currentComponent = computed(() => componentsMap[current.value]);
  75. const messageChange = (key) => {
  76. current.value = key;
  77. };
  78. </script>
  79. <style lang="less" scoped>
  80. .user-asset {
  81. display: flex;
  82. flex-direction: column;
  83. justify-content: flex-start;
  84. align-items: center;
  85. width: 100%;
  86. .notifi-classifi {
  87. display: flex;
  88. flex-direction: row;
  89. justify-content: space-between;
  90. align-items: flex-end;
  91. margin-top: 48px;
  92. width: 345px;
  93. height: 24px;
  94. .classifi-item {
  95. position: relative;
  96. .active-line {
  97. position: absolute;
  98. bottom: -6px;
  99. left: 50%;
  100. transform: translateX(-50%);
  101. width: 20px;
  102. height: 3px;
  103. background-color: #323233;
  104. border-radius: 2px;
  105. }
  106. &:first-child {
  107. margin-left: 0;
  108. }
  109. }
  110. .current-classifi {
  111. font-family: "PingFang SC";
  112. font-style: normal;
  113. font-weight: 600;
  114. font-size: 14px;
  115. color: #121212;
  116. transition: color 0.3s, font-size 0.3s;
  117. }
  118. }
  119. }
  120. </style>