import * as XLSX from 'xlsx'

export function downloadRename (blob, fileType, filename) {
  const typesMap = {
    xlsx: 'application/vnd.ms-excel',
    xls: 'application/vnd.ms-excel',
    pdf: 'application/pdf',
    doc: 'application/msword',
    docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    csv: 'text/csv'
  }
  const type = typesMap[fileType] || ''
  const newBlob = new Blob([blob], { type })
  const href = URL.createObjectURL(newBlob)
  const a = document.createElement('a')
  a.href = href
  a.download = filename + '.' + fileType
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
  URL.revokeObjectURL(href)
}

export function readExcel (file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.readAsBinaryString(file)
    reader.onload = ev => {
      try {
        const data = ev.target.result
        const workbook = XLSX.read(data, { type: 'binary' })
        const firstSheet = workbook.Sheets[workbook.SheetNames[0]]
        const list = XLSX.utils.sheet_to_json(firstSheet)
        resolve(list)
      } catch (e) {
        reject(e)
      }
    }
    reader.onerror = () => reject(new Error('文件读取失败'))
  })
}
