阅读:1097 回复:0
果冻栋吖
104

帖子

755

跟帖

2622

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
  • 优秀斑竹

[技术实例]区分驳回到开始还是驳回到上一步

楼主#
更多 发布于:2017-12-27 17:31
今天做的一个需求,如果有同等需要的,可以借用。可能代码不是最优化的,欢迎大家提出建议。
在驳回的时候,我们需要区分是驳回到开始还是驳回到上一步
如果是驳回到上一步,则正常驳回就可以,驳回到开始的话,我们需要调用一般处理程序,把最开始占用的资金释放。
但是在流程设计里面只有任务驳回后,不能区分是驳回到开始还是驳回到上一步。
这时候需要通过前端判断,前端系统默认的驳回方法是:

Reject: function(actionControl, destActivity) {
        actionControl.IsReject = true;
        if(!$.MvcSheet.ActionValidata(actionControl)) return false;
        var that = this;
        $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + " [ " + SheetLanguages.Current.Reject + " ] " + SheetLanguages.Current.Operation + "?", function() {
                $.LoadingMask.Show(SheetLanguages.Current.Rejecting);
                var SheetPostValue = that.GetMvcPostValue(that.Action_Reject, destActivity);
                that.PostSheet({
                                Command: that.Action_Reject,
                                MvcPostValue: JSON.stringify(SheetPostValue)
                        },
                        function(data) {
                                that.ResultHandler.apply(that, [actionControl, data]);
                        });
        })
}

需要重写这个方法:

在表单中修改:

$.MvcSheet.Reject = function(actionControl, destActivity) {
        actionControl.IsReject = true;
        if(!$.MvcSheet.ActionValidata(actionControl)) return false;
        var that = this;
        var result= {"Success":true,"Message":""}
        $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + " [ " + SheetLanguages.Current.Reject + " ] " + SheetLanguages.Current.Operation + "?", function() {
                $.LoadingMask.Show(SheetLanguages.Current.Rejecting);
                //提示完毕后,判断是驳回到上一步还是驳回到开始。
                if(destActivity == "__RejectTo_Start") {
                        $.ajax({
                                type: "post",
                                url: "地址",
                                data: {参数},
                                async: false,
                                success: function(data) {
                                        result = JSON.parse(data);
                                }
                        });
                }
                //如果执行成功!按正常驳回。
                if(result.Success){
                        var SheetPostValue = that.GetMvcPostValue(that.Action_Reject, destActivity);
                        that.PostSheet({
                                        Command: that.Action_Reject,
                                        MvcPostValue: JSON.stringify(SheetPostValue)
                                },
                                function(data) {
                                        that.ResultHandler.apply(that, [actionControl, data]);
                                });

                //如果没有,则不进行驳回,并提示后台返回的错误信息
                }else{

                        $.LoadingMask.Hide();
                        $.MvcSheet.AlertAction(result.Message);
                }

        })
}

最新喜欢:

zk.comzk.com
需要技术支持请添加QQ1772829123,提供H3产品定制开发,IT技术支持。
游客

返回顶部