简体中文
底部按钮功能增强
约 552 字大约 2 分钟
2026-05-08
改写业务流详情页底部的操作按钮列表。
适用场景
适用于 移动端。
功能描述
在详情页底部按钮渲染之前,允许修改按钮的名称、顺序,或控制按钮的显隐状态。
典型场景示例
- 场景 1:根据任务类型隐藏特定按钮
例如:审批类型任务隐藏"暂不处理"按钮 - 场景 2:修改按钮文案使其更业务化
例如:将"完成"按钮改为"确认收货" - 场景 3:调整按钮顺序
例如:将"同意"按钮放在"驳回"之前
适用场景
- 需要动态控制底部按钮的展示行为
- 需要根据业务状态调整按钮顺序或文案
- 需要隐藏特定条件下不应展示的按钮
适用页面
- 业务流详情页
开发思路
功能增强通常可以拆成三步理解:
明确要增强的是哪一个环节
- 确定是要修改按钮文案、调整按钮顺序,还是控制按钮显隐
选择合适的扩展事件/钩子
- 移动端:
flow.bpm.detail.parse.bottom.btn.render.before
- 移动端:
在插件中接入扩展点并验证行为
- 获取当前底部按钮列表
bottomBtn和任务数据taskDetail - 根据业务需求修改按钮属性或过滤不需要的按钮
- 获取当前底部按钮列表
开发流程
- 分析按钮需求
- 确定需要修改、隐藏或重排序的按钮
- 明确按钮的触发条件和业务规则
- 选择事件
- 移动端:
flow.bpm.detail.parse.bottom.btn.render.before
- 移动端:
- 编写按钮逻辑
module.exports = function (context, pluginService, pluginParam) { return { apply() { return [{ event: "flow.bpm.detail.parse.bottom.btn.render.before", functional: async function (context, options) { let bottomBtn = options && options.bottomBtn; let taskDetail = options && options.taskDetail; if (taskDetail.taskType === 'approval') { bottomBtn = bottomBtn.filter(btn => btn.action !== 'suspend'); } return Promise.resolve({ bottomBtn: bottomBtn }); } }]; } }; }; - 配置插件
- 在流程高级配置中关联插件
推荐入口
注意事项
- 保持数据结构完整:修改后的按钮数组必须保持原有的数据结构
- 考虑权限因素:按钮的最终显隐还可能受权限和任务状态影响
- 避免误隐藏:确保隐藏按钮不会导致业务流程无法继续
