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