{"version":3,"file":"_download2.mjs","sources":["../../../../../../packages/utils/file/_download.ts"],"sourcesContent":["/*\n * @Author: huyb\n * @Descripttion: 临时方案，框架的好了后即刻废除\n * @Date: 2021-12-09 11:32:01\n */\nimport { isArray } from '../is'\n// import { downloadFile, multiDownLoad } from \"/@/api/file\";\n// 不允许在utils中直接调用组件，用callback抛出去在组件使用的地方调用\n// import { useMessage } from \"@casta-fe-playground/hooks/src/web/useMessage\";\n// const { createMessage } = useMessage();\nexport interface FileItemType {\n  // 文件真实id\n  actualId: string\n  address: string\n  appId: number\n  businessId: null\n  businessKey: null\n  createTime: string\n  createBy: string | number\n  createByName: string\n  deleted: number\n  fullName: string\n  hyperlink: number\n  id: number\n  moduleId: number\n  name: string\n  runtime: null\n  size: number\n  suffix: string\n  type: number\n  version: number\n  moduleCode: string\n  typeCode: string\n  fileId: any\n}\nconst typeDic = {\n  docx: 'application/msword',\n  doc: 'application/msword',\n  bin: 'application/octet-stream',\n  exe: 'application/octet-stream',\n  so: 'application/octet-stream',\n  dll: 'application/octet-stream',\n  pdf: 'application/pdf',\n  ai: 'application/postscript',\n  xls: 'application/vnd.ms-excel',\n  xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n  ppt: 'application/vnd.ms-powerpoint',\n  pptx: 'application/vnd.ms-powerpoint',\n  dir: 'application/x-director',\n  js: 'application/x-javascript',\n  swf: 'application/x-shockwave-flash',\n  xhtml: 'application/xhtml+xml',\n  xht: 'application/xhtml+xml',\n  zip: 'application/zip',\n  mid: 'audio/midi',\n  midi: 'audio/midi',\n  mp3: 'audio/mpeg',\n  rm: 'audio/x-pn-realaudio',\n  rpm: 'audio/x-pn-realaudio-plugin',\n  wav: 'audio/x-wav',\n  bmp: 'image/bmp',\n  gif: 'image/gif',\n  jpeg: 'image/jpeg',\n  jpg: 'image/jpeg',\n  png: 'image/png',\n  css: 'text/css',\n  html: 'text/html',\n  htm: 'text/html',\n  txt: 'text/plain',\n  xsl: 'text/xml',\n  xml: 'text/xml',\n  mpeg: 'video/mpeg',\n  mpg: 'video/mpeg',\n  avi: 'video/x-msvideo',\n  movie: 'video/x-sgi-movie',\n}\n\nexport function downLoadCallBack(res, name, suffix) {\n  if (!res) return\n\n  const fileReader = new FileReader()\n  fileReader.readAsText(res, 'utf-8')\n  fileReader.onload = () => {\n    try {\n      // const { result } = fileReader;\n      // const errorData = JSON.parse(result as string);\n      // const { code, msg } = errorData;\n      // if (code === \"5001\") {\n      //   // createMessage.warning(msg);\n      // } else {\n      //   // createMessage.warning(\"请求出错，请稍候重试\");\n      // }\n    } catch (err) {\n      if ((window.navigator as any).msSaveBlob) {\n        // IE以及IE内核的浏览器\n        try {\n          ;(window.navigator as any).msSaveBlob(res, name) // res为接口返回数据，这里请求的时候已经处理了，如果没处理需要在此之前自行处理var data = new Blob([res.data]) 注意这里需要是数组形式的,fileName就是下载之后的文件名\n          // window.navigator.msSaveOrOpenBlob(res, fileName); //此方法类似上面的方法，区别可自行百度\n        } catch (e) {\n          // console.log(e);\n        }\n      } else {\n        const url = window.URL.createObjectURL(new Blob([res], { type: typeDic[suffix] }))\n        const link = document.createElement('a')\n        link.style.display = 'none'\n        link.href = url\n        link.setAttribute('download', name) // 文件名\n        document.body.appendChild(link)\n        link.click()\n        document.body.removeChild(link) // 下载完成移除元素\n        window.URL.revokeObjectURL(url) // 释放掉blob对象\n      }\n    }\n  }\n}\n\nexport const download = (data) => {\n  if (isArray(data)) {\n    if (data.length == 0) {\n      // createMessage.warning(\"请选择要下载的文件\");\n      return\n    }\n    const ids: number[] = []\n    data.forEach((v: FileItemType) => {\n      ids.push(v.id)\n    })\n    // multiDownLoad(ids).then((res) => {\n    //   downLoadCallBack(res, fileName || \"批量下载\", \"zip\");\n    // });\n  } else {\n    if (!data || !data.id) {\n      // createMessage.warning(\"请选择要下载的文件\");\n    }\n    // const file: FileItemType = { ...data };\n    // console.log(fileName,file);\n\n    // downloadFile(file.id).then(async (res) => {\n    //   const El: HTMLAnchorElement = window.document.createElement(\"A\");\n    //   El.setAttribute(\"download\", fileName || file.name);\n    //   El.setAttribute(\"href\", res.data);\n    //   El.setAttribute(\"target\", \"_blank\");\n    //   El.click();\n    // });\n  }\n}\n"],"names":[],"mappings":"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"}