/**
 * 通用js方法封装处理
 */

const baseURL = process.env.VUE_APP_BASE_API;


// 通用下载方法
export function download(fileName) {
  window.location.href = baseURL + '/common/download?fileName=' + encodeURI(fileName) + '&delete=' + true;
}

/**
 * dataURL转化为File对象
 * @param {*} dataURL 本地数据 base64
 */
export function dataURLtoFile(dataURL) {
  const arr = dataURL.split(',');
  const mime = arr[0].match(/:(.*?);/)[1];
  const bstr = atob(arr[1]);
  let n = bstr.length;
  const u8arr = new Uint8Array(n);
  while (n) {
    u8arr[n - 1] = bstr.charCodeAt(n - 1);
    n -= 1; // to make eslint happy
  }
  return new File([u8arr], '', { type: mime });
}

/**
 * 整理echat 数据
 * @param {*} arrData 数据
 */
export function arrData(data) {
  const obj = {
    arr1: [],
    arr2: [],
    arr3: [],
    arr4: [],
    btm1: []
  };

  data.forEach((a, b) => {
    obj.arr1.push(a.newApplyCnt);
    obj.btm1.push(a.xtime);
    obj.arr3.push(a.newMemberCnt);
    obj.arr2.push(a.newContactCnt);
    obj.arr4.push(a.negativeFeedbackCnt);
  });
  // console.log(obj)
  return obj;
}

export function filterSize(size) {
  const FIX = 2;
  const POW_B = 1;
  const POW_KB = 2;
  const POW_MB = 3;
  const POW_GB = 4;
  if (!size) return '';
  if (size < pow1024(POW_B)) return size + ' B';
  if (size < pow1024(POW_KB)) return (size / pow1024(POW_B)).toFixed(FIX) + ' KB';
  if (size < pow1024(POW_MB)) return (size / pow1024(POW_KB)).toFixed(FIX) + ' MB';
  if (size < pow1024(POW_GB)) return (size / pow1024(POW_MB)).toFixed(FIX) + ' GB';
  return (size / pow1024(POW_GB)).toFixed(FIX) + ' TB';
}

export function pow1024(num) {
  const MAX_BYTE = 1024;
  return Math.pow(MAX_BYTE, num);
}



/**
 * 获取文件类型图标class
 */
export function getFileIcon(url) {
  const suffix = getSuffix(url);
  if (ICON_LIST.includes(suffix)) {
    return suffix;
  }
  return dealExtraIcon(suffix);
}

/**
 * 处理后缀与图标名不同的文件类型
 */
export function dealExtraIcon(suffix) {
  const fileObj = {
    'mp2': 'audio',
    'mp3': 'audio',
    'qy2': 'audio',
    'ra': 'audio',
    'ram': 'audio',
    'xlsx': 'excel',
    'xls': 'excel',
    'xlsb': 'excel',
    'xlt': 'excel',
    'xlk': 'excel',
    'xll': 'excel',
    'xlv': 'excel',
    'xlw': 'excel',
    'pptx': 'ppt',
    'mov': 'video',
    'png': 'image',
    'gif': 'image',
    'jpg': 'image',
    'jpeg': 'image',
    'img': 'image',
    'svg': 'image',
    'docx': 'doc',
    'rar': 'zip',
    'tz': 'zip',
    'jsp': 'html',
    'js': 'html',
    'json': 'html',
    'php': 'html',
    'phtml': 'html',
    'py': 'html',
    'pyw': 'html',
    'pyc': 'html',
    'pyd': 'html',
    'shtml': 'html',
    'rm': 'mov',
    'vob': 'mov'
  };
  const suffixName = fileObj[suffix] || 'unknown';
  return suffixName;
}
