From f9895ccbe214e6454ea33fe5abff7b9105268ce3 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Thu, 4 Nov 2021 17:02:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E4=BA=86=20focusNodeSelector=20=E5=90=8E,=20=E6=A8=A1=E6=80=81?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=9C=A8=E5=A4=A7=E7=BA=B2=E6=A0=91=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-skeleton/src/widget/panel.ts | 2 +- packages/plugin-outline-pane/src/tree-node.ts | 6 +++--- packages/plugin-outline-pane/src/views/root-tree-node.tsx | 8 +++++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/editor-skeleton/src/widget/panel.ts b/packages/editor-skeleton/src/widget/panel.ts index 249c3688c..3de55a643 100644 --- a/packages/editor-skeleton/src/widget/panel.ts +++ b/packages/editor-skeleton/src/widget/panel.ts @@ -78,7 +78,7 @@ export default class Panel implements IWidget { private container?: WidgetContainer; - private parent?: WidgetContainer; + @obx.ref private parent?: WidgetContainer; constructor(readonly skeleton: Skeleton, readonly config: PanelConfig) { makeObservable(this); diff --git a/packages/plugin-outline-pane/src/tree-node.ts b/packages/plugin-outline-pane/src/tree-node.ts index 662501748..77c1132d4 100644 --- a/packages/plugin-outline-pane/src/tree-node.ts +++ b/packages/plugin-outline-pane/src/tree-node.ts @@ -28,8 +28,8 @@ export default class TreeNode { return this.node.zLevel; } - isRoot() { - return this.tree.root === this; + isRoot(includeOriginalRoot = false) { + return this.tree.root === this || (includeOriginalRoot && this.tree.document.rootNode === this.node); } /** @@ -60,7 +60,7 @@ export default class TreeNode { @obx.ref private _expanded = false; get expanded(): boolean { - return this.isRoot() || (this.expandable && this._expanded); + return this.isRoot(true) || (this.expandable && this._expanded); } setExpanded(value: boolean) { diff --git a/packages/plugin-outline-pane/src/views/root-tree-node.tsx b/packages/plugin-outline-pane/src/views/root-tree-node.tsx index 198620b2d..46d1d52f1 100644 --- a/packages/plugin-outline-pane/src/views/root-tree-node.tsx +++ b/packages/plugin-outline-pane/src/views/root-tree-node.tsx @@ -1,10 +1,10 @@ import { Component } from 'react'; import classNames from 'classnames'; import { observer } from '@ali/lowcode-editor-core'; +import { ModalNodesManager } from '@ali/lowcode-designer'; import TreeNode from '../tree-node'; import TreeTitle from './tree-title'; import TreeBranches from './tree-branches'; -import { ModalNodesManager } from '@ali/lowcode-designer'; import { IconEyeClose } from '../icons/eye-close'; @observer @@ -24,7 +24,9 @@ class ModalTreeNodeView extends Component<{ treeNode: TreeNode }> { render() { const { treeNode } = this.props; - const modalNodes = treeNode.children?.filter((item) => { + // 当指定了新的根节点时,要从原始的根节点去获取模态节点 + const rootTreeNode = treeNode.tree.getTreeNode(treeNode.document.rootNode!); + const modalNodes = rootTreeNode.children?.filter((item) => { return item.node.componentMeta.isModal; }); if (!modalNodes || modalNodes.length === 0) { @@ -44,7 +46,7 @@ class ModalTreeNodeView extends Component<{ treeNode: TreeNode }> {
- +
);