mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-10 18:03:01 +00:00
fix: expandable state not changed when node added/removed
This commit is contained in:
parent
aa1813d09b
commit
37dffae1b8
@ -5,7 +5,7 @@ sidebar_position: 3
|
||||
## 模块简介
|
||||
|
||||
引擎编排模块中包含多种模型,包括:
|
||||
- [文档模型 DocumentModel)](./model/document-model)
|
||||
- [文档模型 DocumentModel](./model/document-model)
|
||||
- [节点模型 Node](./model/node)
|
||||
- [节点孩子模型 NodeChildren](./model/node-children)
|
||||
- [属性模型 Prop](./model/prop)
|
||||
|
||||
@ -28,6 +28,7 @@ export default class TreeNode {
|
||||
onHiddenChanged: (hidden: boolean) => void;
|
||||
onLockedChanged: (locked: boolean) => void;
|
||||
onTitleLabelChanged: (treeNode: TreeNode) => void;
|
||||
onExpandableChanged: (expandable: boolean) => void;
|
||||
|
||||
get id(): string {
|
||||
return this.node.id;
|
||||
@ -41,6 +42,13 @@ export default class TreeNode {
|
||||
return this.hasChildren() || this.hasSlots() || this.dropDetail?.index != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发 onExpandableChanged 回调
|
||||
*/
|
||||
notifyExpandableChanged(): void {
|
||||
this.onExpandableChanged && this.onExpandableChanged(this.expandable);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入"线"位置信息
|
||||
*/
|
||||
@ -96,7 +104,7 @@ export default class TreeNode {
|
||||
|
||||
get detecting() {
|
||||
const doc = this.pluginContext.project.currentDocument;
|
||||
return doc?.isDetectingNode(this.node);
|
||||
return !!(doc?.isDetectingNode(this.node));
|
||||
}
|
||||
|
||||
get hidden(): boolean {
|
||||
|
||||
@ -17,7 +17,27 @@ export class Tree {
|
||||
|
||||
constructor(pluginContext: IPublicModelPluginContext) {
|
||||
this.pluginContext = pluginContext;
|
||||
this.id = this.pluginContext.project.currentDocument?.id;
|
||||
const doc = this.pluginContext.project.currentDocument;
|
||||
this.id = doc?.id;
|
||||
|
||||
doc?.onMountNode((payload: {node: IPublicModelNode }) => {
|
||||
const { node } = payload;
|
||||
const parentNode = node.parent;
|
||||
if (!parentNode) {
|
||||
return;
|
||||
}
|
||||
const parentTreeNode = this.getTreeNodeById(parentNode.id);
|
||||
parentTreeNode?.notifyExpandableChanged();
|
||||
});
|
||||
|
||||
doc?.onRemoveNode((node: IPublicModelNode) => {
|
||||
const parentNode = node.parent;
|
||||
if (!parentNode) {
|
||||
return;
|
||||
}
|
||||
const parentTreeNode = this.getTreeNodeById(parentNode.id);
|
||||
parentTreeNode?.notifyExpandableChanged();
|
||||
});
|
||||
}
|
||||
|
||||
setNodeSelected(nodeId: string): void {
|
||||
|
||||
@ -32,7 +32,7 @@ class ModalTreeNodeView extends Component<{
|
||||
const { project } = this.pluginContext;
|
||||
const rootNode = project.currentDocument?.root;
|
||||
const rootTreeNode = treeNode.tree.getTreeNode(rootNode!);
|
||||
const expanded = rootTreeNode.expanded;
|
||||
const { expanded } = rootTreeNode;
|
||||
|
||||
const hasVisibleModalNode = !!this.modalNodesManager?.getVisibleModalNode();
|
||||
return (
|
||||
@ -100,7 +100,7 @@ export default class TreeNodeView extends Component<{
|
||||
|
||||
componentDidMount() {
|
||||
const { treeNode, pluginContext } = this.props;
|
||||
const { event, project } = pluginContext;
|
||||
const { project } = pluginContext;
|
||||
|
||||
const doc = project.currentDocument;
|
||||
|
||||
@ -113,6 +113,9 @@ export default class TreeNodeView extends Component<{
|
||||
treeNode.onLockedChanged = (locked: boolean) => {
|
||||
this.setState({ locked });
|
||||
};
|
||||
treeNode.onExpandableChanged = (expandable: boolean) => {
|
||||
this.setState({ expandable });
|
||||
};
|
||||
|
||||
this.eventOffCallbacks.push(
|
||||
doc?.onDropLocationChanged((document: IPublicModelDocumentModel) => {
|
||||
|
||||
@ -4,7 +4,6 @@ const package = require('../packages/engine/package.json');
|
||||
const { version, name } = package;
|
||||
const options = {
|
||||
method: 'PUT',
|
||||
// 暂时使用 日常环境的 uipaas-node,上线后可切换成线上环境 https://uipaas-node.alibaba-inc.com
|
||||
hostname: 'uipaas-node.alibaba-inc.com',
|
||||
path: '/staticAssets/cdn/packages',
|
||||
headers: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user