From 3ab45f295fb26c7794b4829976f3fb20c68a012e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 22 一月 2026 10:33:41 +0800
Subject: [PATCH] 新疆海川开心 1.采购模块的计算都改为保留三位小数并且不四舍五入

---
 src/views/procurementManagement/procurementLedger/index.vue |   69 +++++++++++++++++++++-------------
 1 files changed, 42 insertions(+), 27 deletions(-)

diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index debfcfc..575b6e7 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -106,6 +106,12 @@
           prop="supplierName"
           show-overflow-tooltip
         />
+				<el-table-column
+					label="绛捐鏃ユ湡"
+					prop="executionDate"
+					width="100"
+					show-overflow-tooltip
+				/>
         <el-table-column
           label="浠樻鏂瑰紡"
           width="100"
@@ -174,6 +180,7 @@
     </div>
     <el-dialog
       v-model="dialogFormVisible"
+			draggable
       :title="operationType === 'add' ? '鏂板閲囪喘鍙拌处椤甸潰' : '缂栬緫閲囪喘鍙拌处椤甸潰'"
       width="70%"
       @close="closeDia"
@@ -404,6 +411,7 @@
     </el-dialog>
     <el-dialog
       v-model="productFormVisible"
+			draggable
       :title="productOperationType === 'add' ? '鏂板浜у搧' : '缂栬緫浜у搧'"
       width="40%"
       @close="closeProductDia"
@@ -469,7 +477,9 @@
 								@change="mathNum"
 							>
 								<el-option label="1" value="1" />
+								<el-option label="3" value="3" />
 								<el-option label="6" value="6" />
+								<el-option label="9" value="9" />
 								<el-option label="13" value="13" />
 							</el-select>
 						</el-form-item>
@@ -480,7 +490,7 @@
             <el-form-item label="鍚◣鍗曚环(鍏�)锛�" prop="taxInclusiveUnitPrice">
               <el-input-number
                 v-model="productForm.taxInclusiveUnitPrice"
-                :precision="2"
+                :precision="3"
                 :step="0.1"
                 clearable
                 style="width: 100%"
@@ -493,7 +503,7 @@
 							<el-input-number
 								:step="0.1"
 								clearable
-								:precision="2"
+								:precision="3"
 								style="width: 100%"
 								v-model="productForm.quantity"
 								placeholder="璇疯緭鍏�"
@@ -507,7 +517,7 @@
             <el-form-item label="鍚◣鎬讳环(鍏�)锛�" prop="taxInclusiveTotalPrice">
               <el-input-number
                 v-model="productForm.taxInclusiveTotalPrice"
-                :precision="2"
+                :precision="3"
                 :step="0.1"
                 clearable
                 style="width: 100%"
@@ -544,7 +554,7 @@
 						<el-form-item label="搴撳瓨棰勮鏁伴噺锛�" prop="warnNum">
 							<el-input-number
 								v-model="productForm.warnNum"
-								:precision="2"
+								:precision="3"
 								:step="0.1"
 								clearable
 								style="width: 100%"
@@ -628,7 +638,7 @@
             <el-form-item label="鍚堝悓閲戦(鍏�)锛�" prop="contractAmount">
               <el-input-number
                 v-model="scanAddForm.contractAmount"
-                :precision="2"
+                :precision="3"
                 :step="0.1"
                 clearable
                 style="width: 100%"
@@ -812,6 +822,7 @@
 import useUserStore from "@/store/modules/user";
 import { modelList, productTreeList } from "@/api/basicData/product.js";
 import dayjs from "dayjs";
+import { getCurrentDate, truncate } from "@/utils/index.js";
 
 const userStore = useUserStore();
 
@@ -919,7 +930,7 @@
 };
 
 const formattedNumber = (row, column, cellValue) => {
-  return parseFloat(cellValue).toFixed(2);
+  return truncate(parseFloat(cellValue), 3);
 };
 // 鏌ヨ鍒楄〃
 /** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -1029,6 +1040,11 @@
   });
   form.value.recorderId = userStore.id;
   form.value.entryDate = getCurrentDate();
+  if (type === "add") {
+    // 鏂板鏃惰缃粯璁ゅ��
+    form.value.paymentMethod = "鐢垫眹"; // 浠樻鏂瑰紡榛樿涓虹數姹�
+    form.value.executionDate = getCurrentDate(); // 绛捐鏃ユ湡榛樿涓哄綋澶�
+  }
   if (type === "edit") {
     currentId.value = row.id;
     getPurchaseById({ id: row.id, type: 2 }).then((res) => {
@@ -1127,12 +1143,17 @@
   proxy.resetForm("productFormRef");
   if (type === "edit") {
     productForm.value = { ...row };
+  } else {
+    // 鏂板浜у搧鏃惰缃粯璁ゅ��
+    productForm.value.taxRate = "13"; // 绋庣巼榛樿涓�13%
+    productForm.value.invoiceType = "澧炰笓绁�"; // 鍙戠エ绫诲瀷榛樿涓哄涓撶エ
+    productForm.value.warnNum = 500; // 棰勮閲忛粯璁や负500
   }
   productFormVisible.value = true;
   getProductOptions();
 };
 const getProductOptions = () => {
-  productTreeList().then((res) => {
+  productTreeList({productName: '閲囪喘'}).then((res) => {
     productOptions.value = convertIdToValue(res);
   });
 };
@@ -1306,14 +1327,6 @@
       proxy.$modal.msg("宸插彇娑�");
     });
 };
-// 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD
-function getCurrentDate() {
-  const today = new Date();
-  const year = today.getFullYear();
-  const month = String(today.getMonth() + 1).padStart(2, "0"); // 鏈堜唤浠�0寮�濮�
-  const day = String(today.getDate()).padStart(2, "0");
-  return `${year}-${month}-${day}`;
-}
 const mathNum = () => {
 	if (!productForm.value.taxRate) {
 		proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
@@ -1327,16 +1340,18 @@
   }
   // 鍚◣鎬讳环璁$畻
   productForm.value.taxInclusiveTotalPrice =
-    proxy.calculateTaxIncludeTotalPrice(
-      productForm.value.taxInclusiveUnitPrice,
-      productForm.value.quantity
+    truncate(
+      Number(productForm.value.taxInclusiveUnitPrice) * Number(productForm.value.quantity),
+      3
     );
   if (productForm.value.taxRate) {
     // 涓嶅惈绋庢�讳环璁$畻
+    const taxRate = Number(productForm.value.taxRate);
+    const taxRateDecimal = taxRate / 100;
     productForm.value.taxExclusiveTotalPrice =
-      proxy.calculateTaxExclusiveTotalPrice(
-        productForm.value.taxInclusiveTotalPrice,
-        productForm.value.taxRate
+      truncate(
+        Number(productForm.value.taxInclusiveTotalPrice) / (1 + taxRateDecimal),
+        3
       );
   }
 };
@@ -1351,29 +1366,29 @@
     // 宸茬煡鍚◣鎬讳环鍜屾暟閲忥紝鍙嶇畻鍚◣鍗曚环
     if (productForm.value.quantity) {
       productForm.value.taxInclusiveUnitPrice = 
-        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.quantity)).toFixed(2);
+        truncate(Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.quantity), 3);
     }
     // 宸茬煡鍚◣鎬讳环鍜屽惈绋庡崟浠凤紝鍙嶇畻鏁伴噺
     else if (productForm.value.taxInclusiveUnitPrice) {
       productForm.value.quantity = 
-        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.taxInclusiveUnitPrice)).toFixed(2);
+        truncate(Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.taxInclusiveUnitPrice), 3);
     }
     // 鍙嶇畻涓嶅惈绋庢�讳环
     productForm.value.taxExclusiveTotalPrice = 
-      (Number(productForm.value.taxInclusiveTotalPrice) / (1 + taxRate / 100)).toFixed(2);
+      truncate(Number(productForm.value.taxInclusiveTotalPrice) / (1 + taxRate / 100), 3);
   } else if (field === 'taxExclusiveTotalPrice') {
     // 鍙嶇畻鍚◣鎬讳环
     productForm.value.taxInclusiveTotalPrice = 
-      (Number(productForm.value.taxExclusiveTotalPrice) * (1 + taxRate / 100)).toFixed(2);
+      truncate(Number(productForm.value.taxExclusiveTotalPrice) * (1 + taxRate / 100), 3);
     // 宸茬煡鏁伴噺锛屽弽绠楀惈绋庡崟浠�
     if (productForm.value.quantity) {
       productForm.value.taxInclusiveUnitPrice = 
-        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.quantity)).toFixed(2);
+        truncate(Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.quantity), 3);
     }
     // 宸茬煡鍚◣鍗曚环锛屽弽绠楁暟閲�
     else if (productForm.value.taxInclusiveUnitPrice) {
       productForm.value.quantity = 
-        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.taxInclusiveUnitPrice)).toFixed(2);
+        truncate(Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.taxInclusiveUnitPrice), 3);
     }
   }
 };

--
Gitblit v1.9.3