// import parseTime, formatTime and set to filter
export { parseTime, formatTime } from '@/utils'
let moment = require("moment");
/**
* Show plural label if time is plural number
* @param {number} time
* @param {string} label
* @return {string}
*/
function pluralize(time, label) {
if (time === 1) {
return time + label
}
return time + label + 's'
}
/**
* @param {number} time
*/
export function timeAgo(time) {
const between = Date.now() / 1000 - Number(time)
if (between < 3600) {
return pluralize(~~(between / 60), ' minute')
} else if (between < 86400) {
return pluralize(~~(between / 3600), ' hour')
} else {
return pluralize(~~(between / 86400), ' day')
}
}
/**
* Number formatting
* like 10000 => 10k
* @param {number} num
* @param {number} digits
*/
export function numberFormatter(num, digits) {
const si = [
{ value: 1E18, symbol: 'E' },
{ value: 1E15, symbol: 'P' },
{ value: 1E12, symbol: 'T' },
{ value: 1E9, symbol: 'G' },
{ value: 1E6, symbol: 'M' },
{ value: 1E3, symbol: 'k' }
]
for (let i = 0; i < si.length; i++) {
if (num >= si[i].value) {
return (num / si[i].value + 0.1).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
}
}
return num.toString()
}
/**
* 10000 => "10,000"
* @param {number} num
*/
export function toThousandFilter(num) {
return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}
/**
* 分转元
* @param {number} num
*/
export function fen2Yuan(num) {
if(num == undefined || num == null){
return 0;
}
num = num / 100;
return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}
/**
* Upper case first char
* @param {String} string
*/
export function uppercaseFirst(string) {
return string.charAt(0).toUpperCase() + string.slice(1)
}
/**
* 将制定格式的时间字符串转换成long
*
0-yyyyMMdd
* 1-yyyy-MM-dd
* 2-HHmmss
* 3-HH:mm:ss
* 4-HHmmssSSS
* 5-HH:mm:ss.SSS
* 6-yyyyMMddHHmmss
* 7-yyyy-MM-dd HH:mm:ss
* 8-yyyyMMddHHmmssSSS
* 9-yyyy-MM-dd HH:mm:ss.SSS
* 10-yyyy/MM/dd HH:mm
* 11-yyyy/MM/dd HH:mm:ss
*
*/
export function string2Long(str, format) {
if (str == null || str == "") {
return "";
}
return date2Long(string2Date(str, format));
}
export function date2Long (date) {
return date.getTime();
}
/**
* 将字符串转化为相应时间
*
* @param {}
* dateStr 时间字符串
* @param {}
* formatType 指定格式:
*
* - 0-yyyyMMdd
* - 1-yyyy-MM-dd
* - 2-HHmmss
* - 3-HH:mm:ss
* - 4-HHmmssSSS
* - 5-HH:mm:ss.SSS
* - 6-yyyyMMddHHmmss
* - 7-yyyy-MM-dd HH:mm:ss
* - 8-yyyyMMddHHmmssSSS
* - 9-yyyy-MM-dd HH:mm:ss.SSS
* - 10-yyyy/MM/dd HH:mm
* - 11-yyyy/MM/dd HH:mm:ss
*
* @return 解析后的Date对象
*/
export function string2Date(date,formatType) {
if(date == null || date == undefined){
return "";
}
let dateTime;
switch (formatType) {
case 0 :
dateTime= moment(date).format("YYYYMMDD");
break;
case 1 :
dateTime= moment(date).format("YYYY-MM-DD");
break;
case 2 :
dateTime= moment(date).format("HHmmss");
break;
case 3 :
dateTime= moment(date).format("HH:mm:ss");
break;
case 4 :
dateTime= moment(date).format("HHmmssSSS");
break;
case 5 :
dateTime= moment(date).format("HH:mm:ss.SSS");
break;
case 6 :
dateTime= moment(date).format("YYYY-MM-DDHHmmss");
break;
case 7 :
dateTime= moment(date).format("YYYY-MM-DD HH:mm:ss");
break;
case 8 :
dateTime= moment(date).format("yyyyMMddHHmmssSSS");
break;
case 9 :
dateTime= moment(date).format("yyyy-MM-dd HH:mm:ss.SSS");
break;
case 10 ://yyyy/MM/dd HH:mm
dateTime= moment(date).format("yyyy/MM/dd HH:mm");
break;
case 11 ://yyyy/MM/dd HH:mm:ss
dateTime= moment(date).format("yyyy/MM/dd HH:mm:ss");
break;
}
return dateTime;
}
/**类型转换*/
export function busTypeFomatter(value){
//业务类型: 1:收入 2:退款 3:支出
if(value == 1){
return '交易';
}else if(value == 2){
return '退款';
}else if(value == 3){
return '支出';
}else{
return '未知';
}
};
export function payTypeFomatter(value){
//业务类型: 1:收入 2:退款 3:支出
if(value == 1){
return '支付宝';
}else if(value == 2){
return '微信';
}else if(value == 3){
return '银联';
}else if(value == 4){
return '服务号';
}else{
return '未知';
}
};
export function payOrderTypeFomatter(row,value){
//101:停车付款单,102:停车预付单,103:停车补缴单,104:共享车位;201:余额充值单,202:押金充值;301:会员卡购买单,302:会员卡续费
if(value == 101){
return '交易-临停支付';
}else if(value == 102){
return '交易-停车预付';
}else if(value == 103){
return '交易-停车补缴';
}else if(value == 104){
return '交易-共享车位预定';
}else if(value == 201){
if(row.terminalSource!='' ||row.terminalSource!=null ||row.terminalSource!=undefined||row.terminalSource!='null'){
if(row.terminalSource == 1){
return '交易-余额充值';
} else if(row.terminalSource == 2){
return '交易-收费员充值';
}else {
return '交易-余额充值';
}
}
else{
return '交易-余额充值';
}
}else if(value == 202){
return '交易-押金充值';
}else if(value == 301){
return '交易-会员卡购买';
}else if(value == 302){
return '交易-会员卡续费';
}else{
return '未知';
}
};
/**
* 订单状态
* @param row
* @param value
* @returns {string}
*/
export function inOutStateFormatter(row, value) {
let orderState = row.orderState;
//停车状态 10:在场 ,20:离场,30:预订
let parkState = row.parkState;
if (null == parkState) {
if (null != row.parkOutTime) {
parkState = 20;
} else {
parkState = 10;
}
}
if (parkState == 10) {
return "在场";
}
if (parkState == 20) {
if (orderState == 52) {
return "欠费";
}else if (orderState == 53) {
return "欠费已补缴";
} else {
return "离场";
}
}
};
/**
* 停车时长
* @param row
* @param value
* @returns {*}
*/
export function parkingDurationFormatter (row, value) {
//
let parkState = row.parkState;
if (null == parkState) {
if (null != row.parkOutTime) {
parkState = 20;
} else {
parkState = 10;
}
}
let inTime = row.parkInTime;
if (parkState == 10) {
let thisTime = new Date().getTime();
let parkDuration = (thisTime - inTime) / 1000;
return formatSeconds(parkDuration);
}
if (value == null) {
return "";
} else {
return formatSeconds(value);
}
};
function formatSeconds(value) {
let theTime = parseInt(value);// 秒
let theTime1 = 0;// 分
let theTime2 = 0;// 小时
let theTime3 = 0;//天
if (theTime < 60) {
return theTime + '秒';
}
if (theTime > 60) {
theTime1 = parseInt(theTime / 60);
theTime = parseInt(theTime % 60);
}
if (theTime1 > 60) {
theTime2 = parseInt(theTime1 / 60);
theTime1 = parseInt(theTime1 % 60);
}
if (theTime2 > 24) {
theTime3 = parseInt(theTime2 / 24);
theTime2 = parseInt(theTime2 % 24);
}
let result = '';
if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) {
result = parseInt(theTime) + "秒"
}
if (theTime1 > 0) {
result = "" + parseInt(theTime1) + "分钟" + result;
}
if (theTime2 > 0) {
result = "" + parseInt(theTime2) + "小时" + result;
}
if (theTime3 > 0) {
result = "" + parseInt(theTime3) + "天" + result;
}
return result;
};