diff --git a/packages/antv-x6-design/src/plugins/logic-design/custom-node/remark-node.ts b/packages/antv-x6-design/src/plugins/logic-design/custom-node/remark-node.ts index 63beb2a598e01a1d8945a95924713ed0468a3671..e3d58c70f706756fce3ff7ac9fba4a8da6b6674f 100644 --- a/packages/antv-x6-design/src/plugins/logic-design/custom-node/remark-node.ts +++ b/packages/antv-x6-design/src/plugins/logic-design/custom-node/remark-node.ts @@ -118,6 +118,24 @@ export class RemarkNode extends Shape.HTML { } } + /** + * @description 禁用键盘 + * - 禁止复制,粘贴,剪切,回车换行 + * @private + * @param {KeyboardEvent} e + * @memberof RemarkNode + */ + private disableKeyboardEvent(e: KeyboardEvent): void { + if ( + e.key === 'Enter' || + ((e.ctrlKey || e.metaKey) && + (e.key === 'c' || e.key === 'v' || e.key === 'x')) + ) { + e.preventDefault(); + e.stopPropagation(); + } + } + /** * @description 设置节点编辑状态 * @private @@ -129,12 +147,20 @@ export class RemarkNode extends Shape.HTML { if (contentEl && contentEl.contentEditable !== editable.toString()) { contentEl.contentEditable = editable.toString(); if (editable) { - // 可编辑时添加 blur 事件监听 + // 可编辑时添加事件监听 contentEl.focus(); contentEl.addEventListener('blur', this.saveMome.bind(this)); + contentEl.addEventListener( + 'keydown', + this.disableKeyboardEvent.bind(this), + ); } else { - // 不可编辑时移除 blur 事件监听 + // 不可编辑时移除事件监听 contentEl.removeEventListener('blur', this.saveMome.bind(this)); + contentEl.removeEventListener( + 'keydown', + this.disableKeyboardEvent.bind(this), + ); } } }