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
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'; |
|
}
|
|
|