295 lines
8.4 KiB
JavaScript
295 lines
8.4 KiB
JavaScript
// 毫秒转时长
|
|
export function formatDuring(mss) {
|
|
var days = parseInt(mss / (1000 * 60 * 60 * 24));
|
|
var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
|
|
var seconds = (mss % (1000 * 60)) / 1000;
|
|
if (days) {
|
|
return days + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒";
|
|
} else if (hours) {
|
|
return hours + "小时" + minutes + "分钟" + seconds + "秒";
|
|
} else if (minutes) {
|
|
return minutes + "分钟" + seconds + "秒";
|
|
} else {
|
|
return seconds + "秒";
|
|
}
|
|
}
|
|
|
|
export function weekValidate(date) {
|
|
let val = (new Date(date)).getDay()
|
|
switch (val) {
|
|
case 0:
|
|
return '星期日'
|
|
case 1:
|
|
return '星期一'
|
|
case 2:
|
|
return '星期二'
|
|
case 3:
|
|
return '星期三'
|
|
case 4:
|
|
return '星期四'
|
|
case 5:
|
|
return '星期五'
|
|
case 6:
|
|
return '星期六'
|
|
}
|
|
}
|
|
// 两个日期的相差天数
|
|
export function getDifferTime(startDate, endDate, type='day') {
|
|
let startTime = new Date(Date.parse(startDate.replace(/-/g,"/"))).getTime();
|
|
let endTime = new Date(Date.parse(endDate.replace(/-/g,"/"))).getTime();
|
|
let dates = 0;
|
|
switch (type) {
|
|
case "day":
|
|
dates = Math.abs((startTime - endTime)) / (1000 * 60 * 60 * 24);
|
|
break;
|
|
case "hour":
|
|
dates = Math.abs((startTime - endTime)) / (1000 * 60 * 60);
|
|
break;
|
|
}
|
|
return Math.round(dates)
|
|
}
|
|
|
|
// 转换时间格式
|
|
export function timeValidate(date, type) {
|
|
const time = date ? new Date(date) : new Date()
|
|
const yyyy = time.getFullYear()
|
|
const MM = (time.getMonth() + 1).toString().padStart(2, 0)
|
|
const dd = time.getDate().toString().padStart(2, '0')
|
|
const hh = time.getHours().toString().padStart(2, '0')
|
|
const mm = time.getMinutes().toString().padStart(2, '0')
|
|
const ss = time.getSeconds().toString().padStart(2, '0')
|
|
if (type == 'ymd') {
|
|
return `${yyyy}-${MM}-${dd}`;
|
|
}
|
|
if (type == 'md') {
|
|
return `${MM}.${dd}`
|
|
}
|
|
return `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}`
|
|
}
|
|
|
|
|
|
// 获取当前近多少天 7后7天 -7 前五天
|
|
export function getRecentDay(n) {
|
|
var currentDate = new Date();
|
|
var preDate = new Date(currentDate.getTime() + n * 24 * 3600 * 1000)
|
|
let year = preDate.getFullYear()
|
|
let mon = preDate.getMonth() + 1
|
|
let day = preDate.getDate()
|
|
let s = year + '-' + (mon < 10 ? ('0' + mon) : mon) + '-' + (day < 10 ? ('0' + day) : day)
|
|
return s
|
|
}
|
|
|
|
// 获取时间的第一天 和最后一天
|
|
export function getThistWeekDare(type) {
|
|
var dateArr = []
|
|
var date = new Date()
|
|
let year = date.getFullYear() //当年
|
|
let m = date.getMonth() + 1 //当月
|
|
let mon = m < 10 ? ("0" + m) : m;
|
|
if (type == 'week') { //周
|
|
date.setDate(date.getDate() - date.getDay() + 1); // 本周一的日期
|
|
let first = year + '-' + mon + '-' + date.getDate()
|
|
date.setDate(date.getDate() - date.getDay() + 7); // 本周日的日期
|
|
let last = year + '-' + mon + '-' + date.getDate()
|
|
dateArr = [timeValidate(first,"ymd"),timeValidate(last,"ymd")]
|
|
} else if (type == 'month') { //月
|
|
let d = new Date(year, m, 0).getDate() //获取当月最后一天
|
|
let day = d < 10 ? "0" + d : d
|
|
dateArr = [[year, mon, '01'].join('-'), [year, mon, day].join('-')]
|
|
} else if (type == 'quarter') { //季度
|
|
let quarter = Math.floor(mon / 3)//从1开始到4
|
|
let quarterArr = []
|
|
if(quarter == 1) quarterArr = [new Date(year,0,1),new Date(year,2,31)];
|
|
if(quarter == 2) quarterArr = [new Date(year,3,1),new Date(year,5,30)];
|
|
if(quarter == 3) quarterArr = [new Date(year,6,1),new Date(year,8,30)];
|
|
if(quarter == 4) quarterArr = [new Date(year,9,1),new Date(year,11,31)];
|
|
dateArr = [timeValidate(quarterArr[0],'ymd'),timeValidate(quarterArr[1],'ymd')]
|
|
}
|
|
return dateArr
|
|
}
|
|
// 获取n近7月 7后7 -7 前
|
|
export function getnRencebtMonth(n) {
|
|
let date = new Date();
|
|
date.setMonth(date.getMonth() - n)
|
|
date.toLocaleDateString()
|
|
let y = date.getFullYear()
|
|
let m = date.getMonth() + 1
|
|
m = m < 10 ? ('0' + m) : m + ''
|
|
return y + m
|
|
}
|
|
/**
|
|
* 数据去重 相同数据值累加
|
|
* @param {Object} array 数据
|
|
*/
|
|
export function setArray(array) {
|
|
let newArr = []
|
|
array.forEach(item => {
|
|
const res = newArr.findIndex(ol => {
|
|
//组织机构代码相同 并且报警类别相同
|
|
return item.ssbmdm == ol.ssbmdm && item.bjlb == ol.bjlb
|
|
})
|
|
if (res !== -1) {
|
|
newArr[res].sl = newArr[res].sl + item.sl
|
|
} else {
|
|
newArr.push(item)
|
|
}
|
|
})
|
|
|
|
return newArr
|
|
}
|
|
|
|
/**
|
|
* 合并数据
|
|
* @param {Object} array 数据
|
|
*/
|
|
export function hbArray(array, item1, item2, item3) {
|
|
let newArr = []
|
|
array.forEach(item => {
|
|
const res = newArr.findIndex(ol => {
|
|
//组织机构代码相同 并且报警类别相同
|
|
return item.product == ol.product
|
|
})
|
|
if (res !== -1) {
|
|
newArr[res][item1] = newArr[res][item1] + item[item1]
|
|
newArr[res][item2] = newArr[res][item2] + item[item2]
|
|
newArr[res][item3] = newArr[res][item3] + item[item3]
|
|
} else {
|
|
newArr.push(item)
|
|
}
|
|
})
|
|
|
|
return newArr
|
|
}
|
|
//时间格式
|
|
export function dateFormat(type, time) {
|
|
let date
|
|
if (time) {
|
|
date = new Date(time);
|
|
} else {
|
|
date = new Date();
|
|
}
|
|
let year = date.getFullYear();
|
|
let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
|
let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
|
|
let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
|
let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
|
let day
|
|
|
|
if (type == 'z') {
|
|
//前一天日期
|
|
day = date.getDate() - 1;
|
|
day = day < 10 ? "0" + day : day;
|
|
return `${year}-${month}-${day}`;
|
|
} else if (type == 'all') {
|
|
//格式化日期时间
|
|
day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
} else {
|
|
//当天日期
|
|
day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
return `${year}-${month}-${day}`;
|
|
}
|
|
return day
|
|
}
|
|
|
|
//数字超长处理
|
|
export function handleNum(num) {
|
|
var data = 0
|
|
if (num) {
|
|
try {
|
|
if (num * 1 > 100000) {
|
|
data = (num / 10000).toFixed(0) + '万'
|
|
} else {
|
|
data = (num * 1).toFixed(0)
|
|
}
|
|
} catch (error) {
|
|
data = 0
|
|
}
|
|
}
|
|
|
|
return data
|
|
}
|
|
/**
|
|
* 文件是否是图片
|
|
* @param {*} val
|
|
*/
|
|
export function IS_PNG(val) {
|
|
return ['bmp', 'jpg', 'png', 'tif', 'gif', 'pcx', 'tga', 'exif', 'fpx', 'svg', 'psd', 'cdr', 'pcd', 'dxf', 'ufo',
|
|
'eps', 'ai', 'raw', 'wmf', 'webp', 'avif', 'apng'
|
|
].indexOf(val.toLowerCase()) !== -1
|
|
}
|
|
/**
|
|
* 文件是否是音频
|
|
* @param {*} val
|
|
*/
|
|
export function IS_MP3(val) {
|
|
return ['mp3', 'wav', 'wma', 'mp2', 'flac', 'midi', 'ra', 'ape', 'aac', 'cda', 'mov'].indexOf(val.toLowerCase()) !==
|
|
-1
|
|
}
|
|
|
|
/**
|
|
* 文件是否是视频
|
|
* @param {*} val
|
|
*/
|
|
export function IS_MP4(val) {
|
|
return ['avi', 'wmv', 'mpeg', 'mp4', 'm4v', 'mov', 'asf', 'fiv', 'f4v', 'mvb', 'rm', '3gp', 'vob'].indexOf(val
|
|
.toLowerCase()) !== -1
|
|
}
|
|
|
|
|
|
function handelArr(arr) {
|
|
let brr = []
|
|
if (arr && arr.length > 0) {
|
|
let obj = {}
|
|
let coords = "";
|
|
for (let i = 0; i < arr.length; i++) {
|
|
coords += arr[i] + ","
|
|
}
|
|
obj.coords = coords
|
|
brr.push(obj)
|
|
}
|
|
return brr
|
|
}
|
|
|
|
|
|
/**
|
|
* 时间 天数
|
|
* @param {*} val
|
|
*/
|
|
export function setEchartTime(val) {
|
|
let date = new Date();
|
|
let arrTime = [];
|
|
if (val == 0) {
|
|
for (let i = 0; i < 24; i++) {
|
|
arrTime.push(i)
|
|
}
|
|
} else {
|
|
for (let i = 0; i < val; i++) {
|
|
let date1 = new Date(date.getTime() - i * 24 * 60 * 60 * 1000)
|
|
arrTime.push(_setTime(date1))
|
|
}
|
|
arrTime.reverse()
|
|
}
|
|
return arrTime
|
|
}
|
|
//设置时间
|
|
function _setTime(date) {
|
|
let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
|
let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
return `${month}-${day}`;
|
|
}
|
|
// 随机颜色 - 把16进制的颜色换成rgba格式
|
|
export function choseRbgb(color,opcity) {
|
|
if(color){
|
|
return 'rgba('+ parseInt('0x'+color.slice(1,3)) + ','+ parseInt('0x'+color.slice(3,5))+','+parseInt('0x'+color.slice(5,7)) + ','+opcity+')'
|
|
}else{
|
|
let r = Math.floor(Math.random()*256)
|
|
let g = Math.floor(Math.random()*256)
|
|
let b = Math.floor(Math.random()*256)
|
|
let a = opcity ? opcity :1
|
|
return `rgba(${r},${g},${b},${a})`
|
|
}
|
|
}
|