filters.js 1.41 KB
Newer Older
lxyang committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
import moment from 'moment/moment'
// 100000 ==> 100,000
const thousNum = (value) => {
  if (typeof value === 'number' || Number(value)) {
    if ((value + '').indexOf('.') > 0) {
      return (value + '').replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
    } else {
      return (value + '').replace(/(\d)(?=(\d{3})+$)/g, '$1,')
    }
  } else {
    return '-'
  }
}

const notData = (val) => val === '-' ? '暂无数据' : val

// 123123123123 ==> 2018-12-12
const formatDate = (value) => {
  return !value ? '-' : moment(value).format('YYYY-MM-DD HH:mm:ss')
}

const bigNum = value => {
  const yi = 100000000
  const wan = 10000
  if (typeof value === 'number' || Number(value)) {
    const main = value / yi
    const mainValue = main >= 1 ? parseInt(main) + '亿' : ''

    const sub = value % yi
    const subValue = sub / wan > 1 ? parseInt(sub / wan) + '万' : main < 1 ? '0万' : ''
    return mainValue + subValue
  } else {
    return '0万'
  }
}

const formatFileSize = (value) => {
  if (value == null || value === '') {
    return ''
  }
  const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
  let index = 0
  let fileSize = parseFloat(value)
  index = Math.floor(Math.log(fileSize) / Math.log(1024))
  let size = fileSize / Math.pow(1024, index)
  size = size.toFixed(2)// 保留的小数位数
  return size + ' ' + unitArr[index]
}

export {
  thousNum,
  notData,
  bigNum,
  formatDate,
  formatFileSize
}