(function() {
let modelCache = {},
conditions = [],
conTmp = [],
checkRun = function() {
for (let c = 0, cl = conditions.length, deps, callback, isOk, isRun; c < cl; c++) {
deps = conditions[c].deps;
callback = conditions[c].callback;
isRun = conditions[c].isRun;
isOk = true;
for (let d = 0, dl = deps.length; d < dl; d++) {
if (!modelCache.hasOwnProperty(deps[d])) {
isOk = false;
break;
} else if (!modelCache[deps[d]].isRun) {
isOk = false;
break;
}
}
if (isOk && !isRun) {
callback();
conditions[c].isRun = true;
if (conditions[c].hasOwnProperty('model')) {
modelCache[conditions[c].model].isRun = true;
}
} else {
conTmp.push(conditions[c])
}
}
conditions = [].concat(conTmp);
conTmp.length = 0;
};
window.reachJS = function(model) {
if (!modelCache.hasOwnProperty(model)) {
modelCache[model] = {isRun : true};
}
checkRun();
};
window.runAs = function(deps, callback, model) {
let conTmp = {
deps : deps,
callback : callback,
isRun : false
};
if (model) {
if (!modelCache.hasOwnProperty(model)) {
modelCache[model] = {isRun : false};
conTmp.model = model;
}
}
conditions.push(conTmp);
conditions.sort(function(a, b) {
return a.deps.length - b.deps.length;
});
checkRun();
}
})();
let HTTP_BROWSER = {};
let HTTP_USERAGENT = navigator.userAgent.toLowerCase();
http_get_browser_version({'ie': 'msie', 'firefox': '', 'chrome': '', 'opera': '', 'safari': '', 'mozilla': '', 'webkit': '', 'maxthon': '', 'qq': 'qqbrowser', 'rv': 'rv'});
if (HTTP_BROWSER.safari) {
HTTP_BROWSER.firefox = true;
}
HTTP_BROWSER.opera = HTTP_BROWSER.opera ? opera.version() : 0;
let AJAX_JSLOADED = [];
let AJAX_EVALSCRIPTS = [];
/**
* 根据ID获取对象
*/
function base_get_obj(id) {
return !id ? null : document.getElementById(id);
}
/**
* 是否为undefined
*/
function base_is_undefined(variable) {
return typeof variable == 'undefined' || variable === null || variable === '';
}
/**
* 是否为undefined
*/
function base_is_undefined_2(variable) {
return typeof variable == 'undefined' || variable === null;
}
/**
* 添加事件
*/
function event_attach(obj, evt, func, eventobj) {
eventobj = !eventobj ? obj : eventobj;
if (obj.addEventListener) {
obj.addEventListener(evt, func, false);
} else if (eventobj.attachEvent) {
obj.attachEvent('on' + evt, func);
}
}
/**
* 移除事件
*/
function event_detach(obj, evt, func, eventobj) {
eventobj = !eventobj ? obj : eventobj;
if (obj.removeEventListener) {
obj.removeEventListener(evt, func, false);
} else if (eventobj.detachEvent) {
obj.detachEvent('on' + evt, func);
}
}
/**
* 获取事件对象
*/
function event_get_evt() {
if (document.all) return window.event;
let func = event_get_evt.caller;
while (func != null) {
let arg0 = func.arguments[0];
if (arg0) {
if ((arg0.constructor === Event || arg0.constructor === MouseEvent) || (typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
return arg0;
}
}
func = func.caller;
}
return null;
}
/**
* 阻止事件对象的默认行为及冒泡传播
*/
function event_stop_propagation(event, preventDefault, stopPropagation) {
preventDefault = base_is_undefined(preventDefault) ? 1 : preventDefault;
stopPropagation = base_is_undefined(stopPropagation) ? 1 : stopPropagation;
let e = event ? event : window.event;
if (!e) {
e = event_get_evt();
}
if (!e) {
return null;
}
if (preventDefault) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
if (stopPropagation) {
if (e.stopPropagation) {
e.stopPropagation();
} else {
e.cancelBubble = true;
}
}
return e;
}
/**
* 浏览器版本计算
*/
function http_get_browser_version(types) {
let other = 1;
let i;
for (i in types) {
let v = types[i] ? types[i] : i;
let ver;
if (HTTP_USERAGENT.indexOf(v) != -1) {
let re = new RegExp(v + '(\\/|\\s|:)([\\d\\.]+)', 'ig');
let matches = re.exec(HTTP_USERAGENT);
ver = matches != null ? matches[2] : 0;
other = ver !== 0 && v != 'mozilla' ? 0 : other;
} else {
ver = 0;
}
eval('HTTP_BROWSER.' + i + '= ver');
}
HTTP_USERAGENT.other = other;
}
/**
* 添加url参数
*
* @param url 原始url
* @param params 链接参数数组,如 ['name=jianbao','age=18']
*/
function http_add_url_params(url, params) {
params = params.join('&');
url += (url.indexOf('?') == -1 ? '?' : '&') + params;
return url;
}
/**
* url 调整
* @param url 网址
* @param win 窗体对象,可选值:window|parent|top
*/
function http_goto(url, win) {
let _win = win ? win : window;
_win.location.href = url;
}
/**
* 是否在数组中
*/
function list_in_array(needle, haystack) {
if (typeof needle == 'string' || typeof needle == 'number') {
for (let i in haystack) {
if (haystack[i] == needle) {
return true;
}
}
}
return false;
}
/**
* 生成guid值
*/
function string_guid() {
let S4 = function() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4());
}
/**
* 计算字符串的hash值
*/
function string_hash(string, length) {
length = length ? length : 32;
let start = 0;
let i = 0;
let result = '';
let filllen = length - string.length % length;
for (i = 0; i < filllen; i++) {
string += "0";
}
while (start < string.length) {
result = string_xor(result, string.substr(start, length));
start += length;
}
return result;
}
/**
* 字符串移位运算
*/
function string_xor(s1, s2) {
let s = '';
let hash = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
let max = Math.max(s1.length, s2.length);
for (let i = 0; i < max; i++) {
let k = s1.charCodeAt(i) ^ s2.charCodeAt(i);
s += hash.charAt(k % 52);
}
return s;
}
/**
* 与php的strlen方法用法一样
*/
function string_length(string) {
let str = string + '';
let i = 0,
chr = '',
lgth = 0;
let getWholeChar = function(str, i) {
let code = str.charCodeAt(i);
let next = '', prev = '';
if (0xD800 <= code && code <= 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)
if (str.length <= (i + 1)) {
throw 'High surrogate without following low surrogate';
}
next = str.charCodeAt(i + 1);
if (0xDC00 > next || next > 0xDFFF) {
throw 'High surrogate without following low surrogate';
}
return str.charAt(i) + str.charAt(i + 1);
} else if (0xDC00 <= code && code <= 0xDFFF) { // Low surrogate
if (i === 0) {
throw 'Low surrogate without preceding high surrogate';
}
prev = str.charCodeAt(i - 1);
if (0xD800 > prev || prev > 0xDBFF) { //(could change last hex to 0xDB7F to treat high private surrogates as single characters)
throw 'Low surrogate without preceding high surrogate';
}
return false; // We can pass over low surrogates now as the second component in a pair which we have already processed
}
return str.charAt(i);
};
for (i = 0, lgth = 0; i < str.length; i++) {
if ((chr = getWholeChar(str, i)) === false) {
continue;
} // Adapt this line at the top of any loop, passing in the whole string and the current iteration and returning a variable to represent the individual character; purpose is to treat the first part of a surrogate pair as the whole character and then ignore the second part
lgth++;
}
return lgth;
}
/**
* Ajax类
*
* @param recvType 返回类型
* @param waitId loading对象ID
*/
function Class_Ajax(recvType, waitId) {
let ajax = {};
ajax.loading = '请稍候...';
ajax.recvType = recvType ? recvType : 'XML';
ajax.waitId = waitId ? base_get_obj(waitId) : null;
ajax.resultHandle = null;
ajax.sendString = '';
ajax.targetUrl = '';
ajax.callback = null;
ajax.setLoading = function(loading) {
if (!base_is_undefined_2(loading)){
ajax.loading = loading;
}
};
ajax.setRecvType = function(recvtype) {
ajax.recvType = recvtype;
};
ajax.setWaitId = function(waitId) { // waitId 即可是对象ID,也可是对象
ajax.waitId = typeof waitId == 'object' ? waitId : base_get_obj(waitId);
};
ajax.createXMLHttpRequest = function() {
let request = false;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
if (request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
let versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for (let i = 0; i < versions.length; i++) {
try {
request = new ActiveXObject(versions[i]);
if (request) {
return request;
}
} catch (e) {}
}
}
return request;
};
ajax.XMLHttpRequest = ajax.createXMLHttpRequest();
ajax.showLoading = function() {
if (ajax.waitId && (ajax.XMLHttpRequest.readyState != 4 || ajax.XMLHttpRequest.status != 200)) {
ajax.waitId.style.display = '';
ajax.waitId.innerHTML = ajax.loading;
}
};
ajax.processHandle = function() {
if (ajax.XMLHttpRequest.readyState == 4 && ajax.XMLHttpRequest.status == 200) {
if (ajax.waitId) {
ajax.waitId.style.display = 'none';
}
if (ajax.recvType == 'HTML') {
ajax.resultHandle(ajax.XMLHttpRequest.responseText, ajax);
} else if (ajax.recvType == 'XML') {
if (!ajax.XMLHttpRequest.responseXML || !ajax.XMLHttpRequest.responseXML.lastChild || ajax.XMLHttpRequest.responseXML.lastChild.localName == 'parsererror') {
ajax.resultHandle('<a href="' + ajax.targetUrl + '" target="_blank" style="color:red">内部错误,无法显示此内容</a>', ajax);
} else {
ajax.resultHandle(ajax.XMLHttpRequest.responseXML.lastChild.firstChild.nodeValue, ajax);
}
} else if (ajax.recvType == 'JSON') {
let res = null;
try {
res = (new Function("return (" + ajax.XMLHttpRequest.responseText + ")"))();
} catch (e) {
res = null;
}
ajax.resultHandle(res, ajax);
}
}
};
ajax.get = function(targetUrl, resultHandle) {
setTimeout(function() {
ajax.showLoading()
}, 250);
ajax.targetUrl = targetUrl;
ajax.XMLHttpRequest.onreadystatechange = ajax.processHandle;
ajax.resultHandle = resultHandle;
if (window.XMLHttpRequest) {
ajax.XMLHttpRequest.open('GET', ajax.targetUrl);
ajax.XMLHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
ajax.XMLHttpRequest.send(null);
} else {
ajax.XMLHttpRequest.open("GET", targetUrl, true);
ajax.XMLHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
ajax.XMLHttpRequest.send();
}
};
ajax.post = function(targetUrl, sendString, resultHandle) {
setTimeout(function() {
ajax.showLoading()
}, 250);
ajax.targetUrl = targetUrl;
ajax.sendString = sendString;
ajax.XMLHttpRequest.onreadystatechange = ajax.processHandle;
ajax.resultHandle = resultHandle;
ajax.XMLHttpRequest.open('POST', targetUrl);
ajax.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajax.XMLHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
ajax.XMLHttpRequest.send(ajax.sendString);
};
ajax.getJSON = function(targetUrl, resultHandle) {
ajax.setRecvType('JSON');
ajax.get(targetUrl + '&ajaxData=json', resultHandle);
};
ajax.getHTML = function(targetUrl, resultHandle) {
ajax.setRecvType('HTML');
ajax.get(targetUrl + '&ajaxData=html', resultHandle);
};
return ajax;
}
/**
* 附加JS脚本
*/
function ajax_append_script(src, text, reload, charset) {
reload = true; // 强制reload
let id = string_hash(src + text);
if (!reload && list_in_array(id, AJAX_EVALSCRIPTS)) return;
if (reload && base_get_obj(id)) {
base_get_obj(id).parentNode.removeChild(base_get_obj(id));
}
AJAX_EVALSCRIPTS.push(id);
let scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.id = id;
scriptNode.charset = charset ? charset : (HTTP_USERAGENT.firefox ? document.characterSet : document.charset);
try {
if (src) {
scriptNode.src = src;
scriptNode.onloadDone = false;
scriptNode.onload = function() {
scriptNode.onloadDone = true;
AJAX_JSLOADED[src] = 1;
};
scriptNode.onreadystatechange = function() {
if ((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode.onloadDone) {
scriptNode.onloadDone = true;
AJAX_JSLOADED[src] = 1;
}
};
} else if (text) {
scriptNode.text = text;
}
document.getElementsByTagName('head')[0].appendChild(scriptNode);
} catch (e) {}
}
/**
* 执行文本中的JS脚本
*/
function ajax_eval_script(string) {
if (string.indexOf('<script') == -1) return string;
let p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig;
let arr = [];
while (arr = p.exec(string)) {
let p1 = /<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
let arr1 = [];
arr1 = p1.exec(arr[0]);
if (arr1) {
ajax_append_script(arr1[1], '', arr1[2], arr1[3]);
} else {
p1 = /<script(.*?)>([^\x00]+?)<\/script>/i;
arr1 = p1.exec(arr[0]);
ajax_append_script('', arr1[2], arr1[1].indexOf('reload=') != -1);
}
}
return string;
}
/**
* 显示 请稍候...
*/
function ajax_show_loading(waitId, display, loading) {
waitId = base_is_undefined(waitId) ? 'ajaxWaitId' : waitId;
display = base_is_undefined_2(display) ? '' : display;
loading = base_is_undefined_2(loading) ? '请稍候...' : loading;
base_get_obj(waitId).innerHTML = loading;
base_get_obj(waitId).style.display = display;
}
/**
* ajax显示文本
*/
function ajax_innerhtml(showObj, string) {
if (!showObj) {
return false;
}
if (showObj.tagName != 'TBODY') {
showObj.innerHTML = string;
} else {
while (showObj.firstChild) {
showObj.firstChild.parentNode.removeChild(showObj.firstChild);
}
let div1 = document.createElement('DIV');
div1.id = showObj.id + '_div';
div1.innerHTML = '<table><tbody id="' + showObj.id + '_tbody">' + string + '</tbody></table>';
base_get_obj('appendParent').appendChild(div1);
let trs = div1.getElementsByTagName('TR');
let len = trs.length;
for (let i = 0; i < len; i++) {
showObj.appendChild(trs[0]);
}
let inputs = div1.getElementsByTagName('INPUT');
let l = inputs.length;
for (let i = 0; i < l; i++) {
showObj.appendChild(inputs[0]);
}
div1.parentNode.removeChild(div1);
}
}
/**
* ajax Get请求
*
* @param url 【必填】请求URL
* @param showId 【选填】请求结果显示区的ID
* @param callback 【选填】回调函数
* @param waitId 【选填】请求进度显示区的ID
* @param loading 【选填】提示信息,如“请稍候...”
* @param display 【选填】请求完成后,显示区CSS样式,默认显示 ('' 或 'none')
*/
function ajax_send_get(url, showId, callback, waitId, loading, display) {
showId = base_is_undefined(showId) ? 'ajaxShowId' : showId;
waitId = base_is_undefined(waitId) ? showId : waitId;
let ajax = new Class_Ajax();
ajax.setLoading(loading);
ajax.setWaitId(waitId);
ajax.display = base_is_undefined_2(display) ? '' : display;
ajax.showId = base_get_obj(showId);
ajax.callback = callback;
if (url.substr(string_length(url) - 1) === '#') {
url = url.substr(0, string_length(url) - 1);
ajax.autoGoto = 1;
}
if (ajax.autoGoto) {
url = http_add_url_params(url, ['formatType=1','showId=' + showId,'toDiv=' + showId]);
} else {
if (typeof showId == "undefined") {
url = http_add_url_params(url, ['formatType=1']);
} else {
url = http_add_url_params(url, ['formatType=1', 'showId=' + showId]);
}
}
// 加载loading层
let loadingIndex;
if (waitId === 'ajaxShowId') {
loadingIndex = dialog_loading();
}
ajax.get(url, function(result, ajax) {
if (ajax.showId) {
ajax.showId.style.display = ajax.display;
ajax_innerhtml(ajax.showId, result);
if (ajax.autoGoto) {
scroll(0, ajax.showId.offsetTop);
}
}
ajax_eval_script(result);
if (waitId === 'ajaxShowId') {
dialog_object().close(loadingIndex);
}
// 回调函数
if (typeof ajax.callback == 'function') {
ajax.callback();
}
});
}
/**
* 【表单】ajax Post请求
*
* @param formId 【必填】表单ID
* @param submitBtnId 【选填】提交按钮ID
* @param showId 【选填】请求结果显示区的ID
* @param callback 【选填】回调函数
* @param waitId 【选填】请求进度显示区的ID
* @param loading 【选填】提示信息,如“请稍候...”
* @param display 【选填】请求完成后,显示区CSS样式,默认显示 ('' 或 'none')
*/
function ajax_send_post(formId, submitBtnId, showId, callback, waitId, loading, display) {
showId = base_is_undefined(showId) ? 'ajaxShowId' : showId;
waitId = base_is_undefined(waitId) ? showId : waitId;
display = base_is_undefined_2(display) ? '' : display;
let ajaxFrameId = 'ajaxFrame';
let ajaxFrame = base_get_obj(ajaxFrameId);
let curForm = base_get_obj(formId);
// 加载loading层
let loadingIndex;
if (waitId === 'ajaxShowId') {
loadingIndex = dialog_loading();
}
// 已请求完成
let handleResult = function() {
let ret = '';
let err = '内部错误,无法显示此内容';
ajax_show_loading(waitId, 'none', null);
if (waitId === 'ajaxShowId') {
dialog_object().close(loadingIndex);
}
try {
ret = base_get_obj(ajaxFrameId).contentWindow.document.XMLDocument.text;
} catch (e) {
try {
ret = base_get_obj(ajaxFrameId).contentWindow.document.documentElement.firstChild.wholeText;
} catch (e) {
try {
ret = base_get_obj(ajaxFrameId).contentWindow.document.documentElement.firstChild.nodeValue;
} catch (e) {
ret = err;
}
}
}
console.log(ret);
if (typeof ret == 'undefined') {
ret = err;
}
if (submitBtnId) {
base_get_obj(submitBtnId).disabled = false;
}
if (showId) {
base_get_obj(showId).style.display = display;
ajax_innerhtml(base_get_obj(showId), ret);
}
ajax_eval_script(ret);
ajaxFrame.loading = 0;
if (!HTTP_USERAGENT.firefox || HTTP_USERAGENT.safari) {
base_get_obj('appendParent').removeChild(ajaxFrame.parentNode);
} else {
setTimeout(
function() {
base_get_obj('appendParent').removeChild(ajaxFrame.parentNode);
}, 100);
}
// 回调函数
if (typeof callback == 'function') {
callback();
}
};
if (!ajaxFrame) {
let div = document.createElement('div');
div.style.display = 'none';
div.innerHTML = '<iframe name="' + ajaxFrameId + '" id="' + ajaxFrameId + '" loading="1"></iframe>';
base_get_obj('appendParent').appendChild(div);
ajaxFrame = base_get_obj(ajaxFrameId);
} else if (ajaxFrame.loading) { // 表示前面的ajaxiframe还未处理完!
return false;
}
event_attach(ajaxFrame, 'load', handleResult);
ajax_show_loading(waitId, '', loading);
curForm.target = ajaxFrameId;
let action;
if (typeof curForm.action_bak == "undefined") {
action = curForm.action_bak = curForm.getAttribute('action');
} else {
action = curForm.action_bak;
}
curForm.action = http_add_url_params(action, ['formatType=1', 'showId=' + showId]);
curForm.submit();
if (submitBtnId) {
base_get_obj(submitBtnId).disabled = true;
setTimeout(function() {
base_get_obj(submitBtnId).disabled = false;
}, 3000);
}
event_stop_propagation();
return false;
}
/**
* 清除“关闭浏览器提醒”
*/
function clear_window_notice() {
window.onbeforeunload = null;
}
/******************************************
* Layer弹框
******************************************/
// Layer对象
function dialog_object() {
let _layer;
try {
_layer = parent.layer ? parent.layer : layer;
} catch (e) {
_layer = layer;
}
return _layer;
}
/**
* 警告对话框
*
* @param msg 消息语
* @param title 标题
*/
function dialog_alert(msg, title) {
let _title = title ? title : '提示';
dialog_object().alert(msg, {
title: "<strong>" + _title + "</strong>",
scrollbar: false
});
}
/**
* 消息弹框
*
* @param msg 消息语
* @param time 时间,单位:秒
*/
function dialog_msg(msg, time) {
let _time = time ? time : 3;
dialog_object().msg(msg, {time : _time * 1000, shade: 0.3, scrollbar: false});
}
/**
* 显示 成功消息弹框
*
* @param msg 消息语
* @param time 时间,单位:秒
*/
function dialog_success(msg, time) {
let _time = time ? time : 2;
dialog_object().msg(msg, {time : _time * 1000, icon: 1, shade: 0.3, scrollbar: false});
}
/**
* 显示 失败消息弹框
*
* @param msg 消息语
* @param time 时间,单位:秒
*/
function dialog_fail(msg, time) {
let _time = time ? time : 3;
dialog_object().msg(msg, {time : _time * 1000, icon: 2, shade: 0.3, scrollbar: false});
}
/**
* Iframe弹框
*
* @param title 标题
* @param url 网址
* @param width 宽度:550
* @param height 高度:350
* @param scrollbar 是否显示滚动条:true/false
*/
function dialog_open(title, url, width, height, scrollbar) {
let _width = (width ? width : 550) + 'px';
let _height = (height ? height : 350) + 'px';
let _content = scrollbar ? url :[url, 'no'];
dialog_object().open({
type: 2,
title: "<strong>" + title + "</strong>",
shadeClose: false,
shade: 0.3,
maxmin: false,
area: [_width, _height],
content : _content,
scrollbar: false,
success : function(layero, index) {
// 让 iframe 弹框 高度自适应调整
dialog_object().iframeAuto(index);
},
restore : function(layero, index) {
// 让 iframe 弹框 高度自适应调整
dialog_object().iframeAuto(index);
}
});
}
/**
* Iframe弹框
*
* @param msg 消息文本
* @param yesCallback 确定按钮回调方法
* @param noCallback 取消按钮回调方法
*/
function dialog_confirm(msg, yesCallback, noCallback) {
dialog_object().confirm(msg, {
btn: ['确定', '取消'],
scrollbar: false
}, function(index){
if (yesCallback) {
yesCallback();
}
dialog_object().close(index);
}, function(){
if (noCallback) {
noCallback();
}
});
}
/**
* Layui的iframe内页 关闭自身弹框
* /1789.html
*/
function dialog_close() {
try {
let index = dialog_object().getFrameIndex(window.name);
dialog_object().close(index);
} catch (e) {
console.log(e);
}
}
/**
* 自动校正高度
*/
function dialog_auto_height() {
try {
let index = dialog_object().getFrameIndex(window.name);
dialog_object().iframeAuto(index);
} catch (e) {
console.log(e);
}
}
/**
* 加载层
*/
function dialog_loading() {
return dialog_object().load(0, { // 0代表加载的风格,支持0-2
shade : 0.2,
scrollbar: false
});
}
/**
* 使表单Ajax提交
*/
(function($) {
$(function() {
// 向body追加 必需的元素
$('body').prepend('<div id="appendParent"></div><div id="ajaxShowId"></div>');
$('form[ajax-display]').each(function() {
let _this = $(this);
let guid = string_guid();
let formId = 'ajax_form_' + guid;
let submitBtnId = 'submit_btn_' + guid;
let showId = 'ajax_loading_' + guid;
let loadingCssClass = 'ajax_loading_left';
if (_this.attr('ajax-display') !== '') {
loadingCssClass = _this.attr('ajax-display');
}
// 修改 表单ID
_this.attr('id', formId);
// 修改 表单onsubmit
let onsubmit = "ajax_send_post('" + formId + "', '" + submitBtnId + "', '" + showId + "');return false;";
_this.attr("onsubmit", onsubmit);
// 自动增加 隐藏域
_this.prepend("<input type='hidden' name='action' value='submit'/>");
// 自定义 ajax-loading 容器
let isExistAjaxLoading = false;
let ajaxLoadingObj = _this.find('.ajax_loading, .ajax_loading_left, .ajax_loading_inline, .ajax_loading_inline_left');
if (ajaxLoadingObj.length > 0) {
isExistAjaxLoading = true;
}
ajaxLoadingObj.each(function() {
let _this = $(this);
_this.attr('id', showId);
});
// 自动增加【提交】按钮ID 和 ajax-loading 容器
let submitObj = _this.find("button[type=submit], input[type=submit]");
submitObj.each(function() {
let _this = $(this);
_this.attr('id', submitBtnId);
// 增加 ajax-loading 容器
if (!isExistAjaxLoading) {
let loading = "<span id='" + showId + "' class='" + loadingCssClass + "'></span>";
_this.after(loading);
}
});
});
});
})(jQuery);