diff --git a/packages/designer/src/designer/builtin-hotkey.ts b/packages/designer/src/designer/builtin-hotkey.ts index 07fa4ad56..4cee6b460 100644 --- a/packages/designer/src/designer/builtin-hotkey.ts +++ b/packages/designer/src/designer/builtin-hotkey.ts @@ -3,6 +3,7 @@ import { isFormEvent } from '@ali/lowcode-utils'; import { focusing } from './focusing'; import { insertChildren, TransformStage } from '../document'; import clipboard from './clipboard'; +import { NodeSchema } from '@ali/lowcode-types'; function isInLiveEditing() { if (globalContext.has(Editor)) { @@ -155,7 +156,11 @@ hotkey.bind(['command+v', 'ctrl+v'], (e) => { if (!target) { return; } - const nodes = insertChildren(target, componentsTree, index); + let canAddComponentsTree = componentsTree.filter((i) => { + return doc.checkNestingUp(target, i); + }) + if (canAddComponentsTree.length === 0) return; + const nodes = insertChildren(target, canAddComponentsTree, index); if (nodes) { doc.selection.selectAll(nodes.map((o) => o.id)); setTimeout(() => designer.activeTracker.track(nodes[0]), 10); diff --git a/packages/designer/src/document/node/node-children.ts b/packages/designer/src/document/node/node-children.ts index 65d2fbc0e..a1637d3c1 100644 --- a/packages/designer/src/document/node/node-children.ts +++ b/packages/designer/src/document/node/node-children.ts @@ -157,7 +157,7 @@ export class NodeChildren { /** * 插入一个节点,返回新长度 */ - insert(node: Node, at?: number | null, useMutator = true): void { + insert(node: Node, at?: number | null, useMutator = true, copy?: boolean): void { const { children } = this; let index = at == null || at === -1 ? children.length : at; @@ -185,7 +185,11 @@ export class NodeChildren { this.emitter.emit('change'); this.emitter.emit('insert', node); - // this.reportModified(node, this.owner, { type: 'insert' }); + // if (useMutator && copy) { + // this.reportModified(node, this.owner, {type: 'copy', copyIndex: index, copyNode: node }) + // } + // this.reportModified(node, this.owner,) + this.reportModified(node, this.owner, { type: 'insert' }); // check condition group if (node.conditionGroup) {