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<P extends PropertiesType = PropertiesType>
       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<P extends IProps> 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<P extends IProps> 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<P extends IProps> 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<P extends IProps = IProps> 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<P extends IProps = IProps> 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<P extends IProps = IProps> 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)
     }