lowcode-engine/docs/docs/api/model/document-model.md
2022-12-26 14:30:08 +08:00

4.7 KiB

title, sidebar_position
title sidebar_position
DocumentModel 0

@types IPublicModelDocumentModel
@since v1.0.0

基本介绍

文档模型

变量

selection

画布节点选中区模型实例,具体方法参见 画布节点选中区模型

detecting

画布节点 hover 区模型实例,具体方法参见 画布节点悬停模型

history

操作历史模型实例,具体方法参见 操作历史模型

canvas

获取当前画布中的一些信息,比如拖拽时的 dropLocation

project

获取当前文档模型所属的 project

root

获取文档的根节点

nodesMap

获取文档下所有节点

modalNodesManager

参见 模态节点管理

dropLocation

文档的 dropLocation 相关类型:IPublicModelDropLocation

@since v1.1.0

方法签名

getNodeById

getNodeById(nodeId: string)

根据 nodeId 返回 Node 实例

importSchema

importSchema(schema: RootSchema)

导入 schema

exportSchema

exportSchema(stage: TransformStage = TransformStage.Render)

导出 schema

insertNode

insertNode( parent: Node, thing: Node, at?: number | null | undefined, copy?: boolean | undefined, )

插入节点

createNode

createNode(data: any)

创建一个节点

removeNode

removeNode(idOrNode: string | Node)

移除指定节点/节点id

checkNesting

检查拖拽放置的目标节点是否可以放置该拖拽对象

@since v1.0.16

function checkNesting(dropTarget: Node, dragObject: DragNodeObject | DragNodeDataObject): boolean {}

isDetectingNode

检查拖拽放置的目标节点是否可以放置该拖拽对象

/**
 * 判断是否当前节点处于被探测状态
 * check is node being detected
 * @param node
 * @since v1.1.0
 */
isDetectingNode(node: IPublicModelNode): boolean;

相关类型:IPublicModelNode

@since v1.1.0

事件

onAddNode

onAddNode(fn: (node: Node) => void)

当前 document 新增节点事件

import { project } from '@alilc/lowcode-engine';

project.currentDocument.onAddNode((node) => {
  console.log('node', node);
})

onRemoveNode

onRemoveNode(fn: (node: Node) => void)

当前 document 删除节点事件

onChangeDetecting

onChangeDetecting(fn: (node: Node) => void)

当前 document 的 hover 变更事件

onChangeSelection

onChangeSelection(fn: (ids: string[]) => void)

当前 document 的选中变更事件

onChangeNodeVisible

onChangeNodeVisible(fn: (node: Node, visible: boolean) => void)

当前 document 的节点显隐状态变更事件

onChangeNodeChildren

onChangeNodeChildren(fn: (info?: IPublicOnChangeOptions) => void)

当前 document 的节点 children 变更事件

onChangeNodeProp

当前 document 节点属性修改事件

onChangeNodeProp(fn: (info: IPublicTypePropChangeOptions) => void)

onImportSchema

当前 document 导入新的 schema 事件

/**
 * import schema event
 * @param fn
 * @since v1.0.15
 */
onImportSchema(fn: (schema: IPublicTypeRootSchema) => void): IPublicTypeDisposable;

相关类型:

@since v1.0.15

onFocusNodeChanged

设置聚焦节点变化的回调

/**
 * 设置聚焦节点变化的回调
 * triggered focused node is set mannually from plugin
 * @param fn
 * @since v1.1.0
 */
onFocusNodeChanged(
  fn: (doc: IPublicModelDocumentModel, focusNode: IPublicModelNode) => void,
): IPublicTypeDisposable;

相关类型:

@since v1.1.0

onDropLocationChanged

设置 DropLocation 变化的回调

/**
 * 设置 DropLocation 变化的回调
 * triggered when drop location changed
 * @param fn
 * @since v1.1.0
 */
onDropLocationChanged(fn: (doc: IPublicModelDocumentModel) => void): IPublicTypeDisposable;

相关类型:IPublicTypeDisposable

@since v1.1.0