/** * 常用公共函数封装 */ /** * 深拷贝 */ export const deepCopy = function (obj: any, c?: any): any { if (!c) { c = obj.constructor === Array ? [] : {}; } for (var i in obj) { if (typeof obj[i] === 'object' && obj[i]) { c[i] = obj[i].constructor === Array ? [] : {}; deepCopy(obj[i], c[i]); } else { c[i] = obj[i]; } } return c; }; /** * 如果c有obj的key,将obj的值 拷贝给c */ export const copy = function (obj: any, c: any): any { for (var i in obj) { if (Object.keys(c).includes(i)) { if (typeof obj[i] === 'object' && obj[i]) { c[i] = obj[i].constructor === Array ? [] : {}; deepCopy(obj[i], c[i]); } else { c[i] = obj[i]; } } } return c; }; /** * 获取订单失效时间 * 传入endDate */ export const getexpirationTime = function (endDate: string): string { /**ios下转换时间 */ endDate = endDate.replace(/\-/g, "/"); let seconds = Math.floor((new Date(endDate).getTime() - Date.now()) / 1000); if (seconds > 0) { let hour: number; let min: number; let sec: number; min = Math.floor(seconds / 60); //分钟 sec = seconds % 60; //秒 hour = Math.floor(min / 60); min = min % 60; let hourStr = formatNumber(hour); let minStr = formatNumber(min); let secStr = formatNumber(sec); return `${hourStr}:${minStr}:${secStr}`; } else { return "00:00:00"; } }; /** * 日期补足两位 */ export const formatNumber = function (n: number | string): string { n = n.toString(); return n[1] ? n : '0' + n; }; /** * 脱敏 num1 前面位数 num2后面位数 */ export const desensitization = function (str: string, num1: number = 1, num2: number = 1): string { num1 = Number(num1); num2 = Number(num2); if (str.length <= (num1 + num2)) { return str; } let num = str.length - num1 - num2; let strDes = ''; let strDesArr = new Array(num); for (let i of strDesArr) { strDes += "*"; } return str.substring(0, num1) + strDes + str.substring(num1 + strDesArr.length); };