From c4befedd6b0edb08aab496384870c22564511d98 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 21 九月 2026 18:20:34 +0800
Subject: [PATCH] 新疆-融邦环保 1.仓储物流出入库过磅数据计算逻辑修改

---
 src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue |   69 +++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 31 deletions(-)

diff --git a/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue b/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue
index 4272035..d9cd88b 100644
--- a/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue
+++ b/src/views/inventoryManagement/stockManagement/OilStockOutDialog.vue
@@ -193,12 +193,6 @@
                         placeholder="--" />
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="鍑哄簱鍚ㄤ綅(鍚�)">
-              <el-input :model-value="outTonnage === null ? '--' : outTonnage"
-                        readonly />
-            </el-form-item>
-          </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="8">
@@ -253,7 +247,7 @@
         </el-row>
         <div class="form-section-title">瑁呮补鎿嶄綔淇℃伅</div>
         <el-row :gutter="30">
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="杞︿綋/閾呭皝妫�楠屾槸鍚︽甯�"
                           prop="loadingInspectionStatus"
                           :rules="[{ required: true, message: '璇烽�夋嫨杞︿綋/閾呭皝妫�楠屾槸鍚︽甯�', trigger: 'change' }]">
@@ -263,7 +257,7 @@
               </el-radio-group>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="瑁呰溅楣や綅"
                           prop="loadingCranePosition"
                           :rules="[{ required: true, message: '璇烽�夋嫨瑁呰溅楣や綅', trigger: 'change' }]">
@@ -280,18 +274,6 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item label="瀵嗗害"
-                          prop="density"
-                          :rules="[
-                { required: true, message: '璇疯緭鍏ュ瘑搴�', trigger: 'blur' },
-                { pattern: /^\d+(\.\d{1,2})?$/, message: '璇疯緭鍏ユ暟瀛楋紝鏈�澶氫繚鐣欎袱浣嶅皬鏁�', trigger: 'blur' },
-              ]">
-              <el-input v-model="formState.density"
-                        placeholder="璇疯緭鍏ユ暟瀛楋紝鏈�澶氫繚鐣欎袱浣嶅皬鏁�"
-                        clearable />
-            </el-form-item>
-          </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="24">
@@ -304,6 +286,32 @@
           </el-col>
         </el-row>
         <div class="form-section-title">杩囩鏁版嵁</div>
+        <el-row :gutter="30">
+          <el-col :span="12">
+            <el-form-item label="鍑哄簱鍚ㄤ綅(鍚�)"
+                          prop="outTonnage"
+                          :rules="[{ required: true, message: '璇疯緭鍏ュ嚭搴撳惃浣�', trigger: 'blur' }]">
+              <el-input-number v-model="formState.outTonnage"
+                               :min="0"
+                               :precision="2"
+                               :controls="false"
+                               placeholder="璇疯緭鍏ユ暟瀛楋紝鏈�澶氫繚鐣欎袱浣嶅皬鏁�"
+                               style="width: 100%" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="瀵嗗害"
+                          prop="density"
+                          :rules="[{ required: true, message: '璇疯緭鍏ュ瘑搴�', trigger: 'blur' }]">
+              <el-input-number v-model="formState.density"
+                               :min="0"
+                               :precision="3"
+                               :controls="false"
+                               placeholder="璇疯緭鍏ユ暟瀛楋紝鏈�澶氫繚鐣欎笁浣嶅皬鏁�"
+                               style="width: 100%" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="姣涢噸(鍚�)"
@@ -525,6 +533,8 @@
     tankNo: "",
     outDate: "",
     oilProduct: undefined,
+    // 鍑哄簱鍚ㄤ綅锛堝嚭鍘傚惃浣嶏級鎵嬪~锛屽悗绔嬁瀹冨綋鍑哄簱鏁伴噺
+    outTonnage: null,
     customerId: undefined,
     customerName: "",
     contactPerson: "",
@@ -645,25 +655,23 @@
     return Number((Number(g) - Number(t)).toFixed(2));
   });
 
-  // 浜忛噺(鍚�) = 鍑�閲嶇殑璐熸暟锛屼繚鐣欎袱浣嶅皬鏁�
+  // 浜忛噺(鍚�) = 鍑�閲� 鈭� 鍑哄巶鍚ㄤ綅锛堝嚭鍘傚惃浣嶅氨鏄墜濉殑銆屽嚭搴撳惃浣嶃�嶏級锛屼繚鐣欎袱浣嶅皬鏁�
   const lossQuantity = computed(() => {
-    if (netWeight.value === null) {
+    const out = formState.value.outTonnage;
+    if (netWeight.value === null || out === null || out === undefined || out === "") {
       return null;
     }
-    return Number((-netWeight.value).toFixed(2));
+    return Number((netWeight.value - Number(out)).toFixed(2));
   });
 
-  // 瀹為檯鍏ュ簱浣撶Н(鍗�) = 瀹為檯鍑�閲�(kg) 梅 瀵嗗害(kg/L)锛屽噣閲嶅惃 脳 1000 杞� kg
+  // 瀹為檯鍏ュ簱浣撶Н(鍗�) = 鍑�閲�(鍚�) 脳 瀵嗗害锛屼繚鐣欎袱浣嶅皬鏁�
   const actualVolume = computed(() => {
     const d = formState.value.density;
-    if (netWeight.value === null || d === null || d === undefined || d === "" || Number(d) <= 0) {
+    if (netWeight.value === null || d === null || d === undefined || d === "") {
       return 0;
     }
-    return Math.round(((netWeight.value * 1000) / Number(d)) * 100) / 100;
+    return Number((netWeight.value * Number(d)).toFixed(2));
   });
-
-  // 鍑哄簱鍚ㄤ綅(鍚�) = 鍑�閲嶏紙闇�姹傛湭缁欏叕寮忥紝鏆傛寜鍑�閲嶅甫鍑猴級
-  const outTonnage = computed(() => netWeight.value);
 
   let { proxy } = getCurrentInstance();
 
@@ -917,8 +925,7 @@
           proxy.$modal.msgError("璇烽�夋嫨浜у搧瑙勬牸");
           return;
         }
-        // 璁$畻缁撴灉闅忚〃鍗曟彁浜�
-        formState.value.outTonnage = outTonnage.value;
+        // 璁$畻缁撴灉闅忚〃鍗曟彁浜わ紙鍑哄簱鍚ㄤ綅鏄墜濉殑锛屼笉鍐嶈鐩栵級
         formState.value.netWeight = netWeight.value;
         formState.value.lossQuantity = lossQuantity.value;
         formState.value.actualVolume = actualVolume.value;

--
Gitblit v1.9.3