From 95e138158db3e61e0be67691a4142f20c561634c Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 13 Jan 2026 18:50:38 +0800
Subject: [PATCH] 1
---
src/page/trading/TradeNew.vue | 220 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 157 insertions(+), 63 deletions(-)
diff --git a/src/page/trading/TradeNew.vue b/src/page/trading/TradeNew.vue
index 851d44e..b859b78 100644
--- a/src/page/trading/TradeNew.vue
+++ b/src/page/trading/TradeNew.vue
@@ -5,7 +5,7 @@
<template #reference>
<van-button type="primary">{{ $t("一键平仓") }}</van-button>
</template>
- </van-popover> -->
+</van-popover> -->
</tab-head>
<div class="order_tabs">
@@ -13,75 +13,119 @@
<van-tab :title="$t('hj160')" name=""></van-tab>
<van-tab :title="$t('美股指数')" name="US"></van-tab>
<van-tab :title="$t('日股指数')" name="JP"></van-tab>
+ <van-tab :title="$t('hj109')" name="GaDan"></van-tab>
<!-- <van-tab :title="$t('hksi')" name="HK"></van-tab>
<van-tab :title="$t('tsi')" name="TW"></van-tab> -->
</van-tabs>
</div>
- <van-row class="list_head">
- <van-col span="8" class="flex-start head_item">
- {{ $t("hj313") }}/{{ $t("Worth") }}
- </van-col>
- <van-col span="8" class="flex-start head_item">
- {{ $t("sl") }}/{{ $t("Profit") }}
- </van-col>
- <van-col span="8" class="flex-end head_item">
- {{ $t("Cost") }}/{{ $t("Current") }}
- </van-col>
- </van-row>
+ <!-- 挂单列表 -->
+ <div v-if="active == 'GaDan'">
- <van-row class="list_item" v-for="i in list" :key="i.id" @click="toDetails(i)">
- <van-col span="8" class="item_n">
- <div class="flex-start">
- <span class="i_icon">{{ i.stockGid }}</span>
- <span class="i_hint">{{ i.stockSpell }}</span>
- </div>
- <div class="i_name">
- {{ (i.orderNum * i.now_price).toFixed(2) }}
- </div>
- </van-col>
- <van-col span="8" class="item_n">
- <p class="flex-start">{{ i.orderNum }}</p>
- <p class="flex-start i_name" :style="{
- color:
- i.profitAndLose > 0 ? 'green' : i.profitAndLose < 0 ? 'red' : ''
- }">
- {{ i.profitAndLose }} ({{ i.profitAndLoseParent }})
- </p>
- </van-col>
- <van-col span="8" class="item_n">
- <div class="flex-end" style="margin-bottom: .15em;">
- <span>{{ i.buyOrderPrice }}</span>
- </div>
- <div class="flex-end">
- <span>{{ i.now_price }}</span>
- </div>
- </van-col>
- <van-col span="24" class="flex-start transaction_type">
- <span>{{ types[i.positionType] }}</span>
- </van-col>
- <van-col span="24" class="flex-between-start item_card" v-if="i.positionType == 4">
- <div class="card_label">
- <p>{{ $t("建仓成本") }}</p>
- <p>{{ i.orderTotalPrice }}</p>
- </div>
- <div class="card_label">
- <p>{{ $t("pcje") }}</p>
- <p>{{ i.sellOrderTotalPrice }}</p>
- </div>
- <div class="card_label">
- <p>{{ $t("预期收益") }}</p>
- <p>{{ i.profitAndLose }}</p>
- </div>
- </van-col>
- </van-row>
+ <van-row class="list_head">
+ <van-col span="14" class="flex-start head_item">
+ {{ $t("hj313") }}/{{ $t("Worth") }}
+ </van-col>
+ <van-col span="3" class="flex-center head_item">
+ {{ $t("sl") }}
+ </van-col>
+ <van-col span="3" class="flex-center head_item">
+ {{ $t("Cost") }}
+ </van-col>
+ </van-row>
+
+ <van-row class="list_item" v-for="i in list" :key="i.id">
+ <van-col span="14" class="item_n">
+ <div class="flex-start">
+ <span class="i_icon">{{ i.stockGid }}</span>
+ <span class="i_hint">{{ i.stockName }}</span>
+ </div>
+ <div class="i_name">
+ {{ (i.buyNum * i.nowPrice).toFixed(2) }}
+ </div>
+ </van-col>
+ <van-col span="3" class="item_n">
+ <p class="flex-center">{{ i.buyNum }}</p>
+ </van-col>
+ <van-col span="3" class="item_n">
+ <div class="flex-center" style="margin-bottom: .15em;">
+ <span>{{ i.targetPrice }}</span>
+ </div>
+ </van-col>
+ <van-col span="4" class="item_n">
+ <div class="flex-center delete-btn-wrapper">
+ <van-icon name="delete" size="0.5rem" color="#ee0a24" @click.stop="handleDelete(i)" />
+ </div>
+ </van-col>
+ </van-row>
+ </div>
+ <!-- 正常持仓列表 -->
+ <div v-else>
+ <van-row class="list_head">
+ <van-col span="8" class="flex-start head_item">
+ {{ $t("hj313") }}/{{ $t("Worth") }}
+ </van-col>
+ <van-col span="8" class="flex-start head_item">
+ {{ $t("sl") }}/{{ $t("Profit") }}
+ </van-col>
+ <van-col span="8" class="flex-end head_item">
+ {{ $t("Cost") }}/{{ $t("Current") }}
+ </van-col>
+ </van-row>
+
+ <van-row class="list_item" v-for="i in list" :key="i.id" @click="toDetails(i)">
+ <van-col span="8" class="item_n">
+ <div class="flex-start">
+ <span class="i_icon">{{ i.stockGid }}</span>
+ <span class="i_hint">{{ i.stockSpell }}</span>
+ </div>
+ <div class="i_name">
+ {{ (i.orderNum * i.now_price).toFixed(2) }}
+ </div>
+ </van-col>
+ <van-col span="8" class="item_n">
+ <p class="flex-start">{{ i.orderNum }}</p>
+ <p class="flex-start i_name" :style="{
+ color:
+ i.profitAndLose > 0 ? 'green' : i.profitAndLose < 0 ? 'red' : ''
+ }">
+ {{ i.profitAndLose }} ({{ i.profitAndLoseParent }})
+ </p>
+ </van-col>
+ <van-col span="8" class="item_n">
+ <div class="flex-end" style="margin-bottom: .15em;">
+ <span>{{ i.buyOrderPrice }}</span>
+ </div>
+ <div class="flex-end">
+ <span>{{ i.now_price }}</span>
+ </div>
+ </van-col>
+ <van-col span="24" class="flex-start transaction_type">
+ <span>{{ types[i.positionType] }}</span>
+ </van-col>
+ <van-col span="24" class="flex-between-start item_card" v-if="i.positionType == 4">
+ <div class="card_label">
+ <p>{{ $t("建仓成本") }}</p>
+ <p>{{ i.orderTotalPrice }}</p>
+ </div>
+ <div class="card_label">
+ <p>{{ $t("pcje") }}</p>
+ <p>{{ i.sellOrderTotalPrice }}</p>
+ </div>
+ <div class="card_label">
+ <p>{{ $t("预期收益") }}</p>
+ <p>{{ i.profitAndLose }}</p>
+ </div>
+ </van-col>
+ </van-row>
+ </div>
<!-- 无数据时显示 -->
<div class="no_data flex-center" v-show="!list || list.length == 0">
<img src="@/assets/img/zhaobudao2.png" alt="" />
</div>
- <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total"></n-pagination>
+ <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total" v-if="active != 'GaDan'"></n-pagination>
</div>
</template>
@@ -90,7 +134,7 @@
import tabHead from "@/components/tabHead.vue";
import * as api from "@/axios/api";
import nPagination from "@/components/nPagination.vue";
-import { Notify } from "vant";
+import { Notify, Dialog } from "vant";
export default {
components: {
@@ -119,10 +163,17 @@
this.getList();
this.creatTimer();
},
- active() {
+ active(val) {
this.pageNum = 1;
- this.getList();
- this.creatTimer();
+ this.list = []
+ if (val == 'GaDan') {
+ this.stopTimer()
+ this.getList2();
+ }
+ else {
+ this.getList();
+ this.creatTimer();
+ }
}
},
created() {
@@ -133,7 +184,7 @@
this.stopTimer();
},
methods: {
- // 获取数据
+ // 获取持仓数据
async getList() {
let data = await api.getchicang({
state: 0,
@@ -145,6 +196,14 @@
if (data.status === 0) {
this.list = data.data.list;
this.total = data.data.total;
+ }
+ },
+ // 获取挂单数据
+ async getList2() {
+ let data = await api.getGdOrderList();
+
+ if (data.status === 0) {
+ this.list = data.data;
}
},
// 跳转详情
@@ -180,6 +239,31 @@
} else {
Notify({ type: "danger", message: res.msg });
}
+ },
+ // 删除挂单
+ handleDelete(item) {
+ Dialog.confirm({
+ title: this.$t("提示"),
+ message: this.$t("确认删除") + "?",
+ confirmButtonText: this.$t("qr"),
+ cancelButtonText: this.$t("qx")
+ }).then(async () => {
+ // 用户确认后执行删除
+ try {
+ const data = await api.delGuaDan({ id: item.id });
+ if (data.status === 0) {
+ Notify({ type: "success", message: data.msg || this.$t("hj137") });
+ // 刷新挂单列表
+ this.getList2();
+ } else {
+ Notify({ type: "danger", message: data.msg || this.$t("获取数据失败") });
+ }
+ } catch (error) {
+ Notify({ type: "danger", message: this.$t("获取数据失败") });
+ }
+ }).catch(() => {
+ // 用户取消,不做任何操作
+ });
}
}
};
@@ -302,6 +386,16 @@
}
}
+ .delete-btn-wrapper {
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+
+ &:hover {
+ opacity: 0.8;
+ }
+ }
+
.edit {
width: 100%;
height: 100%;
--
Gitblit v1.9.3