/**
|
* 格式化日期格式
|
*/
|
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;
|
}
|