chore:长按图片可以识别图中二维码

This commit is contained in:
2026-04-20 09:36:08 +08:00
parent 28a92c0635
commit 88d05048a6
7 changed files with 12 additions and 11 deletions

View File

@@ -82,7 +82,7 @@
<block v-if="goodsList.length"> <block v-if="goodsList.length">
<view class="goods-item" v-for="(item, index) in goodsList" :key="index"> <view class="goods-item" v-for="(item, index) in goodsList" :key="index">
<view class="goods-img" @tap.stop="toDetail(item)"> <view class="goods-img" @tap.stop="toDetail(item)">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" /> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true" />
<view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }} <view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }}
</view> </view>
</view> </view>
@@ -176,7 +176,7 @@
<view class="goods-item" v-for="(item, index) in goodsList" :key="index"> <view class="goods-item" v-for="(item, index) in goodsList" :key="index">
<view class="goods-img" @tap.stop="toDetail(item)"> <view class="goods-img" @tap.stop="toDetail(item)">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"
:lazy-load="true" /> :lazy-load="true" :show-menu-by-longpress="true" />
<view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }}</view> <view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }}</view>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">

View File

@@ -8,7 +8,8 @@
<image class="goods-img" <image class="goods-img"
:src="$util.img(item.goods_image, { size: goodsValue.template == 'large-mode' ? 'big' : 'mid' })" :src="$util.img(item.goods_image, { size: goodsValue.template == 'large-mode' ? 'big' : 'mid' })"
mode="widthFix" @error="imgError(index)" mode="widthFix" @error="imgError(index)"
:style="{ borderRadius: goodsValue.imgAroundRadius * 2 + 'rpx' }" /> :style="{ borderRadius: goodsValue.imgAroundRadius * 2 + 'rpx' }"
:show-menu-by-longpress="true" />
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>
@@ -117,7 +118,7 @@
<view class="goods-img-wrap"> <view class="goods-img-wrap">
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <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="widthFix" @error="imgError(index)"
:lazy-load="true" /> :lazy-load="true" :show-menu-by-longpress="true" />
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>
@@ -184,7 +185,7 @@
<view class="goods-img-wrap"> <view class="goods-img-wrap">
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <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="widthFix"
@error="imgError(dataIndex)" :lazy-load="true" /> @error="imgError(dataIndex)" :lazy-load="true" :show-menu-by-longpress="true" />
<view class="sell-out" v-if="dataItem.stock <= 0"> <view class="sell-out" v-if="dataItem.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>

View File

@@ -17,7 +17,7 @@
<div class="goods-img-wrap"> <div class="goods-img-wrap">
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <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="widthFix"
@error="imgError(index, dataIndex)" :lazy-load="true" /> @error="imgError(index, dataIndex)" :lazy-load="true" :show-menu-by-longpress="true" />
<view class="sell-out" v-if="dataItem.stock <= 0"> <view class="sell-out" v-if="dataItem.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>

View File

@@ -22,7 +22,7 @@
:item-id="'goods_id_' + index"> :item-id="'goods_id_' + index">
<view class="item" @click="previewMedia(index)"> <view class="item" @click="previewMedia(index)">
<image :src="$util.img(item, { size: 'big' })" @error="swiperImageError(index)" <image :src="$util.img(item, { size: 'big' })" @error="swiperImageError(index)"
mode="aspectFit" /> mode="aspectFit" :show-menu-by-longpress="true" />
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>

View File

@@ -51,7 +51,7 @@
<view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index" <view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index"
@click="toDetail(item)"> @click="toDetail(item)">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true"></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }} <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}
</view> </view>
<view class="sell-out" v-if="item.goods_stock <= 0"> <view class="sell-out" v-if="item.goods_stock <= 0">
@@ -100,7 +100,7 @@
@click="toDetail(item)" @click="toDetail(item)"
:style="{ left: listPosition[index] ? listPosition[index].left : '', top: listPosition[index] ? listPosition[index].top : '' }"> :style="{ left: listPosition[index] ? listPosition[index].left : '', top: listPosition[index] ? listPosition[index].top : '' }">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true"></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }} <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}
</view> </view>
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">

View File

@@ -7,7 +7,7 @@
@click.stop="toDetail(item)"> @click.stop="toDetail(item)">
<view class="pic"> <view class="pic">
<image :src="$util.img(item.goods_image.split(',')[0], { size: 'mid' })" mode="aspectFill" <image :src="$util.img(item.goods_image.split(',')[0], { size: 'mid' })" mode="aspectFill"
@error="goodsImageError(index)"></image> @error="goodsImageError(index)" :show-menu-by-longpress="true"></image>
</view> </view>
<view class="goods_info"> <view class="goods_info">
<view class="goods_name font-size-base">{{ item.sku_name }}</view> <view class="goods_name font-size-base">{{ item.sku_name }}</view>

View File

@@ -13,7 +13,7 @@
<text class="iconfont" :class="$util.inArray(item.id, idArr) != -1 ? 'icon-yuan_checked color-base-text' : 'icon-yuan_checkbox'"></text> <text class="iconfont" :class="$util.inArray(item.id, idArr) != -1 ? 'icon-yuan_checked color-base-text' : 'icon-yuan_checkbox'"></text>
</view> </view>
<view class="goods-img" @click="toDetail(item)"> <view class="goods-img" @click="toDetail(item)">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true"></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}</view> <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}</view>
</view> </view>
<view class="info-wrap" @click="toDetail(item)"> <view class="info-wrap" @click="toDetail(item)">