From cf69e6aa2f070dc658e58cdde10b2bf5ecf0aff9 Mon Sep 17 00:00:00 2001 From: kangwei Date: Tue, 21 Apr 2020 23:05:51 +0800 Subject: [PATCH] fix drag --- packages/designer/src/document/node/node.ts | 16 ++++++++++++++++ .../src/setters/mixed-setter/style.less | 9 ++++++--- .../src/renderer-view.tsx | 1 - .../vision-polyfill/public/legao-assets.json | 6 ++++++ packages/vision-polyfill/src/drag-engine.ts | 8 +++++++- packages/vision-polyfill/src/exchange.ts | 2 +- 6 files changed, 36 insertions(+), 6 deletions(-) diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index a146a9a9e..dbabacabe 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -104,6 +104,10 @@ export class Node { return this._slotFor != null; } + isRoot() { + return (this.document.rootNode as any) == this; + } + constructor(readonly document: DocumentModel, nodeSchema: NodeSchema, slotFor?: Prop) { const { componentName, id, children, props, ...extras } = nodeSchema; this.id = id || `node$${document.nextId()}`; @@ -480,6 +484,9 @@ export class Node { insertBefore(node: Node, ref?: Node) { this.children?.insert(node, ref ? ref.index : null); } + getParent() { + return this.parent; + } /** * @deprecated @@ -510,6 +517,15 @@ export class Node { console.warn('getPage is deprecated, use document instead'); return this.document; } + /** + * @deprecated + */ + getSuitablePlace(node: Node, ref: any): any { + if (this.isRoot()) { + return { container: this, ref }; + } + return { container: this.parent, ref: this }; + } } export interface NodeParent extends Node { diff --git a/packages/plugin-settings-pane/src/setters/mixed-setter/style.less b/packages/plugin-settings-pane/src/setters/mixed-setter/style.less index 31f79b4c9..4427f3254 100644 --- a/packages/plugin-settings-pane/src/setters/mixed-setter/style.less +++ b/packages/plugin-settings-pane/src/setters/mixed-setter/style.less @@ -1,11 +1,14 @@ .lc-setter-mixed { - display: flex; - align-items: center; width: 100%; + position: relative; .lc-setter-actions { - margin-left: 5px; + position: absolute; + right: 0px; } + padding-right: 30px; &.lc-block-setter { + position: static; display: block; + padding-right: 0; } } diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index bedec13f8..cf0617d28 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -41,7 +41,6 @@ class Renderer extends Component<{ renderer: SimulatorRenderer }> { } render() { const { renderer } = this.props; - // const { components, schemas } = LowCodeRenderer.others; return ( { const nodes = designer.currentSelection?.getNodes(); - return nodes; + return nodes?.[0]; }, }