2018-11-27 22:19:16 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 一些公用方法
|
|
|
|
|
|
* @author 暮光:城中城
|
|
|
|
|
|
* @since 2017年5月7日
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
function serialize(value) {
|
|
|
|
|
|
if (typeof value === 'string') {
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
return JSON.stringify(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function deserialize(value) {
|
|
|
|
|
|
if (typeof value !== 'string' || isEmpty(value)) {
|
|
|
|
|
|
return undefined;
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
return JSON.parse(value);
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
return eval('(' + value + ')');// 处理变态的单双引号共存字符串
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
return value || undefined;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function validateResult(result) {
|
2019-06-12 22:28:38 +08:00
|
|
|
|
if (result.errCode == 200) {
|
2018-11-27 22:19:16 +08:00
|
|
|
|
return true;
|
2019-06-12 22:28:38 +08:00
|
|
|
|
} else if (result.errCode == 400) {
|
|
|
|
|
|
var href = encodeURI(window.location.href);
|
|
|
|
|
|
window.location = "static/manage/login.html?returnUrl=" + href;
|
2018-11-27 22:19:16 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
Toast.error(result.errMsg);
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 返回不为空的字符串,为空返回def
|
|
|
|
|
|
*/
|
|
|
|
|
|
function getNotEmptyStr(str, def){
|
|
|
|
|
|
if(isEmpty(str)) {
|
|
|
|
|
|
return isEmpty(def)?"":def;
|
|
|
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 是否是空对象
|
|
|
|
|
|
* @param obj
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function isEmptyObject(obj){
|
|
|
|
|
|
return $.isEmptyObject(obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 是否是空字符串
|
|
|
|
|
|
* @param str
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function isEmpty(str){
|
|
|
|
|
|
return (str == "" || str == null || str == undefined);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 是否是空
|
|
|
|
|
|
* @param str
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function isNull(str){
|
|
|
|
|
|
return (str == null || str == undefined);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 是否不是空字符串
|
|
|
|
|
|
* @param str
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function isNotEmpty(str){
|
|
|
|
|
|
return !isEmpty(str);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 数组转字符串,使用空格分隔
|
|
|
|
|
|
* @param array
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function arrToString(array){
|
|
|
|
|
|
var temStr = "";
|
|
|
|
|
|
if(isEmpty(array)){
|
|
|
|
|
|
return temStr;
|
|
|
|
|
|
}
|
|
|
|
|
|
array.forEach(function(e){
|
|
|
|
|
|
if(isNotEmpty(temStr)) {
|
|
|
|
|
|
temStr += " ";
|
|
|
|
|
|
}
|
|
|
|
|
|
temStr += e;
|
|
|
|
|
|
});
|
|
|
|
|
|
return temStr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 数组array中是否包含str字符串
|
|
|
|
|
|
* @param array
|
|
|
|
|
|
* @param str
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function haveString(array, str){
|
|
|
|
|
|
if(isEmpty(array)) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
for (var i = 0; i < array.length; i++) {
|
|
|
|
|
|
if(array[i] == str) {
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 直接返回对象的第一个属性
|
|
|
|
|
|
* @param data
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function getObjectFirstAttribute(data) {
|
|
|
|
|
|
for ( var key in data) {
|
|
|
|
|
|
return data[key];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 如果对象只有一个属性则返回第一个属性,否则返回null
|
|
|
|
|
|
* @param data
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function getObjectFirstAttributeIfOnly(data) {
|
|
|
|
|
|
var len = 0, value = "";
|
|
|
|
|
|
for ( var key in data) {
|
|
|
|
|
|
if (++len > 1) {
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
value = data[key];
|
|
|
|
|
|
}
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function postService(url, param, success=function(){}, complete=function(){}){
|
|
|
|
|
|
ajaxTemp(url, "POST", "JSON", param, function(result){
|
2019-06-12 22:28:38 +08:00
|
|
|
|
if (result.errCode == 400) {
|
|
|
|
|
|
var href = encodeURI(window.location.href);
|
|
|
|
|
|
window.location = "static/manage/login.html?returnUrl=" + href;
|
|
|
|
|
|
} else if (result.errCode != "200") {
|
2018-11-27 22:19:16 +08:00
|
|
|
|
Toast.warn(result.errMsg);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
success(result);
|
|
|
|
|
|
}
|
|
|
|
|
|
},function(){
|
|
|
|
|
|
Toast.warn("请求数据失败");
|
|
|
|
|
|
}, function(result){
|
|
|
|
|
|
complete(result);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ajax处理事件模板
|
|
|
|
|
|
*
|
|
|
|
|
|
* @url 后台处理的url,即action
|
|
|
|
|
|
* @dataSentType 数据发送的方式,有post,get方式
|
|
|
|
|
|
* @dataReceiveType 数据接收格式,有html json text等
|
|
|
|
|
|
* @paramsStr 传入后台的参数
|
|
|
|
|
|
* @successFunction ajax成功后执行的函数名 ajaxTemp("", "GET", "html", {}, function(){},
|
|
|
|
|
|
* function(){}, "");
|
|
|
|
|
|
*/
|
|
|
|
|
|
function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction, errorFunction, completeFunction, id) {
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
|
url : url, // 后台处理程序
|
|
|
|
|
|
sync : false,
|
|
|
|
|
|
type : dataSentType, // 数据发送方式
|
|
|
|
|
|
dataType : dataReceiveType, // 接受数据格式
|
|
|
|
|
|
data : eval(paramsStr),
|
|
|
|
|
|
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
|
|
|
|
|
|
success : function(msg) {
|
2019-06-12 22:28:38 +08:00
|
|
|
|
if (msg.errCode == 400) {
|
|
|
|
|
|
var href = encodeURI(window.location.href);
|
|
|
|
|
|
window.location = "static/manage/login.html?returnUrl=" + href;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (typeof successFunction == "function") {
|
|
|
|
|
|
successFunction(msg, id);
|
|
|
|
|
|
}
|
2018-11-27 22:19:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
beforeSend : function() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
complete : function(msg) {
|
2019-04-11 20:08:05 +08:00
|
|
|
|
if (msg.responseText.startWith("<!doctype html>")) {
|
|
|
|
|
|
if (msg.responseText.indexOf("THIS_IS_LOGIN_PAGE_FLAG") > 0) {
|
|
|
|
|
|
Toast.error('操作失败,登录已失效,请登陆后重试', 3000);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2018-11-27 22:19:16 +08:00
|
|
|
|
if(typeof completeFunction == "function") {
|
|
|
|
|
|
completeFunction(msg,id);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
error : function(msg) {
|
|
|
|
|
|
if(typeof errorFunction == "function") {
|
|
|
|
|
|
errorFunction(msg,id);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取cookie
|
|
|
|
|
|
* @param name
|
|
|
|
|
|
* @returns
|
|
|
|
|
|
*/
|
|
|
|
|
|
function getCookie(name) {
|
|
|
|
|
|
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
|
|
|
|
|
|
if(arr=document.cookie.match(reg)){
|
|
|
|
|
|
return unescape(arr[2]);
|
|
|
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 字符串格式化
|
|
|
|
|
|
*/
|
|
|
|
|
|
String.prototype.format = function(args) {
|
|
|
|
|
|
if (arguments.length > 0) {
|
|
|
|
|
|
var result = this;
|
|
|
|
|
|
if (arguments.length == 1 && typeof (args) == "object") {
|
|
|
|
|
|
for ( var key in args) {
|
|
|
|
|
|
var reg = new RegExp("({" + key + "})", "g");
|
|
|
|
|
|
result = result.replace(reg, args[key]);
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
for (var i = 0; i < arguments.length; i++) {
|
|
|
|
|
|
if (arguments[i] == undefined) {
|
|
|
|
|
|
return "";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
var reg = new RegExp("({[" + i + "]})", "g");
|
|
|
|
|
|
result = result.replace(reg, arguments[i]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return this;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
String.prototype.endWith = function(str) {
|
|
|
|
|
|
if (str == null || str == "" || this.length == 0 || str.length > this.length) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return (this.substring(this.length - str.length) == str);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
String.prototype.startWith = function(str) {
|
|
|
|
|
|
if (str == null || str == "" || this.length == 0 || str.length > this.length) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return (this.substr(0, str.length) == str);
|
|
|
|
|
|
};
|
|
|
|
|
|
|