From 87775612223d195172091888c4f5560170cc1047 Mon Sep 17 00:00:00 2001 From: han2015 <1019850453@qq.com> Date: Tue, 21 Oct 2025 14:50:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BA=91=E7=9B=98=EF=BC=9A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=89=B9=E9=87=8F=E4=B8=8A=E4=BC=A0=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/doc/manage.vue | 47 ++++++++++++++++++++++++++++----- src/views/doc/space.vue | 56 ++++++++++++++++++++++++++++++++-------- 2 files changed, 85 insertions(+), 18 deletions(-) diff --git a/src/views/doc/manage.vue b/src/views/doc/manage.vue index 4a9bb33..c3aefa4 100644 --- a/src/views/doc/manage.vue +++ b/src/views/doc/manage.vue @@ -71,6 +71,9 @@ let spaceNodeUid="" //用来判断树组件的展开和关闭,如何只是展 const modListOrGrild=ref(true) const modRecycling=ref(false) +//进度条 +const percentage=ref(0) +const onprogress=ref(false) const Departs = computed(() => { return `${'p0'+userStore.userInfoCont.userId},${userStore.userInfoCont.company},${userStore.userInfoCont.department},${userStore.userInfoCont.organization}` @@ -326,6 +329,10 @@ function restoreMatter(row:matterInfo){ //加载目录文件列表 function onLoadMatterList(){ + //重置进度条 + percentage.value=0 + onprogress.value=false + let _page: matterPage = { page: paginInfo.value.page, pageSize: 50, @@ -546,9 +553,20 @@ async function onlyOfficeEdit(row:matterInfo){ //自定义上传,目的是支持多文件上传, 使用html原生组件,是为了解决并发问题 async function onCustomUpload(e:Event){ const files = e.target!.files??[] - for(let ff of files){ - await handleSingleFile(ff) + onprogress.value=true + const count=files.length + let result="" + for(let index = 0; index < count; index++){ + onprogress.value=true + const ff = files[index] + await handleSingleFile(ff).catch((err)=>{ + console.log(err) + result+=err + }) + percentage.value = Number(((index + 1) / count).toPrecision(2)) * 100 } + if(result!="") alert(result) + onLoadMatterList() //刷新 } @@ -561,17 +579,28 @@ async function handleSingleFile(ff:File){ const res = await doFileUpload(fields,'/hxpan/api/matter/upload') if(res.code!=200){ console.log(ff.name+"上传失败! ") - alert(ff.name+"上传失败! ") + throw new Error(ff.name+"上传失败!\n ") } } //文件夹上传,原理:自定义的input组件,一次拿到所有需要上传的文件列表,然后依次上传 //能减少并发问题 async function uploadFolder(e:Event){ + onprogress.value=true const files = e.target!.files??[] - for(let f of files){ - await handleFolderFile(f) + const count=files.length + let result="" + for(let index = 0; index < count; index++){ + onprogress.value=true + const f = files[index] + await handleFolderFile(f).catch((err)=>{ + console.log(err) + result+=err + }) + percentage.value = Number(((index + 1) / count).toPrecision(2)) * 100 } + if(result!="") alert(result) + onLoadMatterList() //刷新 } @@ -597,7 +626,7 @@ async function handleFolderFile(option:File){ puuid=newnodes[0].uuid }else{ console.log(_path+"上传失败! ") - alert(_path +" 上传失败! ") + throw new Error(_path +" 上传失败!\n ") return } }else{ @@ -611,7 +640,7 @@ async function handleFolderFile(option:File){ const res = await doFileUpload(fields,'/hxpan/api/matter/upload') if(res.code!=200){ console.log(_path+"上传失败! ") - alert(_path +" 上传失败! ") + throw new Error(_path +" 上传失败!\n ") } } @@ -834,6 +863,10 @@ const handleSelectionChange = (val:matterInfo[]) => {