{"version":3,"file":"downloadFile.mjs","sources":["../../../src/utils/downloadFile.js"],"sourcesContent":["import { message } from 'ant-design-vue'\r\nimport { config, tool } from 'elead-ui-tool-v3'\r\n\r\n/**\r\n * 通用js方法封装处理\r\n * Copyright (c) 2019 ruoyi\r\n */\r\nconst baseURL = __APP_ENV__.VITE_API_BASEURL\r\nexport default {\r\n\t//res 为全部文件参数\r\n\t//lengthComputable 文件的总大小\r\n\t//如果没上面两个参数 , onProgress 将无法计算大小\r\n\tasync downloadByUrl({ id, type, fileName, success, fail, res, onProgress, lengthComputable }) {\r\n\t\tlet isCompleteReached = false // 添加一个标志\r\n\t\tconst url = baseURL + '/' + type + '/file/url/' + id\r\n\t\tvar xhr = new XMLHttpRequest()\r\n\t\tvar formData = new FormData()\r\n\t\txhr.open('get', url)\r\n\t\txhr.setRequestHeader('Token', config.TOKEN_PREFIX + tool.data.get('TOKEN'))\r\n\t\txhr.setRequestHeader('Authorization', config.TOKEN_PREFIX + tool.data.get('TOKEN'))\r\n\t\txhr.responseType = 'blob'\r\n\t\txhr.onerror = function() {\r\n\t\t\tmessage.destroy()\r\n\t\t\tmessage.error('文档下载失败，请联系管理员')\r\n\t\t\tif (fail) {\r\n\t\t\t\tfail()\r\n\t\t\t}\r\n\t\t}\r\n\t\txhr.onprogress = (event) => {\r\n\t\t\tlet fileSize = event.total || lengthComputable\r\n\t\t\tif (fileSize) {\r\n\t\t\t\tlet percentComplete = Math.round((event.loaded / fileSize) * 100)\r\n\t\t\t\t// 检查是否首次达到100%且还没有标记为完成\r\n\t\t\t\tif (percentComplete === 100 && !isCompleteReached) {\r\n\t\t\t\t\tonProgress({\r\n\t\t\t\t\t\tpercentComplete\r\n\t\t\t\t\t})\r\n\t\t\t\t\tisCompleteReached = true // 设置标志，表示100%已完成\r\n\t\t\t\t}\r\n\t\t\t\t// 如果还没达到100%，则正常更新进度\r\n\t\t\t\telse if (percentComplete < 100) {\r\n\t\t\t\t\tonProgress({\r\n\t\t\t\t\t\tpercentComplete\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tonProgress({\r\n\t\t\t\t\terror: '无法获取文件大小'\r\n\t\t\t\t})\r\n\t\t\t\tconsole.log('无法获取文件大小,计算进度失败')\r\n\t\t\t}\r\n\t\t}\r\n\t\txhr.onload = function(e) {\r\n\t\t\tif (this.status == 200) {\r\n\t\t\t\tvar blob = this.response\r\n\t\t\t\tif (window.navigator.msSaveOrOpenBlob) {\r\n\t\t\t\t\tnavigator.msSaveBlob(blob, fileName)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar a = document.createElement('a')\r\n\t\t\t\t\tvar url = window.URL ? window.URL.createObjectURL(blob) : window.webkitURL.createObjectURL(blob)()\r\n\t\t\t\t\ta.href = url\r\n\t\t\t\t\ta.download = fileName\r\n\t\t\t\t\tdocument.body.appendChild(a)\r\n\t\t\t\t\ta.click()\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url)\r\n\t\t\t\t}\r\n\t\t\t\tif (success) {\r\n\t\t\t\t\tsuccess()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tmessage.destroy()\r\n\t\t\t\tmessage.error('文档下载失败，请联系管理员')\r\n\t\t\t\tif (fail) {\r\n\t\t\t\t\tfail()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\txhr.send(formData)\r\n\t\treturn false\r\n\t}, async fileGetInfo(id, type, fileName, callback) {\r\n\t\tconst url = baseURL + '/' + type + '/file/url/' + id\r\n\t\tcallback({\r\n\t\t\turl,\r\n\t\t\ttoken: config.TOKEN_PREFIX + tool.data.get('TOKEN'),\r\n\t\t\tAuthorization: config.TOKEN_PREFIX + tool.data.get('TOKEN'),\r\n\t\t\tfileName\r\n\t\t})\r\n\t\treturn false\r\n\t}, async downloadByUrl2(urlParams,fileName) {\r\n\t\tconst url = baseURL + urlParams\r\n\t\tvar xhr = new XMLHttpRequest()\r\n\t\tvar formData = new FormData()\r\n\t\txhr.open('get', url)\r\n\t\txhr.setRequestHeader('Token', config.TOKEN_PREFIX + tool.data.get('TOKEN'))\r\n\t\txhr.setRequestHeader('Authorization', config.TOKEN_PREFIX + tool.data.get('TOKEN'))\r\n\t\txhr.responseType = 'blob'\r\n\t\txhr.onload = function(e) {\r\n\t\t\tif (this.status == 200) {\r\n\t\t\t\tvar blob = this.response\r\n\t\t\t\tif (window.navigator.msSaveOrOpenBlob) {\r\n\t\t\t\t\tnavigator.msSaveBlob(blob, fileName)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar a = document.createElement('a')\r\n\t\t\t\t\tvar url = window.URL ? window.URL.createObjectURL(blob) : window.webkitURL.createObjectURL(blob)()\r\n\t\t\t\t\tconsole.log('url------------------>', url)\r\n\t\t\t\t\ta.href = url\r\n\t\t\t\t\ta.download = fileName\r\n\t\t\t\t\tdocument.body.appendChild(a)\r\n\t\t\t\t\ta.click()\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tmessage.error('文档下载失败，请联系管理员')\r\n\t\t\t}\r\n\t\t}\r\n\t\txhr.send(formData)\r\n\t\treturn false\r\n\t}\r\n}\r\n"],"names":["url"],"mappings":"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"}