| /** | 
|  * ajax请求的代理类 1、系统在一般情况都使用本类进行ajax请求不在使用原生的或者jQuery的ajax 原因: | 
|  * 1、本类对异常信息,错误信息进行了信息提示处理 2、本类与服务器端的AjaxResult.java 对应,接收的数据格式是AjaxResult.java | 
|  * 的json格式数据 | 
|  * | 
|  * author :姜友瑶; 2016-06-02 | 
|  */ | 
| var AjaxProxy = { | 
|   | 
|     requst: function (option) { | 
|         // 是否开启遮罩 | 
|         var params = { | 
|             url: '', | 
|             type: 'post', | 
|             dataType: 'json', | 
|             data: {}, | 
|             cache: false, | 
|             async: true, | 
|             callback: null, | 
|             contentType: 'application/json;charset=utf-8', | 
|             processData: true, | 
|             showLoad: true, | 
|             showLoadTip: '提交中', | 
|         }; | 
|   | 
|         params = $.extend(params, option); | 
|         if (params.contentType && params.contentType.indexOf('application/json') > -1 && params.type == 'post') { | 
|             params.data = JSON.stringify(params.data) | 
|         } | 
|         let loading = {}; | 
|         if (params.showLoad) { | 
|             layer.open({type: 2}); | 
|         } | 
|   | 
|         return xhr = $.ajax({ | 
|             url: params.url, | 
|             type: params.type, | 
|             data: params.data, | 
|             dataType: params.dataType, | 
|             contentType: params.contentType, | 
|             processData: params.processData, | 
|             async: params.async, | 
|             success: function (data) { | 
|                 if (params.showLoad) { | 
|                     layer.closeAll(); | 
|                 } | 
|                 if (data.status && data.status != '200') { | 
|                     if (data.info) { | 
|                         layer.open({ | 
|                             content: data.info | 
|                             ,skin: 'msg' | 
|                             ,time: 2 //2秒后自动关闭 | 
|                         }); | 
|                     } | 
|                 } else { | 
|                     params.callback && params.callback(data); | 
|                 } | 
|             }, | 
|             error: function (XMLHttpRequest, textStatus, errorThrown) { | 
|                 layer.open({ | 
|                     content: '网络连接失败,请稍后重试!' | 
|                     ,skin: 'msg' | 
|                     ,time: 2 //2秒后自动关闭 | 
|                 }); | 
|                 if (params.showLoad) { | 
|                     layer.closeAll(); | 
|                 } | 
|             }, | 
|         }); | 
|     } | 
|   | 
| } | 
|   | 
|   | 
| var MTools = { | 
|   | 
|   | 
|     padLeftZero: function (str) { | 
|         return ('00' + str).substr(str.length) | 
|     }, | 
|   | 
|   | 
|     formatDate: function (date, fmt) { | 
|         var date = new Date(date); | 
|         if (/(y+)/.test(fmt)) { | 
|             fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) | 
|         } | 
|         let o = { | 
|             'M+': date.getMonth() + 1, | 
|             'd+': date.getDate(), | 
|             'h+': date.getHours(), | 
|             'm+': date.getMinutes(), | 
|             's+': date.getSeconds() | 
|         } | 
|         for (let k in o) { | 
|             if (new RegExp(`(${k})`).test(fmt)) { | 
|                 let str = o[k] + '' | 
|                 fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : this.padLeftZero(str)) | 
|             } | 
|         } | 
|         return fmt | 
|     }, | 
|   | 
|   | 
|   | 
|     /** 图片在上传的时候,需要在页面嵌套一个jspifram页面 页面处理完图片后服务器返回脚本代码控制父窗口显示图片。 */ | 
|     upolad : function(img_id, file_id) { | 
|         if ($("#" + file_id).val() == '') { | 
|             layer.open({ | 
|                 content: '请先选择要上传的文件!' | 
|                 ,skin: 'msg' | 
|                 ,time: 2 //2秒后自动关闭 | 
|             }); | 
|             return; | 
|         } | 
|         $("#" + img_id).attr("src", basePath + "/plat/images/loading.gif"); | 
|         $("#" + img_id).show(); | 
|     }, | 
|   | 
|   | 
|   | 
|   | 
|     /** | 
|      * 初始化文件上传 | 
|      * 需要传一个input框的选择器,支持多个文件同时初始化 | 
|      * 编辑时input框value值应该是图片是src路径,这样控件会自动创建图片回显 | 
|      * 实现原理:在页面创建一个ifram用于提交文件,每个input框会对应的创建一个隐藏input,把原始 | 
|      * input的值复制给隐藏input这个input会用于最后的提交。 | 
|      * 还会创建一个form表单,表单中有一个文件选择框。 | 
|      * 点击原始input会触发文件选择器的点击事件弹出文件选择框。 | 
|      * 文件上传后会改变隐藏input框架的value值。 | 
|      * by jyy | 
|      */ | 
|     initImgUpload:function(selected){ | 
|   | 
|         //文件类型 | 
|         var fileTypes="gif,jpg,jpeg,png,bmp"; | 
|         //最大5M | 
|         var maxSize=5*1024*1024; | 
|   | 
|         //在界面创建一个iframe | 
|         var iframe = $('<iframe name="blankFrame" ></iframe>'); | 
|         iframe.css("display", "none"); | 
|         $("body").append(iframe); | 
|         $(selected).each(function(i){ | 
|             //文件类型 | 
|             var fileTypes="gif,jpg,jpeg,png,bmp"; | 
|             var $input=$(this); | 
|             var id=$input.attr("id"); | 
|             var hideInputId=id+"_hide"; | 
|             if($input.data("filetypes")){ | 
|                 fileTypes=$input.data("filetypes"); | 
|             } | 
|             //创建一个隐藏控件,如果input有值创建一个img | 
|             if($input.val()!=null &&$input.val().length>0 ){ | 
|                 $input.next("a").after("<img onclick='MTools.removeUpload(this,\""+hideInputId+"\")' id='"+$input.attr("id")+"_img'  class='loadingbig' src='"+$input.val()+"' />") | 
|                 $input.before("<input   name='"+$input.attr("name")+"' value='"+$input.val()+"'   id='"+$input.attr("id")+"_hide'  style='display:none;' /> ") | 
|             }else{ | 
|                 $input.before("<input   name='"+$input.attr("name")+"'   id='"+hideInputId+"'  style='display:none;' /> ") | 
|             } | 
|             //删除控件本身的name属性 | 
|             $input.removeAttr("name"); | 
|             //添加点form表单 | 
|             var form = $('<form method="post" enctype="multipart/form-data" target="blankFrame"  style="display:none;" ></form>') | 
|             form.attr("action",basePath+"/admin/uploadFile/doUpload?callBack=MTools.uploadCallBack&inputId="+id); | 
|             //创建一个file文件 | 
|             var file=$('<input   type="file" multiple name="file-1" />'); | 
|             form.append(file); | 
|             //文件改变就提交 | 
|             file.change(function(){ | 
|                 var filePath = file.val(); | 
|                 var fileName = filePath.substring(filePath.lastIndexOf("\\") + 1, | 
|                     filePath.length); | 
|                 //文件类型判断 | 
|                 var photoExt=fileName.substr(fileName.lastIndexOf(".")+1).toLowerCase();//获得文件后缀名 | 
|                 if(fileTypes.indexOf(photoExt)<0){ | 
|   | 
|                     layer.open({ | 
|                         content: "允许的文件类型是:"+fileTypes | 
|                         ,skin: 'msg' | 
|                         ,time: 2 //2秒后自动关闭 | 
|                     }); | 
|   | 
|                     return false; | 
|                 } | 
|   | 
|                 var obj=file.get(0); | 
|                 var fileSize = 0; | 
|                 fileSize = obj.files[0].size; | 
|                 if(fileSize>=maxSize){ | 
|                     layer.open({ | 
|                         content: "照片最大尺寸为"+maxSize/1024+"KB,请重新选择文件!" | 
|                         ,skin: 'msg' | 
|                         ,time: 2 //2秒后自动关闭 | 
|                     }); | 
|   | 
|                     return false; | 
|                 } | 
|                 //校验通过开始上传 | 
|   | 
|                 //改变输入框字符 | 
|                 $input.val(fileName); | 
|                 //创建加载图 | 
|                 if($input.next().next().is("img")){ | 
|                     $input.next().next().attr("src" ,basePath+"/images/loadingbig.gif"); | 
|                 }else{ | 
|                     $input.next("a").after("<img onclick='MTools.removeUpload(this,\""+hideInputId+"\")'  class='loadingbig' src='"+basePath+"/images/loadingbig.gif' />") | 
|                 } | 
|                 //提交表单 | 
|                 form.submit(); | 
|             }); | 
|             // 绑定事件 | 
|             $input.click(function(){ | 
|                 file.trigger("click"); | 
|             }); | 
|             $input.next("a").click(function(){ | 
|                 file.trigger("click"); | 
|             }); | 
|             //把组件添加到文档中 | 
|             $("body").append(form); | 
|         }); | 
|   | 
|   | 
|     }, | 
|   | 
|     /** | 
|      * 删除上传图片 | 
|      */ | 
|     removeUpload:function(node,inputId){ | 
|         $(node).remove(); | 
|         var textId=inputId.substring(0,inputId.indexOf("_")); | 
|         $("#"+textId).val(""); | 
|         $("#"+inputId).val(""); | 
|   | 
|     }, | 
|     /** | 
|      * 上传服务器回调函数 | 
|      */ | 
|     uploadCallBack:function(id,path){ | 
|         console.log(path); | 
|         $("#"+id+"_hide").val(path); | 
|         $("#"+id).next().next().attr("src" ,path); | 
|         $("#showImgUrl").hide(); | 
|     }, | 
|   | 
|   | 
|   | 
|     /** 页面定向 */ | 
|     redirect : function(url) { | 
|         window.location.href = url; | 
|     }, | 
|   | 
|   | 
|   | 
|   | 
| } |