Skip to content

Commit e587d68

Browse files
LesanOuOgitee-org
authored andcommitted
fix: 解决存在循环节点时的bug
1 parent 00a19cf commit e587d68

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,13 +245,22 @@ function findAllPredecessorsExcludingStart(elementId, modeler) {
245245
const elementRegistry = modeler.get('elementRegistry')
246246
const allConnections = elementRegistry.filter((element) => element.type === 'bpmn:SequenceFlow')
247247
const predecessors = new Set() // 使用 Set 来避免重复节点
248+
const visited = new Set() // 用于记录已访问的节点
248249
249250
// 检查是否是开始事件节点
250251
function isStartEvent(element) {
251252
return element.type === 'bpmn:StartEvent'
252253
}
253254
254255
function findPredecessorsRecursively(element) {
256+
// 如果该节点已经访问过,直接返回,避免循环
257+
if (visited.has(element)) {
258+
return
259+
}
260+
261+
// 标记当前节点为已访问
262+
visited.add(element)
263+
255264
// 获取与当前节点相连的所有连接
256265
const incomingConnections = allConnections.filter((connection) => connection.target === element)
257266

0 commit comments

Comments
 (0)