From 1daa22ed05c77e4a8c3069124a1849d5d6504f69 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 30 七月 2026 17:57:00 +0800
Subject: [PATCH] 修改报工审批数据显示

---
 src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js |   41 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 1 deletions(-)

diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
index 9b29ff4..78cd8b4 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/approveListConstants.js
@@ -560,7 +560,46 @@
 
 /** 鍒楄〃琛� 鈫� 缂栬緫琛ㄥ崟锛堜粎鐢ㄨ鏁版嵁鍥炴樉锛� */
 export function buildEditFormFromInstanceRow(row) {
-  const { fields, formPayload, templateSnapshot } = resolveInstanceFormFields(row);
+  let { fields, formPayload, templateSnapshot } = resolveInstanceFormFields(row);
+  if (Number(row?.businessType) === 19) {
+    const editableKeys = new Set(["finishedNum", "scrapQty", "reportType"]);
+    const lockedKeys = new Set(["productNo", "userName", "teamInfo", "workOrderNo", "schedulingNum", "pendingNum", "workHour", "auditStatus", "auditRemark"]);
+    const reportTypeOptions = [
+      { label: "鍚堟牸", value: 0 },
+      { label: "杞诲井杩斿伐", value: 1 },
+      { label: "涓ラ噸杩斿伐", value: 2 },
+      { label: "鎶ュ簾", value: 3 },
+    ];
+    fields = (fields || [])
+      .filter(field => String(field?.key || "") !== "schedulingNum")
+      .map(field => ({
+        ...field,
+        label: String(field?.key || "") === "pendingNum" ? `${field.label}锛堝彧璇伙級` : field.label,
+        options: String(field?.key || "") === "reportType" ? (field.options?.length ? field.options : reportTypeOptions) : field.options,
+        disabled: lockedKeys.has(String(field?.key || "")) ? true : !editableKeys.has(String(field?.key || "")),
+      }));
+    templateSnapshot = {
+      ...templateSnapshot,
+      fields,
+    };
+    formPayload = {
+      ...formPayload,
+    };
+    if (formPayload.pendingNum == null) {
+      const schedulingNum = Number(formPayload.schedulingNum ?? row?.schedulingNum ?? row?.planQuantity ?? 0);
+      const finishedNum = Number(formPayload.finishedNum ?? formPayload.quantity ?? row?.finishedNum ?? row?.quantity ?? 0);
+      formPayload.pendingNum = Math.max(schedulingNum - finishedNum, 0);
+    }
+    if (formPayload.finishedNum == null && formPayload.quantity != null) {
+      formPayload.finishedNum = formPayload.quantity;
+    }
+    if (formPayload.scrapQty == null && row?.scrapQty != null) {
+      formPayload.scrapQty = row.scrapQty;
+    }
+    if (formPayload.reportType != null && !Number.isNaN(Number(formPayload.reportType))) {
+      formPayload.reportType = Number(formPayload.reportType);
+    }
+  }
   const normalized = normalizeFlowNodes(row?.flowNodes?.length ? row.flowNodes : mapTasksToFlowNodes(row?.tasks));
   const flowNodes = normalized.length ? JSON.parse(JSON.stringify(normalized)) : [createEmptyNode(1)];
 

--
Gitblit v1.9.3