//通过url获取参数
|
var getURLParams = function(name) {
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
var r = window.location.search.substr(1).match(reg);
|
if (r != null) return decodeURI(r[2]);
|
return null;
|
};
|
|
/**
|
* 获取开始日期 shaoshiyu
|
* today 当前时间的最近多少天:值null表示获取的是当前时间的最近多少天;指定日期的最近多少天:today格式为yy/mm/dd
|
* addDayCount 表示增加的事件,如最近一月,-1;最近一周为-7
|
* str 有值的,d(日),m(月),y(年)
|
* 出参格式 YYMMDD
|
* */
|
var startDate = function(today, addDayCount, str) {
|
var dd;
|
if (today) {
|
dd = new Date(today);
|
} else {
|
dd = new Date();
|
}
|
var y, m, d;
|
|
switch (str) {
|
case "d":
|
dd.setDate(dd.getDate() + addDayCount); //获取AddDayCount天后的日期
|
break;
|
case "m":
|
dd.setMonth(dd.getMonth() + addDayCount); //获取AddDayCount天后的日期
|
break;
|
case "y":
|
// return (dd.getFullYear() * 10000 + 101).toString();
|
dd.setFullYear(dd.getFullYear() + addDayCount);
|
break;
|
}
|
var value =
|
dd.getFullYear() * 10000 + (dd.getMonth() + 1) * 100 + dd.getDate();
|
return value.toString();
|
};
|
|
/**
|
* 获取结束日期,即当前时间
|
* 出参格式 YYMMDD
|
**/
|
var endTime = function() {
|
var now = new Date();
|
var value =
|
now.getFullYear() * 10000 + (now.getMonth() + 1) * 100 + now.getDate();
|
return value.toString();
|
};
|
|
/*
|
* 获取指定日期的最近天数
|
* 调用规则 :
|
* 第一个入参格式支持字符串:"2017/11/26"、"2017.10.27"、"20171027"、"2017-10-27"
|
* 指定日期n天前日期:date_getPointDate("2017/11/26", -30)
|
* 指定日期n天后日期:date_getPointDate("2017.10.27", 30)
|
*/
|
var date_getPointDate = function(currDate, num) {
|
//num表示天数,接受正负数
|
// console.log("currDate", currDate);
|
if (!num) {
|
//做num简单验证
|
return currDate;
|
}
|
num = Math.floor(num);
|
this.symbol = ""; //需要什么格式出参自己定义 - /
|
|
// console.log("currDate", currDate);
|
if (currDate.indexOf("-") > -1) {
|
//格式yy-mm-dd
|
currDate = currDate.replace(/-/g, "/");
|
} else if (currDate.indexOf(".") > -1) {
|
//格式yy.mm.dd
|
currDate = currDate.replace(/\./g, "/");
|
} else {
|
currDate =
|
currDate.substring(0, 4) +
|
"/" +
|
currDate.substring(4, 6) +
|
"/" +
|
currDate.substring(6, 8);
|
}
|
|
//到这一步前,currDate格式要为YY/MM/DD
|
var myDate = new Date(currDate),
|
lw = new Date(Number(myDate) + 1000 * 60 * 60 * 24 * num), //num天数
|
lastY = lw.getFullYear(),
|
lastM = lw.getMonth() + 1,
|
lastD = lw.getDate(),
|
startdate =
|
lastY +
|
this.symbol +
|
(lastM < 10 ? "0" + lastM : lastM) +
|
this.symbol +
|
(lastD < 10 ? "0" + lastD : lastD);
|
// console.log("currDate", currDate, startdate);
|
return startdate;
|
};
|
|
function NumberToString(value) {
|
if (value < 10) return "0" + value.toString();
|
return value.toString();
|
}
|
|
function FormatDateString(value, format) {
|
var year = parseInt(value / 10000);
|
var month = parseInt(value / 100) % 100;
|
var day = value % 100;
|
|
switch (format) {
|
case "MM-DD":
|
return NumberToString(month) + "-" + NumberToString(day);
|
default:
|
return (
|
year.toString() +
|
"-" +
|
NumberToString(month) +
|
"-" +
|
NumberToString(day)
|
);
|
}
|
}
|
|
const tools = {
|
getURLParams: getURLParams, //获取url参数
|
startDate: startDate, //获取开始日期
|
endTime: endTime, //获取结束日期,即当前时间
|
FormatDateString: FormatDateString, //时间格式转化
|
date_getPointDate: date_getPointDate //获取指定日期的最近天数
|
};
|
|
export default tools;
|
|
//转换金钱类数据
|
export function formatBillion(num) {
|
var result = "";
|
|
var strValue = num + "";
|
var negative = "";
|
var _decimal = "";
|
|
if (strValue.indexOf(".") > -1) {
|
var temp = strValue.split(".");
|
strValue = temp[0];
|
_decimal = temp[1];
|
}
|
|
if (strValue.indexOf("-") > -1) {
|
negative = "-";
|
strValue = strValue.split("-")[1];
|
}
|
|
if (strValue.length >= 11) {
|
result = negative + Math.floor(parseInt(strValue) / 100000000) + "亿";
|
} else if (strValue.length >= 9 && strValue.length <= 10) {
|
result = negative + (parseInt(strValue) / 100000000).toFixed(2) + "亿";
|
} else if (strValue.length >= 5 && strValue.length <= 8) {
|
result = negative + Math.floor(parseInt(strValue) / 10000) + "万";
|
} else {
|
result = strValue;
|
}
|
|
return result;
|
}
|
|
//排序,-1从大到小 1从小到大
|
export function compare(property, type) {
|
return function(a, b) {
|
var value1 = a[property];
|
var value2 = b[property];
|
if (type == -1) {
|
return value2 - value1; //从大到小
|
}
|
|
if (type == 1) {
|
return value1 - value2; //从小到大
|
}
|
};
|
}
|
|
//密码加密
|
export function encode(mi) {
|
var str = mi + "";
|
var r = "";
|
for (var i = 0; i < str.length; i++) {
|
var code = str.charCodeAt(i);
|
r += code;
|
if (i != str.length - 1) {
|
r += ",";
|
}
|
}
|
return r;
|
}
|
|
//密码解密
|
export function decode(mi) {
|
var str = mi + "";
|
var arr = str.split(",");
|
var r = "";
|
for (var i = 0; i < arr.length; i++) {
|
var code = parseInt(arr[i]);
|
r += String.fromCharCode(code);
|
}
|
return r;
|
}
|
|
//设置cookie
|
export function setCookie(cname, cvalue, exdays) {
|
var exp = new Date();
|
exp.setTime(exp.getTime() + exdays * 24 * 60 * 60 * 1000);
|
document.cookie =
|
cname + "=" + encodeURIComponent(cvalue) + ";expires=" + exp.toGMTString();
|
}
|
|
//获取cookie
|
export function getCookie(sName) {
|
var aCookie = document.cookie.split("; ");
|
for (var i = 0; i < aCookie.length; i++) {
|
var aCrumb = aCookie[i].split("=");
|
if (sName == aCrumb[0]) {
|
return decodeURIComponent(aCrumb[1]);
|
}
|
}
|
return null;
|
}
|
|
//清除cookie
|
export function clearCookie(name) {
|
setCookie(name, "", -1);
|
}
|
|
export function GetSign(queryObj) {
|
var sign = "";
|
if (queryObj != null) {
|
var keyArry = Object.keys(queryObj);
|
keyArry.sort();
|
for (let i = 0; i < keyArry.length; ++i) {
|
var keyText = keyArry[i];
|
var keyValue = queryObj[keyText] == null ? "" : queryObj[keyText];
|
|
if (keyValue == true || keyValue == "true") {
|
keyValue = "True";
|
}
|
sign += sign == "" ? `${keyText}=${keyValue}` : `&${keyText}=${keyValue}`;
|
}
|
|
sign += `&Key=${AccessKey}`;
|
sign = md5(sign).toUpperCase();
|
} else {
|
sign = `Key=${AccessKey}`;
|
sign = md5(sign).toUpperCase();
|
}
|
return sign;
|
}
|