darge组件使用并用来判断连接管道条数
1、引用
import dagre from 'dagre'
if (streamInAssembly && actionInAssembly && allElementsConnected) {
onlyOnePipelineCreated = this.onlyOnePipelineCreated(rawPipelineModel)
}
return streamInAssembly && actionInAssembly && allElementsConnected && onlyOnePipelineCreated
},
onlyOnePipelineCreated(rawPipelineModel) {
const g = this.makeGraph(rawPipelineModel)
const tarjan = dagre.graphlib.alg.tarjan(g)
console.log(tarjan, 5555555555555555555555555555555555555)
return tarjan.length === 1
},
makeGraph(rawPipelineModel) {
var g = new dagre.graphlib.Graph()
g.setGraph({ rankdir: 'LR' })
g.setDefaultEdgeLabel(function() {
return {}
})
rawPipelineModel.forEach((item) => {
if (item.shape === 'flow-chart-rect' || item.shape === 'flow-chart-rect1' || item.shape === 'flow-chart-rect2') {
const currentPipelineElement = item.attrs.pipelineElement.payload
g.setNode(item.id, {
label: item.id,
type: currentPipelineElement.type,
name: currentPipelineElement.name
})
} if (item.shape === 'edge') {
g.setEdge(item.source.cell, item.target.cell)
g.setEdge(item.target.cell, item.source.cell)
}
})
return g
},