packages/plugins/@nocobase/plugin-flow-engine/src/server/flow-surfaces/approval/flow-model-plan.md
审批发起页使用 trigger surface,目标树如下:
TriggerChildPageModel
└── TriggerChildPageTabModel
└── TriggerBlockGridModel
└── ApplyFormModel
├── PatternFormGridModel
│ └── PatternFormItemModel
│ └── PatternFormFieldModel
└── actions[]
└── ApplyFormSubmitModel (default)
addBlock(type: "approvalInitiator")addField(target: ApplyFormModel | PatternFormGridModel)addAction(target: ApplyFormModel, type: "approvalSubmit" | "approvalSaveDraft" | "approvalWithdraw")configure(target: ApplyFormModel | PatternFormItemModel | ApplyForm*ActionModel)补充说明:
ApplyFormModel 默认只创建 approvalSubmitapprovalSaveDraft / approvalWithdraw 通过后续 addAction 添加审批处理页使用 approval surface,目标树如下:
ApprovalChildPageModel
└── ApprovalChildPageTabModel
└── ApprovalBlockGridModel
├── ProcessFormModel
│ ├── PatternFormGridModel
│ │ └── PatternFormItemModel
│ │ └── PatternFormFieldModel
└── ApprovalDetailsModel
└── ApprovalDetailsGridModel
└── ApprovalDetailsItemModel
└── <details field model>
addBlock(type: "approvalApprover")addBlock(type: "approvalInformation")addField(target: ProcessFormModel | PatternFormGridModel)addField(target: ApprovalDetailsModel | ApprovalDetailsGridModel)addAction(target: ProcessFormModel, type: "approvalApprove" | "approvalReject" | "approvalReturn" | "approvalDelegate" | "approvalAddAssignee")补充说明:
ProcessFormModel 默认不自动创建 actionaddAction 添加下列 use 暂不作为独立 block catalog 对外暴露,但需要在 server 侧被识别成 details surface,以支持:
相关模型:
ApplyTaskCardDetailsModelApprovalTaskCardDetailsModelApplyTaskCardGridModelApprovalTaskCardGridModelApplyTaskCardDetailsItemModelApprovalTaskCardDetailsItemModelapproval surface 需要接入这些 server 入口:
catalog.ts
surface-context.ts
builder.ts
PatternFormFieldModel 树构建service.ts
configure-options.ts
approval surface 继续走 flowSurfaces 统一 direct-add / compose 语义:
catalog 负责只在合法容器暴露 approval block keysaddBlock 在解析出 parent grid use 后再做 block placement 校验compose 在编排阶段只校验 key/type 语义,真正的容器校验放到实际 addBlock 时执行BlockGridModelPatternFormItemModel 不能降级成普通 FieldModel新增 flowSurfaces:applyApprovalBlueprint,用于一次性初始化 approval root,并复用已有的 direct-add 语义:
surface: "initiator" + workflowId
TriggerChildPageModelworkflow.config.approvalUidblocks + layout 调用 page-like replace 编排surface: "approver" + nodeId
ApprovalChildPageModelnode.config.approvalUidblocks + layout 调用 page-like replace 编排surface: "taskCard" + workflowId | nodeId
ApplyTaskCardDetailsModelApprovalTaskCardDetailsModeltaskCardUidfields + layout 调用 details-grid replace 编排