| | |
| | | <span class="tab-item">股票</span> |
| | | <span class="tab-item red-dot">股票</span> |
| | | <div class="tab-right"> |
| | | <span class="tab-icon">?</span> |
| | | <span class="tab-icon">☰</span> |
| | | <Icon icon="solar:question-circle-bold" class="tab-icon" /> |
| | | <Icon icon="solar:hamburger-menu-bold" class="tab-icon" /> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | |
| | | <!-- 互换按钮 --> |
| | | <div class="swap-icon">⇅</div> |
| | | <Icon icon="solar:swap-bold" class="swap-icon" /> |
| | | |
| | | <!-- 下方输入 --> |
| | | <div class="trade-input bottom"> |
| | |
| | | |
| | | <!-- 交易按钮 --> |
| | | <div class="trade-button-wrapper"> |
| | | <button class="trade-button">交易</button> |
| | | <AppButton variant="primary" size="large" full-width class="trade-button">交易</AppButton> |
| | | </div> |
| | | |
| | | <!-- 底部信息 --> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { Icon } from '@iconify/vue' |
| | | import BottomNav from '@/components/BottomNav.vue' |
| | | import Card from '@/components/Card.vue' |
| | | import AppButton from '@/components/Button.vue' |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | .main-tabs { |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 12px 16px; |
| | | gap: 24px; |
| | | border-bottom: 1px solid $border-light; |
| | | padding: $spacing-md $spacing-lg; |
| | | gap: $spacing-xxl; |
| | | margin-bottom: $spacing-lg; |
| | | background: $bg-tertiary; |
| | | |
| | | .tab-item { |
| | | font-size: $font-md; |
| | |
| | | right: -8px; |
| | | width: 6px; |
| | | height: 6px; |
| | | background: $error-red; |
| | | background: $error; |
| | | border-radius: 50%; |
| | | } |
| | | } |
| | |
| | | |
| | | .sub-tabs { |
| | | display: flex; |
| | | padding: 12px 16px; |
| | | gap: 24px; |
| | | border-bottom: 1px solid $border-light; |
| | | padding: $spacing-md $spacing-lg; |
| | | gap: $spacing-xxl; |
| | | margin-bottom: $spacing-lg; |
| | | background: $bg-tertiary; |
| | | |
| | | .sub-tab-item { |
| | | font-size: $font-md; |
| | | color: $text-secondary; |
| | | position: relative; |
| | | padding: $spacing-xs $spacing-md; |
| | | border-radius: $radius-pill; |
| | | transition: all $transition-base; |
| | | |
| | | &.active { |
| | | color: $primary-blue; |
| | | font-weight: 500; |
| | | |
| | | &::after { |
| | | content: ''; |
| | | position: absolute; |
| | | bottom: -12px; |
| | | left: 0; |
| | | right: 0; |
| | | height: 2px; |
| | | background: $primary-blue; |
| | | } |
| | | color: $primary; |
| | | font-weight: 600; |
| | | background: $primary-light; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .trade-area { |
| | | padding: 24px 16px; |
| | | padding: $spacing-xxl $spacing-lg; |
| | | |
| | | .trade-input { |
| | | background: $bg-secondary; |
| | | background: $bg-card; |
| | | border-radius: $radius-lg; |
| | | padding: 20px; |
| | | margin-bottom: 16px; |
| | | padding: $spacing-xl; |
| | | margin-bottom: $spacing-lg; |
| | | box-shadow: $card-shadow; |
| | | |
| | | &.top { |
| | | margin-bottom: 8px; |
| | |
| | | width: 32px; |
| | | height: 32px; |
| | | border-radius: 50%; |
| | | background: $primary-blue; |
| | | background: $primary; |
| | | color: white; |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | font-weight: bold; |
| | | |
| | | &.usdt { |
| | | background: $success-green; |
| | | background: $success; |
| | | } |
| | | } |
| | | |
| | |
| | | width: 24px; |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | background: $primary-blue; |
| | | background: $primary; |
| | | color: white; |
| | | border: none; |
| | | display: flex; |
| | |
| | | } |
| | | |
| | | .swap-icon { |
| | | width: 40px; |
| | | height: 40px; |
| | | border-radius: 50%; |
| | | background: $bg-dark; |
| | | width: 48px; |
| | | height: 48px; |
| | | border-radius: $radius-round; |
| | | background: $primary; |
| | | color: white; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin: -20px auto; |
| | | margin: -24px auto; |
| | | position: relative; |
| | | z-index: 1; |
| | | font-size: 20px; |
| | | cursor: pointer; |
| | | box-shadow: $button-shadow; |
| | | |
| | | svg { |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .trade-button-wrapper { |
| | | padding: 0 16px 16px; |
| | | |
| | | .trade-button { |
| | | width: 100%; |
| | | background: $primary-blue; |
| | | color: white; |
| | | border: none; |
| | | border-radius: $radius-lg; |
| | | padding: 16px; |
| | | font-size: $font-lg; |
| | | font-weight: 500; |
| | | cursor: pointer; |
| | | } |
| | | padding: 0 $spacing-lg $spacing-lg; |
| | | } |
| | | |
| | | .bottom-info { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 12px 16px; |
| | | padding: $spacing-md $spacing-lg; |
| | | font-size: $font-sm; |
| | | color: $text-secondary; |
| | | border-top: 1px solid $border-light; |
| | | background: $bg-tertiary; |
| | | margin-top: $spacing-lg; |
| | | } |
| | | </style> |