From 1bd03f5c2e7b9fa9cc80c4e673e18132da411333 Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Wed, 12 Nov 2025 16:21:06 +0800
Subject: [PATCH] 1

---
 src/page/user/myOrder.vue |  204 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 146 insertions(+), 58 deletions(-)

diff --git a/src/page/user/myOrder.vue b/src/page/user/myOrder.vue
index 3dd0835..a52c77e 100644
--- a/src/page/user/myOrder.vue
+++ b/src/page/user/myOrder.vue
@@ -39,7 +39,7 @@
           <div class="assets-item flex-center" style="align-items: end;">
             <div class="all-size">{{ $t("平仓盈亏") }}</div>
             <div class="big-size">
-              {{ moneyData.symbol }}{{ moneyData.cumulativeProfitAndLoss }}
+              {{ moneyData.symbol }}<span v-if="moneyData.isZf==1">-</span>{{ moneyData.cumulativeProfitAndLoss }}
             </div>
           </div>
         </div>
@@ -63,9 +63,13 @@
     <van-tabs v-model="active" title-inactive-color="#898a8e">
       <van-tab :title="$t('hj2')" name="0" title-style="font-size:0.4rem;"></van-tab>
       <van-tab :title="$t('hj121')" name="1" title-style="font-size:0.4rem;"></van-tab>
+      <van-tab :title="$t('hj109')" name="2" title-style="font-size:0.4rem;"></van-tab>
     </van-tabs>
 
     <div class="mo_list" v-if="active == '0'">
+      <div class="mo_all_sell" @click="allsellclick()">
+        <div>{{ $t("gball") }}</div>
+      </div>
       <div class="mol_item" v-for="(i, index) in list" :key="i.id" @click="open(i, index)">
         <div class="moli_title flex-between">
           <div>
@@ -75,58 +79,7 @@
             {{ i.orderDirection == "买涨" ? $t("gm") : $t("hj78") }}
           </div>
         </div>
-        <!-- <div class="moli_orderTitle">
-          <span>{{ $t("订单号") }}</span>
-          <span style="margin-left: 1em;">{{ i.buyOrderId }}</span>
-        </div> -->
         <div style="display:flex;flex-wrap:wrap;padding:0 .3rem .35rem;">
-          <!-- <div class="tui-wrapItem flex-start">
-            <div>
-              {{ $t("Price") }}
-            </div>
-            <div style="margin-left: .25rem;font-size: .4rem;">
-              {{ i.orderTotalPrice }}
-            </div>
-          </div>
-
-          <div class="tui-wrapItem flex-start" style="width: 46%;">
-            <div>
-              {{ $t("盈虧") }}
-            </div>
-            <div
-              style="margin-left: .25rem;font-size: .4rem;"
-              :style="
-                `color:${
-                  i.profitAndLose > 0
-                    ? 'green'
-                    : i.profitAndLose < 0
-                    ? 'red'
-                    : ''
-                }`
-              "
-            >
-              {{ i.profitAndLose }}
-            </div>
-          </div>
-
-          <div class="tui-wrapItem flex-start">
-            <div>
-              {{ $t("持倉價") }}
-            </div>
-            <div style="margin-left: .25rem;">
-              {{ i.buyOrderPrice }}
-            </div>
-          </div>
-
-          <div class="tui-wrapItem flex-start" style="width:100%">
-            <div>
-              {{ $t("持倉時間") }}
-            </div>
-            <div style="margin-left: .25rem;">
-              {{ $moment(i.buyOrderTime).format("DD-MM-YYYY hh:mm:ss A") }}
-            </div>
-          </div> -->
-
           <div class="tui-wrapItem" style="width: 25%;">
             <div style="font-size: 0.28rem;margin-bottom: .25rem;">
               {{ $t("MingCheng") }}/{{ $t("市值") }}
@@ -239,7 +192,7 @@
             </div>
             <div style="margin-left: .25rem;font-size: .4rem;" :style="`color:${i.profitAndLose > 0
               ? 'green'
-              : i.profitAndLose < 0
+              : i.isZf < 0
                 ? 'red'
                 : ''
               }`
@@ -290,13 +243,91 @@
         <span>{{ $t("沒有更多了") }}</span>
       </div>
     </div>
+
+    <div class="mo_list" v-if="active == '2'">
+      <div class="mol_item" v-for="(i, index) in orderList" :key="i.id" >
+        <div class="moli_title flex-between">
+          <div>
+            {{ i.stockName }}
+          </div>
+         <div v-if="i.status!=2" @click="cdclick(i.id)" class="mo_all_sells">
+           {{ $t("hj126") }}
+          </div>
+        </div>
+
+        <div style="display:flex;flex-wrap:wrap;padding-bottom: .35rem;margin: 0 10px;">
+          <div class="tui-wrapItem flex-start">
+            <div>
+              {{ $t("hj125") }}
+            </div>
+            <div style="margin-left: .25rem;font-size: .4rem;">
+              {{ i.nowPrice }}
+            </div>
+          </div>
+
+          <div class="tui-wrapItem flex-start" style="width: 46%;">
+            <div>
+              {{ $t("hj101") }}
+            </div>
+            <div style="margin-left: .25rem;font-size: .4rem;" >
+              {{ i.lever }}
+            </div>
+          </div>
+
+          <div class="tui-wrapItem flex-start">
+            <div>
+              {{ $t("hj270") }}
+            </div>
+            <div style="margin-left: .25rem;">
+              {{ i.buyNum }}
+            </div>
+          </div>
+
+          <div class="tui-wrapItem flex-start" style="width: 46%;">
+            <div>
+              {{ $t("hj271") }}
+            </div>
+            <div style="margin-left: .25rem;">
+              {{ i.targetPrice }}
+            </div>
+          </div>
+
+          <div class="tui-wrapItem">
+            <div>
+              {{ $t("操作时间") }}
+            </div>
+            <div>
+              {{ i.addTime }}
+            </div>
+          </div>
+
+          <div class="tui-wrapItem" style="width: 46%;">
+            <div>
+              {{ $t("状态") }}
+            </div>
+            <div v-if="i.status==0">
+              {{ $t('已挂单') }}
+            </div>
+            <div v-if="i.status==2">
+              {{ $t('买入失败') }}
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="more-news">
+        <span>{{ $t("沒有更多了") }}</span>
+      </div>
+    </div>
   </div>
 </template>
 
 <script>
-let teimss = null;
+let teimss = null; // 轮询获取账户金额计时器
+let teimss2 = null; // 轮询获取持仓数据计时器
 import tabHead from "@/components/tabHead.vue";
 import * as api from "@/axios/api";
+import { Notify } from "vant";
 export default {
   components: {
     tabHead
@@ -306,6 +337,7 @@
       active: "0",
       pageNum: 1,
       pageSize: 9999,
+      orderList:[],//挂单列表
       total: 1,
       list: [], // 持仓数据
       list2: [], // 平仓数据
@@ -317,8 +349,20 @@
   watch: {
     active: {
       handler(state) {
-        this.pageNum = 1;
-        this.getList(state);
+        console.log(state);
+        if(state==2){
+          this.getorderList()
+        }else{
+          this.pageNum = 1;
+          this.getList(state);
+
+          clearInterval(teimss2);
+          // 判断如果是获取平仓数据就不再轮询
+          if(state == '1') return
+          teimss2 = setInterval(() => {
+            this.getList(state);
+          }, 3000);
+        }
       },
       immediate: true
     }
@@ -334,12 +378,27 @@
     this.getMoney();
     teimss = setInterval(() => {
       this.getMoney();
-    }, 10000);
+    }, 3000);
   },
   beforeDestroy() {
     clearInterval(teimss);
+    clearInterval(teimss2);
   },
   methods: {
+    async cdclick(id){
+      let data = await api.revocationOrder({"id":id});
+      if (data.status === 0) {
+        Notify({ type: "success", message: data.msg });
+        this.getorderList()
+      }
+    },
+    // 获取 挂单 数据
+    async getorderList() {
+      let data = await api.getorderList();
+      if (data.status === 0) {
+        this.orderList = data.data
+      }
+    },
     // 获取 持仓 数据
     async getList(state = 0) {
       let opt = {
@@ -347,11 +406,21 @@
         pageNum: this.pageNum,
         pageSize: this.pageSize
       };
-      let data = await api.getchicang(opt);
 
+      let data = await api.getchicang(opt);
       if (data.status === 0) {
         if (this.active == "0") this.list = data.data.list;
         else this.list2 = data.data.list;
+      }
+    },
+    // 一键平仓
+    async allsellclick(){
+      let data = await api.allsell();
+      if (data.status === 0) {
+        Notify({ type: "success", message: data.msg });
+        this.getList(state);
+      } else {
+        Notify({ type: "danger", message: data.msg });
       }
     },
     open(i, index) {
@@ -396,6 +465,25 @@
 </script>
 
 <style lang="less" scoped>
+  .mo_all_sells{
+    padding: 10px 20px;
+    background: linear-gradient(90deg, #585fb4, #48529e);
+    border-radius: 25px;
+    text-align: center;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+.mo_all_sell{
+  padding: 20px 10px;
+  background: linear-gradient(90deg, #585fb4, #48529e);
+  border-radius: 25px;
+  text-align: center;
+  margin: 15px ;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
 /deep/ .van-tabs__nav {
   background: none;
 

--
Gitblit v1.9.3