refactor(diy-goods-list): 统一商品图片mode适配鸿蒙元服务
修复鸿蒙元服务环境下商品图片显示裁剪/不全的问题,根据模板和平台动态适配图片mode模式
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<view class="goods-img-wrap">
|
||||
<image class="goods-img"
|
||||
:src="$util.img(item.goods_image, { size: goodsValue.template == 'large-mode' ? 'big' : 'mid' })"
|
||||
mode="widthFix" @error="imgError(index)"
|
||||
:mode="imgMode" @error="imgError(index)"
|
||||
:style="{ borderRadius: goodsValue.imgAroundRadius * 2 + 'rpx' }"
|
||||
show-menu-by-longpress />
|
||||
<view class="sell-out" v-if="item.stock <= 0">
|
||||
@@ -117,7 +117,7 @@
|
||||
:class="[goodsValue.ornament.type]" :style="goodsItemCss">
|
||||
<view class="goods-img-wrap">
|
||||
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
|
||||
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" @error="imgError(index)"
|
||||
:src="$util.img(item.goods_image, { size: 'mid' })" :mode="imgMode" @error="imgError(index)"
|
||||
:lazy-load="true" show-menu-by-longpress />
|
||||
<view class="sell-out" v-if="item.stock <= 0">
|
||||
<text class="iconfont icon-shuqing"></text>
|
||||
@@ -184,7 +184,7 @@
|
||||
:class="[goodsValue.ornament.type]" :style="goodsItemCss">
|
||||
<view class="goods-img-wrap">
|
||||
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
|
||||
:src="$util.img(dataItem.goods_image, { size: 'mid' })" mode="widthFix"
|
||||
:src="$util.img(dataItem.goods_image, { size: 'mid' })" :mode="imgMode"
|
||||
@error="imgError(dataIndex)" :lazy-load="true" show-menu-by-longpress />
|
||||
<view class="sell-out" v-if="dataItem.stock <= 0">
|
||||
<text class="iconfont icon-shuqing"></text>
|
||||
@@ -302,6 +302,19 @@ export default {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 商品图 image 的 mode 模式:
|
||||
// - 大图模式(large-mode):容器高度由图片决定,固定使用 widthFix 保持原比例
|
||||
// - 鸿蒙元服务:其他模板下 image 的 widthFix 模式异常(图片被裁剪/显示不全),改用 aspectFill 填满固定容器
|
||||
// - H5、微信小程序等其他环境:保持 widthFix 行为不变
|
||||
imgMode() {
|
||||
if (this.goodsValue.template == 'large-mode') return 'widthFix';
|
||||
// #ifdef MP-HARMONY
|
||||
return 'aspectFill';
|
||||
// #endif
|
||||
// #ifndef MP-HARMONY
|
||||
return 'widthFix';
|
||||
// #endif
|
||||
},
|
||||
goodsListWarpCss() {
|
||||
var obj = '';
|
||||
obj += 'background-color:' + this.goodsValue.componentBgColor + ';';
|
||||
|
||||
Reference in New Issue
Block a user