简体中文
任务详情渲染增强
约 690 字大约 2 分钟
2026-05-08
在业务流详情页主体渲染之前,改写任务详情数据(仅限移动端),或插入自定义组件(仅限移动端),或自定义按钮展示。
功能描述
在业务流详情页主体渲染之前,改写任务详情数据(仅限移动端),或插入自定义组件(仅限移动端),或自定义按钮展示。
典型场景示例
场景 1:根据任务状态动态修改任务名称展示
例如:任务状态为"异常"时,在任务名称前加"【异常】"标记场景 2:根据业务数据判断是否显示自定义操作按钮
例如:订单金额超过 10 万时,显示"风控复核"按钮场景 3:插入自定义组件展示补充信息
例如:在详情页底部插入一个"关联订单列表"自定义组件
适用场景
- 需要在详情页渲染前根据数据动态调整展示内容
- 需要根据业务状态修改任务名称或状态展示
- 需要插入与业务相关的自定义组件
适用页面
- 业务流任务详情页
开发思路
功能增强通常可以拆成三步理解:
明确要增强的是哪一个环节
- 确定是要修改任务数据,还是插入自定义组件,还是自定义按钮展示
- 确定修改的数据字段和条件逻辑
选择合适的扩展事件/钩子
- 移动端:
flow.bpm.detail.render.before - Web 端:
bpm.taskPage.render.before
- 移动端:
在插件中接入扩展点并验证行为
- 编写插件逻辑,获取任务数据并进行分析
- 根据业务需求返回相应的数据结构
开发流程
明确增强目标
- 确定是要修改任务数据(仅限移动端),还是插入自定义组件(仅限移动端),还是自定义按钮展示
- 确定修改的数据字段和条件逻辑
选择合适的事件
- 移动端:
flow.bpm.detail.render.before - Web 端:
bpm.taskPage.render.before
- 移动端:
编写增强逻辑
// 移动端示例 module.exports = function (context, pluginService, pluginParam) { return { apply() { return [{ event: "flow.bpm.detail.render.before", functional: async function (context, options) { let taskDetail = options && options.taskDetail; if (taskDetail.state === 'error') { taskDetail.name = '【异常】' + taskDetail.name; } return Promise.resolve({ bpmTaskDetail: taskDetail, customComponten: {} }); } }]; } }; };配置到业务场景
- 在流程高级配置中关联自定义插件
推荐入口
注意事项
- 数据结构完整:返回的
bpmTaskDetail必须保持数据结构完整 - 渲染时机:此事件在渲染前触发,修改会直接影响页面展示
- 异常处理:做好数据校验,避免因数据异常导致渲染失败
