From 4aaae263a6c728eaa2a3f45a1ae36082619b52a0 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 25 五月 2026 17:32:01 +0800
Subject: [PATCH] 宝东 1.小数点后四位修改

---
 src/views/financialManagement/accounting/index.vue                          |    2 
 src/views/index.vue                                                         |   16 ++--
 src/views/financialManagement/payable/payment.vue                           |    4 
 src/views/productionManagement/processRoute/processRouteItem/index.vue      |    6 
 src/views/productionManagement/productionDispatching/components/formDia.vue |    2 
 src/views/financialManagement/voucher/index.vue                             |   12 +-
 src/views/inventoryManagement/stockWarning/index.vue                        |    6 
 src/views/financialManagement/payable/input-invoice.vue                     |   32 ++++----
 src/views/inventoryManagement/vehicleFuelManagement/index.vue               |   12 +-
 src/views/financialManagement/assets/intangibleAssets.vue                   |    8 +-
 src/views/financialManagement/receivable/reconciliation.vue                 |    2 
 src/views/qualityManagement/visualization/qualityDashboard.vue              |   12 +-
 src/views/financialManagement/voucher/detailLedger.vue                      |    2 
 src/views/financialManagement/voucher/generalLedger.vue                     |    2 
 src/utils/summarizeTable.js                                                 |    6 
 src/views/financialManagement/financialStatements/index.vue                 |    2 
 src/views/qualityManagement/processInspection/components/formDia.vue        |    6 
 src/views/productionManagement/operationScheduling/components/formDia.vue   |    4 
 src/views/qualityManagement/finalInspection/components/formDia.vue          |    6 
 src/views/productionManagement/productionCosting/index.vue                  |    2 
 src/views/productionManagement/safetyMonitoring/index.vue                   |   22 ++--
 src/views/financialManagement/receivable/receipt.vue                        |    8 +-
 src/components/AIChatSidebar/index.vue                                      |    6 
 src/views/financialManagement/receivable/invoiceApply.vue                   |    6 
 src/views/productionManagement/productStructure/StructureEdit.vue           |    4 
 src/views/financialManagement/assets/fixedAssets.vue                        |    8 +-
 src/views/financialManagement/payable/paymentApply.vue                      |    8 +-
 src/views/productionManagement/productStructure/Detail/index.vue            |    6 
 src/views/qualityManagement/nonconformingManagement/components/formDia.vue  |    2 
 src/views/financialManagement/payable/reconciliation.vue                    |    2 
 src/views/productionManagement/productionReporting/index.vue                |    2 
 src/views/qualityManagement/rawMaterialInspection/components/formDia.vue    |    6 
 src/views/financialManagement/receivable/outputInvoice.vue                  |    8 +-
 src/views/productionManagement/productionReporting/components/formDia.vue   |    4 
 34 files changed, 118 insertions(+), 118 deletions(-)

diff --git a/src/components/AIChatSidebar/index.vue b/src/components/AIChatSidebar/index.vue
index 6d724de..fe7775d 100644
--- a/src/components/AIChatSidebar/index.vue
+++ b/src/components/AIChatSidebar/index.vue
@@ -1951,8 +1951,8 @@
   const bytes = Number(size)
   if (!Number.isFinite(bytes) || bytes <= 0) return '0 B'
   if (bytes < 1024) return `${bytes} B`
-  if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1).replace(/\.0$/, '')} KB`
-  return `${(bytes / (1024 * 1024)).toFixed(1).replace(/\.0$/, '')} MB`
+  if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(4).replace(/\.0$/, '')} KB`
+  return `${(bytes / (1024 * 1024)).toFixed(4).replace(/\.0$/, '')} MB`
 }
 
 const createLocalFileSnapshot = (file, index = 0) => {
@@ -2585,7 +2585,7 @@
 const formatCompactNumber = (value) => {
   const amount = Number(value) || 0
   if (Math.abs(amount) >= 10000) {
-    return `${(amount / 10000).toFixed(2).replace(/\.?0+$/, '')}\u4e07`
+    return `${(amount / 10000).toFixed(4).replace(/\.?0+$/, '')}\u4e07`
   }
   return amount.toLocaleString('zh-CN', { maximumFractionDigits: 2 })
 }
diff --git a/src/utils/summarizeTable.js b/src/utils/summarizeTable.js
index 1ad480d..075ce57 100644
--- a/src/utils/summarizeTable.js
+++ b/src/utils/summarizeTable.js
@@ -28,7 +28,7 @@
         } else {
           // 榛樿淇濈暀涓や綅灏忔暟
           sums[index] = parseFloat(sum).toFixed(
-            specialFormat[prop]?.decimalPlaces ?? 2
+            specialFormat[prop]?.decimalPlaces ?? 4
           );
         }
       } else {
@@ -43,11 +43,11 @@
 // 涓嶅惈绋庢�讳环璁$畻
 const calculateTaxExclusiveTotalPrice = (taxInclusiveTotalPrice, taxRate) => {
   const taxRateDecimal = taxRate / 100;
-  return (taxInclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(2);
+  return (taxInclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(4);
 };
 // 鍚◣鎬讳环璁$畻
 const calculateTaxIncludeTotalPrice = (taxInclusiveUnitPrice, quantity) => {
-  return (taxInclusiveUnitPrice * quantity).toFixed(2);
+  return (taxInclusiveUnitPrice * quantity).toFixed(4);
 };
 // 瀵煎嚭鍑芥暟渚涘叾浠栨枃浠朵娇鐢�
 export {
diff --git a/src/views/financialManagement/accounting/index.vue b/src/views/financialManagement/accounting/index.vue
index ea858e1..f2fc61f 100644
--- a/src/views/financialManagement/accounting/index.vue
+++ b/src/views/financialManagement/accounting/index.vue
@@ -480,7 +480,7 @@
 // 鏍煎紡鍖栬揣甯�
 const formatCurrency = (value) => {
   if (!value) return '0.00';
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
 };
 
 // 鑾峰彇鐘舵�佹爣绛剧被鍨�
diff --git a/src/views/financialManagement/assets/fixedAssets.vue b/src/views/financialManagement/assets/fixedAssets.vue
index 24b4cc3..51a638b 100644
--- a/src/views/financialManagement/assets/fixedAssets.vue
+++ b/src/views/financialManagement/assets/fixedAssets.vue
@@ -117,7 +117,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="璧勪骇鍘熷��" prop="originalValue">
-              <el-input-number v-model="form.originalValue" :min="0" :precision="2" style="width: 100%;" @change="calculateNetValue" />
+              <el-input-number v-model="form.originalValue" :min="0" :precision="4" style="width: 100%;" @change="calculateNetValue" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -130,7 +130,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="娈嬪�肩巼" prop="residualRate">
-              <el-input-number v-model="form.residualRate" :min="0" :max="10" :precision="2" style="width: 100%;" />
+              <el-input-number v-model="form.residualRate" :min="0" :max="10" :precision="4" style="width: 100%;" />
               <span style="margin-left: 10px;">%</span>
             </el-form-item>
           </el-col>
@@ -286,7 +286,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const getCategoryLabel = (category) => {
@@ -315,7 +315,7 @@
 const calculateNetValue = () => {
   const originalValue = Number(form.originalValue || 0);
   const accumulatedDepreciation = Number(form.accumulatedDepreciation || 0);
-  form.netValue = Number((originalValue - accumulatedDepreciation).toFixed(2));
+  form.netValue = Number((originalValue - accumulatedDepreciation).toFixed(4));
 };
 
 // 鑱旇皟绾﹀畾锛氬垎椤靛弬鏁板浐瀹氫负 current/size锛岃繑鍥� data.records/data.total
diff --git a/src/views/financialManagement/assets/intangibleAssets.vue b/src/views/financialManagement/assets/intangibleAssets.vue
index 4642166..abb3ed7 100644
--- a/src/views/financialManagement/assets/intangibleAssets.vue
+++ b/src/views/financialManagement/assets/intangibleAssets.vue
@@ -119,7 +119,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="璧勪骇鍘熷��" prop="originalValue">
-              <el-input-number v-model="form.originalValue" :min="0" :precision="2" style="width: 100%;" @change="calculateNetValue" />
+              <el-input-number v-model="form.originalValue" :min="0" :precision="4" style="width: 100%;" @change="calculateNetValue" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -132,7 +132,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="娈嬪�肩巼" prop="residualRate">
-              <el-input-number v-model="form.residualRate" :min="0" :max="10" :precision="2" style="width: 100%;" />
+              <el-input-number v-model="form.residualRate" :min="0" :max="10" :precision="4" style="width: 100%;" />
               <span style="margin-left: 10px;">%</span>
             </el-form-item>
           </el-col>
@@ -278,7 +278,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const getCategoryLabel = (category) => {
@@ -313,7 +313,7 @@
 const calculateNetValue = () => {
   const originalValue = Number(form.originalValue || 0);
   const accumulatedAmortization = Number(form.accumulatedAmortization || 0);
-  form.netValue = Number((originalValue - accumulatedAmortization).toFixed(2));
+  form.netValue = Number((originalValue - accumulatedAmortization).toFixed(4));
 };
 
 // 鑱旇皟绾﹀畾锛氬垎椤靛弬鏁板浐瀹氫负 current/size锛岃繑鍥� data.records/data.total
diff --git a/src/views/financialManagement/financialStatements/index.vue b/src/views/financialManagement/financialStatements/index.vue
index 5dbce9b..71e3459 100644
--- a/src/views/financialManagement/financialStatements/index.vue
+++ b/src/views/financialManagement/financialStatements/index.vue
@@ -129,7 +129,7 @@
                        :class="pageInfo.netRevenue >= 0 ? 'plus' : 'minus'">
                     {{ pageInfo.netRevenue >= 0 ? '+' : '' }}{{ formatMoney(pageInfo.netRevenue) }}
                   </div>
-                  <div class="rate">鍒╂鼎鐜�: {{ pageInfo.totalIncome > 0 ? ((pageInfo.netRevenue / pageInfo.totalIncome) * 100).toFixed(1) : 0 }}%</div>
+                  <div class="rate">鍒╂鼎鐜�: {{ pageInfo.totalIncome > 0 ? ((pageInfo.netRevenue / pageInfo.totalIncome) * 100).toFixed(4) : 0 }}%</div>
                 </div>
               </div>
             </div>
diff --git a/src/views/financialManagement/payable/input-invoice.vue b/src/views/financialManagement/payable/input-invoice.vue
index 86ebd09..4f8cb7f 100644
--- a/src/views/financialManagement/payable/input-invoice.vue
+++ b/src/views/financialManagement/payable/input-invoice.vue
@@ -200,7 +200,7 @@
               <el-input-number
                 v-model="form.amount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 style="width: 100%;"
                 :disabled="isView"
                 placeholder="鏍规嵁鍏ュ簱鍗曞惈绋庨噾棰濊嚜鍔ㄦ崲绠楋紝鍙慨鏀�"
@@ -213,7 +213,7 @@
               <el-input-number
                 v-model="form.taxAmount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 :controls="false"
                 style="width: 100%;"
                 disabled
@@ -225,7 +225,7 @@
               <el-input-number
                 v-model="form.totalAmount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 :controls="false"
                 style="width: 100%;"
                 disabled
@@ -377,7 +377,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const normalizeStatus = (status) => {
@@ -440,8 +440,8 @@
 
 /** 涓嶅惈绋庨噾棰濆彉鏇达細绋庨銆佷环绋庡悎璁℃鍚戣绠� */
 const calculateTaxFromExclusive = () => {
-  form.taxAmount = Number((form.amount * form.taxRate / 100).toFixed(2));
-  form.totalAmount = Number((form.amount + form.taxAmount).toFixed(2));
+  form.taxAmount = Number((form.amount * form.taxRate / 100).toFixed(4));
+  form.totalAmount = Number((form.amount + form.taxAmount).toFixed(4));
 };
 
 /** 浠风◣鍚堣鍙樻洿锛氭寜绋庣巼鍙嶇畻涓嶅惈绋庨噾棰濄�佺◣棰� */
@@ -454,9 +454,9 @@
     return;
   }
   const rate = Number(form.taxRate) / 100;
-  form.totalAmount = Number(total.toFixed(2));
-  form.amount = Number((form.totalAmount / (1 + rate)).toFixed(2));
-  form.taxAmount = Number((form.totalAmount - form.amount).toFixed(2));
+  form.totalAmount = Number(total.toFixed(4));
+  form.amount = Number((form.totalAmount / (1 + rate)).toFixed(4));
+  form.taxAmount = Number((form.totalAmount - form.amount).toFixed(4));
 };
 
 const handleTaxRateChange = () => {
@@ -481,7 +481,7 @@
       .reduce((acc, row) => acc + getInboundRowTaxInclusiveAmount(row), 0);
   }
 
-  calculateTaxFromInclusive(taxInclusiveSum > 0 ? Number(taxInclusiveSum.toFixed(2)) : 0);
+  calculateTaxFromInclusive(taxInclusiveSum > 0 ? Number(taxInclusiveSum.toFixed(4)) : 0);
 };
 
 const inboundBatchDisplayText = computed(() => {
@@ -520,15 +520,15 @@
   const taxRate = toFormNumber(row.taxRate) || 13;
 
   if (totalAmount > 0 && amount === 0 && taxAmount === 0) {
-    amount = Number((totalAmount / (1 + taxRate / 100)).toFixed(2));
-    taxAmount = Number((totalAmount - amount).toFixed(2));
+    amount = Number((totalAmount / (1 + taxRate / 100)).toFixed(4));
+    taxAmount = Number((totalAmount - amount).toFixed(4));
   } else if (totalAmount > 0 && amount > 0 && taxAmount === 0) {
-    taxAmount = Number((totalAmount - amount).toFixed(2));
+    taxAmount = Number((totalAmount - amount).toFixed(4));
   } else if (amount > 0 && taxAmount === 0 && totalAmount === 0) {
-    taxAmount = Number((amount * taxRate / 100).toFixed(2));
-    totalAmount = Number((amount + taxAmount).toFixed(2));
+    taxAmount = Number((amount * taxRate / 100).toFixed(4));
+    totalAmount = Number((amount + taxAmount).toFixed(4));
   } else if (amount > 0 && taxAmount > 0 && totalAmount === 0) {
-    totalAmount = Number((amount + taxAmount).toFixed(2));
+    totalAmount = Number((amount + taxAmount).toFixed(4));
   }
 
   return { amount, taxAmount, totalAmount };
diff --git a/src/views/financialManagement/payable/payment.vue b/src/views/financialManagement/payable/payment.vue
index 18e7941..446d5a0 100644
--- a/src/views/financialManagement/payable/payment.vue
+++ b/src/views/financialManagement/payable/payment.vue
@@ -53,7 +53,7 @@
         <div>
           <el-statistic title="鏈〉浠樻鍚堣"
                         :value="totalPaymentAmount"
-                        :precision="2"
+                        :precision="4"
                         prefix="楼" />
         </div>
         <div>
@@ -152,7 +152,7 @@
   const formatMoney = value => {
     if (value === undefined || value === null) return "0.00";
     return Number(value)
-      .toFixed(2)
+      .toFixed(4)
       .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
   };
 
diff --git a/src/views/financialManagement/payable/paymentApply.vue b/src/views/financialManagement/payable/paymentApply.vue
index 3937e96..5df0ac9 100644
--- a/src/views/financialManagement/payable/paymentApply.vue
+++ b/src/views/financialManagement/payable/paymentApply.vue
@@ -162,7 +162,7 @@
               <el-input-number
                 v-model="form.paymentAmount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 style="width: 100%;"
                 :disabled="isView"
                 placeholder="鏍规嵁鍏ュ簱鍗曡嚜鍔ㄦ眹鎬伙紝鍙慨鏀�"
@@ -250,7 +250,7 @@
               <el-input-number
                 v-model="paymentForm.paymentAmount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 style="width: 100%;"
               />
             </el-form-item>
@@ -441,7 +441,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const normalizeStatus = (status) => {
@@ -526,7 +526,7 @@
       .reduce((acc, row) => acc + getInboundRowTaxInclusiveAmount(row), 0);
   }
 
-  form.paymentAmount = sum > 0 ? Number(sum.toFixed(2)) : 0;
+  form.paymentAmount = sum > 0 ? Number(sum.toFixed(4)) : 0;
 };
 
 const inboundBatchDisplayText = computed(() => {
diff --git a/src/views/financialManagement/payable/reconciliation.vue b/src/views/financialManagement/payable/reconciliation.vue
index e749e56..806c951 100644
--- a/src/views/financialManagement/payable/reconciliation.vue
+++ b/src/views/financialManagement/payable/reconciliation.vue
@@ -407,7 +407,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const getTableData = () => {
diff --git a/src/views/financialManagement/receivable/invoiceApply.vue b/src/views/financialManagement/receivable/invoiceApply.vue
index 14fdd67..85300bf 100644
--- a/src/views/financialManagement/receivable/invoiceApply.vue
+++ b/src/views/financialManagement/receivable/invoiceApply.vue
@@ -146,7 +146,7 @@
               <el-input-number
                 v-model="form.amount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 :disabled="isView"
                 style="width: 100%;"
                 placeholder="鏍规嵁鎵�閫夊嚭搴撳崟鑷姩姹囨�伙紝鍙慨鏀�"
@@ -393,7 +393,7 @@
   const sum = outboundBatchOptions.value
     .filter((opt) => selected.some((id) => isSameOutboundId(id, opt.value)))
     .reduce((acc, opt) => acc + (Number(opt.outboundAmount) || 0), 0);
-  form.amount = sum > 0 ? Number(sum.toFixed(2)) : 0;
+  form.amount = sum > 0 ? Number(sum.toFixed(4)) : 0;
 };
 
 const getOutboundRowId = (row) => row?.id ?? row?.stockOutRecordId;
@@ -628,7 +628,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const getStatusLabel = (status) => {
diff --git a/src/views/financialManagement/receivable/outputInvoice.vue b/src/views/financialManagement/receivable/outputInvoice.vue
index d746aea..e26665e 100644
--- a/src/views/financialManagement/receivable/outputInvoice.vue
+++ b/src/views/financialManagement/receivable/outputInvoice.vue
@@ -170,7 +170,7 @@
               <el-input-number
                 v-model="form.amount"
                 :min="0"
-                :precision="2"
+                :precision="4"
                 style="width: 100%;"
                 :disabled="isView"
                 @change="calculateTax"
@@ -326,12 +326,12 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const calculateTax = () => {
-  form.taxAmount = Number((form.amount * form.taxRate / 100).toFixed(2));
-  form.totalAmount = Number((form.amount + form.taxAmount).toFixed(2));
+  form.taxAmount = Number((form.amount * form.taxRate / 100).toFixed(4));
+  form.totalAmount = Number((form.amount + form.taxAmount).toFixed(4));
 };
 
 const handleInvoiceTypeChange = () => {
diff --git a/src/views/financialManagement/receivable/receipt.vue b/src/views/financialManagement/receivable/receipt.vue
index 6ddb3fe..71a22c6 100644
--- a/src/views/financialManagement/receivable/receipt.vue
+++ b/src/views/financialManagement/receivable/receipt.vue
@@ -53,7 +53,7 @@
         <div>
           <el-statistic title="鏈〉鏀舵鍚堣"
                         :value="totalReceiptAmount"
-                        :precision="2"
+                        :precision="4"
                         prefix="楼" />
         </div>
         <div>
@@ -171,7 +171,7 @@
                           prop="amount">
               <el-input-number v-model="form.amount"
                                :min="0"
-                               :precision="2"
+                               :precision="4"
                                style="width: 100%;"
                                :disabled="isView"
                                placeholder="鏍规嵁鍏宠仈鍗曟嵁鑷姩姹囨�伙紝鍙慨鏀�" />
@@ -408,7 +408,7 @@
   const formatMoney = value => {
     if (value === undefined || value === null) return "0.00";
     return Number(value)
-      .toFixed(2)
+      .toFixed(4)
       .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
   };
 
@@ -525,7 +525,7 @@
     const sum = outboundBatchOptions.value
       .filter(opt => selected.some(id => isSameOutboundId(id, opt.value)))
       .reduce((acc, opt) => acc + (Number(opt.outboundAmount) || 0), 0);
-    form.amount = sum > 0 ? Number(sum.toFixed(2)) : 0;
+    form.amount = sum > 0 ? Number(sum.toFixed(4)) : 0;
   };
 
   const restoreOutboundTableSelection = () => {
diff --git a/src/views/financialManagement/receivable/reconciliation.vue b/src/views/financialManagement/receivable/reconciliation.vue
index b1bff0e..8f35e09 100644
--- a/src/views/financialManagement/receivable/reconciliation.vue
+++ b/src/views/financialManagement/receivable/reconciliation.vue
@@ -390,7 +390,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const getTableData = () => {
diff --git a/src/views/financialManagement/voucher/detailLedger.vue b/src/views/financialManagement/voucher/detailLedger.vue
index c07574c..a8ddde4 100644
--- a/src/views/financialManagement/voucher/detailLedger.vue
+++ b/src/views/financialManagement/voucher/detailLedger.vue
@@ -199,7 +199,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 // 鑱旇皟绾﹀畾锛氭槑缁嗚处鎸夌鐩笌鏈熼棿杩囨护
diff --git a/src/views/financialManagement/voucher/generalLedger.vue b/src/views/financialManagement/voucher/generalLedger.vue
index b362279..d5e73c9 100644
--- a/src/views/financialManagement/voucher/generalLedger.vue
+++ b/src/views/financialManagement/voucher/generalLedger.vue
@@ -202,7 +202,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 // 鑱旇皟绾﹀畾锛氭�昏处鎺ュ彛杩斿洖琛屾暟缁勶紙rowType/date/voucherNo/summary/debit/credit/direction/balance锛�
diff --git a/src/views/financialManagement/voucher/index.vue b/src/views/financialManagement/voucher/index.vue
index 1aa6f69..b6a7186 100644
--- a/src/views/financialManagement/voucher/index.vue
+++ b/src/views/financialManagement/voucher/index.vue
@@ -32,8 +32,8 @@
     <div class="table_list">
       <div class="actions">
         <div>
-          <el-statistic title="鍊熸柟鍚堣" :value="totalDebit" :precision="2" prefix="楼" />
-          <el-statistic title="璐锋柟鍚堣" :value="totalCredit" :precision="2" prefix="楼" style="margin-left: 30px;" />
+          <el-statistic title="鍊熸柟鍚堣" :value="totalDebit" :precision="4" prefix="楼" />
+          <el-statistic title="璐锋柟鍚堣" :value="totalCredit" :precision="4" prefix="楼" style="margin-left: 30px;" />
         </div>
         <div>
           <el-button type="primary" @click="add" icon="Plus">鏂板鍑瘉</el-button>
@@ -162,7 +162,7 @@
                   <!-- 鍊熸柟11鍒� -->
                   <template v-if="editingCell.row === rowIndex && editingCell.type === 'debit'">
                     <td colspan="11" class="debit-input-cell">
-                      <el-input-number ref="amountInputRef" v-model="entry.debit" :disabled="isViewMode" :min="0" :precision="2" :controls="false" :value-on-clear="undefined" size="small" @blur="finishEdit" class="full-width-input" />
+                      <el-input-number ref="amountInputRef" v-model="entry.debit" :disabled="isViewMode" :min="0" :precision="4" :controls="false" :value-on-clear="undefined" size="small" @blur="finishEdit" class="full-width-input" />
                     </td>
                   </template>
                   <template v-else>
@@ -173,7 +173,7 @@
                   <!-- 璐锋柟11鍒� -->
                   <template v-if="editingCell.row === rowIndex && editingCell.type === 'credit'">
                     <td colspan="11" class="credit-input-cell">
-                      <el-input-number ref="amountInputRef" v-model="entry.credit" :disabled="isViewMode" :min="0" :precision="2" :controls="false" :value-on-clear="undefined" size="small" @blur="finishEdit" class="full-width-input" />
+                      <el-input-number ref="amountInputRef" v-model="entry.credit" :disabled="isViewMode" :min="0" :precision="4" :controls="false" :value-on-clear="undefined" size="small" @blur="finishEdit" class="full-width-input" />
                     </td>
                   </template>
                   <template v-else>
@@ -431,7 +431,7 @@
 
 const formatMoney = (value) => {
   if (value === undefined || value === null) return "0.00";
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+  return Number(value).toFixed(4).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 };
 
 const normalizeVoucherStatus = status => String(status || "").toLowerCase();
@@ -583,7 +583,7 @@
     return new Array(length).fill('');
   }
 
-  const amountStr = Number(amount).toFixed(2);
+  const amountStr = Number(amount).toFixed(4);
   const [intPart, decPart] = amountStr.split('.');
   const fullAmount = intPart + decPart;
 
diff --git a/src/views/index.vue b/src/views/index.vue
index e12ded2..69f03dd 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -712,7 +712,7 @@
     const lines = list
         .map((p) => {
           const colorBox = `<span style="display:inline-block;margin-right:6px;border-radius:2px;width:10px;height:10px;background:${p.color}"></span>`;
-          return `${colorBox}${p.seriesName}<b style="float:right;">${Number(p.value || 0).toFixed(2)}</b>`;
+          return `${colorBox}${p.seriesName}<b style="float:right;">${Number(p.value || 0).toFixed(4)}</b>`;
         })
         .join("<br/>");
     return `<div style="min-width:140px;"><div style="font-weight:700;margin-bottom:6px;">${name}</div>${lines}</div>`;
@@ -828,7 +828,7 @@
     value: formatNumber(productionOverviewData.value.totalOutput),
     subLabel: "绱鎶ュ簾",
     subValue: formatNumber(productionOverviewData.value.totalScrap),
-    trend: `鑹巼 ${Number(productionOverviewData.value.yieldRate || 0).toFixed(2)}%`,
+    trend: `鑹巼 ${Number(productionOverviewData.value.yieldRate || 0).toFixed(4)}%`,
     icon: Operation,
     visible: visibleModules.value.production,
   },
@@ -876,7 +876,7 @@
 
 const getCompareText = (value) => {
   const num = Number(value || 0);
-  const abs = Math.abs(num).toFixed(2);
+  const abs = Math.abs(num).toFixed(4);
   if (num > 0) return `杈冩槰鏃� 鈫� ${abs}%`;
   if (num < 0) return `杈冩槰鏃� 鈫� ${abs}%`;
   return "杈冩槰鏃� 鎸佸钩";
@@ -894,7 +894,7 @@
       key: "oee",
       label: "璁惧 OEE",
       percent: clampPercent(oee),
-      display: `${oee.toFixed(2)}%`,
+      display: `${oee.toFixed(4)}%`,
       delta: getCompareText(oeeCompare),
       trend: getCompareTrend(oeeCompare),
       color: "#2d8cff",
@@ -903,7 +903,7 @@
       key: "order",
       label: "璁㈠崟杈炬垚鐜�",
       percent: clampPercent(orderAchievement),
-      display: `${orderAchievement.toFixed(2)}%`,
+      display: `${orderAchievement.toFixed(4)}%`,
       delta: getCompareText(orderCompare),
       trend: getCompareTrend(orderCompare),
       color: "#31d2ff",
@@ -912,7 +912,7 @@
       key: "defect",
       label: "涓嶈壇鐜�",
       percent: clampPercent(defectRate),
-      display: `${defectRate.toFixed(2)}%`,
+      display: `${defectRate.toFixed(4)}%`,
       delta: getCompareText(defectCompare),
       trend: getCompareTrend(defectCompare),
       color: "#f6a23f",
@@ -1122,7 +1122,7 @@
 const trendText = (value) => {
   const num = Number(value || 0);
   const flag = num >= 0 ? "鈫�" : "鈫�";
-  return `${flag} ${Math.abs(num).toFixed(1)}%`;
+  return `${flag} ${Math.abs(num).toFixed(4)}%`;
 };
 
 const ratioNumber = (numerator, denominator) => {
@@ -1132,7 +1132,7 @@
   return (n / d) * 100;
 };
 
-const ratioText = (numerator, denominator) => `${ratioNumber(numerator, denominator).toFixed(1)}%`;
+const ratioText = (numerator, denominator) => `${ratioNumber(numerator, denominator).toFixed(4)}%`;
 
 const clampPercent = (val) => Math.max(0, Math.min(100, Number(val || 0)));
 
diff --git a/src/views/inventoryManagement/stockWarning/index.vue b/src/views/inventoryManagement/stockWarning/index.vue
index b5216cb..55309f5 100644
--- a/src/views/inventoryManagement/stockWarning/index.vue
+++ b/src/views/inventoryManagement/stockWarning/index.vue
@@ -180,7 +180,7 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="瀹圭Н(m鲁)锛�" prop="volume">
-              <el-input-number v-model="form.volume" :min="0" :precision="2" style="width: 100%" />
+              <el-input-number v-model="form.volume" :min="0" :precision="4" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -212,7 +212,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="褰撳墠鍘嬪姏(MPa)锛�" prop="currentPressure">
-              <el-input-number v-model="form.currentPressure" :min="0" :precision="2" style="width: 100%" />
+              <el-input-number v-model="form.currentPressure" :min="0" :precision="4" style="width: 100%" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -243,7 +243,7 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="棰勮闃堝�硷細" prop="warningThreshold">
-              <el-input-number v-model="form.warningThreshold" :min="0" :precision="2" style="width: 100%" />
+              <el-input-number v-model="form.warningThreshold" :min="0" :precision="4" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
diff --git a/src/views/inventoryManagement/vehicleFuelManagement/index.vue b/src/views/inventoryManagement/vehicleFuelManagement/index.vue
index eaf543c..518ceda 100644
--- a/src/views/inventoryManagement/vehicleFuelManagement/index.vue
+++ b/src/views/inventoryManagement/vehicleFuelManagement/index.vue
@@ -79,7 +79,7 @@
           align="right"
         >
           <template #default="scope">
-            <span>{{ scope.row.amount?.toFixed(2) }}</span>
+            <span>{{ scope.row.amount?.toFixed(4) }}</span>
           </template>
         </el-table-column>
         <el-table-column
@@ -89,7 +89,7 @@
           align="right"
         >
           <template #default="scope">
-            <span>{{ scope.row.liters?.toFixed(2) }}</span>
+            <span>{{ scope.row.liters?.toFixed(4) }}</span>
           </template>
         </el-table-column>
         <el-table-column
@@ -120,7 +120,7 @@
             <span
               :style="scope.row.isAbnormal ? 'color:#F56C6C;font-weight:600;' : ''"
             >
-              {{ scope.row.fuelConsumption != null ? scope.row.fuelConsumption.toFixed(2) : '-' }}
+              {{ scope.row.fuelConsumption != null ? scope.row.fuelConsumption.toFixed(4) : '-' }}
             </span>
           </template>
         </el-table-column>
@@ -132,7 +132,7 @@
         >
           <template #default="scope">
             <span>
-              {{ scope.row.avgConsumption != null ? scope.row.avgConsumption.toFixed(2) : '-' }}
+              {{ scope.row.avgConsumption != null ? scope.row.avgConsumption.toFixed(4) : '-' }}
             </span>
           </template>
         </el-table-column>
@@ -228,7 +228,7 @@
                 v-model="form.amount"
                 :min="0"
                 :step="0.01"
-                :precision="2"
+                :precision="4"
                 placeholder="璇疯緭鍏ラ噾棰�"
                 style="width: 100%"
               />
@@ -240,7 +240,7 @@
                 v-model="form.liters"
                 :min="0"
                 :step="0.01"
-                :precision="2"
+                :precision="4"
                 placeholder="璇疯緭鍏ュ崌鏁�"
                 style="width: 100%"
               />
diff --git a/src/views/productionManagement/operationScheduling/components/formDia.vue b/src/views/productionManagement/operationScheduling/components/formDia.vue
index 06b46ac..646a7e1 100644
--- a/src/views/productionManagement/operationScheduling/components/formDia.vue
+++ b/src/views/productionManagement/operationScheduling/components/formDia.vue
@@ -58,7 +58,7 @@
 							placeholder="璇疯緭鍏�"
 							:min="0"
 							:step="0.1"
-							:precision="2"
+							:precision="4"
 							clearable
 							style="width: 100%"
 						/>
@@ -71,7 +71,7 @@
 							placeholder="璇疯緭鍏�"
 							:min="0"
 							:step="0.1"
-							:precision="2"
+							:precision="4"
 							clearable
 							style="width: 100%"
 						/>
diff --git a/src/views/productionManagement/processRoute/processRouteItem/index.vue b/src/views/productionManagement/processRoute/processRouteItem/index.vue
index 3c52410..d74c8c7 100644
--- a/src/views/productionManagement/processRoute/processRouteItem/index.vue
+++ b/src/views/productionManagement/processRoute/processRouteItem/index.vue
@@ -340,7 +340,7 @@
                                 style="margin: 0">
                     <el-input-number v-model="row.unitQuantity"
                                      :min="0"
-                                     :precision="2"
+                                     :precision="4"
                                      :step="1"
                                      controls-position="right"
                                      style="width: 100%"
@@ -358,7 +358,7 @@
                                 style="margin: 0">
                     <el-input-number v-model="row.demandedQuantity"
                                      :min="0"
-                                     :precision="2"
+                                     :precision="4"
                                      :step="1"
                                      controls-position="right"
                                      style="width: 100%"
@@ -1203,7 +1203,7 @@
     if (!Number.isFinite(numberValue)) {
       return 0;
     }
-    return Number(numberValue.toFixed(2));
+    return Number(numberValue.toFixed(4));
   };
 
   const syncDemandedQuantityTree = (items, parentDemandedQuantity = null) => {
diff --git a/src/views/productionManagement/productStructure/Detail/index.vue b/src/views/productionManagement/productStructure/Detail/index.vue
index 5cb08e8..4fd2fa5 100644
--- a/src/views/productionManagement/productStructure/Detail/index.vue
+++ b/src/views/productionManagement/productStructure/Detail/index.vue
@@ -82,7 +82,7 @@
                                 style="margin: 0">
                     <el-input-number v-model="row.unitQuantity"
                                      :min="0"
-                                     :precision="2"
+                                     :precision="4"
                                      :step="1"
                                      controls-position="right"
                                      style="width: 100%"
@@ -100,7 +100,7 @@
                                 style="margin: 0">
                     <el-input-number v-model="row.demandedQuantity"
                                      :min="0"
-                                     :precision="2"
+                                     :precision="4"
                                      :step="1"
                                      controls-position="right"
                                      style="width: 100%"
@@ -274,7 +274,7 @@
     if (!Number.isFinite(numberValue)) {
       return 0;
     }
-    return Number(numberValue.toFixed(2));
+    return Number(numberValue.toFixed(4));
   };
 
   const syncDemandedQuantityTree = (
diff --git a/src/views/productionManagement/productStructure/StructureEdit.vue b/src/views/productionManagement/productStructure/StructureEdit.vue
index 4d07f5d..20d92d1 100644
--- a/src/views/productionManagement/productStructure/StructureEdit.vue
+++ b/src/views/productionManagement/productStructure/StructureEdit.vue
@@ -86,7 +86,7 @@
                                 style="margin: 0">
                     <el-input-number v-model="row.unitQuantity"
                                      :min="0"
-                                     :precision="2"
+                                     :precision="4"
                                      :step="1"
                                      controls-position="right"
                                      style="width: 100%"
@@ -103,7 +103,7 @@
                                 style="margin: 0">
                     <el-input-number v-model="row.demandedQuantity"
                                      :min="0"
-                                     :precision="2"
+                                     :precision="4"
                                      :step="1"
                                      controls-position="right"
                                      style="width: 100%"
diff --git a/src/views/productionManagement/productionCosting/index.vue b/src/views/productionManagement/productionCosting/index.vue
index 3e79b93..836fc79 100644
--- a/src/views/productionManagement/productionCosting/index.vue
+++ b/src/views/productionManagement/productionCosting/index.vue
@@ -169,7 +169,7 @@
       minWidth: 100,
       formatData: val => {
         if (val == null || val === "") return "-";
-        return parseFloat(val).toFixed(2) + "%";
+        return parseFloat(val).toFixed(4) + "%";
       },
     },
   ]);
diff --git a/src/views/productionManagement/productionDispatching/components/formDia.vue b/src/views/productionManagement/productionDispatching/components/formDia.vue
index a514d9a..1f26e07 100644
--- a/src/views/productionManagement/productionDispatching/components/formDia.vue
+++ b/src/views/productionManagement/productionDispatching/components/formDia.vue
@@ -51,7 +51,7 @@
 								placeholder="璇疯緭鍏�"
 								:min="0"
 								:step="0.1"
-								:precision="2"
+								:precision="4"
 								clearable
 								@change="changeNum"
 								style="width: 100%"
diff --git a/src/views/productionManagement/productionReporting/components/formDia.vue b/src/views/productionManagement/productionReporting/components/formDia.vue
index 15958e6..cdb90e5 100644
--- a/src/views/productionManagement/productionReporting/components/formDia.vue
+++ b/src/views/productionManagement/productionReporting/components/formDia.vue
@@ -27,7 +27,7 @@
 								placeholder="璇疯緭鍏�"
 								:min="0"
 								:step="0.1"
-								:precision="2"
+								:precision="4"
 								clearable
 								style="width: 100%"
 								@change="changeNum"
@@ -144,7 +144,7 @@
 	const unitPrice = Number(form.value.unitPrice ?? 0);
 	
 	if (quantity > 0 && unitPrice > 0) {
-		form.value.totalPrice = (quantity * unitPrice).toFixed(2);
+		form.value.totalPrice = (quantity * unitPrice).toFixed(4);
 	} else {
 		form.value.totalPrice = '0.00';
 	}
diff --git a/src/views/productionManagement/productionReporting/index.vue b/src/views/productionManagement/productionReporting/index.vue
index fa4e163..858d6ab 100644
--- a/src/views/productionManagement/productionReporting/index.vue
+++ b/src/views/productionManagement/productionReporting/index.vue
@@ -63,7 +63,7 @@
                                  style="width: 100%"
                                  v-model="scope.row.finishedNum"
                                  :disabled="!scope.row.editType"
-                                 :precision="2"
+                                 :precision="4"
                                  placeholder="璇疯緭鍏�"
                                  clearable
                                  @change="changeNum(scope.row)" />
diff --git a/src/views/productionManagement/safetyMonitoring/index.vue b/src/views/productionManagement/safetyMonitoring/index.vue
index 12922e7..63f20b0 100644
--- a/src/views/productionManagement/safetyMonitoring/index.vue
+++ b/src/views/productionManagement/safetyMonitoring/index.vue
@@ -24,7 +24,7 @@
 								</div>
 								<div class="sensor-data">
 									<div class="data-item">
-										<span>鐢茬兎: {{ sensor.methane.toFixed(2) }}%</span>
+										<span>鐢茬兎: {{ sensor.methane.toFixed(4) }}%</span>
 										<el-progress
 											:percentage="Math.min(Math.round(sensor.methane * 40 * 100) / 100, 100)"
 											:color="getProgressColor(Math.min(Math.round(sensor.methane * 40 * 100) / 100, 100), 80)"
@@ -33,7 +33,7 @@
 										/>
 									</div>
 									<div class="data-item">
-										<span>纭寲姘�: {{ sensor.h2s.toFixed(2) }}ppm</span>
+										<span>纭寲姘�: {{ sensor.h2s.toFixed(4) }}ppm</span>
 										<el-progress
 											:percentage="Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100)"
 											:color="getProgressColor(Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100), 80)"
@@ -59,7 +59,7 @@
 								</div>
 								<div class="sensor-data">
 									<div class="data-item">
-										<span>鐢茬兎: {{ sensor.methane.toFixed(2) }}%</span>
+										<span>鐢茬兎: {{ sensor.methane.toFixed(4) }}%</span>
 										<el-progress
 											:percentage="Math.min(Math.round(sensor.methane * 40 * 100) / 100, 100)"
 											:color="getProgressColor(sensor.methane, 2.5)"
@@ -68,7 +68,7 @@
 										/>
 									</div>
 									<div class="data-item">
-										<span>纭寲姘�: {{ sensor.h2s.toFixed(2) }}ppm</span>
+										<span>纭寲姘�: {{ sensor.h2s.toFixed(4) }}ppm</span>
 										<el-progress
 											:percentage="Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100)"
 											:color="getProgressColor(sensor.h2s, 10)"
@@ -339,7 +339,7 @@
 		formatProgress(percentage) {
 			if (percentage == null || isNaN(percentage)) return '0.00%'
 			const val = Math.round(Number(percentage) * 100) / 100
-			return `${val.toFixed(2)}%`
+			return `${val.toFixed(4)}%`
 		},
 		// 鍒濆鍖栧浘琛�
 		initChart() {
@@ -437,7 +437,7 @@
 		generateRandomData(count, min, max) {
 			const data = []
 			for (let i = 0; i < count; i++) {
-				data.push(+(Math.random() * (max - min) + min).toFixed(2))
+				data.push(+(Math.random() * (max - min) + min).toFixed(4))
 			}
 			return data
 		},
@@ -455,15 +455,15 @@
 		refreshSensorData() {
 			// 鏇存柊鍌ㄧ綈鍖轰紶鎰熷櫒鏁版嵁
 			this.tankSensors.forEach(sensor => {
-				sensor.methane = +(Math.random() * 4).toFixed(2)
-				sensor.h2s = +(Math.random() * 15).toFixed(2)
+				sensor.methane = +(Math.random() * 4).toFixed(4)
+				sensor.h2s = +(Math.random() * 15).toFixed(4)
 				sensor.status = this.getSensorStatus(sensor.methane, sensor.h2s)
 			})
 			
 			// 鏇存柊鍘嬬缉鏈轰紶鎰熷櫒鏁版嵁
 			this.compressorSensors.forEach(sensor => {
-				sensor.methane = +(Math.random() * 6).toFixed(2)
-				sensor.h2s = +(Math.random() * 20).toFixed(2)
+				sensor.methane = +(Math.random() * 6).toFixed(4)
+				sensor.h2s = +(Math.random() * 20).toFixed(4)
 				sensor.status = this.getSensorStatus(sensor.methane, sensor.h2s)
 			})
 			
@@ -497,7 +497,7 @@
 			const h2sPct = Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100)
 			const isMethaneMajor = methanePct >= h2sPct
 			const overGas = isMethaneMajor ? '鐢茬兎' : '纭寲姘�'
-			const percent = (isMethaneMajor ? methanePct : h2sPct).toFixed(2)
+			const percent = (isMethaneMajor ? methanePct : h2sPct).toFixed(4)
 			this.currentWarning = {
 				location: sensor.name,
 				gas: overGas,
diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
index 10bfad9..2a2b406 100644
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -61,7 +61,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2" :disabled="isViewMode || processQuantityDisabled"/>
+              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="4" :disabled="isViewMode || processQuantityDisabled"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -75,7 +75,7 @@
                                v-model="form.qualifiedQuantity"
                                placeholder="璇疯緭鍏�"
                                clearable
-                               :precision="2"
+                               :precision="4"
                                @change="handleQualifiedQuantityChange"
                                :disabled="isViewMode" />
             </el-form-item>
@@ -89,7 +89,7 @@
                                v-model="form.unqualifiedQuantity"
                                placeholder="璇疯緭鍏�"
                                clearable
-                               :precision="2"
+                               :precision="4"
                                @change="handleUnqualifiedQuantityChange"
                                :disabled="isViewMode" />
             </el-form-item>
diff --git a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
index e747d04..d9359e6 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
@@ -50,7 +50,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2"/>
+              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="4"/>
             </el-form-item>
           </el-col>
         </el-row>
diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
index 635360f..87bf9e2 100644
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ b/src/views/qualityManagement/processInspection/components/formDia.vue
@@ -93,7 +93,7 @@
                                v-model="form.quantity"
                                placeholder="璇疯緭鍏�"
                                clearable
-                               :precision="2"
+                               :precision="4"
                                :disabled="isViewMode || processQuantityDisabled" />
             </el-form-item>
           </el-col>
@@ -108,7 +108,7 @@
                                v-model="form.qualifiedQuantity"
                                placeholder="璇疯緭鍏�"
                                clearable
-                               :precision="2"
+                               :precision="4"
                                @change="handleQualifiedQuantityChange"
                                :disabled="isViewMode" />
             </el-form-item>
@@ -122,7 +122,7 @@
                                v-model="form.unqualifiedQuantity"
                                placeholder="璇疯緭鍏�"
                                clearable
-                               :precision="2"
+                               :precision="4"
                                @change="handleUnqualifiedQuantityChange"
                                :disabled="isViewMode" />
             </el-form-item>
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
index 8bcc72b..ef226ec 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -79,7 +79,7 @@
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
               <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�"
-                               clearable :precision="2" :disabled="isViewMode || supplierQuantityDisabled"/>
+                               clearable :precision="4" :disabled="isViewMode || supplierQuantityDisabled"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -87,14 +87,14 @@
           <el-col :span="12">
             <el-form-item label="鍚堟牸鏁伴噺锛�" prop="qualifiedQuantity">
               <el-input-number :step="0.01" :min="0" :max="form.quantity || 0" style="width: 100%"
-                               v-model="form.qualifiedQuantity" placeholder="璇疯緭鍏�" :precision="2"
+                               v-model="form.qualifiedQuantity" placeholder="璇疯緭鍏�" :precision="4"
                                @change="onQualifiedChange" :disabled="isViewMode"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="涓嶅悎鏍兼暟閲忥細" prop="unqualifiedQuantity">
               <el-input-number :step="0.01" :min="0" :max="form.quantity || 0" style="width: 100%"
-                               v-model="form.unqualifiedQuantity" placeholder="璇疯緭鍏�" :precision="2"
+                               v-model="form.unqualifiedQuantity" placeholder="璇疯緭鍏�" :precision="4"
                                @change="onUnqualifiedChange" :disabled="isViewMode"/>
             </el-form-item>
           </el-col>
diff --git a/src/views/qualityManagement/visualization/qualityDashboard.vue b/src/views/qualityManagement/visualization/qualityDashboard.vue
index 57462b7..1b5ac99 100644
--- a/src/views/qualityManagement/visualization/qualityDashboard.vue
+++ b/src/views/qualityManagement/visualization/qualityDashboard.vue
@@ -51,7 +51,7 @@
           </template>
           <EChart :series="passRateSeries" :legend="{ show: false }" :chartStyle="{ height: '340px', width: '100%' }" />
           <div class="passrate-text">
-            褰撳墠鍚堟牸鐜囷細<b>{{ (passRate * 100).toFixed(1) }}%</b>
+            褰撳墠鍚堟牸鐜囷細<b>{{ (passRate * 100).toFixed(4) }}%</b>
           </div>
         </el-card>
       </el-col>
@@ -121,7 +121,7 @@
     progress: { show: true, width: 12 },
     axisLine: { lineStyle: { width: 12 } },
     pointer: { show: true },
-    detail: { valueAnimation: true, formatter: (v) => `${(v * 100).toFixed(1)}%` },
+    detail: { valueAnimation: true, formatter: (v) => `${(v * 100).toFixed(4)}%` },
     data: [{ value: passRate.value }],
   },
 ])
@@ -205,7 +205,7 @@
     spcData.value.shift()
   }
   spcXAxis.value.push(`${spcXAxis.value.length + 1}`)
-  spcData.value.push(parseFloat(nextVal.toFixed(2)))
+  spcData.value.push(parseFloat(nextVal.toFixed(4)))
   spcSeries.value[0].data = [...spcData.value]
   spcSeries.value[1].data = new Array(spcData.value.length).fill(UCL.value)
   spcSeries.value[2].data = new Array(spcData.value.length).fill(CL.value)
@@ -217,10 +217,10 @@
   }
   const last = spcData.value[spcData.value.length - 1]
   if (last > UCL.value) {
-    speak(`棰勮锛屾渶鏂版祴閲忓�� ${last.toFixed(2)} 瓒呰繃涓婇檺`)
+    speak(`棰勮锛屾渶鏂版祴閲忓�� ${last.toFixed(4)} 瓒呰繃涓婇檺`)
   }
   if (last < LCL.value) {
-    speak(`棰勮锛屾渶鏂版祴閲忓�� ${last.toFixed(2)} 浣庝簬涓嬮檺`)
+    speak(`棰勮锛屾渶鏂版祴閲忓�� ${last.toFixed(4)} 浣庝簬涓嬮檺`)
   }
 }
 
@@ -235,7 +235,7 @@
   for (let i = 0; i < 20; i++) {
     spcXAxis.value.push(`${i + 1}`)
     const v = CL.value + (Math.random() - 0.5) * 6
-    spcData.value.push(parseFloat(v.toFixed(2)))
+    spcData.value.push(parseFloat(v.toFixed(4)))
   }
   spcSeries.value[0].data = [...spcData.value]
   spcSeries.value[1].data = new Array(spcData.value.length).fill(UCL.value)

--
Gitblit v1.9.3