节点
节点通过 FlowNodeEntity 定义
节点核心 API
- id:
string节点 id - flowNodeType:
string|number节点类型 - bounds:
Rectangle获取节点的 x,y,width,height, 等价于transform.bounds - blocks:
FlowNodeEntity[]获取子节点 (如 Loop) - parent:
FlowNodeEntity | undefined获取父节点 - document: WorkflowDocument 文档链接
- transform: FlowNodeTransformData 获取节点的 transform 矩阵数据
- renderData: FlowNodeRenderData 获取节点的渲染数据, 包含渲染状态等
- form: NodeFormProps 获取节点的表单数据, 等价于 getNodeForm
- scope: FlowNodeScope 变量作用域
- privateScope: FlowNodeScope 变量私有作用域
- lines: WorkflowNodeLinesData 自由布局线条数据
- ports: WorkflowNodePortsData 自由布局端口数据
- getNodeRegistry(): WorkflowNodeRegistry 获取节点注册器
- getService(): 获取 IOC 服务,如
node.getService(HistoryService) - getExtInfo(): 获取节点扩展数据, 如
node.getExtInfo<{ test: string }>() - updateExtInfo(): 更新节点扩展数据, 如
node.updateExtInfo<{ test: string }>({ test: 'test' }) - dispose(): 销毁节点
- toJSON(): json 序列化
节点数据
通过 node.toJSON() 可以获取
基本结构:
- id:
string节点唯一标识, 必须保证唯一 - meta:
object节点的 ui 配置信息,如自由布局的position信息放这里 - type:
string | number节点类型,会和nodeRegistries中的type对应 - data:
object节点表单数据, 业务可自定义 - blocks:
array节点的分支, 采用block更贴近Gramming自由布局布局场景会用在子画布的子节点 - edges:
array子画布的边数据
节点定义
在自由布局场景,节点定义用于声明节点的初始化位置/大小,端口,表单渲染等。
node-registries.tsx
当前渲染节点获取
通过 useNodeRender 获取节点相关方法
获取当前节点的输入/输出节点或线条
创建节点
- 通过 WorkflowDocument 创建
- 通过 WorkflowDragService 创建, 见自由布局基础用法
删除节点
通过 node.dispose 删除节点
更新节点 data 数据
- 通过 useNodeRender 或 node.form 获取节点的 data 数据
- 通过 Field 更新表单数据, 详细见 表单的使用
更新节点的 extInfo 数据
extInfo 用于存储 一些 ui 状态, 如果未开启节点引擎,节点的 data 数据会默认存到 extInfo 里