158 lines
3.6 KiB
JavaScript
158 lines
3.6 KiB
JavaScript
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(':')
|
||
}
|
||
|
||
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('.')
|
||
}
|
||
}
|
||
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]);
|
||
}
|
||
};
|
||
|
||
const numberToChinese = (num)=> {
|
||
const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
|
||
const chineseUnits = ['', '十', '百', '千', '万', '亿', '兆'];
|
||
|
||
if (num === 0) {
|
||
return chineseNums[0];
|
||
}
|
||
|
||
const digits = Math.floor(num).toString().split('');
|
||
const len = digits.length;
|
||
|
||
let result = '';
|
||
|
||
for (let i = 0; i < len; i++) {
|
||
const digit = parseInt(digits[i]);
|
||
const unit = chineseUnits[len - 1 - i];
|
||
|
||
if (digit !== 0) {
|
||
result += chineseNums[digit] + unit;
|
||
} else {
|
||
if (result[result.length - 1] !== chineseNums[0]) {
|
||
result += chineseNums[digit]
|
||
}
|
||
}
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
// - 获取地址详情
|
||
const getAddressDetail = (item= {})=> {
|
||
return `${item.countryName||''}${item.provinceName||''}${item.cityName||''}${item.countyName||''}${item.townName||''}${item.address||''}`
|
||
}
|
||
|
||
// - 转换list的key val
|
||
const transListKeyTitle = ({ valKey = '', titleKey = '', list = [] })=> {
|
||
list.map(t=> {
|
||
t.title = t[titleKey]
|
||
t.val = t[valKey]
|
||
})
|
||
return list
|
||
}
|
||
|
||
// -防抖
|
||
const debounce = (fn, wait) => {
|
||
let delay = wait || 500
|
||
let timer
|
||
return function() {
|
||
let args = arguments;
|
||
if (timer) {
|
||
clearTimeout(timer)
|
||
console.log('拦截')
|
||
}
|
||
let callNow = !timer
|
||
timer = setTimeout(() => {
|
||
console.log('发送')
|
||
fn.apply(this, args)
|
||
timer = null
|
||
}, delay)
|
||
}
|
||
}
|
||
|
||
// -节流
|
||
const throttle = (fn, wait) => {
|
||
let delay = wait || 500
|
||
let timer = null
|
||
return function() {
|
||
if (timer) {
|
||
console.log('拦截');
|
||
return
|
||
}
|
||
timer = setTimeout(() => {
|
||
console.log('发送');
|
||
fn.apply(this, arguments)
|
||
timer = null
|
||
}, delay)
|
||
}
|
||
}
|
||
|
||
export {
|
||
getAddressDetail,
|
||
numberToChinese,
|
||
formatTime,
|
||
formatLocation,
|
||
dateUtils,
|
||
transListKeyTitle,
|
||
debounce,
|
||
throttle,
|
||
}
|