function customAjax(url, Id, data) {
var ajax = $.ajax({
type: 'get',
url: url,
async: 'false',
dataType: "html",
timeout: 20000,
xhrFields: {
withCredentials: true
},
success: function (data) {
$("#" + Id + "").empty();
$("#" + Id + "").html(data);
},
error: function (err) {
}
});
}
function SetDateRange(startElem, endElem) {
layui.use(['laydate'], function () {
//日期控件渲染
var laydate = layui.laydate;
var start = laydate.render({
elem: startElem,
btns: ['clear', 'confirm'],
done: function (value, datas) {
if (value != "") {
end.config.min.year = datas.year;
end.config.min.month = datas.month - 1;
end.config.min.date = datas.date;
}
}
});
var end = laydate.render({
elem: endElem,
btns: ['clear', 'confirm'],
done: function (value, datas) {
if (value != "") {
start.config.max.year = datas.year;
start.config.max.month = datas.month - 1;
start.config.max.date = datas.date;
}
}
});
});
}
/*
* 获取获取地址栏参数
* 使用:GetQueryString("参数名1")
*/
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
//表单查看时,禁用文本框
function setDisabledToForm(formId) {
$("#" + formId + " input").attr("disabled", "disabled").addClass("disabled");
$("#" + formId + " select").attr("disabled", "disabled").addClass("disabled");
$("#" + formId + " textarea").attr("disabled", "disabled").addClass("disabled");
$("#" + formId + " a").addClass("layui-btn-disabled");
$("#" + formId + " button").addClass("layui-btn-disabled");
}
//转化日期
function getTimeByStampChinese(str, format) {
if (str == null || str == "")
return "";
if (str.indexOf("Date(") >= 0) {
str = parseInt(str.substr(6, 13));
}
var date = new Date(str);
Y = date.getFullYear();
M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
D = date.getDate().toString().length < 2 ? "0" + date.getDate() : date.getDate();
h = date.getHours().toString().length < 2 ? "0" + date.getHours() : date.getHours();
m = date.getMinutes().toString().length < 2 ? "0" + date.getMinutes() : date.getMinutes();
s = date.getSeconds().toString().length < 2 ? "0" + date.getSeconds() : date.getSeconds();
if (format == "ymd") {
return Y + '年' + M + '月' + D + "日";;
}
else if (format == "ym") {
return Y + '年' + M + '月';
}
else if (format == "ymdhms") {
return Y + '年' + M + '月' + D + '日' + h + ':' + m + ':' + s;
}
else if (format == "ymdhm") {
return Y + '年' + M + '月' + D + '日' + h + ':' + m;
}
else {
return Y + '年' + M + '月' + D + '日' + h + ':' + m + ':' + s;
}
}
//class名
//e 控件id或class type:控件类型
function setCtrDisabled(e, type) {
if (type && type != "") {
$(e + " " + type).attr("disabled", "disabled");
} else {
$(e + " input").attr("disabled", "disabled");
$(e + " select").attr("disabled", "disabled");
$(e + " textarea").attr("disabled", "disabled");
$(e + " a").addClass("layui-btn-disabled");
$(e + " button").addClass("layui-btn-disabled");
$(e + " ul").attr("disabled", "disabled");
}
}
/*
* formId 最外层表单名称
* element
*/
function setFormDisabled(formId) {
var data = $(formId).find($(":input"));
$(data).each(function (index, item) {
if (item.nodeName == "SELECT") {
$(formId).find("div").css("pointer-events", "none");
}
$(this).css("pointer-events", "none");
$(this).attr("disabled", "true");
});
}
function setFormElement(element) {
$(element).css("pointer-events", "none");
}
function setDisableBtn(element) {
$(element).css("pointer-events", "none");
$(element).addClass("layui-btn-disabled");
}
//去除按钮不可用
function removeDisableBtn(element) {
$(element).removeAttr("style");
$(element).removeClass("layui-btn-disabled");
}
/*通用加载下拉框*/
//ids: html页面上需要填充数据的select的id
//codeType: 字典类型
//isAll:是否自动加个全部的选项(默认true)
//codes:指定的code(多个逗号隔开)
function initSelectbox(ids, codeType, isAll, codes) {
if (!ids) {
return;
}
var ids = ids.split(',');
for (var i = 0; i < ids.length; i++) {
$("#" + ids[i]).html("");
}
var url = '/ListCode/GetListCode?rdo=' + Math.random();
$.ajax({
type: "GET",
url: url,
contentType: "application/json;charset=utf-8",
data: { CodeType: codeType, Codes: codes },
async: false,
success: function (data) {
var list = data;
var options = "";
if (typeof isAll == 'undefined' || isAll == true) {
options = "";
}
if (list == null || list.length == 0) {
for (var i = 0; i < ids.length; i++) {
$("#" + ids[i]).append(options);
}
renderSelect();
return;
}
for (var i = 0; i < ids.length; i++) {
var ddl = $("#" + ids[i]);
if (ddl) {
for (var k = 0; k < list.length; k++) {
options += "";
}
ddl.append(options);
renderSelect();
}
}
}
});
}
/*
* 重新渲染下拉框
*/
function renderSelect(ctrl) {
layui.use('form', function () {
var form = layui.form;
if (typeof ctrl == 'undefined' || ctrl == "" || ctrl == null) {
form.render("select");
} else {
form.render(ctrl);
}
});
}
/*请求后台方法*/
function AjaxPost(url, data, appendDiv, successFun, errorFun, aysnc) {
var index = 0;
//是否异步(如果没有传值默认异步)
if (aysnc == undefined || aysnc == null) {
aysnc = true;
}
$.ajax({
url: url,
data: data,
dataType: 'json',
type: 'post',
async: aysnc,
beforeSend: function (data) {
//开启遮罩层
LoadingModelPage(true, appendDiv);
},
success: function (data) {
successFun(data);
},
error: function (e) {
errorFun(e);
},
complete: function (XMLHttpRequest, textStatus) {
//关闭遮罩层
LoadingModelPage(false, appendDiv);
}
});
}
/*请求后台方法*/
function AjaxPost(url, data, appendDiv, successFun, errorFun, aysnc, requestGet) {
var index = 0;
if (requestGet) {
requestGet = 'get';
} else {
requestGet = 'post';
}
//是否异步(如果没有传值默认异步)
if (aysnc == undefined || aysnc == null) {
aysnc = true;
}
$.ajax({
url: url,
data: data,
dataType: 'json',
type: requestGet,
async: aysnc,
beforeSend: function (data) {
//开启遮罩层
LoadingModelPage(true, appendDiv);
},
success: function (data) {
successFun(data);
},
error: function (e) {
errorFun(e);
},
complete: function (XMLHttpRequest, textStatus) {
//关闭遮罩层
LoadingModelPage(false, appendDiv);
}
});
}
/*
* 编辑的时候给表单赋值
* formId:表单ID
* data:json字符串
*/
function setValueToForm(formId, data) {
//data = JSON.parse(data);//根据ID获取对象后已是JSON格式,不需要转换JSON
//给input文本框的赋值
if ($("#" + formId + " input").length > 0) {
$("#" + formId + " input").each(function () {
try {
//新增的时候,主键ID或者没有的字段会报错。
if ($(this).attr("type") == "text" || $(this).attr("type") == "tel" || $(this).attr("type") == "number" || $(this).attr("type") == "email" || $(this).attr("type") == "hidden") {
if ($(this).attr("data-type") == "date") {
var time = getTimeByStamp(data[$(this).attr("id")], 'ymd');
$(this).val(time);
}
else if ($(this).attr("dt-type")) {
var time = getTimeByStamp(data[$(this).attr("id")], $(this).attr("dt-type"));
$(this).val(time);
}
else {
$(this).val(data[$(this).attr("id")]);
}
}
//处理开关
if ($(this).attr("type") == "checkbox" && $(this).attr("class") == "swicth") {
if (data[$(this).attr("id")] == null || data[$(this).attr("id")] == "" || data[$(this).attr("id")] == 0) {
//无效
$(this).prop("checked", false);
}
else {
$(this).prop("checked", true);
}
renderSelect('checkbox');
}
if ($(this).attr("type") == "radio") {
if ($(this).val() == data[$(this).attr("name")]) {
$(this).attr("checked", "");
} else {
$(this).removeAttr("checked");
}
renderSelect('radio');
}
} catch (e) {
}
});
}
//给select下拉框赋值
if ($("#" + formId + " select").length > 0) {
$("#" + formId + " select").each(function () {
var id = $(this).attr("id");
$(this).find("option").each(function () {
try {
$(this).attr("selected", false);
if ($(this).val() == data[id]) {
$(this).attr("selected", true);
}
} catch (e) {
}
});
});
setTimeout(function () {
renderSelect();
}, 200);
}
//给textarea文本域赋值
if ($("#" + formId + " textarea").length > 0) {
$("#" + formId + " textarea").each(function () {
try {
$(this).val(data[$(this).attr("id")]);
} catch (e) {
}
});
}
}
function getFormatDate(str, format) {
if (!str || str.length == 0) {
str = new Date();
}
var year = str.getFullYear();
var month = str.getMonth() + 1 < 10 ? "0" + (str.getMonth() + 1) : str.getMonth() + 1;
var date = str.getDate() < 10 ? "0" + str.getDate() : str.getDate();
var hour = str.getHours() < 10 ? "0" + str.getHours() : str.getHours();
var minute = str.getMinutes() < 10 ? "0" + str.getMinutes() : str.getMinutes();
var second = str.getSeconds() < 10 ? "0" + str.getSeconds() : str.getSeconds();
if (format == "ymd") {
return year + "-" + month + "-" + date;
} else if (format == "y") {
return year;
} else if (format == "m") {
return month;
}
else if (format == "d") {
return date;
}
else if (format == "ymdhms") {
return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
}
}
//将时间撮转成日期时间格式
//str 时间撮
//format 日期时间格式:如年月日用:ymd ; 年月日时分秒用:ymdhms;
function getTimeByStamp(str, format) {
if (str == null || str == "")
return "";
if (str.indexOf("Date(") >= 0) {
str = parseInt(str.substr(6, 13));
}
var date = new Date(str);
Y = date.getFullYear();
M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
D = date.getDate().toString().length < 2 ? "0" + date.getDate() : date.getDate();
h = date.getHours().toString().length < 2 ? "0" + date.getHours() : date.getHours();
m = date.getMinutes().toString().length < 2 ? "0" + date.getMinutes() : date.getMinutes();
s = date.getSeconds().toString().length < 2 ? "0" + date.getSeconds() : date.getSeconds();
if (format == "ymd") {
return Y + '-' + M + '-' + D;
}
else if (format == "ym") {
return Y + '-' + M;
}
else if (format == "ymdhms") {
return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
}
else if (format == "ymdhm") {
return Y + '-' + M + '-' + D + ' ' + h + ':' + m;
}
else {
return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
}
}
//图片信息转换
function getPicture(value) {
if (value == null) {
return '';
}
var fileInfos = JSON.parse(value);
return '';
}
//关闭当前弹出框
function closeThisPop() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
}
//list页面批量删除的时候,调用这个方法时传参数过来
function search(isList) {
if (typeof isList != 'undefined') {
isReload = false;
}
else {
isReload = true;
}
$("#search").trigger("click");
}
//控制控件显示或者隐藏
//e1 控件名
//display true或false
function ctrlDisOrHidd(el, display) {
if (display == true) {
$(el).show();
} else {
$(el).hide();
}
}
//控制只能输入整数
function allowNumber(el) {
$(el).keyup(function () {
var tmptxt = $(this).val();
$(this).val(tmptxt.replace(/\D|^0/g, ''));
}).bind("paste", function () {
var tmptxt = $(this).val();
$(this).val(tmptxt.replace(/\D|^0/g, ''));
}).css("ime-mode", "disabled");
}
//控制只能输入数字和小数点
function allowNumAndDec(el) {
$(el).keyup(function () {
num($(this)[0]);
}).bind("paste", function () {
num($(this)[0]);
}).css("ime-mode", "disabled"); //CSS设置输入法不可用
}
function num(obj) {
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个, 清除多余的
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
obj.value = obj.value.replace(/^(0)*([1-9]+\..*)$/, '$2'); //删除整数位的冗余0
obj.value = obj.value.replace(/^(0)*([0]{1}\..*)$/, '$2'); //删除整数位的冗余0
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
}
function allowNumAndDecMoney(el) {
$(el).keyup(function () {
num1($(this)[0]);
}).css("ime-mode", "disabled"); //CSS设置输入法不可用
}
function num1(obj) {
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
setTimeout(function () {
if (!reg.test(obj.value)) {
console.log(obj.value)
obj.value = ''
} else {
console.log(obj.value)
}
}, 2000);
}
// 去除undefined 空值 空格等
function trimUndefined(str) {
if (str == undefined) {
return ""
} else if (str == "undefined") {
return ""
} else if (str == null) {
return ""
} else if (str == "null") {
return ""
} else {
return str
}
}
// 去除undefined 空值 空格等
function requiredCheck(str) {
if (trimUndefined(str).length > 0) {
return true;
}
return false;
}
//layui table表格的单元行点击事件
//子页面用的时候,只需要判断layTableLineData这个值是否有就行了
function layTableLineClick(e, jsonStr) {
jsonStr = unescape(jsonStr);
jsonStr = JSON.parse(jsonStr);
delete jsonStr.LAY_TABLE_INDEX;
layTableLineData = jsonStr;
$(e).parent().find("tr:not(.last)").removeAttr('style');
//备用颜色值:#FFE48D #EAF2FF
$(e).css("background-color", "#b2f0e8");
}
//判断是否是IE浏览器 返回的值为-1 说明不是ie浏览器
function IEVersion() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if (isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7) {
return 7;
} else if (fIEVersion == 8) {
return 8;
} else if (fIEVersion == 9) {
return 9;
} else if (fIEVersion == 10) {
return 10;
} else {
return 6;//IE版本<=7
}
} else if (isEdge) {
return 'edge';//edge
} else if (isIE11) {
return 11; //IE11
} else {
return -1;//不是ie浏览器
}
}
/**
* 将form表单中的字段组合成json串。
* @formId {string} 查询表单的ID
* @others {json} 其它的json值
*/
function fromStrToJson(formId, others) {
var array = $("#" + formId).serializeArray();
if (array.length > 0) {
var newJson = {};
array.forEach(function (value, key, map) {
newJson[value.name] = $.trim(value.value);
});
if (others != "") {
newJson = $.extend(others, newJson);
}
return newJson;
}
else {
return "";
}
}
/**
* 单文件或单图片上传
* @param {bool} 类型,是否自动上传,false的场合需要填入"bindAction"参数
* @param {string} 页面上的选择文件或图片的元素ID
* @param {string} 后台接口地址
* @param {string} 类型,是图片还是文件,值为file/images
* @param {string} 页面上触发上传的元素ID(如保存)
* @param {function} 选择文件后触发的方法,会回传两个参数(file, result),file是文件流,result是base64的图片(如果是图片)
* @param {function} 上传成功后的回调方法,返回json参数。
* @param {function} 上传失败后的回调方法,无返回参数。
* @param {int} 限制上传的文件或者图片大小,只能输入数字,传1代表只能上传1M的文件。
* @param {string} 限制上传的文件或者图片的后缀名,不传就默认。
*/
function fileAndImgUpload(auto, elemId, url, type, bindAction, selectFun, doneSuccessFun, doneErrorFun, limitSize, extname) {
var accept = "images";
var exts = "jpg|png|gif|bmp|jpeg";
//默认图片
if (type == "file") {
accept = "file";
exts = "doc|docx|zip|rar|7z|xls|xlsx|txt|pdf";
}
//拓展名
if (extname) {
exts = extname;
}
layupload.render({
elem: '#' + elemId,
url: url,
accept: accept,
exts: exts,
multiple: false,
auto: auto,
size: limitSize * 1024,//单位kb
bindAction: '#' + bindAction,
choose: function (obj) {
//读取本地文件
obj.preview(function (index, file, result) {
selectFun(file, result);
});
},
done: function (res, index, upload) {
if (res.code == 1) {
//上传成功
doneSuccessFun(res);
return;
}
this.error();
},
error: function () {
doneErrorFun();
}
});
}
/**
* 下拉框选择树形结构列表
* @param {id} ztree对象的id
* @param {url} ztree对象的取值Url
* @param {param} ztree对象的取值条件
* @param {callback} 返回的值(onclick)
* @param {checkenable} 是否有复选框
* @param {selectNodeID} 默认选中的节点ID
*/
function ZtreeList(id, url, param, callback, checkenable, selectNodeID) {
$.ajax({
url: url,
data: param,
type: "POST",
aysnc: false,
success: function (data) {
if (data.length > 0) {
var setting = {
check: {
enable: checkenable
},
data: {
simpleData: {
enable: true,
//主键ID
idKey: "id",
//parentId
pIdKey: "pId",
//跟节点的parentId值(可以是0,也可以是其它值,但是传出来的数据的根节点的值也一定要是跟设置的值相等。)
rootPId: 0
},
key: {
icon: "icon",
checked: "IsChecked"
}
},
callback: {
//每一项的点击事件
onClick: callback,
//默认选中
onNodeCreated: function (event, treeId, treeNode) {
if (selectNodeID != null && selectNodeID != '') {
if (treeNode.id.indexOf(selectNodeID) >= 0) {
$("#" + treeNode.tId + "").find(">a").addClass("curSelectedNode");
$("#treeName").val(treeNode.name); //保存选中节点名称的input
$("#treeId").val(id);//保存选中节点id的input
}
}
},
}
};
//拿到数据初始化树形控件
var treeObj = $.fn.zTree.init($("#" + id), setting, data);
//展开所有(参数false为不展开所有)
treeObj.expandAll(true);
setSize();
arrowClick();
}
},
error: function (e) {
console.log(e);
}
});
}
/**
* 点击下拉框显示树形离开隐藏树形
* @param {id} id
* @param {zNodes} 要传的数据
* @param {callback} 返回的值
*/
function SelectZtree(eventId, showId, hideId) {
$(eventId).click(function () {
if (!$(this).parent().find(showId).is(":animated"))
$(this).parent().find(showId).animate({ "height": "toggle" }, 300);
});
$(hideId).hover(function () { }, function () {
$(this).find(showId).hide();
});
}
//遮罩层
function LoadingModelPage(bFlg, appendDiv) {
if (appendDiv == undefined) appendDiv = "body";
if (bFlg == false) {
$("#loadingModelPage").remove();
return;
}
var is = $("#loadingModelPage").length > 0;
if (is == false) {
var load = '
数据正在处理中,请稍等。
数据正在处理中,请稍等。