From 287fd4cd8b556e99997168341577b2deaa8a8e8e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 25 五月 2026 14:13:16 +0800
Subject: [PATCH] 宝东 1.销售管理新增产品时添加一个总数字段

---
 src/views/salesManagement/salesLedger/index.vue |   66 +++++++++++++++++---------------
 1 files changed, 35 insertions(+), 31 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 2784f80..fe90eae 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -700,6 +700,15 @@
                                style="width: 100%" />
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎬绘暟锛�"
+                          prop="totalQuantity">
+              <el-input v-model="productForm.totalQuantity"
+                        placeholder="鑷姩璁$畻"
+                        disabled
+                        style="width: 100%" />
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
@@ -1137,6 +1146,7 @@
       unit: "",
       quantity: "",
       singleQuantity: 1,
+      totalQuantity: "",
       taxInclusiveUnitPrice: "",
       taxRate: "",
       taxInclusiveTotalPrice: "",
@@ -2469,7 +2479,6 @@
 
     const totalPrice = parseFloat(productForm.value.taxInclusiveTotalPrice);
     const quantity = parseFloat(productForm.value.quantity);
-    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
 
     if (!totalPrice || !quantity || quantity <= 0) {
       return;
@@ -2477,8 +2486,8 @@
 
     isCalculating.value = true;
 
-    // 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / (鏁伴噺 * 姣忎欢鏁伴噺)
-    productForm.value.taxInclusiveUnitPrice = (totalPrice / (quantity * singleQuantity)).toFixed(2);
+    // 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
+    productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(2);
 
     // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
     if (productForm.value.taxRate) {
@@ -2488,6 +2497,10 @@
           productForm.value.taxRate
         );
     }
+
+    // 璁$畻鎬绘暟 = 姣忎欢鏁伴噺 * 鏁伴噺
+    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
+    productForm.value.totalQuantity = (quantity * singleQuantity).toFixed(0);
 
     isCalculating.value = false;
   };
@@ -2505,7 +2518,6 @@
     );
     const quantity = parseFloat(productForm.value.quantity);
     const taxRate = parseFloat(productForm.value.taxRate);
-    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
 
     if (!exclusiveTotalPrice || !quantity || quantity <= 0 || !taxRate) {
       return;
@@ -2518,10 +2530,14 @@
     const inclusiveTotalPrice = exclusiveTotalPrice / (1 - taxRateDecimal);
     productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(2);
 
-    // 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / (鏁伴噺 * 姣忎欢鏁伴噺)
+    // 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
     productForm.value.taxInclusiveUnitPrice = (
-      inclusiveTotalPrice / (quantity * singleQuantity)
+      inclusiveTotalPrice / quantity
     ).toFixed(2);
+
+    // 璁$畻鎬绘暟 = 姣忎欢鏁伴噺 * 鏁伴噺
+    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
+    productForm.value.totalQuantity = (quantity * singleQuantity).toFixed(0);
 
     isCalculating.value = false;
   };
@@ -2536,7 +2552,6 @@
 
     const quantity = parseFloat(productForm.value.quantity);
     const unitPrice = parseFloat(productForm.value.taxInclusiveUnitPrice);
-    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
 
     if (!quantity || quantity <= 0 || !unitPrice) {
       return;
@@ -2544,8 +2559,8 @@
 
     isCalculating.value = true;
 
-    // 璁$畻鍚◣鎬讳环 = 鍗曚环 * 鏁伴噺 * 姣忎欢鏁伴噺
-    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity * singleQuantity).toFixed(2);
+    // 璁$畻鍚◣鎬讳环 = 鍗曚环 * 鏁伴噺
+    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
 
     // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
     if (productForm.value.taxRate) {
@@ -2555,6 +2570,10 @@
           productForm.value.taxRate
         );
     }
+
+    // 璁$畻鎬绘暟 = 姣忎欢鏁伴噺 * 鏁伴噺
+    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
+    productForm.value.totalQuantity = (quantity * singleQuantity).toFixed(0);
 
     isCalculating.value = false;
   };
@@ -2569,7 +2588,6 @@
 
     const quantity = parseFloat(productForm.value.quantity);
     const unitPrice = parseFloat(productForm.value.taxInclusiveUnitPrice);
-    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
 
     if (!quantity || quantity <= 0 || !unitPrice) {
       return;
@@ -2577,8 +2595,8 @@
 
     isCalculating.value = true;
 
-    // 璁$畻鍚◣鎬讳环 = 鍗曚环 * 鏁伴噺 * 姣忎欢鏁伴噺
-    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity * singleQuantity).toFixed(2);
+    // 璁$畻鍚◣鎬讳环 = 鍗曚环 * 鏁伴噺
+    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
 
     // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
     if (productForm.value.taxRate) {
@@ -2592,35 +2610,21 @@
     isCalculating.value = false;
   };
 
-  // 鏍规嵁姣忎欢鏁伴噺鍙樺寲璁$畻鎬讳环
+  // 鏍规嵁姣忎欢鏁伴噺鍙樺寲璁$畻鎬绘暟
   const calculateFromSingleQuantity = () => {
-    if (!productForm.value.taxRate) {
-      proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
-      return;
-    }
     if (isCalculating.value) return;
 
     const quantity = parseFloat(productForm.value.quantity);
-    const unitPrice = parseFloat(productForm.value.taxInclusiveUnitPrice);
-    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
 
-    if (!quantity || quantity <= 0 || !unitPrice) {
+    if (!quantity || quantity <= 0) {
       return;
     }
 
     isCalculating.value = true;
 
-    // 璁$畻鍚◣鎬讳环 = 鍗曚环 * 鏁伴噺 * 姣忎欢鏁伴噺
-    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity * singleQuantity).toFixed(2);
-
-    // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
-    if (productForm.value.taxRate) {
-      productForm.value.taxExclusiveTotalPrice =
-        proxy.calculateTaxExclusiveTotalPrice(
-          productForm.value.taxInclusiveTotalPrice,
-          productForm.value.taxRate
-        );
-    }
+    // 璁$畻鎬绘暟 = 姣忎欢鏁伴噺 * 鏁伴噺
+    const singleQuantity = parseInt(productForm.value.singleQuantity) || 1;
+    productForm.value.totalQuantity = (quantity * singleQuantity).toFixed(0);
 
     isCalculating.value = false;
   };

--
Gitblit v1.9.3