/**
* 常用工具类封装
*/
var CommonUtils = (function() {
return {
getUserToken: function(options) {
options = $.extend(true, {
async: options.async ? options.async : false,
type: 'POST',
queryType: '2',
dataType: 'JSON',
url: url_BusizImmovables
}, options);
let result = null;
var promise = new Promise(function(resolve, reject) {
$.ajax(
$.extend(true, {}, options, {
success: function(data) {
typeof options.success === 'function' && options.success(data);
resolve(data);
result = data;
},
error: function(data) {
typeof options.error === 'function' && options.error(data);
reject(data);
result = data;
}
})
);
});
return options.async ? promise : result;
},
setUserInfo: function(obj) {
sessionStorage.setItem('userDetail', JSON.stringify(obj));
},
getUserInfo: function(obj) {
try {
return JSON.parse(sessionStorage.getItem('userDetail'))
//return userDetail = {cardid: "362524199104132028"}
} catch (e) {
return sessionStorage.getItem('userDetail')
}
},
removeUserInfo: function(obj) {
sessionStorage.removeItem('userDetail');
},
ajax: function(options) {
options = $.extend(true, {
async: options.async ? options.async : false,
type: 'POST',
dataType: 'JSON'
}, options);
let result = null;
var promise = new Promise(function(resolve, reject) {
$.ajax(
$.extend(true, {}, options, {
beforeSend:function(XMLHttpRequest){
console.log('===>>before');
},
success: function(data) {
typeof options.success === 'function' && options.success(data);
resolve(data);
result = data;
},
error: function(data) {
typeof options.error === 'function' && options.error(data);
reject(data);
result = data;
},
fail: function(data) {
CommonUtils.alert('系统异常,请稍后再试!')
}
})
);
});
return options.async ? promise : result;
},
//dec加密
desEncryptCBC: function(message, desKey) {
let messageKey = encodeURIComponent(message);
messageKey = encode64(messageKey);
let keyHex = CryptoJS.enc.Utf8.parse(desKey),
encrypted = CryptoJS.DES.encrypt(message, keyHex, {
iv: keyHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString().toUpperCase();
},
//dec解密
desDecryptCBC: function(message, desKey) {
message = message.toLowerCase();
let keyHex = CryptoJS.enc.Utf8.parse(desKey),
decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Hex.parse(message)
}, keyHex, {
iv: keyHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
},
//获取token
getToken: function() {
var url = document.location.toString();
var arrObj = url.split("?");
if (arrObj.length > 1) {
var arrPara = arrObj[1].split("&");
var arr;
for (var i = 0; i < arrPara.length; i++) {
arr = arrPara[i].split("=");
if (arr != null && arr[0] == 'auth_token') {
return arr[1];
}
}
return "";
} else {
return "";
}
},
//将xml解析json对象
parseXMLToJSon: function(xmlStr) {
return xotree.parseXML(xmlStr);
},
/**
* @desc 警告框
* @param message: 提示对话框上显示的内容
* @param title: 提示对话框上显示的标题
* @param btnValue: 提示对话框上按钮显示的内容
* @param callback: 提示对话框上关闭后的回调函数
* @param type: 是否使用h5绘制的对话框 Value: 'div'
*/
alert: function(message, title, btnValue, callback, type) {
mui.alert(message, title, btnValue, callback, type);
},
/**
* @desc 确认框
* @param message: 提示对话框上显示的内容
* @param title: 提示对话框上显示的标题
* @param btnValue: 提示对话框上按钮显示的内容
* @param callback: 提示对话框上关闭后的回调函数
* @param type: 是否使用h5绘制的对话框 Value: 'div'
*/
confirm: function(message, title, btnValue, callback, type) {
mui.confirm(message, title, btnValue, callback, type);
},
/**
* @desc 输入对话框
* @param message: 提示对话框上显示的内容
* @param placeholder: 编辑框显示的提示文字
* @param title: 提示对话框上显示的标题
* @param btnValue: 提示对话框上按钮显示的内容
* @param callback: 提示对话框上关闭后的回调函数
* @param type: 是否使用h5绘制的对话框 Value: 'div'
*/
propmpt: function(message, placeholder, title, btnValue, callback, type) {
mui.confirm(message, title, btnValue, callback, type);
},
/**
* @desc 消息提示框
* @param message: 提示对话框上显示的内容
* @param options: 编辑框显示的提示文字
*/
toast: function(message, options) {
mui.toast(message, options);
},
//获取url上的参数
getQueryString: function(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
},
getUrlVars: function(url) {
var hash;
var myJson = {};
var hashes = url.slice(url.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
myJson[hash[0]] = hash[1];
}
return myJson;
},
//判断数组或者对象
isArrOrObj: function(object) {
//console.log('isArr',typeof object);
if (typeof object !== 'object') {
return;
}
if (typeof object.length == 'number') {
return 'Array';
} else {
return 'Object';
}
},
desensitization: function(str, beginStr, endStr) {
var len = str.length;
var leftStr = str.substring(0, beginStr);
var rightStr = str.substring(endStr, len);
var strResult = '';
var i = 0;
try {
for (i = 0; i < endStr - beginStr; i++) {
strResult = strResult + '*';
}
} catch (error) {
}
strResult = leftStr + strResult + rightStr;
return strResult;
}
}
})();
/**
* 将字符串(yyyymmdd)转换成日期格式(yyyy-mm-dd)
* @param str
* @returns {string|void|never|string}
*/
function formatStringDate(str) {
return str.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
}
/**
* @desc base64加密
* @param input
* @returns
*/
function encode64(input) {
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
}
var xotree = new XML.ObjTree();