/** * ajax请求的代理类 1、系统在一般情况都使用本类进行ajax请求不在使用原生的或者jQuery的ajax 原因: * 1、本类对异常信息,错误信息进行了信息提示处理 2、本类与服务器端的AjaxResult.java 对应,接收的数据格式是AjaxResult.java * 的json格式数据 * * author :姜友瑶; 2016-06-02 */ (function($) { $.fn.extend({ invoke : function(url, callback) { $this = this; // 是否开启遮罩 if (this.attr("c")) { layer.load(2, { time : 10 * 1000, shade : [ 0.4, '#aeaeae' ] }); } var data=this.attr("data"); if(this.attr("json")){ data=JSON.stringify(data); } $.ajax({ type : this.attr("method"), url : url, data : data, async : this.attr("a"), timeout : 60000, contentType: this.attr("json")?'application/json;charset=utf-8':'application/x-www-form-urlencoded; charset=UTF-8', dataType:this.attr("json")?'json':'', success : function(result) { // 全局异常处理器发出的错误信息 if (result.status == "200") { $this.attr("result", result); layer.closeAll('loading'); if (callback != null) { callback($this,result); } } else if(result=="loginTimeOut..."){ layer.closeAll('loading'); layer.msg("登陆超时请重新登陆!!", { icon : 2 },function(){ MTools.toPredirect(basePath+"/common/toLogin"); }); } else { if(result.info){ layer.closeAll('loading'); layer.msg(result.info, { icon : 2,time:5000 }); } return null; } }, error : function(XMLHttpRequest, textStatus, errorThrown) { layer.closeAll('loading'); layer.msg("请求遇到问题-错误编号:" + XMLHttpRequest.status, { icon : 2 }); }, }); }, getRowCount : function() { if(this.attr("result").rows==null){ return 0; } return this.attr("result").rows.length; }, // * @param key列名 getValue : function(key) { var temp = ""; try { temp = eval("this.attr('result')." + key); } catch (e) { console.error('getValueg执行失败'); console.log(e); } return temp; }, getResult : function() { return this.attr('result'); }, /** * @param mapName游标名称 * @param index * 角标 * @param key列名 * @returns */ getString : function(index, key) { var temp = ""; try { temp = eval("this.attr('result').rows[" + index + "]." + key); if (!temp) { temp = ""; } } catch (e) { console.error('getString执行失败'); console.log(e); } return temp; }, /** * 获取一个Img 标签 * * @param index * 角标 * @param key列名 * @param w * 宽 * @param h * 高 * @returns */ getImg : function(index, key, w, h) { if (!w) { w = 120; } if (!h) { h = 100; } var temp = ""; try { temp = eval("this.attr('result').rows[" + index + "]." + key); if (!temp) { return ""; } } catch (e) { console.error('getImg执行失败'); console.log(e); } return ""; }, /** * * 根据传入的键值对 对象选取匹配结构的值返回 * * @param index * 角标 * @param key * 列名 * @param params * 需要被判断的键值对 * * @returns */ getSwitch : function(index, key, paramsStr) { var params = eval("(" + paramsStr + ")"); var temp = ""; try { temp = eval("this.attr('result').rows[" + index + "]."+key); // 没有获取到值 if (!temp) { // 是否存在默认值 if (params.empty) { return params.empty; } else { return ""; } } else { return params[temp]; } } catch (e) { console.error('getSwitch执行失败'); console.log(e); } return temp; }, getDate : function(index, key) { var temp = ""; try { temp = eval("this.attr('result').rows[" + index + "]['" + key + "']"); var date = new Date(temp); if (!temp) { return ""; } else { return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes(); } } catch (e) { console.error('getDate执行失败'); console.log(e); } return temp; }, getDateDD : function(index, key) { var temp = ""; try { temp = eval("this.attr('result').rows[" + index + "]['" + key + "']"); var date = new Date(temp); if(!temp){ return ""; }else{ return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate(); } } catch (e) { console.log('getDate执行失败'); } return temp; }, getDateDDHH : function(index, key) { var temp = ""; try { temp = eval("this.attr('result').rows[" + index + "]['" + key + "']"); var date = new Date(temp); if(!temp){ return ""; }else{ return (date.getMonth()+1)+"月"+(date.getDate())+"日"; } } catch (e) { console.log('getDate执行失败'); } return temp; } }); $.extend({ /** 初始化过程请求参数 */ AjaxProxy : function(option) { // 初始化参数 var initParam = { data : {}, a : true, c : true, method:'post', }; if (option == undefined) { var option = {}; } if (option.p) { initParam.data = $.extend(initParam.data, option.p); } initParam = $.extend(initParam, option); delete initParam.p; return $(initParam); } }); })(jQuery);