/* ----------------- 通用ajax ----------------- */ /** * ajaxUrl: ajax的URl * returnData: ajajx传送的参数 * types: ajajx 类型 默认为post * async: 使用同步的方式, true:为异步方式 false:同步 默认true * isparse: 是否使用 JSON.parse(JSON.stringify())转换 true:使用, false:不使用 默认true * dataType 数据类型 默认json * contentType: 发送信息至服务器时内容编码类型 application/x-www-form-urlencoded 、application/json,默认 application/x-www-form-urlencoded * showload: 是否显示正在加载图片 默认false * closeLoad: 是否在ajax成功或失败后关闭加载图片 默认true * loadbox: 正在加载在哪个div显示 为空时直接弹出 * loadtime: 加载延迟时间 默认320秒 * ispage: 是否分页 默认false * pagebox: 分页所在的div * countsData: 分页数据的总数的字段 默认counts * currentPages:当前页数 默认1 * linePages: 每页显示的条数 默认20条 * showCounts 是否显示分页统计 默认false * disabelBox: 点击后禁用的按钮 * success: 成功后的回调函数 * erro: 失败后的回调函数 */ var ajaxFns=function(params,ajaxUrl){ var defaultParams = { returnData:{}, types:"post", async:true, isparse:true, dataType:"json", contentType:"application/x-www-form-urlencoded", showload:false, closeLoad:true, loadbox:"", loadtime:320, ispage:false, pagebox:"", countsData:"counts", currentPages:1, linePages:20, showCounts:false, disabledBox:"", success:function(){}, erro:"", }; var settings = {}; jQuery.extend(settings,defaultParams,params); var returnData=settings.returnData var types=settings.types var async=settings.async var isparse=settings.isparse var dataType=settings.dataType var contentType=settings.contentType var showload=settings.showload var closeLoad=settings.closeLoad var loadbox=settings.loadbox var loadtime=settings.loadtime var ispage=settings.ispage var pagebox=settings.pagebox var countsData=settings.countsData var currentPages=settings.currentPages var linePages=settings.linePages var showCounts=settings.showCounts var disabledBox=settings.disabledBox var success=settings.success var erro=settings.erro var ajaxurls=checkNull(ajaxUrl)!=""?ajaxUrl.indexOf("?")>=0?ajaxUrl+"&v1="+Timestamp():ajaxUrl+"?v1="+Timestamp():""; //ajax url var isload="true";; //是否正在加载数据 //s.returnData=typeof(s.returnData)!="object"|| Object.getOwnPropertyNames(s.returnData).length==0?{}:s.returnData; var returnDatas=isparse?JSON.parse(JSON.stringify(returnData)):returnData; /* 显示正在加载 图标 */ if(showload){ setTimeout(function(){ if(isload=="true"){ if(loadbox==""){ layer.load(0, { shadeClose: false, shade: [0.1,"#333"] //0.1透明度的白色背景 }); //0代表加载的风格,支持0-2 }else{ $(loadbox).html('<span class="loadbox"><p class="layui-layer-content layui-layer-loading0"><i class="layui-icon layui-anim layui-anim-rotate layui-anim-loop"></i></p></span>') } } },loadtime) } disabledBox!=""?$(disabledBox).attr("disabled",true):""; //禁用点击的按钮 $.ajax({ url: ajaxurls, data: returnDatas, type: types, async: async, dataType: dataType, contentType:contentType, success: function (data) { isload="false"; showload && closeLoad?layer.closeAll('loading'):""; /* 分页 */ if(ispage && pagebox!=""){ /* 判断总数字段值 */ var countsDatas=0; if(countsData.indexOf(".")==-1){ countsDatas=checkNull(data[countsData])==""?0:data[countsData]; } if(countsData.indexOf(".")>=0){ var countsArry=countsData.split("."); for(var i=0;i<countsArry.length;i++){ if(i==0){ countsDatas=checkNull(data[countsArry[i]])==""?0:data[countsArry[i]] }else{ countsDatas=checkNull(countsDatas[countsArry[i]])==""?0:countsDatas[countsArry[i]] } } } $(pagebox).pages({ counts:countsDatas, linePages:linePages, currentPage:currentPages, showCounts:showCounts, }) } disabledBox!=""?$(disabledBox).attr("disabled",false):""; success(data); }, erro: function (XMLHttpRequest, textStatus, errorThrown) { showload && closeLoad?layer.closeAll('loading'):""; disabledBox!=""?$(disabledBox).attr("disabled",false):""; isload="false"; erro(); } }); }