export function getUrlParam(name: string, url?: string) { var re = new RegExp('[\\?&#]' + name + '=([^&#]+)', 'gi'); var ma = (url || window.location.href).match(re); var strArr; if (ma && ma.length > 0) { strArr = ma[ma.length - 1]; var _index = strArr.indexOf('='); return strArr.substring(_index + 1); } return ''; } // 用于加载水印图片 function loadImage(imageUrl: string) { // @ts-ignore return new Promise((resolve) => { const image = new Image(); image.src = imageUrl; image.onload = () => resolve(image); }); } export const getTimestamp = (dateTime: string) => { dateTime = dateTime || ''; return new Date(dateTime.replace(/\-/g, '/')).getTime(); }; export const timeFormat = (dateTime: string, format: string) => { dateTime = dateTime.replace(/\-/g, '/'); format = format || 'yyyy-MM-dd hh:mm:ss'; var dateObj = new Date(dateTime); var date: any = { 'M+': dateObj.getMonth() + 1, 'd+': dateObj.getDate(), 'h+': dateObj.getHours(), 'm+': dateObj.getMinutes(), 's+': dateObj.getSeconds(), 'q+': Math.floor((dateObj.getMonth() + 3) / 3), 'S+': dateObj.getMilliseconds(), }; if (/(y+)/i.test(format)) { format = format.replace( RegExp.$1, (dateObj.getFullYear() + '').substr(4 - RegExp.$1.length) ); } for (var k in date) { if (new RegExp('(' + k + ')').test(format)) { format = format.replace( RegExp.$1, RegExp.$1.length == 1 ? date[k] : ('00' + date[k]).substr(('' + date[k]).length) ); } } return format; }; export const languageIntroduce = (list = [], type: any) => { type = type || '1'; for (let introduce of list) { if ((introduce as any).languageType == type) { return introduce; } } return { introduction: '', name: '', languageType: '' }; }; export function getTime(date: any, withSecond = false) { const hour = date.getHours(); const minute = date.getMinutes(); const second = date.getSeconds(); return withSecond ? `${addZeroPrefix(hour)}:${addZeroPrefix(minute)}:${addZeroPrefix(second)}` : `${hour}:${addZeroPrefix(minute)}`; } function addZeroPrefix(number: number) { return number < 10 ? `0${number}` : number; } export function uuid() { var d = new Date().getTime(); if (window.performance && typeof window.performance.now === 'function') { d += performance.now(); //use high-precision timer if available } var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( /[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; // d是随机种子 d = Math.floor(d / 16); return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16); } ); return uuid; } /** 将base64转换为文件对象 * @param {String} base64 base64字符串 * @param type * */ export function b64toBlob(base64: string, type: string = 'image/png') { let base64Arr = base64.split(','); let base64String = ''; if (base64Arr.length > 1) { //如果是图片base64,去掉头信息 base64String = base64Arr[1]; type = base64Arr[0].substring( base64Arr[0].indexOf(':') + 1, base64Arr[0].indexOf(';') ); } // 将base64解码 const bytes = atob(base64String); //const bytes = base64; const bytesCode = new ArrayBuffer(bytes.length); // 转换为类型化数组 const byteArray = new Uint8Array(bytesCode); // 将base64转换为ascii码 for (let i = 0; i < bytes.length; i++) { byteArray[i] = bytes.charCodeAt(i); } // 生成Blob对象(文件对象) return new Blob([bytesCode], { type }); } /** 深拷貝 * @param obj * */ export function deepCopy(obj: any) { // hash表,记录所有的对象的引用关系 let map = new WeakMap(); function dp(obj: any) { let result: any = null; let keys = Object.keys(obj); let key = null, temp = null, existobj = null; existobj = map.get(obj); //如果这个对象已经被记录则直接返回 if (existobj) { return existobj; } result = {}; map.set(obj, result); for (let i = 0, len = keys.length; i < len; i++) { key = keys[i]; temp = obj[key]; if (temp && typeof temp === 'object') { result[key] = dp(temp); } else { result[key] = temp; } } return result; } return dp(obj); } export function getLangType() { const langTypeMap: any = { 'zh-cn': '1', 'zh-tw': '2', 'en-us': '3', }; const lang = localStorage.getItem('lang'); return langTypeMap[lang || 'zh-tw']; } export function isObject(obj: any) { return Object.prototype.toString.call(obj) === '[object Object]'; } export function isJsonString(str: string) { try { if (typeof JSON.parse(str) == 'object') { return true; } } catch (e) {} return false; } export function JsonParse(data: any) { return isJsonString(data) ? JSON.parse(data) : data; }