我的想法
对于功能的实现我希望更加简单,更加优雅,不希望有各种杂乱的操作,所有我决定找一个变量可以直接判断流程是否为被退回的状态,不去增加字段以及配置内容,以便以后快速的复用。
今天因为讨论这个问题,群里人们还吵了起来,一方主张基础功能配置 增加辅助字段的方式实现,一方主张不加字段“正八经开发有自己做事的标准”;
我认为 没有绝对的对错,只有最适合自己的方案!每人有不同的追求,讨论技术没什么错与对,每人都有自己的想法,可以说出自己的观点,但没必要反驳别人的观点!
方案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方案优雅~
[Ecology EC9] 退回流程拦截禁止再次提交 by https://oneszhang.com/archives/134.html
其实,添加节点后的java应该也可以,不过显然方案二更简洁