|
export const getDay = (dayCount, date) => {
|
var today = date ? new Date(date) : new Date();
|
var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * dayCount;
|
today.setTime(targetday_milliseconds); //注意,这行是关键代码
|
var tYear = today.getFullYear();
|
var tMonth = today.getMonth() + 1;
|
var tDate = today.getDate();
|
tMonth = tMonth < 10 ? '0' + tMonth : tMonth;
|
tDate = tDate < 10 ? '0' + tDate : tDate;
|
return tYear + "-" + tMonth + "-" + tDate;
|
}
|
|
export const formatTime = (template, date) => {
|
var today = date ? new Date(date) : new Date();
|
var o = {
|
"M+": today.getMonth() + 1, //月份
|
"d+": today.getDate(), //日
|
"h+": today.getHours(), //小时
|
"m+": today.getMinutes(), //分
|
"s+": today.getSeconds(), //秒
|
"q+": Math.floor((today.getMonth() + 3) / 3), //季度
|
"S": today.getMilliseconds() //毫秒
|
};
|
var fmt = template;
|
if (/(y+)/.test(fmt)) {
|
fmt = fmt.replace(RegExp.$1, (today.getFullYear() + "").substr(4 - RegExp.$1.length));
|
}
|
|
for (var k in o) {
|
if (new RegExp("(" + k + ")").test(fmt)) {
|
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
}
|
}
|
return fmt;
|
}
|
|
|
/**
|
* @author wys
|
* @date 2022-11-24 11:28
|
* @param {*} arr
|
* @returns arr
|
*/
|
export const uniqueArr = (arr)=>{
|
return [...new Set(arr)]
|
}
|
|
|
/**
|
* 深度Copy
|
* @param {*} obj
|
* @returns
|
*/
|
export const deepCopy = (obj) => {
|
let type = Object.prototype.toString.call(obj);
|
if (type == "[object Array]") {
|
let backObj = [];
|
for (let val of obj) {
|
backObj.push(deepCopy(val));
|
}
|
return backObj;
|
}
|
if (type == "[object Object]") {
|
let backObj = {};
|
for (let key in obj) {
|
if (obj.hasOwnProperty(key)) {
|
backObj[key] = deepCopy(obj[key]);
|
}
|
}
|
return backObj;
|
}
|
return obj;
|
};
|
/**
|
* rgba转16进制
|
*/
|
export const rgbaToHexColor = (color) => {
|
var values = color
|
.replace(/rgba?\(/, "")
|
.replace(/\)/, "")
|
.replace(/[\s+]/g, "")
|
.split(",");
|
var a = parseFloat(values[3] || 1),
|
r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
|
g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
|
b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255);
|
return (
|
"#" +
|
("0" + r.toString(16)).slice(-2) +
|
("0" + g.toString(16)).slice(-2) +
|
("0" + b.toString(16)).slice(-2)
|
);
|
};
|
/**
|
* 改变颜色中rgba格式的透明度
|
* @param {*} color
|
* @param {*} a
|
* @returns
|
*/
|
export const rgbaChangeA = (color, a) => {
|
return color.substring(0, color.lastIndexOf(",")) + ", " + a + ")";
|
};
|
/**
|
* 获取数组中字段所有不重复的枚举值
|
* @param {*} data
|
* @param {*} key
|
* @returns
|
*/
|
export const getArrayValueEnum = (data, key) => {
|
let arr = [];
|
data.forEach(item => {
|
arr.indexOf(item[key]) == -1 ? arr.push(item[key]) : "";
|
})
|
return arr;
|
}
|
|
export default {
|
/**
|
* 获取数组中字段所有不重复的枚举值
|
* @param {*} data
|
* @param {*} key
|
* @returns
|
*/
|
getArrayValueEnum: function (data, key) {
|
let arr = [];
|
data.forEach(item => {
|
arr.indexOf(item[key]) == -1 ? arr.push(item[key]) : "";
|
})
|
return arr;
|
},
|
rgbaChangeA: function (color, a) {
|
return color.substring(0, color.lastIndexOf(",")) + ", " + a + ")";
|
},
|
deepCopy: function (obj) {
|
let type = Object.prototype.toString.call(obj);
|
if (type == "[object Array]") {
|
let backObj = [];
|
for (let val of obj) {
|
backObj.push(deepCopy(val));
|
}
|
return backObj;
|
}
|
if (type == "[object Object]") {
|
let backObj = {};
|
for (let key in obj) {
|
if (obj.hasOwnProperty(key)) {
|
backObj[key] = deepCopy(obj[key]);
|
}
|
}
|
return backObj;
|
}
|
return obj;
|
},
|
getArraySum: (data, key) => {
|
let sum = 0;
|
data.forEach((item) => {
|
sum += item[key];
|
});
|
return sum;
|
},
|
getArrayValueEnum: (data, key) => {
|
let arr = [];
|
data.forEach(item => {
|
arr.indexOf(item[key]) == -1 ? arr.push(item[key]) : "";
|
})
|
return arr;
|
}
|
}
|