From 41a639a4a4b6fbf35db7903b5ee3c068c8644430 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期二, 21 四月 2026 10:45:56 +0800
Subject: [PATCH] feat: 统一数值精度为三位小数并添加保养项目字段

---
 src/views/procurementManagement/procurementLedger/index.vue |  105 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 60 insertions(+), 45 deletions(-)

diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index ea4304b..74394d5 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -233,7 +233,7 @@
                 <el-option v-for="item in supplierList"
                            :key="item.id"
                            :label="item.supplierName"
-                           :value="item.id" />
+													 :value="item.id" >{{item.supplierName + '---' + item.supplierType}}</el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -584,12 +584,14 @@
                          placeholder="璇烽�夋嫨"
                          clearable
                          @change="mathNum">
+                <el-option label="0"
+                           :value="0" />
                 <el-option label="1"
-                           value="1" />
+                           :value="1" />
                 <el-option label="6"
-                           value="6" />
+                           :value="6" />
                 <el-option label="13"
-                           value="13" />
+                           :value="13" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -599,7 +601,7 @@
             <el-form-item label="鍚◣鍗曚环(鍏�)锛�"
                           prop="taxInclusiveUnitPrice">
               <el-input-number v-model="productForm.taxInclusiveUnitPrice"
-                               :precision="2"
+                               :precision="3"
                                :step="0.1"
                                :min="0"
                                clearable
@@ -612,7 +614,7 @@
                           prop="quantity">
               <el-input-number :step="0.1"
                                clearable
-                               :precision="2"
+                               :precision="3"
                                :min="0"
                                style="width: 100%"
                                v-model="productForm.quantity"
@@ -626,7 +628,7 @@
             <el-form-item label="鍚◣鎬讳环(鍏�)锛�"
                           prop="taxInclusiveTotalPrice">
               <el-input-number v-model="productForm.taxInclusiveTotalPrice"
-                               :precision="2"
+                               :precision="3"
                                :step="0.1"
                                :min="0"
                                clearable
@@ -638,7 +640,7 @@
             <el-form-item label="涓嶅惈绋庢�讳环(鍏�)锛�"
                           prop="taxExclusiveTotalPrice">
               <el-input-number v-model="productForm.taxExclusiveTotalPrice"
-                               :precision="2"
+                               :precision="3"
                                :step="0.1"
                                :min="0"
                                clearable
@@ -665,7 +667,7 @@
             <el-form-item label="搴撳瓨棰勮鏁伴噺锛�"
                           prop="warnNum">
               <el-input-number v-model="productForm.warnNum"
-                               :precision="2"
+                               :precision="3"
                                :step="0.1"
                                :min="0"
                                clearable
@@ -921,9 +923,9 @@
       approverId: [
         { required: true, message: "璇烽�夋嫨瀹℃壒浜�", trigger: "change" },
       ],
-      projectName: [
-        { required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" },
-      ],
+      // projectName: [
+      //   { required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" },
+      // ],
       supplierId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       entryDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
       executionDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
@@ -955,7 +957,7 @@
       unit: "",
       quantity: "",
       taxInclusiveUnitPrice: "",
-      taxRate: "",
+      taxRate: 0,
       taxInclusiveTotalPrice: "",
       taxExclusiveTotalPrice: "",
       invoiceType: "",
@@ -970,7 +972,7 @@
       taxInclusiveUnitPrice: [
         { required: true, message: "璇疯緭鍏�", trigger: "blur" },
       ],
-      taxRate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+      // taxRate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
       warnNum: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
       taxInclusiveTotalPrice: [
         { required: true, message: "璇疯緭鍏�", trigger: "blur" },
@@ -978,7 +980,7 @@
       taxExclusiveTotalPrice: [
         { required: true, message: "璇疯緭鍏�", trigger: "blur" },
       ],
-      invoiceType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+      // invoiceType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
       isChecked: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
     },
   });
@@ -1067,7 +1069,7 @@
   };
 
   const formattedNumber = (row, column, cellValue) => {
-    return parseFloat(cellValue).toFixed(2);
+    return parseFloat(cellValue).toFixed(3);
   };
   // 鏌ヨ鍒楄〃
   /** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -1191,6 +1193,9 @@
       {
         ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
         futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+        taxInclusiveUnitPrice: { decimalPlaces: 3 },
+        taxInclusiveTotalPrice: { decimalPlaces: 3 },
+        taxExclusiveTotalPrice: { decimalPlaces: 3 },
       }
     );
   };
@@ -1254,7 +1259,9 @@
   };
   // 涓昏〃鍚堣鏂规硶
   const summarizeMainTable = param => {
-    return proxy.summarizeTable(param, ["contractAmount"]);
+    return proxy.summarizeTable(param, ["contractAmount"], {
+      contractAmount: { decimalPlaces: 3 },
+    });
   };
   // 瀛愯〃鍚堣鏂规硶
   const summarizeProTable = param => {
@@ -1262,7 +1269,11 @@
       "taxInclusiveUnitPrice",
       "taxInclusiveTotalPrice",
       "taxExclusiveTotalPrice",
-    ]);
+    ], {
+      taxInclusiveUnitPrice: { decimalPlaces: 3 },
+      taxInclusiveTotalPrice: { decimalPlaces: 3 },
+      taxExclusiveTotalPrice: { decimalPlaces: 3 },
+    });
   };
   // 鎵撳紑寮规
   const openForm = async (type, row) => {
@@ -1461,7 +1472,10 @@
   const openProductForm = async (type, row, index) => {
     productOperationType.value = type;
     productOperationIndex.value = index;
-    productForm.value = {};
+    productForm.value = {
+      taxRate: 0,
+      invoiceType: "澧炴櫘绁�"
+    };
     proxy.resetForm("productFormRef");
     productFormVisible.value = true;
     
@@ -1683,20 +1697,12 @@
   const handleDelete = () => {
     let ids = [];
     if (selectedRows.value.length > 0) {
-      // 妫�鏌ユ槸鍚︽湁浠栦汉缁存姢鐨勬暟鎹�
-      const unauthorizedData = selectedRows.value.filter(
-        item => item.recorderName !== userStore.nickName
-      );
-      if (unauthorizedData.length > 0) {
-        proxy.$modal.msgWarning("涓嶅彲鍒犻櫎浠栦汉缁存姢鐨勬暟鎹�");
-        return;
-      }
-      ids = selectedRows.value.map(item => item.id);
+      ids = selectedRows.value.filter(item => item.salesLedgerId === null).map(item => item.id);
     } else {
       proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
       return;
     }
-    ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
+    ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "鍒犻櫎", {
       confirmButtonText: "纭",
       cancelButtonText: "鍙栨秷",
       type: "warning",
@@ -1720,10 +1726,10 @@
     return `${year}-${month}-${day}`;
   }
   const mathNum = () => {
-    if (!productForm.value.taxRate) {
-      proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
-      return;
-    }
+    // if (!productForm.value.taxRate) {
+    //   proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
+    //   return;
+    // }
     if (!productForm.value.taxInclusiveUnitPrice) {
       return;
     }
@@ -1734,22 +1740,31 @@
     productForm.value.taxInclusiveTotalPrice =
       proxy.calculateTaxIncludeTotalPrice(
         productForm.value.taxInclusiveUnitPrice,
-        productForm.value.quantity
+        productForm.value.quantity,
+        3
       );
     if (productForm.value.taxRate) {
       // 涓嶅惈绋庢�讳环璁$畻
       productForm.value.taxExclusiveTotalPrice =
         proxy.calculateTaxExclusiveTotalPrice(
           productForm.value.taxInclusiveTotalPrice,
-          productForm.value.taxRate
+          productForm.value.taxRate,
+          3
         );
+    }else{
+      productForm.value.taxExclusiveTotalPrice =
+      proxy.calculateTaxIncludeTotalPrice(
+          productForm.value.taxInclusiveUnitPrice,
+          productForm.value.quantity,
+          3
+      );
     }
   };
   const reverseMathNum = field => {
-    if (!productForm.value.taxRate) {
-      proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
-      return;
-    }
+    // if (!productForm.value.taxRate) {
+    //   proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
+    //   return;
+    // }
     const taxRate = Number(productForm.value.taxRate);
     if (!taxRate) return;
 
@@ -1772,7 +1787,7 @@
         productForm.value.taxInclusiveUnitPrice = (
           Number(productForm.value.taxInclusiveTotalPrice) /
           Number(productForm.value.quantity)
-        ).toFixed(2);
+        ).toFixed(3);
         // 纭繚缁撴灉涓嶄负璐熸暟
         if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
           productForm.value.taxInclusiveUnitPrice = "0";
@@ -1783,7 +1798,7 @@
         productForm.value.quantity = (
           Number(productForm.value.taxInclusiveTotalPrice) /
           Number(productForm.value.taxInclusiveUnitPrice)
-        ).toFixed(2);
+        ).toFixed(3);
         // 纭繚缁撴灉涓嶄负璐熸暟
         if (Number(productForm.value.quantity) < 0) {
           productForm.value.quantity = "0";
@@ -1793,7 +1808,7 @@
       productForm.value.taxExclusiveTotalPrice = (
         Number(productForm.value.taxInclusiveTotalPrice) /
         (1 + taxRate / 100)
-      ).toFixed(2);
+      ).toFixed(3);
       // 纭繚缁撴灉涓嶄负璐熸暟
       if (Number(productForm.value.taxExclusiveTotalPrice) < 0) {
         productForm.value.taxExclusiveTotalPrice = "0";
@@ -1803,7 +1818,7 @@
       productForm.value.taxInclusiveTotalPrice = (
         Number(productForm.value.taxExclusiveTotalPrice) *
         (1 + taxRate / 100)
-      ).toFixed(2);
+      ).toFixed(3);
       // 纭繚缁撴灉涓嶄负璐熸暟
       if (Number(productForm.value.taxInclusiveTotalPrice) < 0) {
         productForm.value.taxInclusiveTotalPrice = "0";
@@ -1813,7 +1828,7 @@
         productForm.value.taxInclusiveUnitPrice = (
           Number(productForm.value.taxInclusiveTotalPrice) /
           Number(productForm.value.quantity)
-        ).toFixed(2);
+        ).toFixed(3);
         // 纭繚缁撴灉涓嶄负璐熸暟
         if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
           productForm.value.taxInclusiveUnitPrice = "0";
@@ -1824,7 +1839,7 @@
         productForm.value.quantity = (
           Number(productForm.value.taxInclusiveTotalPrice) /
           Number(productForm.value.taxInclusiveUnitPrice)
-        ).toFixed(2);
+        ).toFixed(3);
         // 纭繚缁撴灉涓嶄负璐熸暟
         if (Number(productForm.value.quantity) < 0) {
           productForm.value.quantity = "0";

--
Gitblit v1.9.3