简体中文
强制编辑表单
约 635 字大约 2 分钟
2026-05-08
强制弹出编辑内容弹窗/页面,即使用户没有必填字段需要填写。
功能描述
业务流默认在满足以下条件时不弹出编辑表单:普通布局下无必填或必填已有值、流程布局下无必填且无从对象。启用此功能后,无论是否满足这些条件,都会强制弹出编辑表单。
典型场景示例
场景 1:完成前必须确认数据
例如:点击"完成"时,即使所有字段已有值,也弹出编辑表单供二次确认场景 2:审批通过前必须更新字段
例如:审批金额超过阈值时,必须打开表单填写审批意见场景 3:加签前必须填写说明
例如:加签操作前,必须填写加签原因
适用场景
- 需要在完成任务/审批前强制用户确认或补充数据
- 默认布局下没有必填字段,但业务上需要在提交前弹出编辑
- 需要确保用户在关键操作前再次确认数据
适用页面
- 任务完成/审批操作时
开发思路
功能增强通常可以拆成三步理解:
明确要增强的是哪一个环节
- 确定在哪个操作时需要强制弹出表单(完成/审批/加签等)
选择合适的扩展事件/钩子
- 移动端:
flow.bpm.edit.form.render.before - Web 端:
bpm.process.render.before
- 移动端:
在插件中接入扩展点并验证行为
- 调用
forceShowEditForm()方法强制弹出编辑表单
- 调用
开发流程
明确强制表单的需求场景
- 确定在哪个操作时需要强制弹出表单
选择事件
- 移动端:
flow.bpm.edit.form.render.before - Web 端:
bpm.process.render.before
- 移动端:
编写强制表单逻辑
// 移动端示例 module.exports = function (context, pluginService, pluginParam) { return { apply() { return [{ event: "flow.bpm.edit.form.render.before", functional: async function (context, options) { return Promise.resolve({ forceShowEditForm: true }); } }]; } }; }; // Web端示例 module.exports = class Plugins { apply() { return [{ event: 'bpm.process.render.before', functional: this.bpmProcessRenderBefore.bind(this) }]; } bpmProcessRenderBefore(api) { api.forceShowEditForm(); } };配置插件
- 在流程高级配置中关联插件
推荐入口
注意事项
- 用户体验:频繁强制弹出表单可能影响用户体验,建议仅在关键操作时使用
- 表单数据:强制弹出后,用户填写的数据会随任务一起提交
- 与意见必填配合:可以配合审批意见必填功能,确保关键信息必填
