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
:src="item.shopLogo || defaultLogo"
class="shopinfo-logo"
referrerpolicy="no-referrer"
@error="onLogoError"
>
<div class="shopinfo-name">{{ item.shopName }}</div>
@@ -43,10 +44,11 @@
</div>
<div class="info-body">
<img
v-if="item.skuImageUrl"
v-if="item.skuImageUrl && !item._imgFailed"
:src="item.skuImageUrl"
class="info-img"
@error="onImageError"
referrerpolicy="no-referrer"
@error="onImageError(item, $event)"
>
<div v-else class="info-img-placeholder">🖼</div>
<div class="info-cell">
@@ -126,8 +128,21 @@ export default {
onLogoError(e) {
e.target.src = this.defaultLogo
},
onImageError(e) {
e.target.style.display = 'none'
onImageError(item, e) {
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)
}
}
}