From 278cfc7b1d36ce98ad62749ec816d60aa09173ea Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期三, 29 四月 2026 09:27:15 +0800
Subject: [PATCH] fix(workOrder): 修复生产数量验证和表单初始化问题

---
 src/views/productionManagement/workOrder/index.vue |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 20c3cf8..6a9eed8 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -337,10 +337,8 @@
             </el-button>
           </el-col>
         </el-row>
-
         <el-table :data="scheduleRows" border style="width: 100%" v-loading="scheduleLoading">
-          <el-table-column type="index" label="搴忓彿" width="70" align="center" />
-
+          <el-table-column type="index" label="搴忓彿" width="70" align="center" :index="indexMethod" />
           <el-table-column label="鏈涓婃満鏈哄彴" min-width="220">
             <template #default="{ row }">
               <el-select
@@ -673,8 +671,7 @@
       return;
     }
 
-    const rows = buildScheduleRowsFromRecords(records);
-
+    const rows = records.map(record => mapMachineRecordToScheduleRow(record));
     scheduleRows.value = rows.length > 0 ? rows : [createScheduleRow({})];
   } catch (error) {
     console.error("鑾峰彇鎺掍骇璁板綍澶辫触", error);
@@ -815,6 +812,10 @@
   }
 
   return payload;
+};
+
+const indexMethod = (index) => {
+  return (schedulePage.current - 1) * schedulePage.size + index + 1;
 };
 
 const mapMachineRecordToScheduleRow = (record) => {
@@ -1009,7 +1010,7 @@
           showReportDialog(row);
         },
         // 鐢ㄦ埛褰撳墠id
-        disabled: row => row.completeQuantity === row.planQuantity ||
+        disabled: row => row.completeQuantity !==0 ||
             !isCurrentUserInUserIds(row)
       },
       {
@@ -1021,7 +1022,7 @@
           }
           openScheduleDialog(row);
         },
-        disabled: row => !row.canSchedule
+        disabled: row => !row.canSchedule || row.completeQuantity >= row.planQuantity
       }
       // {
       //   name:"瀹℃牳",
@@ -1181,6 +1182,12 @@
   }
   const num = Number(value);
   if (isNaN(num)) {
+    return;
+  }
+  // 濡傛灉瓒呰繃寰呯敓浜ф暟閲�
+  if (num > reportForm.planQuantity) {
+    proxy.$modal.msgWarning("鏈鐢熶骇鏁伴噺涓嶈兘澶т簬寰呯敓浜ф暟閲�");
+    reportForm.quantity = reportForm.planQuantity;
     return;
   }
   // 濡傛灉灏忎簬1锛屾竻闄�
@@ -1377,13 +1384,15 @@
 };
 
 const showReportDialog = row => {
+
   currentReportRowData.value = row;
   reportForm.planQuantity = row.planQuantity - row.completeQuantity;
-  reportForm.quantity = row.quantity !== undefined && row.quantity !== null ? row.quantity : null;
+  reportForm.quantity = row.planQuantity !== undefined && row.planQuantity !== null ? row.planQuantity : null;
   reportForm.productProcessRouteItemId = row.productProcessRouteItemId;
   reportForm.workOrderId = row.id;
   reportForm.reportWork = row.reportWork;
   reportForm.productMainId = row.productMainId;
+  reportForm.planQuantity = row.planQuantity;
   reportForm.startTime = "";
   reportForm.endTime = "";
   reportForm.replenishQty = 0;

--
Gitblit v1.9.3