From b4c4556a5eddf6708ec55b07e3edc15b2217842e Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Wed, 30 Apr 2025 18:35:59 +0800
Subject: [PATCH] 0430号修改

---
 src/page/trading/buy.vue |  146 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 115 insertions(+), 31 deletions(-)

diff --git a/src/page/trading/buy.vue b/src/page/trading/buy.vue
index aa6ca39..3b86e18 100644
--- a/src/page/trading/buy.vue
+++ b/src/page/trading/buy.vue
@@ -1,4 +1,5 @@
 <template>
+  <!-- 挂单 买入 卖出 -->
   <div class="buy_page">
     <div class="content">
       <div class="top_cny">
@@ -20,14 +21,14 @@
           <div class="cot">
             <div class="lefts">
               <div class="top_new">
-                <span>₹{{ nowPrice | _toLocaleString }}</span>
+                <span> {{ nowPrice }}</span>
               </div>
               <div class="bottom_es">
                 <span>{{ $t("hj98") }}</span>
               </div>
             </div>
-            <div class="rights" v-if="KLine.type != 'HJ'">
-              <div class="ese">
+            <div class="rights">
+              <div class="ese" v-if="!isSell && KLine.type == 'HJ'">
                 <div
                   class="mc"
                   @click="handleTradingClick(0)"
@@ -63,7 +64,7 @@
         </div>
         <div class="tabs_content">
           <div class="num" v-show="priceTabsCurrentIndex == 1">
-            <span>{{ $t("hj99") }}</span>
+            <span>{{ isSell ? $t("当价格满足条件时卖出") : $t("hj99") }}</span>
           </div>
           <div class="tr_es flexJy" v-show="priceTabsCurrentIndex == 1">
             <div class="top_input">
@@ -108,7 +109,7 @@
               </div>
             </div>
           </div>
-          <div class="tr_rs gg" @click="showGg = true">
+          <!-- <div class="tr_rs gg" @click="showGg = true">
             <div class="top_bzz">
               <span>{{ $t("hj101") }}</span>
               <span>{{
@@ -117,34 +118,31 @@
                   : selectCycle
               }}</span>
             </div>
-          </div>
+          </div> -->
           <div class="tr_rs">
             <div class="top_bzz" style="padding-bottom: 0.2rem">
-              <span style="text-align: left"> {{ $t("交易总额") }}(₹) </span>
-              <span style="text-align: right"> {{ $t("hj103") }}(₹) </span>
+              <span style="text-align: left"> {{ $t("交易总额") }} </span>
+              <span style="text-align: right"> {{ $t("hj103") }} </span>
             </div>
 
             <div class="bottom_bzz">
               <span>
-                ₹{{
-                  (nowPrice * selectCycle.replace("X", "") * num)
-                    | _toLocaleString
-                }}
+                {{ nowPrice * selectCycle.replace("X", "") * num }}
               </span>
               <span style="white-space: nowarp">
-                ₹{{ moneyData.availableBalance | _toLocaleString }}
+                {{ moneyData.availableBalance }}
               </span>
             </div>
           </div>
           <div class="tr_rs">
             <div class="top_bzz" style="padding-bottom: 0.2rem">
-              <span style="text-align: left"> {{ $t("hj44") }}(₹) </span>
+              <span style="text-align: left"> {{ $t("hj44") }} </span>
               <span style="text-align: right"> </span>
             </div>
 
             <div class="bottom_bzz">
               <span>
-                ₹{{
+                {{
                   (nowPrice * selectCycle.replace("X", "") * num * sxf).toFixed(
                     2
                   )
@@ -204,10 +202,18 @@
           </div>
         </div>
       </div> -->
-      <div class="btn_buy" @click="gdOrSetBuy()">
+      <div
+        class="btn_buy"
+        @click="gdOrSetBuy()"
+        :disabled="isSell && !positiontionData.orderNum"
+        :class="{ 'disabled-btn': isSell && !positiontionData.orderNum }"
+      >
         <!-- <div :class="tabsCurrentIndex == 0 ? 'maichu' : ''">#3b82f6 -->
         <div class="maichu" style="background-color:#3b82f6">
-          <span>{{ tabsCurrentIndex == 0 ? $t("hj84") : $t("gm") }}</span>
+          <span v-if="isSell">{{ $t("hj78") }}</span>
+          <span v-else>{{
+            tabsCurrentIndex == 0 ? $t("hj84") : $t("gm")
+          }}</span>
         </div>
       </div>
     </div>
@@ -224,6 +230,7 @@
 
 <script>
 import * as api from "@/axios/api";
+import { number } from "echarts/lib/export";
 import { mapActions } from "vuex";
 
 export default {
@@ -231,8 +238,10 @@
   created() {
     if (this.$route.query.t) {
       this.tabsCurrentIndex = Number(this.$route.query.t);
-      console.log(this.tabsCurrentIndex);
+
+      console.log("tabsCurrentIndex: ", this.tabsCurrentIndex);
     }
+
     if (this.$route.query.m) {
       this.nowPrice = Number(this.$route.query.m);
       this.profitTarget = Number(this.$route.query.m);
@@ -260,10 +269,11 @@
   },
   data() {
     return {
+      isSell: false,
       tradingArr: [this.$t("hj84"), this.$t("hj85")],
       tabsCurrentIndex: 0,
-      // priceTabs: [this.$t("hj108"), this.$t("hj109")],
-      priceTabs: [this.$t("hj108")],
+      priceTabs: [this.$t("hj108"), this.$t("hj109")],
+      // priceTabs: [this.$t("hj108")],
       priceTabsCurrentIndex: 0,
       num: 1,
       nums: 1,
@@ -317,14 +327,37 @@
       ],
       moneyData: {},
       gid: "",
-      KLine: {}
+      KLine: {},
+      positiontionData: {
+        orderNum: 0
+      }
     };
   },
 
-  mounted() {
+  async mounted() {
     this.bayType = this.$route.query.bayType;
     this.gid = this.$route.query.gid;
     this.KLine = JSON.parse(window.localStorage.getItem("kLine"));
+    if (this.tabsCurrentIndex === 0) {
+      this.isSell = true;
+      // stockType 1黄金原油  2  股票
+      const data = await api.getPosition({
+        stock: this.$route.query.code || this.$route.query.name,
+        stockType: this.KLine.type === "HJ" ? 1 : 2
+      });
+      if (data.data) {
+        this.positiontionData = data.data;
+      } else {
+        if (data.status !== 0) {
+          this.$store.commit("elAlertShow", {
+            elAlertShow: true,
+            elAlertText: data.msg,
+             elAlertType: "warning"
+          });
+        }
+      }
+    }
+
     if (this.bayType == "in") {
       this.priceTabs = [this.$t("hj108"), this.$t("hj109")];
     } else if (this.bayType == "qh") {
@@ -498,6 +531,9 @@
       this.selectLever = val.label;
     },
     gdOrSetBuy() {
+      // 无持仓的时候不能下单
+      if (this.isSell && !this.positiontionData.orderNum) return;
+
       if (this.priceTabsCurrentIndex == 0) {
         this.setBuy();
       } else {
@@ -515,7 +551,7 @@
       }
       this.buying = true;
       let opts = {
-        stockId: this.code,
+        stockId: this.id,
         buyNum: this.num,
         lever: this.selectLever,
         targetPrice: this.nums
@@ -534,7 +570,31 @@
       if (this.checkedZs) {
         opts.stopTarget = this.zhisun;
       }
-      let data = await api.guadan(opts);
+      let data;
+      if (this.KLine.type === "HJ") {
+        opts.name = this.KLine.name;
+        opts.lever = 100;
+      }
+      if (this.isSell) {
+        let sellDate = {
+          positionSn: this.positiontionData.positionSn,
+          number: this.num,
+          name: opts.name
+        };
+        if (this.priceTabsCurrentIndex == 1) {
+          sellDate.targetPrice = this.nums;
+          sellDate.lever = opts.lever;
+        }
+        // 挂单 卖出
+        data = await api.sell(sellDate);
+      } else {
+        if (this.KLine.type === "HJ") {
+          data = await api.hjyyAddOrder(opts);
+        } else {
+          data = await api.guadan(opts);
+        }
+      }
+
       this.buying = false;
       if (data.status === 0) {
         this.$store.commit("elAlertShow", {
@@ -579,9 +639,9 @@
         // buyNum: (this.num.match(/\d+/g))[0] * 100, // 单位为手
         lever: this.selectLever
       };
-      if (this.KLine.type === "HJ") {
-        opts.lever = this.selectLever * 100;
-      }
+      // if (this.KLine.type === "HJ") {
+      //   opts.lever = this.num * 100;
+      // }
       console.log(this.selectLever, "this.selectLever ");
       if (this.tabsCurrentIndex == 0) {
         opts.buyType = 1;
@@ -612,14 +672,32 @@
       opts.stockId = this.id;
       let data;
 
-      console.log("bayType: ", this.KLine);
-
+      console.log("bayType: ", this.KLine, this.isSell);
       if (this.KLine.type == "HJ") {
         opts.name = this.KLine.name;
+        opts.lever = this.num * 100;
+      }
 
-        data = await api.goldCrudeOilbuy(opts);
+      if (this.isSell) {
+        let sellDate = {
+          positionSn: this.positiontionData.positionSn,
+          number: this.num,
+          name: opts.name
+        };
+        if (this.priceTabsCurrentIndex == 1) {
+          sellDate.targetPrice = this.nums;
+          sellDate.lever = opts.lever;
+        }
+        // 卖出
+        data = await api.sell(sellDate);
       } else {
-        data = await api.buy(opts);
+        if (this.KLine.type == "HJ") {
+          opts.name = this.KLine.name;
+          opts.lever = 100;
+          data = await api.goldCrudeOilbuy(opts);
+        } else {
+          data = await api.buy(opts);
+        }
       }
 
       this.buying = false;
@@ -1154,4 +1232,10 @@
 /deep/.van-popup {
   z-index: 10001 !important;
 }
+
+.disabled-btn {
+  opacity: 0.5;
+  pointer-events: none;
+  cursor: not-allowed;
+}
 </style>

--
Gitblit v1.9.3