// 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 指定格式: * * @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; };