Ecode重写流程退回按钮的点击方法

Ecode重写流程退回按钮的点击方法

实现方法

其他方法


需求:重写流程的顶部按钮,修改原有退回按钮为【退回给业务业务】,新增一个按钮为【退回给采购】,实现用户点击不同按钮的时候退回到不同的节点功能

实现方法

实现步骤:

  1. 在流程中新增两条出口线路
  2. 新增两个字段标识是退回业务还是退回采购
  3. 在调用退回按钮方法之前,先改变上面新增的两个字段,实现退回到对应节点操作
if (newProps.buttons.length >= 1) {
    // 获取原按钮
    const originalButton = newProps.buttons[1];
    const originalOnClick = originalButton.props.onClick;

    // 提取公共逻辑到一个函数中
    const handleButtonClick = (fieldName1, fieldValue1,fieldName2,fieldValue2) => {
        try {
            // 修改指定字段值
            WfForm.changeFieldValue(WfForm.convertFieldNameToId(fieldName1), { value: fieldValue1 });
            WfForm.changeFieldValue(WfForm.convertFieldNameToId(fieldName2), { value: fieldValue2 });
            // 调用原退回方法
            originalOnClick();
        } catch (error) {
            console.error(`点击按钮时出错: ${error.message}`);
            // 可以在这里添加更详细的错误提示,例如显示给用户
        }
    };

    // 克隆原按钮并创建“退回给业务改单”按钮
    const newButton = React.cloneElement(originalButton, {
        children: '退回给业务',
        onClick: () => handleButtonClick("thdyw", "0","thdcg", "1")
    });
    // 替换原按钮
    newProps.buttons[1] = newButton;

    // 克隆原按钮并创建“退回给采购节点”按钮
    const newReturnButton = React.cloneElement(originalButton, {
        children: '退回给采购',
        onClick: () => handleButtonClick("thdcg", "0","thdyw", "1")
    });

    // 将新按钮添加到按钮数组中
    newProps.buttons.splice(1, 0, newReturnButton);
    }

其他方法

上面介绍的是调用原有的退回方法,是通过获取原有按钮的方法来实现的,泛微也提供了直接调用退回的方法,如下图所示

可以将实现方法里面调用的原有方法改成【WfForm.doRightBtnEvent("BTN_REJECTNAME");】这样的话也能实现一样的功能,具体如何选择看个人,我比较推荐的是使用:WfForm.doRightBtnEvent("BTN_REJECTNAME");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值