diff --git a/packages/core/src/model/edge/BaseEdgeModel.ts b/packages/core/src/model/edge/BaseEdgeModel.ts index 834cb05c6..67f8c0b58 100644 --- a/packages/core/src/model/edge/BaseEdgeModel.ts +++ b/packages/core/src/model/edge/BaseEdgeModel.ts @@ -392,6 +392,8 @@ export class BaseEdgeModel
properties, sourceNodeId: this.sourceNodeId, targetNodeId: this.targetNodeId, + sourceAnchorId: this.sourceAnchorId, + targetAnchorId: this.targetAnchorId, startPoint: assign({}, this.startPoint), endPoint: assign({}, this.endPoint), } diff --git a/packages/core/src/view/edge/BaseEdge.tsx b/packages/core/src/view/edge/BaseEdge.tsx index 890f08707..bfe3c7dd8 100644 --- a/packages/core/src/view/edge/BaseEdge.tsx +++ b/packages/core/src/view/edge/BaseEdge.tsx @@ -358,6 +358,7 @@ export abstract class BaseEdge
extends Component< clearTimeout(this.clickTimer) } const { model, graphModel } = this.props + const { editConfigModel } = graphModel const position = graphModel.getPointByClient({ x: ev.clientX, y: ev.clientY, @@ -367,7 +368,10 @@ export abstract class BaseEdge
extends Component< ElementState.SHOW_MENU, position.domOverlayPosition, ) - this.toFront() + // 静默模式下点击节点不变更节点层级 + if (!editConfigModel.isSilentMode) { + this.toFront() + } if (!model.isSelected) { graphModel.selectEdgeById(model.id) } @@ -456,7 +460,10 @@ export abstract class BaseEdge
extends Component< } const { editConfigModel } = graphModel graphModel.selectEdgeById(model.id, isMultipleSelect(e, editConfigModel)) - this.toFront() + // 静默模式下点击节点不变更节点层级 + if (!editConfigModel.isSilentMode) { + this.toFront() + } } handleFocus = () => { diff --git a/packages/core/src/view/node/BaseNode.tsx b/packages/core/src/view/node/BaseNode.tsx index 72e2e5a5e..5e0561283 100644 --- a/packages/core/src/view/node/BaseNode.tsx +++ b/packages/core/src/view/node/BaseNode.tsx @@ -371,7 +371,10 @@ export abstract class BaseNode
extends Component< } else { graphModel.selectNodeById(model.id, isMultiple) eventOptions.isSelected = true - this.toFront() + // 静默模式下点击节点不变更节点层级 + if (!editConfigModel.isSilentMode) { + this.toFront() + } } // 不是双击的,默认都是单击 @@ -392,6 +395,7 @@ export abstract class BaseNode
extends Component< handleContextMenu = (ev: MouseEvent) => { ev.preventDefault() const { model, graphModel } = this.props + const { editConfigModel } = graphModel // 节点数据,多为事件对象数据抛出 const nodeData = model.getData() @@ -412,7 +416,10 @@ export abstract class BaseNode
extends Component< e: ev, position, }) - this.toFront() + // 静默模式下点击节点不变更节点层级 + if (!editConfigModel.isSilentMode) { + this.toFront() + } } handleMouseDown = (ev: MouseEvent) => { diff --git a/packages/core/src/view/text/BaseText.tsx b/packages/core/src/view/text/BaseText.tsx index 7eb12c97e..6e42254b4 100644 --- a/packages/core/src/view/text/BaseText.tsx +++ b/packages/core/src/view/text/BaseText.tsx @@ -80,6 +80,7 @@ export class BaseText< } = graphModel if (draggable ?? nodeTextDraggable) { + e.stopPropagation() this.stepperDrag.model = model this.stepperDrag.handleMouseDown(e) }