From fcb00a66b4053550b473a29d7299c7a4737eea75 Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Wed, 16 Jul 2025 14:41:04 +0800
Subject: [PATCH] 翻译
---
src/page/perpetualContract/perpetualHistory.vue | 187 ++++++++++++++++++++++++----------------------
1 files changed, 96 insertions(+), 91 deletions(-)
diff --git a/src/page/perpetualContract/perpetualHistory.vue b/src/page/perpetualContract/perpetualHistory.vue
index 0875ef4..d98927d 100644
--- a/src/page/perpetualContract/perpetualHistory.vue
+++ b/src/page/perpetualContract/perpetualHistory.vue
@@ -2,7 +2,7 @@
<!-- U本位合约历史 -->
<div class="perpetualHistory">
<assets-head
- :title="$t('U本位合约历史')"
+ :title="$t('委托订单')"
:backFunc="
() => {
if ($route.query.goback) {
@@ -21,67 +21,13 @@
"
/>
<div>
- <van-tabs ref="tabs" v-model="type" @change="onChange" sticky>
+ <van-tabs ref="tabs" v-model="type" @change="onChange">
<van-tab
:title="item.title"
v-for="item in selectData"
:key="item.title"
:name="item.type"
>
- <!-- <div class="all-select flex justify-end" v-if="symbol">
- <div class="select-box flex" @click.stop="isAll = !isAll"> -->
- <!-- <div class="flex-1 font-24" v-if="symbol === 'wld'">FTB/USDT</div>
- <div class="flex-1 font-24" v-else-if="symbol === 'mln'">
- DKL/USDT
- </div>
- <div class="flex-1 font-24" v-else-if="symbol === 'qtum'">
- BQHN/USDT
- </div>
- <div class="flex-1 font-24" v-else-if="symbol === 'knc'">
- XCM/USDT
- </div>
- <div class="flex-1 font-24" v-else-if="symbol === 'vet'">
- ACG/USDT
- </div> -->
-
- <!-- <div class="flex-1 font-24" v-else>
- {{ symbol.toUpperCase() }}/USDT
- </div>
- <van-icon name="arrow-down" />
- <div class="select-data" v-if="isAll">
- <div
- class="select-item font-24"
- @click.stop="selectItem(item2)"
- v-for="(item2, index) in currencyList"
- :key="index"
- >
- {{ item2.symbolFullName }}
- </div>
- </div> -->
- <!-- <div data-v-5764026c="" class="select-data" @click.stop="selectItem(item2)" v-if="isAll">
- <div data-v-5764026c="" class="select-item font-24">WLD/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">WDC/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">BTC/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">ETH/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">XTZ/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">ADA/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">YFII/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">MLN/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">YFI/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">DAI/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">ETC/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">XRP/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">LTC/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">USDC/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">KNC/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">DOGE/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">VET/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">SHIB/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">QTUM/USDT</div>
- <div data-v-5764026c="" class="select-item font-24">ICP/USDT</div>
- </div> -->
- <!-- </div>
- </div> -->
<template v-if="type === 'orders'">
<van-list
v-model="loading"
@@ -103,12 +49,12 @@
class="flex flex-col justify-center pt-50 pb-20 items-center"
v-if="!dataList.orders.length && !loading"
>
- <img
+ <!-- <img
src="@/assets/image/assets-center/no-data.png"
alt=""
class="w-180 h-180"
- />
- <p class="text-grey mt-10">{{ $t("暂无记录") }}</p>
+ /> -->
+ <!-- <p class="text-grey mt-10">{{ $t("暂无记录") }}</p> -->
</div>
</van-list>
</template>
@@ -140,6 +86,12 @@
</div>
</van-list>
</template>
+
+ <div v-if="type === 'position'">
+ <PerpetualPositionList
+ :list-data="orderHold"
+ ></PerpetualPositionList>
+ </div>
</van-tab>
</van-tabs>
</div>
@@ -150,6 +102,7 @@
import assetsHead from "@/components/assets-head";
import PerpetualEntrustList from "@/components/perpetual-entrust-list/index.vue";
import PerpetualHistoryPosition from "@/components/perpetual-history-position/index.vue";
+import PerpetualPositionList from "@/components/perpetual-position-list/index.vue";
import { _orderListCur, _orderListHold } from "@/API/trade.api";
import { _getCoins } from "@/API/home.api";
import { List, Tab, Tabs, DropdownMenu, DropdownItem } from "vant";
@@ -157,6 +110,7 @@
data() {
return {
type: "orders",
+ orderHold: [], // 永续持有仓位
dataList: {
orders: [],
hisorders: [],
@@ -169,18 +123,35 @@
type: "orders",
},
{
- title: this.$t("历史仓位"),
+ title: this.$t("历史委托"),
type: "hisorders",
+ },
+ {
+ title: this.$t("当前持仓"),
+ type: "position",
},
],
loading: false,
finished: false,
page: 1,
+ pollTimer: null,
};
},
mounted() {
this.getCoins();
// this.symbol = this.$route.query.symbol;
+ },
+ watch: {
+ type(newVal) {
+ if (newVal === "position") {
+ this.startPolling();
+ } else {
+ this.stopPolling();
+ }
+ },
+ },
+ beforeDestroy() {
+ this.stopPolling();
},
methods: {
getCoins() {
@@ -202,7 +173,25 @@
onClickLeft() {
this.$router.go(-1);
},
+ startPolling() {
+ if (this.pollTimer) return;
+ this.pollTimer = setInterval(() => {
+ this.fetchList(); // 你的轮询方法
+ }, 1500); // 3秒轮询一次,可根据需要调整
+ },
+ stopPolling() {
+ if (this.pollTimer) {
+ clearInterval(this.pollTimer);
+ this.pollTimer = null;
+ }
+ },
async fetchList(symbol) {
+ if (this.type === "position") {
+ _orderListHold().then((data) => {
+ this.orderHold = data;
+ });
+ return;
+ }
const _api = this.type === "orders" ? _orderListCur : _orderListHold;
const type = this.type;
symbol = "";
@@ -235,6 +224,7 @@
components: {
PerpetualEntrustList,
PerpetualHistoryPosition,
+ PerpetualPositionList,
assetsHead,
[DropdownMenu.name]: DropdownMenu,
[DropdownItem.name]: DropdownItem,
@@ -261,46 +251,61 @@
@include themify() {
background: themed("main_background");
}
-
::v-deep .van-tab {
- @include themify() {
- color: themed("text_color");
- }
+ width: 10rem;
+ flex: none;
}
-
::v-deep .van-tabs__nav {
- @include themify() {
- background: themed("tab_background");
- }
- }
-
- ::v-deep .van-tab--active {
- background: #1194f7;
- border-radius: 5px;
- color: #fff !important;
- }
-
- ::v-deep .van-nav-bar {
@include themify() {
background: themed("main_background");
}
}
-
- ::v-deep .van-nav-bar__title {
- @include themify() {
- color: themed("text_color");
- }
- }
-
- ::v-deep .van-tabs__nav {
- @include themify() {
- background: themed("tab_background");
- }
- }
-
::v-deep .van-tabs__line {
- background-color: transparent !important;
+ background: rgb(247, 179, 40);
}
+ ::v-deep .van-tab--active {
+ color: rgb(247, 179, 40);
+ }
+
+ // ::v-deep .van-tab {
+ // @include themify() {
+ // color: themed("text_color");
+ // }
+ // }
+
+ // ::v-deep .van-tabs__nav {
+ // @include themify() {
+ // background: themed("tab_background");
+ // }
+ // }
+
+ // ::v-deep .van-tab--active {
+ // background: #1194f7;
+ // border-radius: 5px;
+ // color: #fff !important;
+ // }
+
+ // ::v-deep .van-nav-bar {
+ // @include themify() {
+ // background: themed("main_background");
+ // }
+ // }
+
+ // ::v-deep .van-nav-bar__title {
+ // @include themify() {
+ // color: themed("text_color");
+ // }
+ // }
+
+ // ::v-deep .van-tabs__nav {
+ // @include themify() {
+ // background: themed("tab_background");
+ // }
+ // }
+
+ // ::v-deep .van-tabs__line {
+ // background-color: transparent !important;
+ // }
}
.active-line {
--
Gitblit v1.9.3