From 42568bdd99cfaadd3f8d9059e5166e2e0b2b26d0 Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Tue, 26 Aug 2025 14:37:27 +0800
Subject: [PATCH] 1
---
src/page/user/Warehouse/data.list.vue | 389 +++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 315 insertions(+), 74 deletions(-)
diff --git a/src/page/user/Warehouse/data.list.vue b/src/page/user/Warehouse/data.list.vue
index d5a9f8c..b62b889 100644
--- a/src/page/user/Warehouse/data.list.vue
+++ b/src/page/user/Warehouse/data.list.vue
@@ -1,6 +1,6 @@
<template>
<div>
- <ul class="sport-tabs">
+ <!-- <ul class="sport-tabs">
<li
:class="actives === item.key && 'active'"
v-for="item in tabsList"
@@ -9,7 +9,12 @@
>
{{ item.title }}
</li>
- </ul>
+ </ul> -->
+ <div class="list">
+ <div class="list_box" v-for="(item, index) in tabsList" :key="index" :name="item.key">
+ <div @click="clickTabs(item,index)" :class="typeindex==index?'list_box_txts':'list_box_txt'">{{ item.title }}</div>
+ </div>
+ </div>
<van-list
v-model="loading"
:finished="finished"
@@ -23,9 +28,10 @@
v-for="(item, index) in dataList"
:key="index"
@click="$router.push(`/Stockdetail?codes=${item.positionSn}`)" >
- <div @click.stop="pushRouter(item)">
+ <div @click.stop="pushRouter(item)" style="border-bottom: 1px dashed #d9d7de;padding-bottom: 15px;">
+
<div class="title-box" style="justify-content: space-between;">
- <div class="span">{{ item.stockName }}</div>
+ <div class="span" :style="item.isListed==false?'color:red;':''">{{ item.stockName }}</div>
<div
class="states"
:class="item.orderDirection === '买跌' ? 'states-red' : ''"
@@ -36,13 +42,90 @@
{{ item.stockSpell }}
</div>
<van-row>
+ <van-col span="18">
+ <div style="text-align: left">
+ <!-- <div class="sport-content-title2">{{ $t("持倉時間") }}{{ $moment(item.buyOrderTime).format("DD-MM-YYYY hh:mm:ss A") }}</div> -->
+ <div class="sport-content-title2">{{ $t("hj141") }}</div>
+ </div>
+ </van-col>
+ <van-col span="6">
+ <div style="text-align: right">
+ <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'">
+ {{ item.profitAndLoseParent }}
+ </div>
+ <!-- <div class="sport-content-text2">{{ item.buyOrderId }}</div> -->
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("hj101") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.orderLever }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("倉位(股)") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.orderNum }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("持倉價") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.buyOrderPrice }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("盈虧") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.profitAndLose}}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("hj44") }} ({{ activeObj.symbolCode }})</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">¥{{ item.orderFee }}</div>
+ </div>
+ </van-col>
+ </van-row>
+
+ <!-- <van-row>
<van-col span="8">
<div style="text-align: left">
<div class="sport-content-title2" >
{{ $t("盈虧") }} ({{ activeObj.symbolCode }})
</div>
- <div class="sport-content-text" style="color:#3e9976;">
- ₹{{ item.profitAndLose | _toLocaleString }}
+ <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'">
+ ¥{{ item.profitAndLose | _toLocaleString }}
</div>
</div>
</van-col>
@@ -51,7 +134,7 @@
<div class="sport-content-title2">
{{ $t("hj141") }} ({{ activeObj.symbolCode }})
</div>
- <div class="sport-content-text2" style="color:#3e9976;">
+ <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'">
{{ item.profitAndLoseParent }}
</div>
</div>
@@ -59,18 +142,18 @@
<van-col span="8">
<div style="text-align: right">
<div class="sport-content-title2">{{ $t("倉位(股)") }}</div>
- <div class="sport-content-text">{{ item.orderNum }}</div>
+ <div class="sport-content-text2">{{ item.orderNum }}</div>
</div></van-col
>
- </van-row>
- <van-row>
+ </van-row> -->
+ <!-- <van-row>
<van-col span="8">
<div style="text-align: left">
<div class="sport-content-title2">
{{ $t("hj40") }}({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.now_price | _toLocaleString }}
+ ¥{{ item.now_price | _toLocaleString }}
</div>
</div>
</van-col>
@@ -80,7 +163,7 @@
{{ $t("持倉價") }} ({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.buyOrderPrice | _toLocaleString }}
+ ¥{{ item.buyOrderPrice | _toLocaleString }}
</div>
</div>
</van-col>
@@ -90,22 +173,32 @@
{{ $t("訂單金額") }} ({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.orderTotalPrice | _toLocaleString }}
+ ¥{{ item.orderTotalPrice | _toLocaleString }}
</div>
</div>
</van-col>
</van-row>
<van-row>
- <van-col span="8">
+ <van-col span="12">
<div style="text-align: left">
<div class="sport-content-title2">
{{ $t("hj44") }} ({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.orderFee | _toLocaleString }}
+ ¥{{ item.orderFee | _toLocaleString }}
</div>
</div>
</van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-title2">
+ {{ $t("待补金额") }} ({{ activeObj.symbolCode }})
+ </div>
+ <div class="sport-content-text2">
+ ¥{{ item.amountToBeCovered | _toLocaleString }}
+ </div>
+ </div>
+ </van-col> -->
<!-- <van-col span="8">
<div style="text-align: center">
<div class="sport-content-title2">
@@ -127,22 +220,7 @@
</div>
</van-col> -->
</van-row>
- <van-row>
- <van-col span="12">
- <div style="text-align: left">
- <div class="sport-content-title2">{{ $t("持倉時間") }}</div>
- <div class="sport-content-text2">
- {{ $moment(item.buyOrderTime).format("DD-MM-YYYY hh:mm:ss A") }}
- </div>
- </div>
- </van-col>
- <van-col span="12">
- <div style="text-align: right">
- <div class="sport-content-title2">{{ $t("訂單編號") }}</div>
- <div class="sport-content-text2">{{ item.buyOrderId }}</div>
- </div>
- </van-col>
- </van-row>
+
<div class="but-box" v-if="actives === 0" @click.stop="close(item)">
<div class="but">{{ $t("平仓") }}</div>
@@ -157,7 +235,96 @@
v-for="(item, index) in newdataList"
:key="index"
@click="$router.push(`/Stockdetail?codes=${item.positionSn}`)" >
- <div @click.stop="pushRouter(item)">
+ <div @click.stop="pushRouter(item)" style="border-bottom: 1px dashed #d9d7de;padding-bottom: 15px;">
+
+ <div class="title-box" style="justify-content: space-between;">
+ <div class="span" :style="item.isListed==false?'color:red;':''">{{ item.stockName }}</div>
+ <div
+ class="states"
+ :class="item.orderDirection === '买跌' ? 'states-red' : ''"
+ >
+ {{ $t(item.orderDirection) }}
+ </div>
+ </div>
+ {{ item.stockSpell }}
+ </div>
+ <van-row>
+ <van-col span="18">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("持倉時間") }}{{ formatTimestamp(item.buyOrderTime) }}</div>
+ <!-- <div class="sport-content-title2">{{ $t("訂單編號") }}</div> -->
+ </div>
+ </van-col>
+ <van-col span="6">
+ <div style="text-align: right">
+ <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'">
+ {{ item.profitAndLoseParent }}
+ </div>
+ <!-- <div class="sport-content-text2">{{ item.buyOrderId }}</div> -->
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("hj101") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.orderLever }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("倉位(股)") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.orderNum }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("持倉價") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.buyOrderPrice }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("盈虧") }}</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">{{ item.profitAndLose}}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <van-row>
+ <van-col span="12">
+ <div style="text-align: left">
+ <div class="sport-content-title2">{{ $t("hj44") }} ({{ activeObj.symbolCode }})</div>
+ </div>
+ </van-col>
+ <van-col span="12">
+ <div style="text-align: right">
+ <div class="sport-content-text2">¥{{ item.orderFee }}</div>
+ </div>
+ </van-col>
+ </van-row>
+ <!-- <div @click.stop="pushRouter(item)">
<div class="title-box" style="justify-content: space-between;">
<div class="span">{{ item.stockName }}</div>
<div
@@ -175,8 +342,8 @@
<div class="sport-content-title2">
{{ $t("盈虧") }} ({{ activeObj.symbolCode }})
</div>
- <div class="sport-content-text" style="color:#3e9976;">
- ₹{{ item.profitAndLose | _toLocaleString }}
+ <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'">
+ ¥{{ item.profitAndLose | _toLocaleString }}
</div>
</div>
</van-col>
@@ -185,7 +352,7 @@
<div class="sport-content-title2">
{{ $t("hj141") }} ({{ activeObj.symbolCode }})
</div>
- <div class="sport-content-text2" style="color:#3e9976;">
+ <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'">
{{ item.profitAndLoseParent }}
</div>
</div>
@@ -193,7 +360,7 @@
<van-col span="8">
<div style="text-align: right">
<div class="sport-content-title2">{{ $t("倉位(股)") }}</div>
- <div class="sport-content-text">{{ item.orderNum }}</div>
+ <div class="sport-content-text2">{{ item.orderNum }}</div>
</div></van-col
>
</van-row>
@@ -204,7 +371,7 @@
{{ $t("hj40") }}({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.now_price | _toLocaleString }}
+ ¥{{ item.now_price | _toLocaleString }}
</div>
</div>
</van-col>
@@ -214,7 +381,7 @@
{{ $t("持倉價") }} ({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.buyOrderPrice | _toLocaleString }}
+ ¥{{ item.buyOrderPrice | _toLocaleString }}
</div>
</div>
</van-col>
@@ -224,7 +391,7 @@
{{ $t("訂單金額") }} ({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.orderTotalPrice | _toLocaleString }}
+ ¥{{ item.orderTotalPrice | _toLocaleString }}
</div>
</div>
</van-col>
@@ -236,10 +403,10 @@
{{ $t("hj44") }} ({{ activeObj.symbolCode }})
</div>
<div class="sport-content-text2">
- ₹{{ item.orderFee | _toLocaleString }}
+ ¥{{ item.orderFee | _toLocaleString }}
</div>
</div>
- </van-col>
+ </van-col> -->
<!-- <van-col span="8">
<div style="text-align: center">
<div class="sport-content-title2">
@@ -260,7 +427,7 @@
</div>
</div>
</van-col> -->
- </van-row>
+ <!-- </van-row>
<van-row>
<van-col span="12">
<div style="text-align: left">
@@ -276,7 +443,7 @@
<div class="sport-content-text2">{{ item.buyOrderId }}</div>
</div>
</van-col>
- </van-row>
+ </van-row> -->
<div class="but-box" v-if="actives === 0" @click.stop="close(item)">
<div class="but">{{ $t("平仓") }}</div>
@@ -300,9 +467,10 @@
</div>
<div class="hang">
<div class="left">{{ $t("倉位(股)") }}</div>
- <div class="right" style="color: rgb(3, 173, 143)">
+ <!-- <div class="right" style="color: rgb(3, 173, 143)">
{{ closeSell.orderNum }}
- </div>
+ </div> -->
+ <input class="input_box" type="number" :max="closeSell.orderNum" :placeholder="$t('hj262')" v-model="ordernum" />
</div>
<div class="hang">
<div class="left">{{ $t("類型") }}</div>
@@ -334,10 +502,12 @@
pageNum: 1,
pageSize: 150,
loading: true,
+ typeindex:0,
finished: false,
closeSell: {},
show: false,
actives: 0,
+ ordernum:'',
dataList: [],
newdataList:[],
timer: null,
@@ -361,11 +531,25 @@
clearInterval(this.timer); // 在组件销毁前清除定时器
},
methods: {
+ formatTimestamp(timestamp) {
+ const date = new Date(timestamp); // 将时间戳转换为 Date 对象
+
+ const day = date.getDate(); // 日期
+ const month = date.getMonth() + 1; // 月份(从 0 开始,所以下标要加 1)
+ const year = date.getFullYear(); // 年份
+ const hours = date.getHours(); // 小时
+ const minutes = date.getMinutes(); // 分钟
+ const seconds = date.getSeconds(); // 秒钟
+
+ // 格式化为 "日月年/时分秒" 格式
+ return `${year}${this.$t('年')}${month}${this.$t('月')}${day}${this.$t('日')}/${hours}:${minutes}:${seconds}`;
+ // return `${month}`;
+ },
dsq(){
// this.dataList = [];
this.timer = setInterval(() => {
this.getList();
- }, 3000);
+ }, 1000);
},
pushRouter(item) {
const obj = {
@@ -394,18 +578,43 @@
this.loading = true;
},
async confirm() {
+ this.$refs.closeDialog.show = false;
const res = await sell({
positionSn: this.closeSell.positionSn,
+ number:this.ordernum
});
if (res.status === 0) {
- this.$refs.closeDialog.show = false;
this.dataList = [];
this.pageNum = 1;
this.finished = false;
+ Notify({ type: "success", message: res.msg });
this.getList();
this.$emit("closingPosition");
} else {
Notify({ type: "danger", message: res.msg });
+ }
+ },
+ // 获取仓位列表
+ async getLists(laber) {
+ if (laber) {
+ this.dataList = [];
+ this.pageNum = 1;
+ this.finished = false;
+ }
+ const res = await getchicang({
+ state: this.actives,
+ stockType: laber || this.activeObj.laber,
+ pageNum: 1,
+ pageSize: 30,
+ });
+
+ this.loading = false;
+ if (res.status === 0) {
+ this.newdataList = res.data.list;
+ this.finished = true;
+ } else {
+ this.loading = false;
+ this.finished = true;
}
},
// 获取仓位列表
@@ -419,24 +628,14 @@
state: this.actives,
stockType: laber || this.activeObj.laber,
pageNum: 1,
- pageSize: 100,
+ pageSize: 30,
});
this.loading = false;
if (res.status === 0) {
- if(this.actives == 0){
- this.dataList = res.data.list;
- }else{
- this.newdataList = res.data.list;
- }
- this.$forceUpdate(); // 强制Vue重新渲染
- // if (res.data.total <= this.dataList.length) {
+ this.dataList = []
+ this.dataList = res.data.list;
this.finished = true;
- // this.dsq()
- // this.timer = setInterval(() => {
- // this.getList();
- // }, 3000);
- // }
} else {
this.loading = false;
this.finished = true;
@@ -445,23 +644,31 @@
close(item) {
this.closeSell = item;
this.$refs.closeDialog.show = true;
+ this.ordernum = ''
},
- clickTabs(e) {
- this.dataList = [];
+
+ clickTabs(e,i) {
+ this.typeindex = i;
this.pageNum = 1;
this.finished = false;
this.actives = e.key;
- this.$forceUpdate(); // 强制Vue重新渲染
+ this.newdataList = []
+ this.dataList = []
+
if(e.key==1){
- clearTimeout(this.timer);
+ clearInterval(this.timer); // 在组件销毁前清除定时器
+ // clearTimeout(this.timer);
// setTimeout(()=>{
// clearInterval(this.timer); // 在组件销毁前清除定时器
// },3000)
- this.getList()
-
+ this.getLists()
+ // this.startPolling();
+ // this.dsq()
}else{
+ clearInterval(this.timer); // 在组件销毁前清除定时器
this.dsq()
}
+ this.$forceUpdate(); // 强制Vue重新渲染
// this.getList()
// if(e.key !=this.actives){
@@ -477,6 +684,36 @@
</script>
<style lang="less" scoped>
+ .list_box_txts{
+ padding: 12px 24px;
+ color: #fff;
+ background-color: #185546;
+ border-radius: 4px;
+ }
+ .list{
+ display: flex;
+ padding: 12px 0;
+ height: 60px;
+ align-items: center;
+ margin: 30px 0;
+ }
+ .list_box{
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-left: 15px;
+ // width: 25%;
+ }
+ .list_box_txt{
+ padding: 2px 4px;
+ color: #8B8698;
+ }
+ .input_box{
+ text-align: right;
+ font-size: 16px;
+
+ padding: 0 4px;
+ }
.sport-tabs {
// font-family: PingFang SC;
font-family: "DINPro";
@@ -553,10 +790,11 @@
}
.sport-content-title2 {
+ font-family: Arial, sans-serif;
font-style: normal;
font-weight: 400;
- font-size: 0.29333rem;
- color: #8c9fad;
+ font-size: 0.346667rem;
+ color: #858093;
// text-align: left;
}
.sport-content-text {
@@ -574,6 +812,7 @@
// font-family: "PingFang SC";
font-style: normal;
// font-weight: 500;
+ font-weight: bold;
font-size: 0.34667rem;
color: #14181f;
word-break: break-word;
@@ -583,19 +822,21 @@
.but-box {
display: flex;
justify-content: space-around;
+ width: 100%;
.but {
text-align: center;
- min-width: 2.13333rem;
- height: 0.69333rem;
- line-height: 0.69333rem;
- background: #e6f2ff;
+ // min-width: 2.13333rem;
+ width: 100%;
+ height: 60px;
+ line-height: 60px;
+ background: #185546;
border-radius: 0.10667rem;
list-style: none;
font-style: normal;
font-weight: 400;
- font-size: 0.29333rem;
- color: #0067ed;
+ font-size: 0.346667rem;
+ color: #fff;
border: none;
}
.buts {
--
Gitblit v1.9.3