This commit is contained in:
van
2026-06-10 17:18:34 +08:00
parent 0569f5fc1d
commit 42aeb7b232

View File

@@ -21,6 +21,7 @@
<img <img
:src="item.shopLogo || defaultLogo" :src="item.shopLogo || defaultLogo"
class="shopinfo-logo" class="shopinfo-logo"
referrerpolicy="no-referrer"
@error="onLogoError" @error="onLogoError"
> >
<div class="shopinfo-name">{{ item.shopName }}</div> <div class="shopinfo-name">{{ item.shopName }}</div>
@@ -43,10 +44,11 @@
</div> </div>
<div class="info-body"> <div class="info-body">
<img <img
v-if="item.skuImageUrl" v-if="item.skuImageUrl && !item._imgFailed"
:src="item.skuImageUrl" :src="item.skuImageUrl"
class="info-img" class="info-img"
@error="onImageError" referrerpolicy="no-referrer"
@error="onImageError(item, $event)"
> >
<div v-else class="info-img-placeholder">🖼</div> <div v-else class="info-img-placeholder">🖼</div>
<div class="info-cell"> <div class="info-cell">
@@ -126,8 +128,21 @@ export default {
onLogoError(e) { onLogoError(e) {
e.target.src = this.defaultLogo e.target.src = this.defaultLogo
}, },
onImageError(e) { onImageError(item, e) {
e.target.style.display = 'none' const tryCount = item._imgTry || 0
const fallbacks = item.skuId
? [
`https://img14.360buyimg.com/n5/s450x450_${item.skuId}.jpg`,
`https://img10.360buyimg.com/n1/s450x450_${item.skuId}.jpg`,
`https://img14.360buyimg.com/n1/s240x240_${item.skuId}.jpg`
]
: []
if (tryCount < fallbacks.length) {
this.$set(item, '_imgTry', tryCount + 1)
e.target.src = fallbacks[tryCount]
return
}
this.$set(item, '_imgFailed', true)
} }
} }
} }