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; } }