|
@@ -1,32 +1,38 @@
|
|
|
import { httpApp } from "@/plugins/axiosApp";
|
|
|
import router from "@/router";
|
|
|
+import { AxiosResponse } from "axios";
|
|
|
|
|
|
// 下载文件
|
|
|
export async function downloadFileURL(url: string, name?: string) {
|
|
|
return httpApp
|
|
|
.get(url, { responseType: "blob" })
|
|
|
.then((res) => {
|
|
|
- const { data, headers } = res;
|
|
|
- const fileName = headers["content-disposition"].replace(
|
|
|
- /\w+;\s+filename=(.*)/,
|
|
|
- "$1"
|
|
|
- );
|
|
|
- //Here, when the JSON file is returned, the JSON.stringify Processing, other types of files do not need to be processed
|
|
|
- //const blob = new Blob([JSON.stringify(data)], ...)
|
|
|
- const blob = new Blob([data], { type: headers["content-type"] });
|
|
|
- let dom = document.createElement("a");
|
|
|
- let url = window.URL.createObjectURL(blob);
|
|
|
- dom.href = url;
|
|
|
- dom.download = decodeURI(fileName);
|
|
|
- dom.style.display = "none";
|
|
|
- document.body.appendChild(dom);
|
|
|
- dom.click();
|
|
|
- dom.parentNode?.removeChild(dom);
|
|
|
- window.URL.revokeObjectURL(url);
|
|
|
+ return responseToFile(res);
|
|
|
})
|
|
|
.catch((err) => {});
|
|
|
}
|
|
|
|
|
|
+export async function responseToFile(response: AxiosResponse) {
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ const { data, headers } = response;
|
|
|
+ const fileName = headers["content-disposition"].replace(
|
|
|
+ /\w+;\s*filename=(.*)/,
|
|
|
+ "$1"
|
|
|
+ );
|
|
|
+ //Here, when the JSON file is returned, the JSON.stringify Processing, other types of files do not need to be processed
|
|
|
+ //const blob = new Blob([JSON.stringify(data)], ...)
|
|
|
+ const blob = new Blob([data], { type: headers["content-type"] });
|
|
|
+ let dom = document.createElement("a");
|
|
|
+ let url = window.URL.createObjectURL(blob);
|
|
|
+ dom.href = url;
|
|
|
+ dom.download = decodeURI(fileName);
|
|
|
+ dom.style.display = "none";
|
|
|
+ document.body.appendChild(dom);
|
|
|
+ dom.click();
|
|
|
+ dom.parentNode?.removeChild(dom);
|
|
|
+ window.URL.revokeObjectURL(url);
|
|
|
+ });
|
|
|
+}
|
|
|
// 返回
|
|
|
export function goBack() {
|
|
|
router.back();
|