阅读:6775回复:0
平台流程提交自带选人框,提交后没有相应提示解决办法
1、先描述下问题的场景。
在使用平台构件WPSUI.startProcessByAssignerSelector提交流程的时候,会弹出一个选择下一步执行人的弹出框,如下图: 图片:2.jpg 客户在实际操作的时候,选择执行人过后点击“提交并启动流程”按钮,由于网络原因,流程提交有延迟,同时这个自带的弹出框在提交流程的时候没有相应的提示语,所以用户会多次点击“提交并启动流程”按钮,这就会导致审核时候有多条流程任务需要审核。 2、说一下解决思路。 最开始的想法是自己重新实现WPSUI.startProcessByAssignerSelector构件的功能,在提交的时候用MSG.loading来提示用户“正在提交中,请稍候。。。”,所有流程操作都可以参考流程API,这样做肯定是能够实现的。但是觉得麻烦,所以决定在原来的弹出框界面进行改造,首先需要获取“提交并启动流程”按钮,然后为其添加点击事件,最后添加MSG.loading来提示用户请稍候,在流程提交完成过后使用MSG.endLoading关闭提示。 3、解决办法 图片:1.jpg 如图红色圈出的6个节点就是在原来提交流程基础上加的。 startProcessByAssignerSelector后面的自定义: setTimeout(function() { $("#flow-start-btn").children().children().children().eq(0).find("button").click(function(){ var pserson = $("#startProcessByAssignerSelectorWin").find("textarea").val();//需要判断是否选择执行人 if(pserson){ MSG.loading("正在提交中。。。"); } }); }, 500); 原理很简单,在提交流程的时候通过jquery定位“提交并启动流程”按钮,为其添加单击事件。 第二次提交流程的时候,只是提交按钮不一样,叫做“再次提交流程”,判断是否选择下一步执行人有点不同。 图片:4.jpg submitProcess后面自定义: setTimeout(function() { $("#flow-start-btn").children().children().children().eq(0).find("button").click(function(){ var pserson = $("#ReStartProcessByAssignerSelectorWin").find("textarea").val();//需要判断是否选择执行人 if(pserson){ MSG.loading("正在提交中。。。"); } }); }, 500); 最后效果就是这样: 图片:3.jpg 这样用户就不会误认为是点击没有效果而反复点击提交 [王毅成于2016-12-09 09:00编辑了帖子]
|
|