English
Object Details Page Stage Node Click
About 336 wordsAbout 1 min
2026-05-08
- Intercept before top stage node clicks for jump judgment or data validation. * *
Applicable scenarios
Works on mobile.
Description
When the user clicks on the Stages node at the top, this event is triggered before the jump, which can be used to perform validation logic or to block illegal stage switches.
# Example of a typical scenario
- Scenario 1 * *: Intercept a jump when the current task is not completed
Ex: Prevent switching to the next stage when the user does not fill in the required fields
- Scenario 1 * *: Intercept a jump when the current task is not completed
- Scenario 2 * *: permission check interception
Ex: Unauthorized users cannot jump to a specific stage
- Scenario 2 * *: permission check interception
- Scenario 3 * *: Phase switch logging
Example: Burying point records the behavior of a user clicking on a stage node
- Scenario 3 * *: Phase switch logging
Applicable Scenario
- Business verification is required before switching phases
- Unqualified phase switching actions need to be blocked
- Phase switching behavior logs need to be recorded
# Applicable Pages
- Business Flow Details Page - Top Stage Navigation
# Development Ideas
Enhancements can often be broken down into three steps:
- Identify which link to enhance * *
- Identify scenarios to block (e.g. missing fields, no permissions, etc.)
- Select the appropriate extension event/hook * *
- Mobile:
flow.bpm.detail.stage.item.click.before
- Access the extension point in the plugin and verify the behavior * *
- Get clicked node information
itemInfoand task detailsbpmTaskDetail - Execute business verification logic, return to interception or release
DEVELOPMENT WORKFLOW
- Analyze blocking conditions * *
- Identify scenarios to block (e.g. missing fields, no permissions, etc.)
- Write intercept logic * *
module.exports = function (context, pluginService, pluginParam) { return { apply() { return [{ event: "flow.bpm.detail.stage.item.click.before", functional: async function (context, options) { let itemInfo = options && options.itemInfo; let bpmTaskDetail = options && options.bpmTaskDetail; let shouldIntercept = checkShouldIntercept(itemInfo, bpmTaskDetail); return Promise.resolve({ isIntercept: shouldIntercept }); } }]; } }; };- Configure the plugin * *
- Associate plugins in process advanced configurations
# Recommended entrance
Caution
- User experience * *: User should be explicitly prompted when intercepting
- Timing effects * *: Blocking will prevent page jumps, make sure the check logic is correct
- Boundary situation * *: Consider boundary situations such as task status, permission status, etc.
