Skip to content

Commit

Permalink
minor: 修改节点渲染顺序 (#6724)
Browse files Browse the repository at this point in the history
  • Loading branch information
zyxazhang authored May 6, 2023
1 parent 38286f8 commit f7bcfd6
Showing 1 changed file with 62 additions and 3 deletions.
65 changes: 62 additions & 3 deletions frontend/desktop/src/pages/task/TaskExecute/TaskOperation.vue
Original file line number Diff line number Diff line change
Expand Up @@ -1333,6 +1333,10 @@
}
if (gateway) { // 网关节点
const name = NODE_DICT[gateway.type.toLowerCase()]
const allNodeList = Object.assign({}, activities, gateways)
let renderNodelist = [] // 渲染的节点列表
let renderNodeOutgoing = [] // 渲染的节点outgoing
gateway.title = name
gateway.name = name
gateway.expanded = false
Expand Down Expand Up @@ -1405,6 +1409,33 @@
outgoing.forEach(line => {
this.retrieveLines(data, line, ordered)
})
if (ordered[ordered.findLastIndex(order => order.type !== 'ServiceActivity')]) {
renderNodelist = []
renderNodeOutgoing = []
this.nodeIds.forEach(item => {
if (allNodeList[item]) {
renderNodelist.push(allNodeList[item])
}
})
renderNodelist.forEach(item => {
if (Array.isArray(item.outgoing)) {
item.outgoing.forEach(ite => {
renderNodeOutgoing.push(ite)
})
} else {
renderNodeOutgoing.push(item.outgoing)
}
})
const convers = Object.keys(gateways).filter(conver => gateways[conver].type === 'ConvergeGateway')
convers.forEach(item => {
if (gateways[item].incoming.every(item => renderNodeOutgoing.includes(item))) {
const curOutgoing = Array.isArray(gateways[item].outgoing) ? gateways[item].outgoing : [gateways[item].outgoing]
curOutgoing.forEach(line => {
this.retrieveLines(data, line, ordered)
})
}
})
}
} else if (gateway.type === 'ParallelGateway') {
// 添加并行默认条件
const defaultCondition = gateway.outgoing.map((item, index) => {
Expand Down Expand Up @@ -1432,6 +1463,33 @@
outgoing.forEach(line => {
this.retrieveLines(data, line, ordered)
})
if (ordered[ordered.findLastIndex(order => order.type === 'ParallelGateway')]) {
renderNodelist = []
renderNodeOutgoing = []
this.nodeIds.forEach(item => {
if (allNodeList[item]) {
renderNodelist.push(allNodeList[item])
}
})
renderNodelist.forEach(item => {
if (Array.isArray(item.outgoing)) {
item.outgoing.forEach(ite => {
renderNodeOutgoing.push(ite)
})
} else {
renderNodeOutgoing.push(item.outgoing)
}
})
const convers = Object.keys(gateways).filter(conver => gateways[conver].type === 'ConvergeGateway')
convers.forEach(item => {
if (gateways[item].incoming.every(item => renderNodeOutgoing.includes(item))) {
const curOutgoing = Array.isArray(gateways[item].outgoing) ? gateways[item].outgoing : [gateways[item].outgoing]
curOutgoing.forEach(line => {
this.retrieveLines(data, line, ordered)
})
}
})
}
}
if (gateway.type === 'ConvergeGateway') {
// 判断ordered中 汇聚网关的incoming是否存在
Expand All @@ -1456,16 +1514,17 @@
// 汇聚网关push在最近的条件网关下
const prev = ordered[ordered.findLastIndex(order => order.type !== 'ServiceActivity' && order.type !== 'ConvergeGateway')]
// 独立子流程的children为 subChildren
this.nodeIds.push(gateway.id)
if (prev && prev.children && !prev.children.find(item => item.id === gateway.id) && !this.converNodeList.includes(gateway.id)) {
this.converNodeList.push(gateway.id)
gateway.gatewayType = 'converge'
// prev.children.push(gateway)
outgoing.forEach(line => {
this.retrieveLines(data, line, ordered)
})
} else {
this.unrenderedCoverNode.push(gateway.id)
}
outgoing.forEach(line => {
this.retrieveLines(data, line, ordered)
})
}
}
} else if (activity) { // 任务节点
Expand Down

0 comments on commit f7bcfd6

Please sign in to comment.