From 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sat, 31 Jan 2026 11:01:45 +0800
Subject: [PATCH] 1

---
 src/page/trading/buy.vue |  156 +++++++++++++++++++++-------------------------------
 1 files changed, 63 insertions(+), 93 deletions(-)

diff --git a/src/page/trading/buy.vue b/src/page/trading/buy.vue
index ad08455..baf40b9 100644
--- a/src/page/trading/buy.vue
+++ b/src/page/trading/buy.vue
@@ -28,38 +28,25 @@
                 <span>{{ $t("hj98") }}</span>
               </div>
             </div>
-            <div class="rights">
+            <!-- <div class="rights">
               <div class="ese">
-                <div
-                  class="mc"
-                  @click="handleTradingClick(0)"
-                  :class="tabsCurrentIndex === 0 ? 'actives' : ''"
-                >
+                <div class="mc" @click="handleTradingClick(0)" :class="tabsCurrentIndex === 0 ? 'actives' : ''">
                   <span>Short</span>
                 </div>
 
-                <div
-                  class="mr"
-                  @click="handleTradingClick(1)"
-                  :class="tabsCurrentIndex === 1 ? 'active' : ''"
-                >
+                <div class="mr" @click="handleTradingClick(1)" :class="tabsCurrentIndex === 1 ? 'active' : ''">
                   <span>Long</span>
                 </div>
               </div>
-            </div>
+            </div> -->
           </div>
         </div>
       </div>
 
       <div class="price_tabs">
         <div class="tabs">
-          <div
-            class="tab_item"
-            v-for="(item, index) in priceTabs"
-            :key="index"
-            @click="handleTabsClick(item, index)"
-            :class="priceTabsCurrentIndex === index ? 'active' : ''"
-          >
+          <div class="tab_item" v-for="(item, index) in priceTabs" :key="index" @click="handleTabsClick(item, index)"
+            :class="priceTabsCurrentIndex === index ? 'active' : ''">
             <span>{{ item }}</span>
           </div>
         </div>
@@ -76,14 +63,11 @@
                 <img src="@/assets/img/ic_number_jian.png" alt />
               </div>
               <div class="addorj"></div>
-              <div
-                class="addorj"
-                @click="
-                  typeof nums == 'string'
-                    ? (nums = Number(Number(nums) + 1).toFixed(2))
-                    : (nums = (Number(nums) + 1).toFixed(2))
-                "
-              >
+              <div class="addorj" @click="
+                typeof nums == 'string'
+                  ? (nums = Number(Number(nums) + 1).toFixed(2))
+                  : (nums = (Number(nums) + 1).toFixed(2))
+                ">
                 <img src="@/assets/img/ic_number_add.png" />
               </div>
             </div>
@@ -93,12 +77,7 @@
           </div>
           <div class="tr_es flexJy">
             <div class="top_input">
-              <input
-                type="number"
-                onkeyup="value=value.replace(/[^\d]/g,'')"
-                v-model="num"
-                @input="numInput"
-              />
+              <input type="number" onkeyup="value=value.replace(/[^\d]/g,'')" v-model="num" @input="numInput" />
             </div>
             <div class="right_sw flexJy" style="width: auto">
               <div class="addorj" @click="jyslJian">
@@ -110,41 +89,35 @@
               </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>{{ 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>
                 {{ bayType | currencySymbol }}
                 {{
-                  (nowPrice * selectCycle.replace("X", "") * num)
-                    | _toLocaleString
+                  (nowPrice * selectCycle.replace("X", "") * num * stockNum)
+                  | _toLocaleString
                 }}
-                <span v-if="bayType != 'US'">
-                  ≈ $
-                  {{
-                    (nowPrice * selectCycle.replace("X", "") * num * rate)
-                      | _toLocaleString
-                  }}
-                </span>
               </span>
               <span style="white-space: nowarp">
-                $ {{ moneyData.availableBalance | _toLocaleString }}
+                {{ bayType | currencySymbol }}
+                {{ moneyData.availableBalance | _toLocaleString }}
               </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>
 
@@ -155,17 +128,6 @@
                     2
                   )
                 }}
-                <span v-if="bayType != 'US'">
-                  ≈ $
-                  {{
-                    (nowPrice *
-                      selectCycle.replace("X", "") *
-                      num *
-                      sxf *
-                      rate)
-                      | _toLocaleString
-                  }}
-                </span>
               </span>
               <span style="white-space: nowarp"> </span>
             </div>
@@ -228,14 +190,8 @@
         </div>
       </div>
     </div>
-    <van-action-sheet
-      v-model="showGg"
-      :actions="siteLeverList"
-      :cancel-text="$t('hj106')"
-      :description="$t('hj107')"
-      close-on-click-action
-      @select="onSelect"
-    />
+    <van-action-sheet v-model="showGg" :actions="siteLeverList" :cancel-text="$t('hj106')" :description="$t('hj107')"
+      close-on-click-action @select="onSelect" />
   </div>
 </template>
 
@@ -281,8 +237,8 @@
     return {
       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,
@@ -335,7 +291,8 @@
         }
       ],
       moneyData: {},
-      gid: ""
+      gid: "",
+      stockNum: 0, // 一手的股数
     };
   },
   computed: {
@@ -360,6 +317,7 @@
     this.getMoneyData();
     this.getSettingInfo();
     this.queryStockConfig();
+    this.getStockBuySetting();
   },
   watch: {
     checkedZy(val) {
@@ -374,6 +332,16 @@
         navigator.vibrate([55]);
       }
     }
+  },
+  // 路由守卫 - 离开页面时清除 alert
+  beforeRouteLeave(to, from, next) {
+    // 如果 alert 正在显示,清除它
+    if (this.$store.state.elAlertShow) {
+      this.$store.commit("elAlertShow", {
+        elAlertShow: false
+      });
+    }
+    next();
   },
   methods: {
     async queryStockConfig() {
@@ -395,8 +363,8 @@
       // this.moneyData.availableBalance
       let numbs = Math.floor(
         this.moneyData.availableBalance /
-          this.nowPrice /
-          this.selectCycle.replace("X", "")
+        this.nowPrice /
+        this.selectCycle.replace("X", "")
       );
       if (e.target.value >= numbs) {
         this.num = numbs;
@@ -412,14 +380,9 @@
       let data = await api.getMoney();
       // let type = this.bayType === "SZHB" ? "US" : this.bayType;
       if (data.status === 0) {
-        // const newArr = data.data.filter(item => item.accectType === type);
-        // this.moneyData = newArr[0] || {};
-
-        this.moneyData = data.data[0];
-
-        // console.log(this.bayType, newArr);
-        // 判断是否登录
-        // this.moneyList = data.data;
+        data.data.forEach(i => {
+          if (i.accectType == this.bayType) this.moneyData = i;
+        });
       }
     },
     handleBack() {
@@ -434,14 +397,14 @@
     jjjisua() {
       let numbs = Math.floor(
         this.moneyData.availableBalance /
-          this.nowPrice /
-          this.selectCycle.replace("X", "")
+        this.nowPrice /
+        this.selectCycle.replace("X", "")
       );
       typeof this.num == "string"
         ? (this.num = Number(Number(this.num) + 1))
         : (this.num = Number(Number(this.num) + 1));
 
-      console.log(this.num, numbs);
+      // console.log(this.num, numbs);
       if (this.num >= numbs) {
         this.num = numbs;
       }
@@ -548,7 +511,7 @@
         lever: this.selectLever,
         targetPrice: this.nums
       };
-      console.log(this.selectLever, "this.selectLever ");
+      // console.log(this.selectLever, "this.selectLever ");
 
       if (this.tabsCurrentIndex == 0) {
         opts.buyType = 1;
@@ -742,6 +705,13 @@
           elAlertText: data.msg
         });
       }
+    },
+    // 获取每手的股数
+    async getStockBuySetting() {
+      let data = await api.queryStockBuySetting({ stockType: this.bayType });
+      if (data.status === 0) {
+        this.stockNum = data.data[0].stockNum;
+      }
     }
   },
   filters: {
@@ -762,7 +732,7 @@
   min-height: 100vh;
   background-color: #fff;
 
-  > .content {
+  >.content {
     width: 100%;
     height: calc(100% - 1.6rem);
     position: relative;
@@ -787,7 +757,7 @@
       display: flex;
       align-items: center;
 
-      > img {
+      >img {
         margin-top: 0.2rem;
         width: 0.6rem;
         height: 0.6rem;
@@ -863,13 +833,13 @@
         align-items: center;
         justify-content: flex-end;
 
-        > div {
+        >div {
           width: 65%;
           height: 80%;
           display: flex;
           justify-content: center;
 
-          > div {
+          >div {
             width: 45%;
             height: 70%;
             background: rgb(236, 236, 236);
@@ -920,7 +890,7 @@
     justify-content: center;
     border-radius: 0.15rem;
 
-    > div {
+    >div {
       width: 49%;
       height: 80%;
       border-radius: 0.15rem;
@@ -972,7 +942,7 @@
       height: 1.3rem;
       margin-top: 0.4rem;
 
-      > div {
+      >div {
         width: 100%;
         height: 50%;
         color: rgb(160, 160, 160);
@@ -1006,7 +976,7 @@
       font-size: 0.3803rem;
       border-bottom: 0.05rem solid rgb(236, 236, 236);
 
-      > div {
+      >div {
         color: #000;
       }
     }
@@ -1031,7 +1001,7 @@
     align-items: center;
     border-bottom: 0.05rem solid rgb(236, 236, 236);
 
-    > div {
+    >div {
       // width: 20%;
       height: 50%;
       display: flex;
@@ -1055,7 +1025,7 @@
   align-items: flex-end;
   // padding-top: 0.8rem;
 
-  > div {
+  >div {
     width: 100%;
     height: 1.2821rem;
     display: flex;

--
Gitblit v1.9.3