From ace7f5f4d66a3cfa09943a783c8e58c9a4129c14 Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Thu, 19 Jun 2025 16:37:35 +0800
Subject: [PATCH] 修改先取整在x倍数

---
 src/components/perpetual-open/index.vue |  102 +++++++++++++++++++++++++--------------------------
 1 files changed, 50 insertions(+), 52 deletions(-)

diff --git a/src/components/perpetual-open/index.vue b/src/components/perpetual-open/index.vue
index 3fe795d..09c19ee 100644
--- a/src/components/perpetual-open/index.vue
+++ b/src/components/perpetual-open/index.vue
@@ -161,7 +161,7 @@
             <input
               :placeholder="
                 selectIndex == 1
-                  ? $t('张数')
+                  ? $t('手数')
                   : $t('最少') + initFutrue && initFutrue.para
                   ? $t('最小金额') + initFutrue.para[paraIndex].buy_min
                   : ''
@@ -191,57 +191,51 @@
           </div>
           <template v-if="selectIndex == 1">
             <div class="mt-40 mb-30 w-full flex justify-between items-center">
-              <span class="font-22 font-400 text-grey">{{
-                $t("可开张数")
-              }}</span
-              >{{ form.lever_rate }}
+              <span class="font-22 font-400 text-grey">
+                {{ $t("可开") }}{{ $t("手数") }}
+                <!-- {{initFutrue.amount / (initData.amount + 0.0375) * form.lever_rate }}  //  -->
+                <!-- {{ initFutrue.amount }} // 余额 -->
+              </span>
+              {{ form.lever_rate }}
               <span
                 class="font-22 font-400 textColor"
                 v-if="form.lever_rate == 25"
               >
                 {{
-                  Math.floor(
-                    (initFutrue.amount - initFutrue.amount * 0.0375) /
-                      initData.amount
-                  )
+                  Math.floor(initFutrue.amount / (initData.amount + 0.0375)) *
+                  form.lever_rate
                 }}
-                {{ $t("张") }}
+                {{ $t("手数") }}
               </span>
               <span
                 class="font-22 font-400 textColor"
                 v-if="form.lever_rate == 50"
               >
                 {{
-                  Math.floor(
-                    (initFutrue.amount - initFutrue.amount * 0.075) /
-                      initData.amount
-                  )
+                  Math.floor(initFutrue.amount / (initData.amount + 0.075)) *
+                  form.lever_rate
                 }}
-                {{ $t("张") }}
+                {{ $t("手数") }}
               </span>
               <span
                 class="font-22 font-400 textColor"
                 v-if="form.lever_rate == 100"
               >
                 {{
-                  Math.floor(
-                    (initFutrue.amount - initFutrue.amount * 0.15) /
-                      initData.amount
-                  )
+                  Math.floor(initFutrue.amount / (initData.amount + 0.15)) *
+                  form.lever_rate
                 }}
-                {{ $t("张") }}
+                {{ $t("手数") }}
               </span>
               <span
                 class="font-22 font-400 textColor"
                 v-if="form.lever_rate == 200"
               >
                 {{
-                  Math.floor(
-                    (initFutrue.amount - initFutrue.amount * 0.3) /
-                      initData.amount
-                  )
+                  Math.floor(initFutrue.amount / (initData.amount + 0.3)) *
+                  form.lever_rate
                 }}
-                {{ $t("张") }}
+                {{ $t("手数") }}
               </span>
             </div>
             <!-- <vue-slider v-bind="options" v-model="form.amount"></vue-slider> -->
@@ -270,20 +264,16 @@
             <div class="flex justify-between mt-30">
               <div class="text-grey">{{ $t("合约金额") }}</div>
               <div class="textColor">
-                {{
-                  (
-                    initData.amount *
-                    (form.amount / 1) *
-                    form.lever_rate
-                  ).toFixed(4)
-                }}
+                {{ (form.amount * initData.amount).toFixed(4) }}
                 USDT
               </div>
             </div>
             <div class="flex justify-between mt-30">
               <div class="text-grey">{{ $t("保证金") }}</div>
               <div class="textColor">
-                {{ ((initData.amount * (form.amount / 1)) | nan).toFixed(4) }}
+                {{
+                  ((form.amount * initData.amount) / form.lever_rate).toFixed(4)
+                }}
                 USDT
               </div>
             </div>
@@ -307,7 +297,7 @@
                 USDT
               </div>
               <div class="textColor" v-if="form.lever_rate == 200">
-                {{ (initData.amount * (form.amount / 1) * 0.3).toFixed(4) }}
+                {{ ((form.amount * 0.3) / form.lever_rate).toFixed(4) }}
                 USDT
               </div>
             </div>
@@ -803,7 +793,7 @@
         stop_price_profit: "",
         stop_price_loss: "",
         price: "",
-        amount: "", // 数量
+        amount: 0, // 数量
         para_id: "", // 交割周琦id
       },
       focus: false,
@@ -859,7 +849,7 @@
   methods: {
     //获取张数
     getAmount(val) {
-      this.form.amount = val;
+      this.form.amount = val || 0;
       // if(this.form.lever_rate==25){
       //  this.form.amount = Math.floor((this.initFutrue.amount-(this.initFutrue.amount *  0.0375))/this.initData.amount)
       // }else if(this.form.lever_rate==50){
@@ -875,25 +865,33 @@
       let vol;
       // vol = this.initOpen.volume / 1;
       if (this.form.lever_rate == 25) {
-        vol = Math.floor(
-          (this.initFutrue.amount - this.initFutrue.amount * 0.0375) /
-            this.initData.amount
-        );
+        vol =
+          Math.floor(
+            // (this.initFutrue.amount - this.initFutrue.amount * 0.0375) /
+            //   this.initData.amount
+            this.initFutrue.amount / (this.initData.amount + 0.0375)
+          ) * this.form.lever_rate;
       } else if (this.form.lever_rate == 50) {
-        vol = Math.floor(
-          (this.initFutrue.amount - this.initFutrue.amount * 0.0375) /
-            this.initData.amount
-        );
+        vol =
+          Math.floor(
+            // (this.initFutrue.amount - this.initFutrue.amount * 0.0375) /
+            //   this.initData.amount
+            this.initFutrue.amount / (this.initData.amount + 0.075)
+          ) * this.form.lever_rate;
       } else if (this.form.lever_rate == 100) {
-        vol = Math.floor(
-          (this.initFutrue.amount - this.initFutrue.amount * 0.15) /
-            this.initData.amount
-        );
+        vol =
+          Math.floor(
+            // (this.initFutrue.amount - this.initFutrue.amount * 0.15) /
+            //   this.initData.amount
+            this.initFutrue.amount / (this.initData.amount + 0.15)
+          ) * this.form.lever_rate;
       } else {
-        vol = Math.floor(
-          (this.initFutrue.amount - this.initFutrue.amount * 0.3) /
-            this.initData.amount
-        );
+        vol =
+          Math.floor(
+            // (this.initFutrue.amount - this.initFutrue.amount * 0.3) /
+            //   this.initData.amount
+            this.initFutrue.amount / (this.initData.amount + 0.3)
+          ) * this.form.lever_rate;
       }
       return Math.floor(vol);
     },

--
Gitblit v1.9.3