From 01cf735453bb4f2757615beab5ee72480c07e417 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Wed, 20 Mar 2024 10:13:27 +0800 Subject: [PATCH] 优化图片预览组件,支持缩略图加载失败回退 --- forms/imagePicker/CImagePreview.vue | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/forms/imagePicker/CImagePreview.vue b/forms/imagePicker/CImagePreview.vue index d36b9c3..816f639 100644 --- a/forms/imagePicker/CImagePreview.vue +++ b/forms/imagePicker/CImagePreview.vue @@ -11,9 +11,10 @@ mode="aspectFit" :lazyLoad="true" v-for="(img, index) of imgList" - :src="img.thumb" + :src="loadFail[index] ? img.org : img.thumb" :key="index" @tap="evt => $preview({ current: img.org, urls: imgs })" + @error="evt => handleLoadError(index)" /> </view> </template> @@ -48,11 +49,13 @@ }, }, data() { - return {}; + return { + loadFail: [], + }; }, computed: { imgList() { - return this.imgs.map(img => ({ + return this.imgs.map((img, index) => ({ org: img, thumb: this.useThumb ? img.replace(/(.*?)(\.(png|jpg|jpeg|gif))$/, '$1_thumb$2') @@ -61,6 +64,9 @@ }, }, methods: { + handleLoadError(index) { + this.loadFail.splice(index, 1, true); + }, // option { current, urls } $preview(option) { // 网页模式下,增加缩放操作 -- Gitblit v1.9.1