| | |
| | | <template> |
| | | <div> |
| | | <el-row :gutter="[8,8]"> |
| | | <el-col :span="4"> |
| | | <el-col :span="3"> |
| | | <div :style="'height:' +left_p+'px'"> |
| | | <div style="height: 100%"> |
| | | <div id="stencilImg"></div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <el-col :span="21"> |
| | | <div class="fa-card-a"> |
| | | <el-form :inline="true"> |
| | | <el-form-item> |
| | |
| | | modelType: '', |
| | | timer: null, |
| | | imagesList: [ |
| | | {imgPath: 'start', imgName: 'start', nodeType: 'start', imgWidth: 60, imgHeight: 60, imgId: '1', data: {}}, |
| | | {imgPath: 'end', imgName: 'end', nodeType: 'end', imgWidth: 60, imgHeight: 60, imgId: '2', data: {}}, |
| | | { |
| | | imgPath: 'connect', |
| | | imgName: 'connect', |
| | | nodeType: 'connect', |
| | | imgWidth: 30, |
| | | imgHeight: 30, |
| | | imgId: '3', |
| | | data: {} |
| | | }, |
| | | { |
| | | imgPath: 'connect', |
| | | imgName: 'bridge', |
| | | nodeType: 'bridge', |
| | | imgWidth: 50, |
| | | imgHeight: 50, |
| | | imgId: '12', |
| | | data: {} |
| | | }, |
| | | { |
| | | imgPath: 'switch', |
| | | imgName: 'switch', |
| | | nodeType: 'switch', |
| | | imgWidth: 60, |
| | | imgHeight: 60, |
| | | imgId: '5', |
| | | data: {} |
| | | }, |
| | | // {imgPath: 'start', imgName: 'start', nodeType: 'start', imgWidth: 60, imgHeight: 60, imgId: '1', data: {}}, |
| | | // {imgPath: 'end', imgName: 'end', nodeType: 'end', imgWidth: 60, imgHeight: 60, imgId: '2', data: {}}, |
| | | // { |
| | | // imgPath: 'connect', |
| | | // imgName: 'connect', |
| | | // nodeType: 'connect', |
| | | // imgWidth: 30, |
| | | // imgHeight: 30, |
| | | // imgId: '3', |
| | | // data: {} |
| | | // }, |
| | | // { |
| | | // imgPath: 'connect', |
| | | // imgName: 'bridge', |
| | | // nodeType: 'bridge', |
| | | // imgWidth: 50, |
| | | // imgHeight: 50, |
| | | // imgId: '12', |
| | | // data: {} |
| | | // }, |
| | | { |
| | | imgPath: 'parallel', |
| | | imgName: 'parallel', |
| | |
| | | }, |
| | | {imgPath: 'vote', imgName: 'vote', nodeType: 'vote', imgWidth: 60, imgHeight: 60, imgId: '6', data: {}}, |
| | | { |
| | | imgPath: 'dashedBox', |
| | | imgName: 'dashedBox', |
| | | nodeType: 'dashedBox', |
| | | imgPath: 'switch', |
| | | imgName: 'switch', |
| | | nodeType: 'switch', |
| | | imgWidth: 60, |
| | | imgHeight: 60, |
| | | imgId: '10000', |
| | | imgId: '5', |
| | | data: {} |
| | | }, |
| | | { |
| | |
| | | imgWidth: 60, |
| | | imgHeight: 60, |
| | | imgId: '10', |
| | | data: {} |
| | | }, |
| | | { |
| | | imgPath: 'dashedBox', |
| | | imgName: 'dashedBox', |
| | | nodeType: 'dashedBox', |
| | | imgWidth: 60, |
| | | imgHeight: 60, |
| | | imgId: '10000', |
| | | data: {} |
| | | }, |
| | | ], |
| | |
| | | { |
| | | title: '运算符号', |
| | | name: 'group1', |
| | | graphHeight: 360, |
| | | graphHeight: 260, |
| | | }, |
| | | { |
| | | title: '设备节点', |
| | |
| | | const cells = this.graph.getSelectedCells() |
| | | console.log(cells,'cells') |
| | | if (cells.length === 1) { |
| | | this.$confirm('是否删除该节点?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | let node = cells[0] |
| | | if (!node.isNode()){ |
| | | this.$message({message: '请选中节点', type: 'warning'}) |
| | | return false; // 取消操作 |
| | | } |
| | | let nodeType = node.getData().nodeType |
| | | let deleteType = 0 |
| | | if (nodeType === 'node' || nodeType === 'dashedBox') { |
| | | deleteType = 1 |
| | | } else if ('parallel,switch,vote,bridge'.indexOf(nodeType) > -1) { |
| | | deleteType = 2 |
| | | } |
| | | let canDelete = false |
| | | if (nodeType==='start' || nodeType==='end'){ |
| | | this.$message({message: '无法删除起始和结束节点', type: 'warning'}) |
| | | return false; // 取消操作 |
| | | } |
| | | if(nodeType === 'node' || nodeType ==='dashedBox'){ |
| | | let isSeriesNode = this.isSeriesNode(node) |
| | | if (deleteType > 0) { |
| | | let startNode = null |
| | | if (deleteType === 1) { |
| | | startNode = node |
| | | } else if (deleteType === 2) { |
| | | startNode = this.graph.getCellById(node.getData().startNodeId) |
| | | } |
| | | let isSeriesNode = this.isSeriesNode(startNode, node) |
| | | if (isSeriesNode){ |
| | | //删掉,前后线连起来 |
| | | this.graph.addEdge({ |
| | | source: {cell: isSeriesNode.inNode, port: 'right1'}, |
| | | target: {cell: isSeriesNode.outNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | node.remove() |
| | | return |
| | | } |
| | | if (this.isMultipleBrach(node)){ |
| | | //直接删掉,不用管线 |
| | | return |
| | | let inLine = this.getInLinesOfNode(startNode) |
| | | let outLine = this.getOutLinesOfNode(node) |
| | | let inLineIsToLine = this.hasOtherLineToMyLine(inLine[0].id) |
| | | let inNode = isSeriesNode.inNode |
| | | let outNode = isSeriesNode.outNode |
| | | console.log(inLine, outLine, 'inLine,outLine') |
| | | console.log(inNode, outNode, 'inNode,outNode') |
| | | if (inLineIsToLine) { |
| | | inLine[0].target = {cell: outNode.id, port: 'left1'} |
| | | }else{ |
| | | //提示这个组合只有一条之路,在组合点删除 |
| | | return |
| | | outLine[0].source = {cell: inNode.id, port: 'right1'} |
| | | } |
| | | //提示是否要删除 |
| | | this.$confirm('是否删除该节点?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | if (deleteType === 1){ |
| | | node.remove() |
| | | } |
| | | if (nodeType==='connect'){ |
| | | try{ |
| | | let endNodeId = node.getData().endNodeId |
| | | // 提示不能直接删除左连接点 |
| | | return |
| | | }catch(e){} |
| | | else{ |
| | | this.deleteCombination(node) |
| | | } |
| | | //做个迭代删除整个组合 |
| | | //this.deleteCombination(); |
| | | |
| | | // this.graph.removeCells(cells) |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '删除成功!' |
| | |
| | | message: '已取消删除' |
| | | }) |
| | | }) |
| | | } |
| | | if (this.isMultipleBrach(node)) { |
| | | //提示是否要删除 |
| | | if (deleteType === 1) |
| | | node.remove() |
| | | else |
| | | this.deleteCombination(node) |
| | | return |
| | | } |
| | | } |
| | | //提示不能删除 |
| | | }else{ |
| | | |
| | | //提示不能删除 |
| | | this.$message({message: '只能选中一个节点', type: 'warning'}) |
| | | return false; // 取消操作 |
| | | } |
| | | }) |
| | | // zoom |
| | |
| | | let intersectNode = this.findIntersectsNode(node) |
| | | if (intersectNode) { // 当有节点相交 ==>并行 |
| | | this.addBranch(intersectNode, nodeObj) |
| | | return |
| | | } else { |
| | | let isSelfCreated = null |
| | | try { |
| | |
| | | let intersectEdge = this.findIntersectsEdge(this.graph, node) |
| | | if (intersectEdge) { // 当有边相交 ==>串联 |
| | | this.addNodeAndInsertEdge(intersectEdge, nodeObj) |
| | | return |
| | | } else { |
| | | //提示 |
| | | } |
| | | } |
| | | } |
| | | |
| | | node.remove() |
| | | |
| | | /*//如果节点与节点相交 |
| | | console.log(node.position().x, node.position().x, 'node.position().x') |
| | |
| | | }*/ |
| | | }); |
| | | // 监听节点位置改变事件 |
| | | this.graph.on('node:change:position', ({node}) => { |
| | | this.hasMoveNode = true |
| | | this.hasMoveSingleNode = node |
| | | }); |
| | | // this.graph.on('node:change:position', ({node}) => { |
| | | // this.hasMoveNode = true |
| | | // this.hasMoveSingleNode = node |
| | | // }); |
| | | this.graph.on('cell:click', ({cell}) => { |
| | | // this.type.value = cell.isNode() ? "node" : "edge" |
| | | this.type = cell.isNode() ? 'node' : 'edge' |
| | |
| | | for (const otherNode of nodes) { |
| | | if (otherNode === node) continue; |
| | | let nodeType = otherNode.getData().nodeType |
| | | if (nodeType === "parallel" || nodeType === "switch" || nodeType === "vote" || nodeType === "end" || nodeType === "dashedBox") { |
| | | if (nodeType === "parallel" || nodeType === "switch" || nodeType === "vote" || nodeType === "dashedBox") { |
| | | const bbox2 = otherNode.getBBox(); |
| | | if (bbox1.x < bbox2.x + bbox2.width && |
| | | bbox1.x + bbox1.width > bbox2.x && |
| | |
| | | } else { |
| | | offHeight = 70 |
| | | } |
| | | if (graphNodeType === 'dashedBox') { |
| | | if (graphNodeType === 'dashedBox') { //虚框 |
| | | const edges = this.graph.getConnectedEdges(graphNode); // 获取画布上原有的节点所有进来的线 |
| | | let inEdges = edges.filter(edge => edge.target.cell === graphNode.id) |
| | | let startNode = null |
| | |
| | | endNode = this.graph.getCellById(endNodeId) |
| | | } |
| | | if (startNode && endNode) { |
| | | graphNode.remove() |
| | | let centerY = graphNode.position().y |
| | | this.addNodeAndConnect(startNode, endNode, dragNode, centerY) |
| | | let result = this.addNodeAndConnect(startNode, endNode, dragNode, dragNode.position().x, centerY) |
| | | inEdges[0].target = {cell: result.newStartNode.id, port: 'left1'} |
| | | outEdges[0].source = {cell: result.newEndNode.id, port: 'right1'} |
| | | graphNode.remove() |
| | | } |
| | | } else { |
| | | } else { //并行结构 |
| | | const graphNodeStartNodeId = graphNode.getData().startNodeId // 获取画布上原有节点的开始ID |
| | | const graphNodeStartNode = this.graph.getCellById(graphNodeStartNodeId) // 通过开始ID得到初始节点对象 |
| | | let graphNodeY = graphNode.position().y - graphNode.getBBox().height / 2 // 获取画布原有节点的y坐标 |
| | |
| | | this.getYRange(inEdges, graphNodeStartNode, pointXY) |
| | | console.log(pointXY, 'new') |
| | | |
| | | let minX = graphNodeStartNode.position().x + graphNodeStartNode.getBBox().width |
| | | let maxX = graphNode.position().x |
| | | let centerX = minX + (maxX - minX) / 2 |
| | | let centerY = graphNodeY - pointXY.minY > pointXY.maxY - graphNodeY ? pointXY.maxY + 30 : pointXY.minY - offHeight - 30 |
| | | |
| | | this.addNodeAndConnect(graphNodeStartNode, graphNode, dragNode, centerY) |
| | | let result = this.addNodeAndConnect(graphNodeStartNode, graphNode, dragNode, minX, centerY) |
| | | this.graph.addEdge({ |
| | | source: {cell: graphNodeStartNode, port: 'right1'}, |
| | | target: {cell: result.newStartNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | this.graph.addEdge({ |
| | | source: {cell: result.newEndNode, port: 'right1'}, |
| | | target: {cell: graphNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | } |
| | | }, |
| | | addNodeAndConnect(startNode, endNode, dragNode, centerY) { // graphCell是画布上原有的节点。dragNode是当前拖拽的节点 |
| | | let minX = startNode.position().x + startNode.getBBox().width |
| | | let maxX = endNode.position().x |
| | | |
| | | let centerX = minX + (maxX - minX) / 2 |
| | | addNodeAndConnect(startNode, endNode, dragNode, leftX, centerY) { // graphCell是画布上原有的节点。dragNode是当前拖拽的节点 |
| | | let dragNodeType = dragNode.getData().nodeType |
| | | if (dragNodeType === 'node' || dragNodeType === 'dashedBox') { |
| | | dragNode.position(minX + 50, centerY); |
| | | this.graph.addEdge({ |
| | | source: {cell: startNode, port: 'right1'}, |
| | | target: {cell: dragNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | this.graph.addEdge({ |
| | | source: {cell: dragNode, port: 'right1'}, |
| | | target: {cell: endNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | dragNode.position(leftX + 50, centerY); |
| | | return {newStartNode: dragNode, newEndNode: dragNode} |
| | | } else if (dragNodeType === 'bridgeConnection') { |
| | | this.createBridgeConnection(minX, centerY, startNode, endNode, dragNode) |
| | | return this.createBridgeConnection(leftX, centerY, startNode, endNode, dragNode) |
| | | } else { |
| | | this.createParallelBrach(minX, centerY, startNode, endNode, dragNode) |
| | | return this.createParallelBrach(leftX, centerY, startNode, endNode, dragNode) |
| | | } |
| | | }, |
| | | // 相交的边 |
| | |
| | | let endNodeId = graphEdge.target.cell |
| | | let endNode = this.graph.getCellById(endNodeId) |
| | | if (startNode && endNode) { |
| | | graphEdge.remove() |
| | | let centerY = startNode.position().y |
| | | this.addNodeAndConnect(startNode, endNode, dragNode, centerY) |
| | | let centerY = dragNode.position().y |
| | | let isRight = true; |
| | | let startPort = 'right1' |
| | | let endPort = 'left1' |
| | | if (this.isTopBottom(graphEdge)) { |
| | | startPort = 'bottom1' |
| | | endPort = 'top1' |
| | | } |
| | | if (this.hasOtherLineToMyLine(graphEdge.id)) { |
| | | let leftX = startNode.position().x + startNode.getBBox().width |
| | | let rightX = endNode.position().x |
| | | let centerX = dragNode.position().x + dragNode.getBBox().width / 2 |
| | | if (centerX - leftX < rightX - centerX) { |
| | | isRight = false |
| | | } |
| | | } |
| | | let result = this.addNodeAndConnect(startNode, endNode, dragNode, dragNode.position().x, centerY) |
| | | if (isRight) { |
| | | graphEdge.target = {cell: result.newStartNode.id, port: endPort} |
| | | this.graph.addEdge({ |
| | | source: {cell: result.newEndNode, port: startPort}, |
| | | target: {cell: endNode, port: endPort}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | |
| | | } else { |
| | | this.graph.addEdge({ |
| | | source: {cell: startNode, port: startPort}, |
| | | target: {cell: result.newStartNode, port: endPort}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | graphEdge.source = {cell: result.newEndNode.id, port: startPort} |
| | | } |
| | | // graphEdge.remove() |
| | | } |
| | | }, |
| | | initCells() { |
| | |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | |
| | | this.graph.addEdge({ |
| | | return {newStartNode: connectNode, newEndNode: dragNode} |
| | | /* this.graph.addEdge({ |
| | | source: {cell: startNode, port: 'right1'}, |
| | | target: {cell: connectNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | |
| | | target: {cell: endNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | })*/ |
| | | }, |
| | | createBridgeConnection(x, y, startNode, endNode, dragNode) { |
| | | const leftTopDashedBox = this.createDashedBox(x + 120, y) |
| | |
| | | |
| | | rightConnectNode.setData({startNodeId: leftConnectNode.id}) |
| | | leftConnectNode.setData({endNodeId: rightConnectNode.id}) |
| | | this.graph.addEdge({ |
| | | /* this.graph.addEdge({ |
| | | source: {cell: startNode, port: 'right1'}, |
| | | target: {cell: leftConnectNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | |
| | | target: {cell: endNode, port: 'left1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'} |
| | | }) |
| | | })*/ |
| | | this.graph.addEdge({ |
| | | source: {cell: leftConnectNode, port: 'right1'}, |
| | | target: {cell: leftTopDashedBox, port: 'left1'}, |
| | |
| | | |
| | | this.graph.addEdge({ |
| | | source: {cell: edgeTop}, |
| | | target: {cell: alignCenterDashedBox}, |
| | | target: {cell: alignCenterDashedBox, port: 'top1'}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'}, |
| | | }) |
| | | this.graph.addEdge({ |
| | | source: {cell: alignCenterDashedBox}, |
| | | source: {cell: alignCenterDashedBox, port: 'bottom1'}, |
| | | target: {cell: edgeBottom}, |
| | | router: {name: 'manhattan'}, |
| | | connector: {name: 'rounded'}, |
| | | }) |
| | | dragNode.remove() |
| | | return {newStartNode: leftConnectNode, newEndNode: rightConnectNode} |
| | | }, |
| | | createDashedBox(x, y) { |
| | | const dashId = getUUID().toString() |
| | |
| | | this.getYRange(inEdgesPrev, startNode, pointXY) |
| | | } |
| | | }, |
| | | isSeriesNode(node){ |
| | | isSeriesNode(startNode, endNode) { |
| | | let result = false |
| | | let inNode = null |
| | | let outNode = null |
| | | let inEdges = this.getInLinesOfNode(node) |
| | | let inEdges = this.getInLinesOfNode(startNode) |
| | | console.log(inEdges, 'inEdges') |
| | | if (inEdges.length === 1){ |
| | | let inEdgeId = inEdges[0].id |
| | | let isLineToLine = this.isLineToLine(inEdgeId) |
| | | let isMyLineToOtherLine = this.isMyLineToOtherLine(inEdges[0]) |
| | | let hasOtherLineToMyLine = this.hasOtherLineToMyLine(inEdges[0].id) |
| | | let inNodeId = inEdges[0].source.cell |
| | | inNode = this.graph.getCellById(inNodeId) |
| | | if (!isMyLineToOtherLine && !hasOtherLineToMyLine) { |
| | | let inNodeType = inNode.getData().nodeType |
| | | if (!isLineToLine && 'node,parallel,switch,vote'.indexOf(inNodeType)>-1){ |
| | | console.log(inNodeType, 'inNodeType') |
| | | if ('node,dashedBox,parallel,switch,vote,bridge'.indexOf(inNodeType) > -1) { |
| | | result = true |
| | | } |
| | | } |
| | | let outEdges = this.getOutLinesOfNode(node) |
| | | } |
| | | let outEdges = this.getOutLinesOfNode(endNode) |
| | | console.log(outEdges, 'outEdges') |
| | | if (outEdges.length === 1){ |
| | | let outEdgeId = inEdges[0].id |
| | | let isLineToLine = this.isLineToLine(outEdgeId) |
| | | let outNodeId = inEdges[0].target.cell |
| | | let isMyLineToOtherLine = this.isMyLineToOtherLine(outEdges[0]) |
| | | let hasOtherLineToMyLine = this.hasOtherLineToMyLine(outEdges[0].id) |
| | | let outNodeId = outEdges[0].target.cell |
| | | outNode = this.graph.getCellById(outNodeId) |
| | | if (!isMyLineToOtherLine && !hasOtherLineToMyLine) { |
| | | let outNodeType = outNode.getData().nodeType |
| | | if (!isLineToLine && 'node,connect'.indexOf(outNodeType)>-1){ |
| | | if ('node,connect,dashedBox'.indexOf(outNodeType) > -1) { |
| | | result = true |
| | | } |
| | | } |
| | | } |
| | | console.log(result, 'result') |
| | | if (result && inNode && outNode){ |
| | | console.log(inNode, outNode, 'inNode, outNode') |
| | | return {inNode,outNode} |
| | | }else { |
| | | return false |
| | | } |
| | | }, |
| | | isLineToLine(edgeId){ |
| | | hasOtherLineToMyLine(edgeId) { |
| | | for(let edge of this.graph.getEdges()){ |
| | | if (edge.source.cell === edgeId || edge.target.cell === edgeId) |
| | | return true |
| | | } |
| | | return false |
| | | }, |
| | | isMultipleBrach(){}, |
| | | deleteCombination(){}, |
| | | isMyLineToOtherLine(myEdge) { |
| | | for (let edge of this.graph.getEdges()) { |
| | | if (myEdge.source.cell === edge.id || myEdge.target.cell === edge.id) |
| | | return true |
| | | } |
| | | return false |
| | | }, |
| | | isTopBottom(edge) { |
| | | if (edge.source.port === 'top1' || edge.source.port === 'bottom1' || edge.target.port === 'top1' || edge.target.port === 'bottom1') { |
| | | return true |
| | | } |
| | | }, |
| | | isMultipleBrach(node) { |
| | | let outEdges = this.getOutLinesOfNode(node) |
| | | let outNodeId = outEdges[0].target.cell |
| | | if (this.isTopBottom(outEdges[0])) |
| | | return false |
| | | let outNode = this.graph.getCellById(outNodeId) |
| | | if ('bridge,end'.indexOf(outNode.getData().nodeType) > -1) { |
| | | return false |
| | | } |
| | | let inEdges = this.getInLinesOfNode(outNode) |
| | | return inEdges.length > 1; |
| | | }, |
| | | deleteCombination(node) { |
| | | let startNode = this.graph.getCellById(node.getData().startNodeId) |
| | | let allCombinationNodes = [] |
| | | console.log(startNode, 'startNode') |
| | | this.getAllCombinationNodes(startNode.id, node, allCombinationNodes) |
| | | console.log(allCombinationNodes, 'allCombinationNodes') |
| | | this.graph.removeCells(allCombinationNodes) |
| | | }, |
| | | getAllCombinationNodes(startNodeId, node, allCombinationNodes) { |
| | | allCombinationNodes.push(node) |
| | | if (node.id == startNodeId || node.isEdge()) { |
| | | return |
| | | } |
| | | let inEdges = this.getInLinesOfNode(node) // 如果??? |
| | | for (let inEdge of inEdges) { |
| | | let lineNode = this.getNodeOfConectLine(inEdge) |
| | | if (lineNode) { |
| | | this.getAllCombinationNodes(startNodeId, lineNode, allCombinationNodes) |
| | | } |
| | | let inNodeId = inEdge.source.cell |
| | | let inNode = this.graph.getCellById(inNodeId) |
| | | if (inNode.isEdge()) |
| | | continue |
| | | this.getAllCombinationNodes(startNodeId, inNode, allCombinationNodes) |
| | | } |
| | | }, |
| | | getNodeOfConectLine(paramEdge) { |
| | | for (let edge of this.graph.getEdges()) { |
| | | let nodeId = null |
| | | /* if (edge.source.cell === paramEdge.id){ |
| | | nodeId = edge.target.cell |
| | | }*/ |
| | | if (edge.target.cell === paramEdge.id) { |
| | | nodeId = edge.source.cell |
| | | } |
| | | if (nodeId) { |
| | | let node = this.graph.getCellById(nodeId) |
| | | if (node.isNode()) |
| | | return node |
| | | } |
| | | } |
| | | return null |
| | | }, |
| | | getInLinesOfNode(node) { |
| | | const edges = this.graph.getConnectedEdges(node); // 获取画布上原有的节点所有进来的线 |
| | | console.log(edges, '获取画布上开始节点所有的线 edges') |
| | | return edges.filter(edge => edge.target.cell === node.id) |
| | | }, |
| | | getOutLinesOfNode(node) { |
| | | console.log(node, '获取画布上的结束节点 node') |
| | | const edges = this.graph.getConnectedEdges(node); // 获取画布上原有的节点所有进来的线 |
| | | console.log(edges, '获取画布上的结束节点所有的线 edges') |
| | | return edges.filter(edge => edge.source.cell === node.id) |
| | | }, |
| | | }, |