1
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user