fix: 修复指定了 focusNodeSelector 后, 模态节点在大纲树没有展示

This commit is contained in:
lihao.ylh 2021-11-04 17:02:44 +08:00 committed by lianjie.lj
parent dc207aef72
commit f9895ccbe2
3 changed files with 9 additions and 7 deletions

View File

@ -78,7 +78,7 @@ export default class Panel implements IWidget {
private container?: WidgetContainer<Panel, PanelConfig>; private container?: WidgetContainer<Panel, PanelConfig>;
private parent?: WidgetContainer; @obx.ref private parent?: WidgetContainer;
constructor(readonly skeleton: Skeleton, readonly config: PanelConfig) { constructor(readonly skeleton: Skeleton, readonly config: PanelConfig) {
makeObservable(this); makeObservable(this);

View File

@ -28,8 +28,8 @@ export default class TreeNode {
return this.node.zLevel; return this.node.zLevel;
} }
isRoot() { isRoot(includeOriginalRoot = false) {
return this.tree.root === this; 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; @obx.ref private _expanded = false;
get expanded(): boolean { get expanded(): boolean {
return this.isRoot() || (this.expandable && this._expanded); return this.isRoot(true) || (this.expandable && this._expanded);
} }
setExpanded(value: boolean) { setExpanded(value: boolean) {

View File

@ -1,10 +1,10 @@
import { Component } from 'react'; import { Component } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { observer } from '@ali/lowcode-editor-core'; import { observer } from '@ali/lowcode-editor-core';
import { ModalNodesManager } from '@ali/lowcode-designer';
import TreeNode from '../tree-node'; import TreeNode from '../tree-node';
import TreeTitle from './tree-title'; import TreeTitle from './tree-title';
import TreeBranches from './tree-branches'; import TreeBranches from './tree-branches';
import { ModalNodesManager } from '@ali/lowcode-designer';
import { IconEyeClose } from '../icons/eye-close'; import { IconEyeClose } from '../icons/eye-close';
@observer @observer
@ -24,7 +24,9 @@ class ModalTreeNodeView extends Component<{ treeNode: TreeNode }> {
render() { render() {
const { treeNode } = this.props; 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; return item.node.componentMeta.isModal;
}); });
if (!modalNodes || modalNodes.length === 0) { if (!modalNodes || modalNodes.length === 0) {
@ -44,7 +46,7 @@ class ModalTreeNodeView extends Component<{ treeNode: TreeNode }> {
</div> </div>
</div> </div>
<div className="tree-pane-modal-content"> <div className="tree-pane-modal-content">
<TreeBranches treeNode={treeNode} isModal /> <TreeBranches treeNode={rootTreeNode} isModal />
</div> </div>
</div> </div>
); );