diff --git a/src/utils/annexDowload.ts b/src/utils/annexDowload.ts new file mode 100644 index 0000000..77c8637 --- /dev/null +++ b/src/utils/annexDowload.ts @@ -0,0 +1,43 @@ +import axios from "axios"; +import JSZip from "jszip"; +import FileSaver from "file-saver"; + +/** + * @description 附件压缩文件下载 + * */ +const getFile = (url: any) => { + return new Promise((resolve: any, reject: any) => { + axios({ + method: "get", + url, + responseType: "blob" + }) + .then((res: any) => { + resolve(res.data); + }) + .catch(error => { + reject(error.toString()); + }); + }); +}; +const DownLoad = (arrList: any) => { + const arr = arrList; + const zip = new JSZip(); + const cache = {}; + const promises = []; + arr.forEach((item, i) => { + const promise = getFile(item.fileUrl).then(data => { + const file_name = i + 1 + item.fileName; + zip.file(file_name, data, { binary: true }); + cache[file_name] = data; + }); + promises.push(promise); + }); + Promise.all(promises).then(() => { + zip.generateAsync({ type: "blob" }).then(content => { + FileSaver.saveAs(content, "附件.zip"); + }); + }); +}; + +export default DownLoad; diff --git a/src/views/enterprise/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue b/src/views/enterprise/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue index 7d2098d..c361d8b 100644 --- a/src/views/enterprise/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue +++ b/src/views/enterprise/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue @@ -282,9 +282,7 @@ import { getDicList } from "@/api/modules/jxjview"; import { singleEngineer } from "@/api/modules/common"; import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue"; import transformInfo from "./transformInfo.vue"; -import axios from "axios"; -import JSZip from "jszip"; -import FileSaver from "file-saver"; +import DownLoad from "@/utils/annexDowload"; const current = ref({ files: [] }); @@ -334,42 +332,11 @@ const validatorPhone = (e: any, index: any) => { recordData.value[index].headPersonPhone = ""; } }; -const getFile = (url: any) => { - return new Promise((resolve: any, reject: any) => { - axios({ - method: "get", - url, - responseType: "blob" - }) - .then((res: any) => { - resolve(res.data); - }) - .catch(error => { - reject(error.toString()); - }); - }); -}; // 下载附件按钮 const onDownLoad = (row: any) => { console.log(row); if (row.fileList && row.fileList.length > 0) { - const arr = row.fileList; - const zip = new JSZip(); - const cache = {}; - const promises = []; - arr.forEach((item, i) => { - const promise = getFile(item.fileUrl).then(data => { - const file_name = i + 1 + item.fileName; - zip.file(file_name, data, { binary: true }); - cache[file_name] = data; - }); - promises.push(promise); - }); - Promise.all(promises).then(() => { - zip.generateAsync({ type: "blob" }).then(content => { - FileSaver.saveAs(content, "附件.zip"); - }); - }); + DownLoad(row.fileList); } else { ElMessage.error("暂无可下载文件"); } diff --git a/src/views/goverment/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue b/src/views/goverment/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue index 0902aa2..b04797c 100644 --- a/src/views/goverment/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue +++ b/src/views/goverment/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue @@ -269,9 +269,7 @@ import { getDicList } from "@/api/modules/jxjview"; import { singleEngineer } from "@/api/modules/common"; import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue"; import transformInfo from "./transformInfo.vue"; -import axios from "axios"; -import JSZip from "jszip"; -import FileSaver from "file-saver"; +import DownLoad from "@/utils/annexDowload"; const backForm = ref({ content: "" }); @@ -337,42 +335,11 @@ const validatorPhone = (e: any, index: any) => { recordData.value[index].headPersonPhone = ""; } }; -const getFile = (url: any) => { - return new Promise((resolve: any, reject: any) => { - axios({ - method: "get", - url, - responseType: "blob" - }) - .then((res: any) => { - resolve(res.data); - }) - .catch(error => { - reject(error.toString()); - }); - }); -}; // 下载附件按钮 const onDownLoad = (row: any) => { console.log(row); if (row.fileList && row.fileList.length > 0) { - const arr = row.fileList; - const zip = new JSZip(); - const cache = {}; - const promises = []; - arr.forEach((item, i) => { - const promise = getFile(item.fileUrl).then(data => { - const file_name = i + 1 + item.fileName; - zip.file(file_name, data, { binary: true }); - cache[file_name] = data; - }); - promises.push(promise); - }); - Promise.all(promises).then(() => { - zip.generateAsync({ type: "blob" }).then(content => { - FileSaver.saveAs(content, "附件.zip"); - }); - }); + DownLoad(row.fileList); } else { ElMessage.error("暂无可下载文件"); } diff --git a/src/views/project/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue b/src/views/project/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue index 2f2cd79..9cd5382 100644 --- a/src/views/project/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue +++ b/src/views/project/engineeringAcceptance/acceptanceApply/components/detailsDialog.vue @@ -282,9 +282,7 @@ import { getDicList } from "@/api/modules/jxjview"; import { singleEngineer } from "@/api/modules/common"; import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue"; import transformInfo from "./transformInfo.vue"; -import axios from "axios"; -import JSZip from "jszip"; -import FileSaver from "file-saver"; +import DownLoad from "@/utils/annexDowload"; const current = ref({ files: [] }); @@ -334,42 +332,11 @@ const validatorPhone = (e: any, index: any) => { recordData.value[index].headPersonPhone = ""; } }; -const getFile = (url: any) => { - return new Promise((resolve: any, reject: any) => { - axios({ - method: "get", - url, - responseType: "blob" - }) - .then((res: any) => { - resolve(res.data); - }) - .catch(error => { - reject(error.toString()); - }); - }); -}; // 下载附件按钮 const onDownLoad = (row: any) => { console.log(row); if (row.fileList && row.fileList.length > 0) { - const arr = row.fileList; - const zip = new JSZip(); - const cache = {}; - const promises = []; - arr.forEach((item, i) => { - const promise = getFile(item.fileUrl).then(data => { - const file_name = i + 1 + item.fileName; - zip.file(file_name, data, { binary: true }); - cache[file_name] = data; - }); - promises.push(promise); - }); - Promise.all(promises).then(() => { - zip.generateAsync({ type: "blob" }).then(content => { - FileSaver.saveAs(content, "附件.zip"); - }); - }); + DownLoad(row.fileList); } else { ElMessage.error("暂无可下载文件"); }