/*
 * @Description: 工具函数
 */

/*
 * @description 获取地址栏hash参数
 */
export const getUrlHash = (paramName) => {
  const urlParams = {};
  const url = window.location.href;
  const idx = url.indexOf("#");
  if (idx === -1) {
    return false;
  }
  let params = url.substring(url.indexOf("#") + 1);
  params = params.split("&");
  params.forEach((item) => {
    const param = item.split("=");
    urlParams[param[0]] = decodeURIComponent(param[1]);
  });
  if (paramName) {
    return urlParams[paramName];
  }
  return urlParams;
};

/**
 * 倒计时
 * @param {String} target 目标时间
 */
export const countDown = (target) => {
  const oDate = new Date(); // 获取日期对象
  const oldTime = oDate.getTime(); // 现在距离1970年的毫秒数
  const newDate = new Date(
    isIE() && String(target).match("-") ? target.replace("-", "/") : target
  );
  const newTime = newDate.getTime(); // 2019年距离1970年的毫秒数
  if (newTime >= oldTime) {
    let second = Math.floor((newTime - oldTime) / 1000); // 未来时间距离现在的秒数
    const day = Math.floor(second / 86400); // 整数部分代表的是天；一天有24*60*60=86400秒 ；
    second %= 86400; // 余数代表剩下的秒数；
    const hour = Math.floor(second / 3600); // 整数部分代表小时；
    second %= 3600; // 余数代表 剩下的秒数；
    const minute = Math.floor(second / 60);
    second %= 60;
    return {
      day,
      hour,
      minute,
      second,
    };
  }
  return false;
};

/**
 * 文件流导出
 */
export const downloadBlob = (res, filename) => {
  const blob = new Blob([res], {
    type: "application/vnd.ms-excel",
  });
  if (window.navigator && window.navigator.msSaveOrOpenBlob) {
    window.navigator.msSaveOrOpenBlob(blob, filename);
  } else {
    const oA = document.createElement("a");
    oA.href = URL.createObjectURL(blob);
    oA.download = filename;
    oA.click();
  }
};


