You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

154 lines
3.6 KiB

import moment from 'moment'
export function formatTime(time) {
if (typeof time !== 'number' || time < 0) {
return time
}
var hour = parseInt(time / 3600)
time = time % 3600
var minute = parseInt(time / 60)
time = time % 60
var second = time
return ([hour, minute, second]).map(function(n) {
n = n.toString()
return n[1] ? n : '0' + n
}).join(':')
}
export function formatLocation(longitude, latitude) {
if (typeof longitude === 'string' && typeof latitude === 'string') {
longitude = parseFloat(longitude)
latitude = parseFloat(latitude)
}
longitude = longitude.toFixed(2)
latitude = latitude.toFixed(2)
return {
longitude: longitude.toString().split('.'),
latitude: latitude.toString().split('.')
}
}
export var dateUtils = {
UNITS: {
'年': 31557600000,
'月': 2629800000,
'天': 86400000,
'小时': 3600000,
'分钟': 60000,
'秒': 1000
},
humanize: function(milliseconds) {
var humanize = '';
for (var key in this.UNITS) {
if (milliseconds >= this.UNITS[key]) {
humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
break;
}
}
return humanize || '刚刚';
},
format: function(dateStr) {
var date = this.parse(dateStr)
var diff = Date.now() - date.getTime();
if (diff < this.UNITS['天']) {
return this.humanize(diff);
}
var _format = function(number) {
return (number < 10 ? ('0' + number) : number);
};
return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' +
_format(date.getHours()) + ':' + _format(date.getMinutes());
},
parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
var a = str.split(/[^0-9]/);
return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
}
};
export function now(format) {
return moment().format(format)
}
export function getDictLabel(dicts, value) {
if (!value) {
return ''
}
if (!dicts || !dicts.length) {
return ''
}
const obj = dicts.find(item => item.dictValue === value)
if (!obj) {
return ''
}
return obj.dictLabel;
}
export function getDictLabelByArray(dicts, value) {
if (!value) {
return ''
}
if (!dicts || !dicts.length) {
return ''
}
const arr = dicts.filter(item => value.split(',').indexOf(item.dictValue) > -1)
if (arr.length === 0) {
return ''
}
return arr.map(item => item.dictLabel).join('、');
}
export const formatTimeText = (seconds) => {
if (!seconds) {
return ''
}
if (seconds < 0) {
return formatTimeText(-seconds);
}
// 秒
if (seconds < 60) {
return seconds + '秒'
}
// 分钟
if (seconds < 3600) {
return `${Math.floor(seconds / 60)}${seconds % 60}`
}
// 小时
if (seconds < 86400) {
const remainder = seconds % 3600;
return `${Math.floor(seconds / 3600)}${parseInt(seconds % 3600 / 60)}`
}
// 天
const remainder = seconds % 86400;
return `${Math.floor(seconds / 86400)}${parseInt(seconds % 86400 / 3600)}`
}
export const getFileType = (fileName) => {
if (!fileName || fileName.indexOf('.') === -1) {
return 'txt';
}
const fileSuffix = fileName.substr(fileName.lastIndexOf('.') + 1).toLowerCase();
const imgSuffix = ['png', 'jpg', 'jpeg', 'gif'];
if (imgSuffix.indexOf(fileSuffix) > -1) {
return 'img'
}
if (fileSuffix === 'doc' || fileSuffix === 'docx' ) {
return 'doc'
}
if (fileSuffix === 'xls' || fileSuffix === 'xlsx' ) {
return 'xls'
}
if (fileSuffix === 'pdf' ) {
return 'pdf'
}
if (fileSuffix === 'mp3') {
return 'mp3'
}
if (fileSuffix === 'mp4') {
return 'mp4'
}
return 'txt';
}