diff --git a/src/App.tsx b/src/App.tsx index 217c7b7..53971b0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -713,24 +713,30 @@ export default function App() { const tempStepsMap = new Map(); // 首先处理每个步骤的基本信息 - for (const config of filteredConfigs) { - const stepName = config.processName; - const order = config.order; - - // 如果该步骤不存在,创建新步骤 - if (!tempStepsMap.has(stepName)) { - tempStepsMap.set(stepName, { - name: stepName, - fieldId: stepName, - finished: false, - order, - parallelSteps: undefined, - requireAllSubSteps: true, // 默认需要所有子步骤完成 - isMainStep: order === Math.floor(order) // 标记是否为主步骤 - }); - } - - const stepItem = tempStepsMap.get(stepName)!; + for (const config of filteredConfigs) { + const stepName = config.processName; + const order = config.order; + + // 如果该步骤不存在,创建新步骤 + if (!tempStepsMap.has(stepName)) { + tempStepsMap.set(stepName, { + name: stepName, + fieldId: stepName, + finished: false, + order, + parallelSteps: undefined, + requireAllSubSteps: true, // 默认需要所有子步骤完成 + isMainStep: order === Math.floor(order) // 标记是否为主步骤 + }); + } else { + // 如果步骤已存在,使用最小的order值 + const existingStep = tempStepsMap.get(stepName)!; + existingStep.order = Math.min(existingStep.order || 0, order); + // 重新计算是否为主步骤 + existingStep.isMainStep = existingStep.order === Math.floor(existingStep.order); + } + + const stepItem = tempStepsMap.get(stepName)!; // 根据节点类型设置相应的时间字段 if (config.timeFieldId) {