From 8588fe30f17d0d28190a279aab8675de0dbf1a5b Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Wed, 16 Jul 2025 18:46:29 +0800
Subject: [PATCH] 个人添加图片

---
 src/components/Transform/trade-order-area/index.vue |   54 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/src/components/Transform/trade-order-area/index.vue b/src/components/Transform/trade-order-area/index.vue
index f6f1ae7..769022b 100644
--- a/src/components/Transform/trade-order-area/index.vue
+++ b/src/components/Transform/trade-order-area/index.vue
@@ -2,9 +2,9 @@
   <div class="flex flex-col flex-1 font-28" style="width: 280px;">
     <div class="flex items-center h-66 tabBackground text-grey">
       <p class="font-28 flex-1 flex items-center justify-center h-66 buy-item"
-        :class="currentType == 'open' ? 'open' : ''" @click="changeTab('open')">{{ $t('买入') }}</p>
+        :class="currentType === 'open' ? 'open' : ''" @click="currentType = 'open'">{{ $t('买入') }}</p>
       <p class="font-28 flex-1 flex items-center justify-center h-66 buy-item"
-        :class="currentType == 'close' ? 'close' : ''" @click="changeTab('close')">{{ $t('卖出') }}</p>
+        :class="currentType === 'close' ? 'close' : ''" @click="currentType = 'close'">{{ $t('卖出') }}</p>
     </div>
 
     <div class="mt-22 mb-22 inputBackground" style="position:relative;">
@@ -18,6 +18,7 @@
         </div>
       </div>
     </div>
+    <!-- {{ form }} -->
     <div class="h-70 lh-70  inputBackground mb-25 flex justify-center px-16 textColor2">
       <input placeholder="" class="targetPrice  w-full  h-70 border-none" v-model="form.price"
         :disabled="type / 1 === 1" />
@@ -38,6 +39,10 @@
       <input :placeholder="$t('数量')" class=" w-full h-70 border-none textColor font-28" v-model="form.volume"
         @input="onInput" />
       <span class="textColor font-28">{{ symbol.toLocaleUpperCase() }}</span>
+      <span @click="fillAllBalance" class="cursor-pointer text-blue-500"
+        style="padding: 0 10px;width: 80px;text-align: right;">{{
+          $t('全部')
+        }}</span>
     </div>
     <div v-if="isTotal" class="h-70 lh-70 inputBackground  mb-36 flex justify-center px-16">
       <input :placeholder="$t('总额')" class=" w-full h-70 border-none textColor font-28" v-model="form.total"
@@ -90,11 +95,6 @@
     [Tab.name]: Tab
   },
   props: {
-	
-    symbol: {
-      type: String,
-      default: ''
-    },
     symbol: {
       type: String,
       default: ''
@@ -167,7 +167,7 @@
         order_price_type: 'opponent', // 市价or限价
       },
       type: "1",//选中市价或限价类型
-      // currentType: "close", //开仓类型
+      currentType: 'open', // 默认选中买入
       interval: 0.001,
       marks: (val) => val % 25 === 0,
       isTotal: false,
@@ -181,7 +181,7 @@
     ]
     this.title = this.selectData[0].title
     this.type = this.selectData[0].type
-	// this.currentType = this.currentTypes
+    // this.currentType = this.currentTypes
     this.form.order_price_type = 'opponent'
   },
   methods: {
@@ -190,6 +190,24 @@
       this.percentageVal = 0
       this.form.total = ''
       this.form.volume = ''
+    },
+    fillAllBalance() {
+      if (!this.userInfo.token) {
+        this.$router.push('/login');
+        return;
+      }
+      if (this.currentType === 'open') {
+        // 买入模式:可用USDT / 当前价格
+        const availableUsdt = parseFloat(this.initOpen.volume) || 0;
+        const price = parseFloat(this.form.price) || 0;
+        if (price > 0) {
+          this.form.volume = (availableUsdt / price).toFixed(6);
+        }
+      } else {
+        // 卖出模式:直接使用可用币种数量
+        this.form.volume = parseFloat(this.initClose.volume) || 0;
+      }
+      this.onInput();
     },
     exchangeVal(val) {
       if (!this.userInfo.token) {
@@ -200,15 +218,20 @@
       if (!this.isTotal) {
         if (this.currentType == 'open') {
           let sum = (parseFloat(this.initOpen.volume) * (val / 100) / parseFloat(this.form.price))
-          this.form.volume = Math.floor(sum * 100000) / 100000
+          this.form.volume = Math.floor(sum * 100000) / 100000;
+          this.onInput();
         } else {
-          let sum = parseFloat(this.initClose.volume)
-          this.form.volume = (Math.floor(sum * (val / 100) * 100000)) / 100000
+          let sum = parseFloat(this.initClose.volume) || 0;
+          console.log('sum1: ', sum, this.initClose.volume)
+          this.form.volume = (Math.floor(sum * (val / 100) * 100000)) / 100000;
+          this.onInput();
+
         }
       } else {
         if (this.currentType == 'open') {
           this.form.total = this.initOpen.volume * (val / 100)
         } else {
+          console.log('volume1: ', this.initClose.volume)
           this.form.total = Math.floor((this.initClose.volume * (val / 100) * parseFloat(this.form.price)) * 1000) / 1000
         }
       }
@@ -224,7 +247,7 @@
       } else {
         vol = this.initClose.volume / 1
       }
-      this.options.max = Number(vol.toFixed(3))
+      this.options.max = vol ? Number(vol.toFixed(3)) : 0
       if (this.options.max > 0) {
         this.options.disabled = false
       } else {
@@ -241,7 +264,7 @@
           this.form.volume = maxSum
         }
       } else {
-        if (this.form.volume * 1 / 1 > this.options.max / 1) {
+        if (!isNaN(this.options.max) && this.form.volume * 1 > this.options.max) {
           this.form.volume = this.options.max / 1
         }
       }
@@ -482,7 +505,7 @@
 .close {
   background-color: #DE5D56;
   // background: url(@/assets/image/public/close-bg.png) no-repeat left center;
-  
+
   background-size: 100% 100%;
   color: white;
 }
@@ -589,4 +612,3 @@
   color: $text_color;
 }
 </style>
-

--
Gitblit v1.9.3