{"version":3,"file":"download.mjs","sources":["../../../../packages/utils/download.ts"],"sourcesContent":["import { ElMessage } from 'element-plus'\nimport { useAxios } from '@vueuse/integrations/useAxios'\nimport type { AxiosInstance, AxiosRequestConfig } from 'axios'\n\nexport type DownloadOptions = Partial<AxiosRequestConfig> & {\n  url: string\n  fileName: string\n  instance?: AxiosInstance\n}\n\nexport const download = (options: DownloadOptions) => {\n  const { url, params, fileName, instance, ...other } = options\n  const { execute } = instance ? useAxios(instance) : useAxios()\n  return execute(url, {\n    method: 'get',\n    responseType: 'blob',\n    params,\n    timeout: 1000 * 60 * 5,\n    ...other,\n  }).then((response) => {\n    downloadBlobFile(response.data.value, fileName)\n  })\n}\n\nexport function downloadBlobFile(blob: Blob, fileName: string) {\n  if (blob && blob.size === 0) {\n    ElMessage.error('Download Error!')\n    return\n  }\n\n  const url = window.URL.createObjectURL(\n    blob instanceof Blob ? blob : new Blob([blob])\n  )\n  const link = document.createElement('a')\n  link.href = url\n  link.download = fileName\n  document.body.appendChild(link)\n  link.click()\n  window.setTimeout(() => {\n    URL.revokeObjectURL(url) // 释放临时文件，防止内存泄漏\n    document.body.removeChild(link)\n  }, 0)\n}\n"],"names":[],"mappings":";;;AAUa,MAAA,QAAA,GAAW,CAAC,OAA6B,KAAA;AACpD,EAAA,MAAM,EAAE,GAAK,EAAA,MAAA,EAAQ,QAAU,EAAA,QAAA,EAAA,GAAa,OAAU,GAAA,OAAA,CAAA;AACtD,EAAA,MAAM,EAAE,OAAQ,EAAA,GAAI,WAAW,QAAS,CAAA,QAAQ,IAAI,QAAS,EAAA,CAAA;AAC7D,EAAA,OAAO,QAAQ,GAAK,EAAA;AAAA,IAClB,MAAQ,EAAA,KAAA;AAAA,IACR,YAAc,EAAA,MAAA;AAAA,IACd,MAAA;AAAA,IACA,OAAA,EAAS,MAAO,EAAK,GAAA,CAAA;AAAA,IACrB,GAAG,KAAA;AAAA,GACJ,CAAA,CAAE,IAAK,CAAA,CAAC,QAAa,KAAA;AACpB,IAAiB,gBAAA,CAAA,QAAA,CAAS,IAAK,CAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;AAAA,GAC/C,CAAA,CAAA;AACH,EAAA;AAEgB,SAAA,gBAAA,CAAiB,MAAY,QAAkB,EAAA;AAC7D,EAAI,IAAA,IAAA,IAAQ,IAAK,CAAA,IAAA,KAAS,CAAG,EAAA;AAC3B,IAAA,SAAA,CAAU,MAAM,iBAAiB,CAAA,CAAA;AACjC,IAAA,OAAA;AAAA,GACF;AAEA,EAAM,MAAA,GAAA,GAAM,OAAO,GAAI,CAAA,eAAA;AAAA,IACrB,gBAAgB,IAAO,GAAA,IAAA,GAAO,IAAI,IAAK,CAAA,CAAC,IAAI,CAAC,CAAA;AAAA,GAC/C,CAAA;AACA,EAAM,MAAA,IAAA,GAAO,QAAS,CAAA,aAAA,CAAc,GAAG,CAAA,CAAA;AACvC,EAAA,IAAA,CAAK,IAAO,GAAA,GAAA,CAAA;AACZ,EAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAChB,EAAS,QAAA,CAAA,IAAA,CAAK,YAAY,IAAI,CAAA,CAAA;AAC9B,EAAA,IAAA,CAAK,KAAM,EAAA,CAAA;AACX,EAAA,MAAA,CAAO,WAAW,MAAM;AACtB,IAAA,GAAA,CAAI,gBAAgB,GAAG,CAAA,CAAA;AACvB,IAAS,QAAA,CAAA,IAAA,CAAK,YAAY,IAAI,CAAA,CAAA;AAAA,KAC7B,CAAC,CAAA,CAAA;AACN;;;;"}