节点
节点通过 FlowNodeEntity 定义
节点核心 API
- id:
string节点 id - flowNodeType:
string|number节点类型 - bounds:
Rectangle获取节点的 x,y,width,height, 等价于transform.bounds - blocks:
FlowNodeEntity[]获取子节点 (如 Loop) - collapsedChildren:
FlowNodeEntity[]获取子节点, 包含折叠的子节点 - allCollapsedChildren:
FlowNodeEntity[]获取所有子节点,包括所有折叠的子节点 - children:
FlowNodeEntity[]获取子节点, 不包含折叠的子节点 - pre:
FlowNodeEntity | undefined获取上一个节点 - next:
FlowNodeEntity | undefined获取下一个节点 - parent:
FlowNodeEntity | undefined获取父节点 - originParent:
FlowNodeEntity | undefined获取原始父节点, 这个用于固定布局分支的第一个节点(orderIcon) 找到整个虚拟分支 - allChildren:
FlowNodeEntity[]获取所有子节点, 不包含折叠的子节点 - document: FlowDocument 文档链接
- transform: FlowNodeTransformData 获取节点的 transform 矩阵数据
- renderData: FlowNodeRenderData 获取节点的渲染数据, 包含渲染状态等
- form: NodeFormProps 获取节点的表单数据, 等价于 getNodeForm
- scope: FlowNodeScope 变量作用域
- privateScope: FlowNodeScope 变量私有作用域
- getNodeRegistry(): FlowNodeRegistry 获取节点注册器
- 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
节点定义
声明节点可以用于确定节点的类型及渲染方式
当前渲染节点获取
通过 useNodeRender 获取节点相关方法
创建节点
通过 FlowOperationService 创建
- 添加节点
- 在指定节点之后添加
- 添加分支 节点 (用于条件分支)
删除节点
更 新节点 data 数据
- 通过 useNodeRender 或 node.form 获取节点的 data 数据
- 通过 Field 更新表单数据, 详细见 表单的使用
更新节点的 extInfo 数据
extInfo 用于存储 一些 ui 状态, 如果未开启节点引擎,节点的 data 数据会默认存到 extInfo 里