From 349c48e168b9f2580334422228acde7d1b21bede Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Fri, 05 Jun 2026 11:19:15 +0800
Subject: [PATCH] 1
---
src/views/trade/index.vue | 103 ++++++++++++++++++++++++++++-----------------------
1 files changed, 56 insertions(+), 47 deletions(-)
diff --git a/src/views/trade/index.vue b/src/views/trade/index.vue
index 9201c55..ac1e74a 100644
--- a/src/views/trade/index.vue
+++ b/src/views/trade/index.vue
@@ -21,7 +21,7 @@
<span class="time">{{ chartData.market.time_str }}</span>
<span>{{ chartData.market.time_zone && $t(chartData.market.time_zone) }}</span>
</p>
- <div :class="{ slide2: animated1 }" v-if="selectIndex === 1">
+ <div :class="{ slide2: animated1 }" v-if="Number(selectIndex) === 1">
<section class="value-container" v-if="showMore">
<div class="flex-l">
<p class="first-line red">{{ formatMoney(chartData?.close) }}</p>
@@ -215,16 +215,13 @@
showLength = 7
},
initFutrue(val) {
- if (val) {
- if (this.$route.query.selectIndex == 2) {
- if (this.isUpdate) {
- setTimeout(() => {
- this.onTopTab(2)
- })
- this.isUpdate = false
- }
- }
+ if (!val || !this.symbol) return
+ if (Number(this.selectIndex) === 2 && this.curTab && typeof this[this.curTab] === 'function') {
+ this.$nextTick(() => {
+ this[this.curTab](this.symbol)
+ })
}
+ this.isUpdate = false
}
},
data() {
@@ -259,7 +256,7 @@
deep: null /// 深度
},
curTab: '', // 当前委托还是持有仓位
- selectIndex: 1, // 当前tab
+ selectIndex: 2, // 当前tab(仅AI量化)
initFutrue: {}, /// 交割合约
show: false, // popup
animated1: false,
@@ -373,36 +370,43 @@
handleClickShowMore() {
this.showMore = !this.showMore
},
- onTopTab(evt) { // 当前tab 永续/交割
- this.keyIndex += 1
- this.selectIndex = evt
+ onTopTab(evt) { // 仅AI量化
+ const tab = Number(evt) === 1 ? 2 : Number(evt)
+ this.syncContractTab(tab, true)
+ if (String(this.$route.query.selectIndex) !== String(tab)) {
+ this.$router.replace({
+ path: this.$route.path,
+ query: { ...this.$route.query, selectIndex: String(tab) }
+ }).catch(() => {})
+ }
+ },
+ syncContractTab(evt, bumpKey = true) {
+ const idx = Number(evt)
+ if (bumpKey) {
+ this.keyIndex += 1
+ }
+ this.selectIndex = idx
this.clearTimer()
- if (this.selectIndex / 1 === 1) {
- //this.curTab = 'fetchOrderListCur'
+ if (idx === 1) {
this.curTab = 'fetchOrderListHold'
- // this.animated1 = true
- // this.timer = setTimeout(() => {
- // this.animated1 = false
- // clearTimeout(this.timer)
- // }, 200)
this.animated2 = true
this.timer = setTimeout(() => {
this.animated2 = false
clearTimeout(this.timer)
}, 200)
} else {
- // this.animated2 = true
- // this.timer = setTimeout(() => {
- // this.animated2 = false
- // clearTimeout(this.timer)
- // }, 200)
+ this.curTab = 'fetchFutrueHoldList'
this.animated1 = true
this.timer = setTimeout(() => {
this.animated1 = false
clearTimeout(this.timer)
}, 200)
}
- this[this.curTab](this.symbol)
+ if (this.symbol && this.curTab && typeof this[this.curTab] === 'function') {
+ this.$nextTick(() => {
+ this[this.curTab](this.symbol)
+ })
+ }
},
onOrdered(evt) { // 下单过后的回调
this.clearTimer()
@@ -679,28 +683,33 @@
if (!symbol && catchSymbol) {
symbol = catchSymbol
} else if (!symbol && !catchSymbol) {
- return
+ symbol = 'btcusdt'
+ setStorage('symbol', symbol)
}
- if (symbol) {
- next(vm => {
- if (selectIndex) {
- // vm.selectIndex = selectIndex
- if (vm.selectIndex / 1 === 2) {
- vm.curTab = 'fetchFutrueHoldList'
- } else {
- //vm.curTab = 'fetchOrderListCur'
- vm.curTab = 'fetchOrderListHold'
- }
- } else {
- //vm.curTab = 'fetchOrderListCur'
- vm.curTab = 'fetchOrderListHold'
- }
- vm.symbol = symbol
- vm.init(symbol)
- })
- } else {
- next()
+ next(vm => {
+ let idx = selectIndex !== undefined && selectIndex !== null && selectIndex !== ''
+ ? Number(selectIndex)
+ : 2
+ if (idx === 1) idx = 2
+ vm.selectIndex = idx
+ vm.curTab = 'fetchFutrueHoldList'
+ vm.symbol = symbol
+ vm.init(symbol)
+ if (idx === 2) {
+ vm.$nextTick(() => vm.syncContractTab(2, false))
+ }
+ })
+ },
+ beforeRouteUpdate(to, from, next) {
+ const selectIndex = to.query.selectIndex
+ if (selectIndex !== undefined && selectIndex !== null && selectIndex !== '') {
+ let idx = Number(selectIndex)
+ if (idx === 1) idx = 2
+ if (Number(this.selectIndex) !== idx) {
+ this.syncContractTab(idx, true)
+ }
}
+ next()
},
deactivated() {
this.closeSocket()
--
Gitblit v1.9.3