Browse Source

修复聊天详情页面视频显示问题和咨询按钮商品卡片发送问题

pull/12/head
Default User 2 months ago
parent
commit
cd3107a5c6
  1. 21
      components/goods-card/goods-card.js
  2. 15
      components/goods-card/goods-card.wxml
  3. 5
      pages/goods-detail/goods-detail.js

21
components/goods-card/goods-card.js

@ -19,7 +19,8 @@ Component({
},
data: {
isSoldOut: false
isSoldOut: false,
isVideo: false
},
observers: {
@ -27,10 +28,28 @@ Component({
this.setData({
isSoldOut: status === 'sold_out'
});
},
'imageUrl': function(imageUrl) {
this.setData({
isVideo: this.isVideoUrl(imageUrl)
});
}
},
methods: {
// 判断是否为视频URL
isVideoUrl: function(url) {
if (!url) return false;
const videoExtensions = ['.mp4', '.mov', '.avi', '.wmv', '.flv', '.webm'];
const lowerUrl = url.toLowerCase();
for (let ext of videoExtensions) {
if (lowerUrl.indexOf(ext) > -1) {
return true;
}
}
return false;
},
onTap: function() {
const goodsId = this.properties.id;
if (goodsId) {

15
components/goods-card/goods-card.wxml

@ -1,12 +1,25 @@
<view class="goods-card {{isSoldOut ? 'sold-out' : ''}}" bindtap="onTap">
<view class="goods-image-area">
<!-- 视频显示 -->
<video
wx:if="{{imageUrl && isVideo}}"
class="goods-image"
src="{{imageUrl}}"
mode="aspectFill"
controls="true"
show-center-play-btn="true"
show-play-btn="true"
show-fullscreen-btn="true"
></video>
<!-- 图片显示 -->
<image
wx:if="{{imageUrl}}"
wx:elif="{{imageUrl}}"
class="goods-image"
src="{{imageUrl}}"
mode="aspectFill"
lazy-load="true"
></image>
<!-- 占位符 -->
<view wx:else class="goods-image-placeholder">
<text>暂无图片</text>
</view>

5
pages/goods-detail/goods-detail.js

@ -1891,7 +1891,10 @@ Page({
id: goodsDetail.id || '',
name: goodsDetail.name || '',
imageUrl: (goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0) ?
(goodsDetail.imageUrls.find(url => !isVideoUrl(url)) || '') : '',
(goodsDetail.imageUrls.find(url => !isVideoUrl(url)) ||
goodsDetail.imageUrls.find(url => isVideoUrl(url)) ||
goodsDetail.videoCoverUrl || '') :
(goodsDetail.videoCoverUrl || ''),
price: goodsDetail.price || '',
region: goodsDetail.region || '',
displaySpecification: goodsDetail.displaySpecification || goodsDetail.specification || goodsDetail.spec || goodsDetail.specs || '',

Loading…
Cancel
Save