From 4bee20d1cd7f62e886664f069c9b5bbe1243cf9e Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 12 Dec 2025 16:10:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/stream.js | 51 +++++++++++++------- src/views/trials/trials-inspection/index.vue | 4 +- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/utils/stream.js b/src/utils/stream.js index e6165da..90a964f 100644 --- a/src/utils/stream.js +++ b/src/utils/stream.js @@ -39,8 +39,36 @@ function createFloders(obj, arr, r) { createFloders(obj[i], arr, r) } } -function zipFilesJsZip(zipName, files, obj = {}, callback) { +function downLoadFileConcurrency(obj, arr, callback) { return new Promise(resolve => { + let list = arr.splice(0, 6) + let all = [] + list.forEach(file => { + let res = getFile(file.url).then(r => { + const arr = file.name.split('/') + createFloders(obj, arr, r) + if (callback) { + callback({ + type: 'downLoad', + data: r + }) + } + // zip.file(fileName, r, { binary: true }); + }) + all.push(res) + }) + Promise.all(all).then(async () => { + if (arr.length <= 0) { + resolve(true) + } else { + let res = await downLoadFileConcurrency(obj, arr, callback) + resolve(res) + } + }) + }) +} +function zipFilesJsZip(zipName, files, obj = {}, callback) { + return new Promise(async resolve => { try { if (callback) { callback({ @@ -50,22 +78,9 @@ function zipFilesJsZip(zipName, files, obj = {}, callback) { console.log("同步下载打包开始时间:" + new Date()); files = formatFiles(files) const zip = new JSZip(); - let all = [] - files.forEach(file => { - let res = getFile(file.url).then(r => { - const arr = file.name.split('/') - createFloders(obj, arr, r) - if (callback) { - callback({ - type: 'downLoad', - data: r - }) - } - // zip.file(fileName, r, { binary: true }); - }) - all.push(res) - }) - Promise.all(all).then(() => { + // let all = [] + let res = await downLoadFileConcurrency(obj, files, callback) + if (res) { if (callback) { callback({ type: 'downLoaded', @@ -87,7 +102,7 @@ function zipFilesJsZip(zipName, files, obj = {}, callback) { console.log("同步下载打包结束时间:" + new Date()); FileSaver.saveAs(res, zipName) // 利用file-saver保存文件 }) - }) + } } catch (err) { console.log(err) } diff --git a/src/views/trials/trials-inspection/index.vue b/src/views/trials/trials-inspection/index.vue index 8451cb3..473e64e 100644 --- a/src/views/trials/trials-inspection/index.vue +++ b/src/views/trials/trials-inspection/index.vue @@ -215,10 +215,10 @@ + :close-on-click-modal="false" :close-on-press-escape="false" :before-close="handleClose">
{{ $t('dialog:sattus:downLoading') }} - +
{{ $t('dialog:sattus:ziping') }}