utils.js 2.51 KB
Newer Older
1 2
import moment from 'moment';

偏右's avatar
偏右 committed
3
export function fixedZero(val) {
4 5 6
  return val * 1 < 10 ? `0${val}` : val;
}

偏右's avatar
偏右 committed
7
export function getTimeDistance(type) {
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
  const now = new Date();
  const oneDay = 1000 * 60 * 60 * 24;

  if (type === 'today') {
    now.setHours(0);
    now.setMinutes(0);
    now.setSeconds(0);
    return [moment(now), moment(now.getTime() + (oneDay - 1000))];
  }

  if (type === 'week') {
    let day = now.getDay();
    now.setHours(0);
    now.setMinutes(0);
    now.setSeconds(0);

    if (day === 0) {
      day = 6;
    } else {
      day -= 1;
    }

    const beginTime = now.getTime() - (day * oneDay);

    return [moment(beginTime), moment(beginTime + ((7 * oneDay) - 1000))];
  }

  if (type === 'month') {
    const year = now.getFullYear();
    const month = now.getMonth();
    const nextDate = moment(now).add(1, 'months');
    const nextYear = nextDate.year();
    const nextMonth = nextDate.month();

nikogu's avatar
nikogu committed
42
    return [moment(`${year}-${fixedZero(month + 1)}-01 00:00:00`), moment(moment(`${nextYear}-${fixedZero(nextMonth + 1)}-01 00:00:00`).valueOf() - 1000)];
43 44 45 46 47 48 49 50
  }

  if (type === 'year') {
    const year = now.getFullYear();

    return [moment(`${year}-01-01 00:00:00`), moment(`${year}-12-31 23:59:59`)];
  }
}
ddcat1115's avatar
ddcat1115 committed
51

52
export function getPlainNode(nodeList, parentPath = '') {
ddcat1115's avatar
ddcat1115 committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
  const arr = [];
  nodeList.forEach((node) => {
    const item = node;
    item.path = `${parentPath}/${item.path || ''}`.replace(/\/+/g, '/');
    item.exact = true;
    if (item.children && !item.component) {
      arr.push(...getPlainNode(item.children, item.path));
    } else {
      if (item.children && item.component) {
        item.exact = false;
      }
      arr.push(item);
    }
  });
  return arr;
}

70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
export function digitUppercase(n) {
  const fraction = ['θ§’', 'εˆ†'];
  const digit = ['ι›Ά', 'ε£Ή', 'θ΄°', '叁', '肆', '伍', '陆', 'ζŸ’', '捌', 'ηŽ–'];
  const unit = [
    ['ε…ƒ', 'δΈ‡', 'δΊΏ'],
    ['', 'ζ‹Ύ', 'δ½°', '仟'],
  ];
  let num = Math.abs(n);
  let s = '';
  fraction.forEach((item, index) => {
    s += (digit[Math.floor(num * 10 * (10 ** index)) % 10] + item).replace(/ι›Ά./, '');
  });
  s = s || 'ζ•΄';
  num = Math.floor(num);
  for (let i = 0; i < unit[0].length && num > 0; i += 1) {
    let p = '';
    for (let j = 0; j < unit[1].length && num > 0; j += 1) {
      p = digit[num % 10] + unit[1][j] + p;
      num = Math.floor(num / 10);
    }
    s = p.replace(/(ι›Ά.)*ι›Ά$/, '').replace(/^$/, 'ι›Ά') + unit[0][i] + s;
  }

  return s.replace(/(ι›Ά.)*ι›Άε…ƒ/, 'ε…ƒ').replace(/(ι›Ά.)+/g, 'ι›Ά').replace(/^ζ•΄$/, 'ι›Άε…ƒζ•΄');
}