Files
2026-03-15 01:27:05 +08:00

216 lines
4.7 KiB
JavaScript

//var g_appid = '14919772144482';
//var g_devkey = '14915485974028';
var g_RequestAddress = 'https://api2.tscce.cn';
/**
* @note 字符串格式化
* @param fn_objs
* @returns object
* @constructor
*/
Overload = function (fn_objs) {
var is_match = function (x, y) {
if (x == y) {
return true;
}
if (x.indexOf("*") == -1) {
return false;
}
var x_arr = x.split(","), y_arr = y.split(",");
if (x_arr.length != y_arr.length) {
return false;
}
while (x_arr.length) {
var x_first = x_arr.shift(), y_first = y_arr.shift();
if (x_first != "*" && x_first != y_first) {
return false;
}
}
return true;
};
var ret = function () {
var args = arguments
, args_len = args.length
, args_types = []
, args_type
, fn_objs = args.callee._fn_objs
, match_fn = function () {
};
for (var i = 0; i < args_len; i++) {
var type = typeof args[i];
type == "object" && (args[i].length > -1) && (type = "array");
args_types.push(type);
}
args_type = args_types.join(",");
for (var k in fn_objs) {
if (is_match(k, args_type)) {
match_fn = fn_objs[k];
break;
}
}
return match_fn.apply(this, args);
};
ret._fn_objs = fn_objs;
return ret;
};
/**
* 通过对字符串进行伪重载实现对字符串对象的格式化功能
* @type {Object}
*/
String.prototype.format = Overload({
"array": function (params) {
var reg = /{(\d+)}/gm;
return this.replace(reg, function (match, name) {
return params[~~name];
});
},
"object": function (param) {
var reg = /{([^{}]+)}/gm;
return this.replace(reg, function (match, name) {
return param[name];
});
}
});
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return r[2];
}
return null;
}
//------------设置Cookie参数方法------------//
function setCookie(name, value) {
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + value + ";expires=" + exp.toGMTString();
}
//------------获取Cookie参数方法------------//
function getCookie(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) {
return arr[2];
}
return null;
}
//------------删除Cookie参数方法------------//
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) {
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
}
/**
* 获取随机数
*/
function randomChar(length) {
var x = "0123456789qwertyuioplkjhgfdsazxcvbnm";
var tmp = "";
var timestamp = new Date().getTime();
for (var i = 0; i < length; i++) {
tmp += x.charAt(Math.ceil(Math.random() * 100000000) % x.length);
}
return timestamp + tmp;
}
function localeUrl() {
var url = window.location.origin + window.location.pathname;
var index = url.indexOf('?');
if (-1 == index)
return url;
else
return name.substr(0, index);
}
function extractPath(name) {
var index = name.lastIndexOf('/');
if (-1 == index)
return name;
else
return name.substr(0, index + 1);
}
function HttpRequest(args) {
var defaults =
{
url: g_RequestAddress,
async: true,
OnBeforeSend: function (/*XMLHttpRequest*/object) { },
OnComplete: function (/*XMLHttpRequest, textStatus*/object, status) { },
OnSuccess: function (/*data, textStatus*/message, status) { },
OnError: function (/*XMLHttpRequest, textStatus, errorThrown*/object, status, error) { },
},
settings = $.extend({}, defaults, args);
var data = {};
$.each(settings, function (name, value) {
if (
'async' != name &&
'url' != name &&
'OnBeforeSend' != name &&
'OnComplete' != name &&
'OnSuccess' != name &&
'OnError' != name
) {
data[name] = value;
}
});
//var succ = function (/*data, textStatus*/message, status) {
// var obj = eval("(" + decodeURIComponent(message) + ")");
// if (!obj) {
// //alert('pager6');
// window.location.href = PAGENAME_LOGIN + "?manager_id=" + getCookie(g_managerid);
// return false;
// }
// else if (1 == obj.error && 10008 == obj.error_code) {
// //alert('pager7');
// window.location.href = PAGENAME_LOGIN + "?manager_id=" + getCookie(g_managerid);
// return false;
// }
// else {
// return settings.OnSuccess(message, status);
// }
//};
$.ajax({
url: settings.url,
type: 'post',
async: settings.async,
data: data,
datatype: 'json',
timeout: 1000 * 7,
beforeSend: settings.OnBeforeSend,
success: settings.OnSuccess,
//success: succ,
error: settings.OnError,
complete: settings.OnComplete,
});
return settings;
}