diff --git a/apps/jingrow/frontend/src/core/pagetype/default.vue b/apps/jingrow/frontend/src/core/pagetype/default.vue index 6aee934..75d66dd 100644 --- a/apps/jingrow/frontend/src/core/pagetype/default.vue +++ b/apps/jingrow/frontend/src/core/pagetype/default.vue @@ -900,23 +900,28 @@ function extractAttachmentImageUrls(attachments: any[]): string[] { return [...new Set(urls)] // 去重 } -// 自动下载图片的函数(简化版) +// 自动下载图片的函数(渐进式加载:下载完成即显示) async function autoDownloadImages(imageUrls: string[]) { - const downloadPromises = imageUrls.map(async (url) => { + // 不等待所有下载完成,每个图片下载完成后立即可用 + imageUrls.forEach(async (url) => { const filename = url.split('/').pop() || 'image.jpg' try { const result = await downloadImageToLocal(url, filename) if (result.success) { - // 返回是否是新下载的图片(非缓存) - return !(result as any).data?.cached + // 下载成功后,触发图片重新加载 + const imgElements = document.querySelectorAll(`img[src="${url}"], img[src*="${filename}"]`) + imgElements.forEach((img) => { + const imgEl = img as HTMLImageElement + if (imgEl.complete && !imgEl.naturalHeight) { + imgEl.src = url + '?t=' + Date.now() + } + }) } } catch (error) { + // 静默失败,不影响其他图片 } - return false }) - - await Promise.all(downloadPromises) } // 加载详情数据 - 优化版本,同步加载附件数据 diff --git a/apps/jingrow/frontend/src/core/pagetype/form/panel/AttachmentSection.vue b/apps/jingrow/frontend/src/core/pagetype/form/panel/AttachmentSection.vue index 290f293..632790a 100644 --- a/apps/jingrow/frontend/src/core/pagetype/form/panel/AttachmentSection.vue +++ b/apps/jingrow/frontend/src/core/pagetype/form/panel/AttachmentSection.vue @@ -31,7 +31,9 @@