/**
* 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.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("")
$input.before(" ")
}else{
$input.before(" ")
}
//删除控件本身的name属性
$input.removeAttr("name");
//添加点form表单
var form = $('