From 3003b7486ddeffd169f2b2f564fc0ff8c2c58bb3 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Tue, 22 Jul 2025 09:56:04 +0800
Subject: [PATCH] 1

---
 src/page/trading/TradeNew.vue |  149 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 131 insertions(+), 18 deletions(-)

diff --git a/src/page/trading/TradeNew.vue b/src/page/trading/TradeNew.vue
index c7205a8..e1d7724 100644
--- a/src/page/trading/TradeNew.vue
+++ b/src/page/trading/TradeNew.vue
@@ -2,6 +2,16 @@
   <div class="trade_new">
     <tab-head></tab-head>
 
+    <div class="order_tabs">
+      <van-tabs v-model="active" swipe-threshold="1">
+        <van-tab :title="$t('hj160')" name=""></van-tab>
+        <van-tab title="AI" name="4"></van-tab>
+        <van-tab :title="$t('hj621')" name="3"></van-tab>
+        <van-tab title="IPO" name="2"></van-tab>
+        <van-tab :title="$t('日内')" name="0"></van-tab>
+      </van-tabs>
+    </div>
+
     <van-row class="list_head">
       <van-col span="8" class="flex-start head_item">
         {{ $t("hj313") }}/{{ $t("Worth") }}
@@ -14,53 +24,131 @@
       </van-col>
     </van-row>
 
-    <van-row class="list_item" v-for="item in 10" :key="item">
+    <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">US</span>
-          <span class="i_hint">WINVU</span>
+          <span class="i_icon">{{ i.stockGid }}</span>
+          <span class="i_hint">{{ i.stockSpell }}</span>
         </div>
-        <div class="i_name">124.1</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">18</p>
-        <p class="flex-start i_name">24.1 (24.1%)</p>
+        <p class="flex-start">{{ i.orderNum }}</p>
+        <p class="flex-start i_name">
+          {{ i.profitAndLose }} ({{ i.profitAndLoseParent }})
+        </p>
       </van-col>
       <van-col span="8" class="item_n">
         <div class="flex-end" style="margin-bottom: .15em;">
-          <span>10</span>
+          <span>{{ i.buyOrderPrice }}</span>
         </div>
         <div class="flex-end">
-          <span>12.41</span>
+          <span>{{ i.now_price }}</span>
         </div>
       </van-col>
       <van-col span="24" class="flex-start transaction_type">
-        <span>AI交易</span>
+        <span>{{ types[i.positionType] }}</span>
       </van-col>
-      <van-col span="24" class="flex-between item_card">
+      <van-col
+        span="24"
+        class="flex-between-start item_card"
+        v-if="i.positionType == 4"
+      >
         <div class="card_label">
-          <p>建仓成本</p>
-          <p>100</p>
+          <p>{{ $t("建仓成本") }}</p>
+          <p>{{ i.orderTotalPrice }}</p>
         </div>
         <div class="card_label">
-          <p>平仓金额</p>
-          <p>90</p>
+          <p>{{ $t("pcje") }}</p>
+          <p>{{ i.sellOrderTotalPrice }}</p>
         </div>
         <div class="card_label">
-          <p>预期收益</p>
-          <p>-10</p>
+          <p>{{ $t("预期收益") }}</p>
+          <p>{{ i.profitAndLose }}</p>
         </div>
       </van-col>
     </van-row>
+
+    <!-- 无数据时显示 -->
+    <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>
   </div>
 </template>
 
 <script>
 import tabHead from "@/components/tabHead.vue";
+import * as api from "@/axios/api";
+import nPagination from "@/components/nPagination.vue";
 
 export default {
   components: {
-    tabHead
+    tabHead,
+    nPagination
+  },
+  data() {
+    return {
+      pageNum: 1,
+      pageSize: 15,
+      total: 1,
+      list: [],
+      active: "",
+      types: {
+        0: this.$t("日内"),
+        2: "IPO",
+        3: this.$t("hj621"),
+        4: "AI"
+      }
+    };
+  },
+  watch: {
+    pageNum() {
+      this.getList();
+    },
+    active() {
+      this.pageNum = 1;
+      this.getList();
+    }
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    // 获取数据
+    async getList() {
+      let data = await api.getchicang({
+        state: 0,
+        positionType: this.active,
+        pageNum: this.pageNum,
+        pageSize: this.pageSize
+      });
+
+      if (data.status === 0) {
+        this.list = data.data.list;
+        this.total = data.data.total;
+      }
+    },
+    // 跳转详情
+    toDetails(i) {
+      if (!i.positionSn) return;
+      this.$router.push({
+        path: "/Stockdetail",
+        query: { codes: i.positionSn }
+      });
+    }
   }
 };
 </script>
@@ -70,12 +158,37 @@
 @dark_green: #07c160;
 @red: #ee0a24;
 @brown: #ff976a;
+@green: #c4d600;
 
 .trade_new {
   width: 100%;
-  height: 100%;
+  // height: 100%;
   background: #fff;
   font-size: 10vw;
+  padding-bottom: 1.3rem;
+  // padding-top: 1.4em;
+  /deep/ .van-tabs--line .van-tabs__wrap {
+    height: 1.2em;
+  }
+  /deep/ .van-tab__text--ellipsis {
+    overflow: visible;
+  }
+  /deep/ .van-tab {
+    font-size: 0.4em;
+  }
+  /deep/ .van-tabs__line {
+    background-color: @green;
+    height: 0.1em;
+    width: 1em;
+  }
+
+  .order_tabs {
+    width: 100%;
+    // position: fixed;
+    // top: 1.4em;
+    // left: 0;
+    // z-index: 999;
+  }
 
   .list_head {
     background-color: @green2;

--
Gitblit v1.9.3