/** * 格式化日期格式 */ export const formatDate = (date, fmt) => { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) } let o = { 'M+': date.getMonth() + 1, 'd+': date.getDate(), 'h+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds() } for (let k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + '' fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)) } } return fmt } export const padLeftZero = (str) => { return ('00' + str).substr(str.length) } /** * 网络图像文件转Base64 */ export const getBase64Image = (img) => { var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0, img.width, img.height); var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase(); var dataURL = canvas.toDataURL("image/" + ext); return dataURL; } /** *Base64字符串转二进制 */ export const dataURLtoBlob = (dataurl) => { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); } /** *blob to dataURL */ export const blobToDataURL = (blob, callback) => { var a = new FileReader(); a.onload = function (e) { callback(e.target.result); } a.readAsDataURL(blob); return a; } /** * 获取当前时间字符串 * @returns {string} * @constructor */ export const GetDateTimeStr = (d, yearOffset, monthOffset, dayOffset) => { var year = (d.getFullYear() + yearOffset).toString(); var month = (d.getMonth() + 1 + monthOffset).toString(); if (month.length === 1) { month = "0" + month; } var date = (d.getDate() + dayOffset).toString(); if (date.length === 1) { date = "0" + date; } var hour = d.getHours().toString(); if (hour.length === 1) { hour = "0" + hour; } var minute = d.getMinutes().toString(); if (minute.length === 1) { minute = "0" + minute; } var second = d.getSeconds().toString(); if (second.length === 1) { second = "0" + second; } return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second; } export const GetDateStr = (d, yearOffset, monthOffset, dayOffset) => { var year = (d.getFullYear() + yearOffset).toString(); var month = (d.getMonth() + 1 + monthOffset).toString(); if (month.length === 1) { month = "0" + month; } var day = (d.getDate() + dayOffset).toString(); if (day.length === 1) { day = "0" + day; } return year + "-" + month + "-" + day; } export const DownloadBlobFileStream = (resp, filename) => { const blob = new Blob([resp.data]) const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) // 创建下载的链接 downloadElement.href = href downloadElement.download = filename // 下载后文件名 document.body.appendChild(downloadElement) downloadElement.click() // 点击下载 document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) // 释放掉blob对象 } export const NewGuid = () => { var curguid = ""; for (var i = 1; i <= 32; i++) { var id = Math.floor(Math.random() * 16.0).toString(16); curguid += id; if ((i == 8) || (i == 12) || (i == 16) || (i == 20)) curguid += "-"; } return curguid; } export const saveLocalStorage = (name, data) => { //localStorage 存储数组对象的方法 if (data == null) { return; } localStorage.setItem(name, JSON.stringify(data)) } export const getLocalStorage = (name) => { //localStorage 获取数组对象的方法 let data = window.localStorage.getItem(name); if (data == null || data == undefined || data == 'undefined' || data == '') { return null; } return JSON.parse(data); } export const getQueryVariable = (variable) => { let query = window.location.search.substring(1); let vars = query.split("&"); for (let i = 0; i < vars.length; i++) { let pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return (false); } export const isJSON = (str) => { if (typeof str == 'string') { try { JSON.parse(str); return true; } catch (e) { console.log(e); return false; } } console.log('It is not a string!') } export const formatterDatetime = (datestr) => { if (!datestr) return '---'; let date = new Date(datestr); return formatDate(date, 'yyyy-MM-dd hh:mm'); }; export const formatterDate = (datestr) => { if (!datestr) return '---'; let date = new Date(datestr); return formatDate(date, 'yyyy-MM-dd'); }; export const formatterNumber = (num, len) => { if (!num) { return '---'; } return num.toFixed(len); }; export const parseToBoolean = (obj) => { if (!obj) return false; if (obj === 0 || obj === "0" || obj.toLowerCase() === "true") { return true; } else { return false; } }; function setSSOCookie(name, value, days) { const d = new Date(); d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000)); const expires = "expires=" + d.toUTCString(); document.cookie = `${name}=${value};${expires};path=/;domain=.example.com;secure;SameSite=None`; } function getSSOCookie(name) { const nameEQ = name + "="; const ca = document.cookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) === ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); } return null; }