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 @@