可视化流程设计器
自研的钉钉式树形流程设计器——业务管理员已经会的交互,零学习成本。不写一行代码,从表单到流程到发布一条龙。
设计向导(四步)
- 基础设置:流程名称、图标、分类、说明
- 表单设计:自研 gform-designer,拖拽字段、配必填与默认值,或套用模板库
- 流程设计:树形画布编排节点(本文重点)
- 发布:版本自动递增,草稿不影响线上流程
树形画布
和钉钉审批一致的自上而下树形结构:
- 每个节点是一张卡片,点击打开右侧配置抽屉
- + 按钮在任意位置插入节点:审批 / 抄送 / 条件分支 / 并行分支 / 包容分支 / 自动化 / 子流程 / 延迟等待 / 服务任务 / HTTP 调用 / 智能体
- 分支容器可继续嵌套分支,条件/包容分支创建时自动附带末尾「默认分支」——空默认分支直接放行到结束,杜绝「条件都不满足流程卡死」
条件配置:变量自动联想
条件抽屉里不用手拼变量名。输入框自动联想三类候选:
- 表单字段:
msg.days、msg.amount(当前流程绑定的表单 schema 里的字段) - 引擎元数据:
metadata.instance_id/process_key/process_id/business_key/owner/tenant_id - 多条件用「且/或」组合,实时预览表达式
js
// 自动生成的条件分支表达式(switch 节点的 case,保存时统一为 msg.<field> 规范形式)
msg.days > 3 && msg.leaveType !== 'annual'节点配置抽屉
以审批节点为例:
| 配置项 | 说明 |
|---|---|
| 审批人 | 指定成员 / 角色 / 直属主管 / 多级主管 / 发起人自选 / 发起人本人(部门候选引擎 DSL 支持,设计器暂未暴露) |
| 审批方式 | 依次审批 / 会签(并行·全票) / 或签 / 票签(多数·百分比·票数);会签的顺序/多数等进阶组合可手写 approvalRule JSON |
| 表单权限 | 逐字段设 隐藏 / 只读 / 可编辑(写进 DSL formPermissions) |
| 动作权限 | 通过/驳回固定可用,其余动作(转办/退回/委派/加减签/催办/附件)逐项开关,默认关闭 |
| 超时催办 | 截止时间 + 提醒策略(催办提醒由 gflow 定时巡检统一发出;节点级超时自动审批暂未接通引擎) |
字段权限
同一张表单,不同节点看到不同视图:
json
{ "amount": "r", "reason": "w", "salary": "h" }r 只读、w 可编辑、h 隐藏。审批详情页按当前节点权限渲染表单。
发布与版本
- 草稿:随便改,不影响线上
- 发布:
version + 1,写入wf_process;已发起的实例继续跑旧版本,新发起走新版 - 停用:
retired后不可再发起,存量实例跑完为止
底线保证
DSL 是唯一真相(single source of truth):设计器的每个配置最终都落到 definition_json;UI 状态损坏后可从 DSL 完整重建流程图。条件变量引用在保存时统一为 msg.<field> 规范形式,历史脏数据自动修正。