基于普通ajax封装业务框架

代码如下,具体不解释

var gz_rm = 
{
    // 统一定义web层返回关键字
	SUCCESS : '0',
	FAILED : '-1',
	RESULTCODE : 'RESULTCODE',
	TOTAL : 'TOTAL',
	SUCCESS_NUM : 'SUCCESS_NUM',
	ERROR_NUM : 'ERROR_NUM',
	RESULTINFO : 'RESULTINFO',
	RECORD_ID : 'RECORD_ID',
	ERR_PATH : 'ERR_PATH',
	/*
		areaids		需要提交的区域(一般是指 div 的 id),如有多个则 "," 号分隔,若该 DOM 下有 uiid,则提交的数据模式如下uiid=[{新},{老}]
		listener	当前页面的监听事件
		params		额外的自定义POST提交参数集,格式为标准的application/x-www-form-urlencoded串,&a=b
		partids		需要刷新的 Part 区域,必须是 jwcid="@Part" 对应的 id,多个则 "," 号分隔
		
		例如: ajaxSubmit('QueryCond', 'queryCusts', '&CUST_NAME=' + encodeURIComponent($('#CUST_NAME').val()), 'QueryPart');
	*/
	submit: function(areaids, listener, params, partids) {
		$.beginPageLoading('数据正在提交中....');
		
		$.ajax.submit(areaids,listener,params,partids,function(data) {
			gz_rm.success(data);
		},function(code, info){
			gz_rm.error(code, info);	
		},{timeout:300000});
	},
	//正常业务操作
	success: function(data){
		//是否程序异常
		var resultCode = data.get(gz_rm.RESULTCODE,"");
		
		if (resultCode == gz_rm.SUCCESS) {
			//业务成功还是失败,但不是错误
			var errorNum = data.get(gz_rm.ERROR_NUM, 0);
			var errPath = data.get(gz_rm.ERR_PATH, "");
			
			if (errorNum == 0 && errPath == '') {
				gz_rm.BusinessSuccessAlert(data);
			} else {
				gz_rm.BusinessAlert(data);
			}
		} else if (resultCode == gz_rm.FAILED){
			gz_rm.BusinessFailedAlert(data);
		}
		$.endPageLoading();
	},
	//系统错误,方法第一个形参为错误编码,第二个形参为错误描述
	error: function(code, info){
		info = "报错信息:" + info;
		var msg = "<div class='e_size-xl e_red'>" + info + "</div>";
	
		MessageBox.error("业务受理失败", msg, function(btn){
			//直接点击按钮的方法,后续可根据状态执行 data.get(type)执行分支代码
			//window.location.reload();//不清空页面数据,方便调试
		});
		
		$.endPageLoading();
	},
	//业务成功提示
	BusinessSuccessAlert: function(data){
		var msg = "<div class='e_size-xl e_blue'>" + gz_rm.baseMsg(data) + "</div>";
		
		MessageBox.success("业务受理成功", msg, function(btn){
			//直接点击按钮的方法,后续可根据状态执行 data..get(type)执行分支代码
			window.location.reload();//清空页面数据
		});
	},
	//业务警告提示
	BusinessAlert: function(data){
		var msg = "<div class='e_size-xl e_red'>" + gz_rm.baseMsg(data) + "</div>" + gz_rm.downloadMsg(data);
	
		MessageBox.alert("业务有受理错误数据", msg, function(btn){
			//直接点击按钮的方法,后续可根据状态执行 data.get(type)执行分支代码
			//window.location.reload();//不清空页面数据,方便调试
		});
	},
	//业务失败提示
	BusinessFailedAlert: function(data){
		var msg = "<div class='e_size-xl e_red'>" + gz_rm.baseMsg(data) + "</div>" + gz_rm.downloadMsg(data);
	
		MessageBox.error("业务受理失败", msg, function(btn){
			//直接点击按钮的方法,后续可根据状态执行 data.get(type)执行分支代码
			//window.location.reload();//不清空页面数据,方便调试
		});
	},
	baseMsg: function(data) {
		return gz_rm.recordIdMsg(data) + gz_rm.totalMsg(data) + gz_rm.successNumMsg(data) + gz_rm.errorNumMsg(data) + gz_rm.resultInfoMsg(data);
	},
	recordIdMsg: function(data) {
		var recordId = data.get(gz_rm.RECORD_ID, "");
		if(recordId != ""){//有些参数维护类业务可能没recordId
			recordId = "业务流水:" + recordId + "。";
		}	
		return recordId;
	},
	totalMsg: function(data) {
		var total = data.get(gz_rm.TOTAL, "");	
		if(total != ""){//有些参数维护类业务可能没total
			total = "记录总数:" + total + "条。";
		}	
		return total;
	},
	successNumMsg: function(data) {
		var successNum = data.get(gz_rm.SUCCESS_NUM, "");	
		if(successNum > 0){//有些参数维护类业务可能没successNum
			return "成功记录数:" + successNum + "条。";
		} else {
			return "";
		}
	},
	errorNumMsg: function(data) {
		var errorNum = data.get(gz_rm.ERROR_NUM, "");	
		if(errorNum > 0){//有些参数维护类业务可能没errorNum
			return "失败记录数:" + errorNum + "条。";
		} else {
			return "";
		}
	},
	resultInfoMsg: function(data) {
		var resultInfo = data.get(gz_rm.RESULTINFO, "");	
		if(resultInfo != ""){
			resultInfo = "<br/>提示信息:" + resultInfo + "。";
		}	
		return resultInfo;
	},
	downloadMsg: function(data) {
		var errPath = data.get(gz_rm.ERR_PATH, "");	
		if(errPath != ""){
			errPath = "<br/><div class='e_size-xl'>错误详细信息:<a href='" + errPath + "'><i class='e_ico-download'></i>点击下载</a>。</div>";
		}	
		return errPath;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值