From 5b8460a455366ef69ecc93b35fa6426ec5795950 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 08 六月 2026 10:15:29 +0800
Subject: [PATCH] fix: 领料数量小数点调整到8位

---
 src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue     |   36 +++++++++++++----
 src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue     |   28 +++++++++----
 src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue |   32 ++++++++++++---
 3 files changed, 71 insertions(+), 25 deletions(-)

diff --git a/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue b/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
index 370815e..3373374 100644
--- a/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
+++ b/src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
@@ -21,28 +21,34 @@
                          prop="batchNo"
                          min-width="150" />
         <el-table-column label="闇�姹傛暟閲�"
-                         prop="demandedQuantity"
-                         min-width="110" />
+                         min-width="110">
+          <template #default="{ row }">
+            {{ stripTrailingZeros(row.demandedQuantity) }}
+          </template>
+        </el-table-column>
         <el-table-column label="璁¢噺鍗曚綅"
                          prop="unit"
                          width="100" />
         <el-table-column label="棰嗙敤鏁伴噺"
-                         prop="pickQuantity"
-                         min-width="110" />
+                         min-width="110">
+          <template #default="{ row }">
+            {{ stripTrailingZeros(row.pickQuantity) }}
+          </template>
+        </el-table-column>
         <el-table-column label="琛ユ枡鏁伴噺"
                          min-width="120">
           <template #default="{ row }">
             <el-button type="primary"
                        link
                        @click="handleViewSupplementRecord(row)">
-              {{ row.feedingQty ?? 0 }}
+              {{ stripTrailingZeros(row.feedingQty) ?? 0 }}
             </el-button>
           </template>
         </el-table-column>
         <el-table-column label="閫�鏂欐暟閲�"
                          min-width="110">
           <template #default="{ row }">
-            {{ row.returnQty ?? 0 }}
+            {{ stripTrailingZeros(row.returnQty) ?? 0 }}
           </template>
         </el-table-column>
         <el-table-column label="瀹為檯鏁伴噺"
@@ -50,10 +56,11 @@
           <template #default="{ row }">
             <el-input-number v-model="row.actualQty"
                              :min="0"
-                             :precision="3"
                              :step="1"
                              controls-position="right"
                              placeholder="杈撳叆瀹為檯鏁伴噺"
+                             :formatter="value => stripTrailingZeros(value)"
+                             :parser="value => parseFloat(value) || 0"
                              style="width: 100%;"
                              :disabled="row.returned || orderRow?.end"
                              @change="val => handleActualQtyChange(row, val)" />
@@ -115,8 +122,11 @@
                          prop="unit"
                          min-width="100" />
         <el-table-column label="閫�鏂欐眹鎬绘暟閲�"
-                         prop="returnQtyTotal"
-                         min-width="140" />
+                         min-width="140">
+          <template #default="{ row }">
+            {{ stripTrailingZeros(row.returnQtyTotal) }}
+          </template>
+        </el-table-column>
       </el-table>
       <template #footer>
         <span class="dialog-footer">
@@ -139,6 +149,14 @@
     updateMaterialPickingLedger,
   } from "@/api/productionManagement/productionOrder.js";
 
+  const stripTrailingZeros = val => {
+    const str = String(val ?? "");
+    if (str.includes(".")) {
+      return parseFloat(str).toString();
+    }
+    return str;
+  };
+
   const props = defineProps({
     modelValue: { type: Boolean, default: false },
     orderRow: { type: Object, default: null },
diff --git a/src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue b/src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue
index 09e7421..332db07 100644
--- a/src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue
+++ b/src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue
@@ -2,7 +2,7 @@
   <div>
     <el-dialog v-model="dialogVisible"
                title="棰嗘枡鍙拌处"
-               width="1200px"
+               width="1350px"
                @close="handleClose">
       <div class="material-toolbar">
         <el-button type="primary"
@@ -13,7 +13,7 @@
                 border
                 row-key="tempId">
         <el-table-column label="宸ュ簭鍚嶇О"
-                         min-width="140">
+                         min-width="80">
           <template #default="{ row }">
             <span v-if="row.bom === true">{{ row.operationName || "-" }}</span>
             <el-select v-else
@@ -31,7 +31,7 @@
           </template>
         </el-table-column>
         <el-table-column label="鍘熸枡鍚嶇О"
-                         min-width="140">
+                         min-width="120">
           <template #default="{ row }">
             <span v-if="row.bom === true">{{ row.materialName || "-" }}</span>
             <el-button v-else
@@ -43,7 +43,7 @@
           </template>
         </el-table-column>
         <el-table-column label="鍘熸枡鍨嬪彿"
-                         min-width="140">
+                         min-width="120">
           <template #default="{ row }">
             {{ row.materialModel || "-" }}
           </template>
@@ -66,21 +66,22 @@
           </template>
         </el-table-column>
         <el-table-column label="闇�姹傛暟閲�"
-                         min-width="120">
+                         min-width="100">
           <template #default="{ row }">
-            <span v-if="row.bom === true">{{ row.demandedQuantity ?? "-" }}</span>
+            <span v-if="row.bom === true">{{ stripTrailingZeros(row.demandedQuantity) ?? "-" }}</span>
             <el-input-number v-else
                              v-model="row.demandedQuantity"
                              :min="0"
-                             :precision="3"
                              :step="1"
                              controls-position="right"
+                             :formatter="value => stripTrailingZeros(value)"
+                             :parser="value => parseFloat(value) || 0"
                              style="width: 100%;"
                              @change="val => handleRequiredQtyChange(row, val)" />
           </template>
         </el-table-column>
         <el-table-column label="璁¢噺鍗曚綅"
-                         width="100">
+                         width="80">
           <template #default="{ row }">
             {{ row.unit || "-" }}
           </template>
@@ -90,9 +91,10 @@
           <template #default="{ row }">
             <el-input-number v-model="row.pickQty"
                              :min="0"
-                             :precision="3"
                              :step="1"
                              controls-position="right"
+                             :formatter="value => stripTrailingZeros(value)"
+                             :parser="value => parseFloat(value) || 0"
                              style="width: 100%;" />
           </template>
         </el-table-column>
@@ -270,6 +272,14 @@
     }
   );
 
+  const stripTrailingZeros = val => {
+    const str = String(val);
+    if (str.includes(".")) {
+      return parseFloat(str).toString();
+    }
+    return str;
+  };
+
   const handleClose = () => {
     materialTableData.value = [];
     currentMaterialSelectRowIndex.value = -1;
diff --git a/src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue b/src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue
index 4f052ed..7ff1eb1 100644
--- a/src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue
+++ b/src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue
@@ -20,23 +20,33 @@
                        prop="unit"
                        width="100" />
       <el-table-column label="闇�姹傛暟閲�"
-                       prop="demandedQuantity"
-                       width="100" />
+                       min-width="100">
+        <template #default="{ row }">
+          {{ stripTrailingZeros(row.demandedQuantity) }}
+        </template>
+      </el-table-column>
       <el-table-column label="棰嗙敤鏁伴噺"
-                       prop="pickQuantity"
-                       width="100" />
+                       min-width="100">
+        <template #default="{ row }">
+          {{ stripTrailingZeros(row.pickQuantity) }}
+        </template>
+      </el-table-column>
       <el-table-column label="宸茶ˉ鏁伴噺"
-                       prop="feedingQty"
-                       width="100" />
+                       min-width="100">
+        <template #default="{ row }">
+          {{ stripTrailingZeros(row.feedingQty) }}
+        </template>
+      </el-table-column>
       <el-table-column label="琛ユ枡鏁伴噺"
                        min-width="150">
         <template #default="{ row }">
           <el-input-number v-model="row.newSupplementQty"
                            :min="0"
-                           :precision="3"
                            :step="1"
                            controls-position="right"
                            placeholder="杈撳叆琛ユ枡鏁伴噺"
+                           :formatter="value => stripTrailingZeros(value)"
+                           :parser="value => parseFloat(value) || 0"
                            style="width: 100%;" />
         </template>
       </el-table-column>
@@ -69,6 +79,14 @@
     updateMaterialPickingLedger,
   } from "@/api/productionManagement/productionOrder.js";
 
+  const stripTrailingZeros = val => {
+    const str = String(val ?? "");
+    if (str.includes(".")) {
+      return parseFloat(str).toString();
+    }
+    return str;
+  };
+
   const props = defineProps({
     modelValue: { type: Boolean, default: false },
     orderRow: { type: Object, default: null },

--
Gitblit v1.9.3