MENU

[Ecology EC9] 退回流程拦截禁止再次提交

• 2025 年 01 月 23 日 • 阅读: 271 • OA

我的想法

对于功能的实现我希望更加简单,更加优雅,不希望有各种杂乱的操作,所有我决定找一个变量可以直接判断流程是否为被退回的状态,不去增加字段以及配置内容,以便以后快速的复用。

今天因为讨论这个问题,群里人们还吵了起来,一方主张基础功能配置 增加辅助字段的方式实现,一方主张不加字段“正八经开发有自己做事的标准”;

我认为 没有绝对的对错,只有最适合自己的方案!每人有不同的追求,讨论技术没什么错与对,每人都有自己的想法,可以说出自己的观点,但没必要反驳别人的观点!


方案1 辅助字段

添加一个辅助字段,在退回时对它进行赋值,提交时判断这个字段是否有值,在此不做过多介绍,标准功能即可完全实现


方案2 代码块

核心:wfform.getGlobalStore().rightMenu.lastnodeid

我看了源码/workflow/reqform/rightMenu,此处的lastnodeid是指:上一次退回操作的节点id,所以,只要存在这个lastnodeid,即可判断是退回的流程

jQuery(document).ready(function () {
    const globalStore = wfform.getGlobalStore();
    if (globalStore && globalStore.rightMenu && globalStore.rightMenu.lastnodeid) {
        WfForm.controlBtnDisabled(true);
        alert("注意:退回流程禁止再次提交!");
    }

    // 拦截提交,增加一层按钮置灰保险
    WfForm.registerCheckEvent(WfForm.OPER_SUBMIT, function (callback) {
        if (globalStore.rightMenu.lastnodeid) {
            WfForm.controlBtnDisabled(true);
            alert("注意:当前节点不允许再次提交!");
            return;
        }
        callback();
    });
});

另一个方案:wfform.getGlobalStore().promptInfos 判断其包含退回也可以,但是没有rightMenu.lastnodeid方案优雅~

添加新评论

已有 1 条评论
  1. wintsa wintsa

    其实,添加节点后的java应该也可以,不过显然方案二更简洁