From 229e00443fa7cb796c13a0846184e25ddfe6817c Mon Sep 17 00:00:00 2001 From: AN <1983933789@qq.com> Date: Wed, 2 Jul 2025 10:26:42 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix(projects):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9C=AA=E6=B8=85=E7=A9=BA=E6=96=87=E4=BB=B6=E5=88=97=E8=A1=A8?= =?UTF-8?q?=EF=BC=8C=E4=B8=8A=E4=BC=A0=E5=9B=9E=E6=98=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/custom/oss-upload.vue | 47 ++++++++++--------- .../system/oss/modules/oss-upload-modal.vue | 4 +- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/components/custom/oss-upload.vue b/src/components/custom/oss-upload.vue index d4aa4f65..1dcb07c4 100644 --- a/src/components/custom/oss-upload.vue +++ b/src/components/custom/oss-upload.vue @@ -20,44 +20,45 @@ const fileList = ref([]); async function handleFetchOssList(ossIds: string[]) { startLoading(); - const { error, data } = await fetchGetOssListByIds(ossIds); - if (error) return; - fileList.value = data.map(item => ({ - id: String(item.ossId), - url: item.url, - name: item.originalName, - status: 'finished' - })); - endLoading(); + try { + const { error, data } = await fetchGetOssListByIds(ossIds); + if (error) return; + fileList.value = data.map(item => ({ + id: String(item.ossId), + url: item.url, + name: item.originalName, + status: 'finished' + })); + } catch (error) { + window.$message?.error(`获取文件列表失败: ${error}`); + } finally { + endLoading(); + } } watch( value, async val => { const ossIds = val?.split(',')?.filter(item => isNotNull(item)) || []; - const fileIds = new Set(fileList.value.filter(item => item.status === 'finished').map(item => item.id)); - if (ossIds.every(item => fileIds.has(item))) { - return; - } if (ossIds.length === 0) { fileList.value = []; return; } + const fileIds = new Set(fileList.value.filter(item => item.status === 'finished').map(item => item.id)); + if (ossIds.every(item => fileIds.has(item))) { + return; + } await handleFetchOssList(ossIds); }, { immediate: true } ); -watch( - fileList, - val => { - value.value = val - .filter(item => item.status === 'finished') - .map(item => item.id) - .join(','); - }, - { deep: true } -); +watch(fileList, val => { + value.value = val + .filter(item => item.status === 'finished') + .map(item => item.id) + .join(','); +});