English
Bottom Button Enhancements
About 369 wordsAbout 1 min
2026-05-08
- Override the list of action buttons at the bottom of the Business Flow detail page. * *
Applicable scenarios
Available on * * mobile * *.
Description
Allows you to modify the name, order, or hidden state of the buttons before they are rendered at the bottom of the detail page.
# Example of a typical scenario
- Scenario 1 * *: Hide specific buttons based on task type
Example: Approval type task hides "Not processed" button
- Scenario 1 * *: Hide specific buttons based on task type
- Scenario 2 * *: modifying the button copy to make it more business-like
Example: Change the "Done" button to "Confirm Receipt"
- Scenario 2 * *: modifying the button copy to make it more business-like
- Scene 3 * *: Adjust button order
Example: Put the "Agree" button before the "Dismiss" button
- Scene 3 * *: Adjust button order
Applicable Scenario
- Need to dynamically control the display behavior of the bottom button
- Button order or copy needs to be adjusted based on business status
- Need to hide buttons that should not be displayed under certain conditions
# Applicable Pages
- Business Flow Details Page
# Development Ideas
Enhancements can often be broken down into three steps:
- Identify which link to enhance * *
- Determine if you want to modify the button copy, adjust the button order, or control the button to be invisible
- Select the appropriate extension event/hook * *
- Mobile:
flow.bpm.detail.parse.bottom.btn.render.before
- Access the extension point in the plugin and verify the behavior * *
- Get current bottom button list
bottomBtnand task datataskDetail - Modify button properties or filter unwanted buttons based on business needs
DEVELOPMENT WORKFLOW
- Analyze button requirements * *
- Identify buttons that need to be modified, hidden or reordered
- Identify button triggers and business rules
- Select an event * *
- Mobile:
flow.bpm.detail.parse.bottom.btn.render.before
- Write button logic * *
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 }); } }]; } }; };- Configure Plugins * *
- Associate plugins in process advanced configurations
# Recommended entrance
Caution
- Keep the data structure intact * *: The modified button array must keep the original data structure
- Consider permission factors * *: The final appearance of the button may also be affected by permissions and task status
- Avoid concealment by mistake * *: Ensure that the concealment button does not prevent the business process from continuing
