fix: 节点详情预览图中状态显示错误问题修复 --story=131742471#8210
fix: 节点详情预览图中状态显示错误问题修复 --story=131742471#8210luofann merged 2 commits intoTencentBlueKing:masterfrom
Conversation
# Reviewed, transaction id: 74483
There was a problem hiding this comment.
代码审查总结
此 PR 修复了节点详情预览图中子流程节点状态显示错误的问题,新增了 getAllChildrenStatus 方法来递归收集所有子节点状态。
当 states[id] 不存在时,递归处理子节点时将传入的 states 参数丢弃,改用 this.nodeDisplayStatus.children 作为状态来源。若调用已处于深层子流程递归中,状态来源将回退至顶层,可能导致跨子流程层级的状态错误混用。建议考虑从当前传入的 states 派生子节点状态,而非重新引用全局数据。
✨ 改进建议 - getAllChildrenStatus 中存在冗余检查(约第 1568 行)
childrenKeys.length === 0 的提前返回可以省略,空数组上的 forEach 本身是无操作的,移除后代码更简洁。
整体逻辑清晰,递归收集子节点状态的思路合理;主要需关注 states 传递链路的状态来源一致性。
# Reviewed, transaction id: 74489
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #8210 +/- ##
==========================================
- Coverage 58.30% 58.16% -0.14%
==========================================
Files 677 678 +1
Lines 37046 37203 +157
==========================================
+ Hits 21599 21639 +40
- Misses 15447 15564 +117 see 9 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
代码审查总结
此 PR 为子流程节点状态显示问题的修复,新增 getAllChildrenStatus 递归收集子节点状态,思路合理。
已有审查问题状态
上一轮审查中提到的两个问题(状态来源固定为顶层、冗余长度检查)在当前 diff 中尚未修改,问题依然存在。
nodeAddStatus 调用时始终传入 this.getAllChildrenStatus(this.nodeDisplayStatus.children),即固定引用顶层状态。当节点处于多层嵌套子流程时(如 A->B->C),处理 B 的子节点仍引用 A 的顶层数据,可能导致跨层级状态混用或找不到正确状态。建议传入当前节点自身的 children status 而非始终用顶层数据。
✨ 改进建议(第 1576 行)
getAllChildrenStatus 中 Object.keys(nodeStatus.children).length > 0 的判断可以省略——空对象上的 forEach 本身是无操作的,移除后逻辑不变但代码更简洁。
整体改动范围小,新增方法结构清晰;主要需关注多层嵌套时 states 传递链路的状态来源一致性。
Reviewed, transaction id: 74483