Browse Source

优化比价功能:1. 只有status=sold_out的商品显示售出时间;2. 其他售空状态在商品卡片右下角显示已售空标签;3. 售出时间为空时不显示任何相关内容

pull/12/head
徐飞洋 2 months ago
parent
commit
17b82cc20d
  1. 36
      pages/goods-detail/goods-detail.js
  2. 8
      pages/goods-detail/goods-detail.wxml
  3. 15
      pages/goods-detail/goods-detail.wxss

36
pages/goods-detail/goods-detail.js

@ -2539,12 +2539,16 @@ Page({
// 格式化日期
const updatedAt = goods.updated_at || goods.updatedAt;
// 检查商品状态,如果为sold_out则显示"已售空",否则显示格式化日期
// 检查商品状态,只有status === 'sold_out'时显示售出时间
// 其他售空状态使用已售空标签
const isSoldOut = goods.status === 'sold_out' ||
goods.status === 'sold' ||
goods.status === 'out_of_stock' ||
(goods.supplyStatus && goods.supplyStatus.includes('售空'));
const formattedDate = isSoldOut ? '已售空' : formatDateTime(updatedAt);
// 只有status === 'sold_out'时显示售出时间,其他状态隐藏时间
const formattedDate = goods.status === 'sold_out' ? formatDateTime(updatedAt) : '';
// 标记是否显示已售空标签(除了status === 'sold_out'的其他售空状态)
const isSoldOutLabel = isSoldOut && goods.status !== 'sold_out';
return {
...goods,
@ -2552,7 +2556,8 @@ Page({
mediaItems: processMediaUrls(goods.imageUrls),
weightQuantityData: weightQuantityData,
province: province, // 添加省份字段
formattedDate: formattedDate // 添加格式化的日期字段
formattedDate: formattedDate, // 添加格式化的日期字段
isSoldOutLabel: isSoldOutLabel // 添加是否显示已售空标签的标记
};
}).filter(goods => {
// 1. 先过滤相同种类(category)的商品
@ -2767,12 +2772,16 @@ Page({
// 格式化日期
const updatedAt = product.updated_at || product.updatedAt;
// 检查商品状态,如果为sold_out则显示"已售空",否则显示格式化日期
// 检查商品状态,只有status === 'sold_out'时显示售出时间
// 其他售空状态使用已售空标签
const isSoldOut = product.status === 'sold_out' ||
product.status === 'sold' ||
product.status === 'out_of_stock' ||
(product.supplyStatus && product.supplyStatus.includes('售空'));
const formattedDate = isSoldOut ? '已售空' : formatDateTime(updatedAt);
// 只有status === 'sold_out'时显示售出时间,其他状态隐藏时间
const formattedDate = product.status === 'sold_out' ? formatDateTime(updatedAt) : '';
// 标记是否显示已售空标签(除了status === 'sold_out'的其他售空状态)
const isSoldOutLabel = isSoldOut && product.status !== 'sold_out';
return {
...product,
@ -2780,7 +2789,8 @@ Page({
mediaItems: processMediaUrls(product.imageUrls),
province: province, // 添加省份字段
weightQuantityData: weightQuantityData, // 添加价格处理数据
formattedDate: formattedDate // 添加格式化的日期字段
formattedDate: formattedDate, // 添加格式化的日期字段
isSoldOutLabel: isSoldOutLabel // 添加是否显示已售空标签的标记
};
});
console.log('所有商品详情获取完成,有效商品数量:', validProducts.length);
@ -2834,7 +2844,16 @@ Page({
// 格式化日期
const updatedAt = product.updated_at || product.updatedAt;
const formattedDate = formatDateTime(updatedAt);
// 检查商品状态,只有status === 'sold_out'时显示售出时间
// 其他售空状态使用已售空标签
const isSoldOut = product.status === 'sold_out' ||
product.status === 'sold' ||
product.status === 'out_of_stock' ||
(product.supplyStatus && product.supplyStatus.includes('售空'));
// 只有status === 'sold_out'时显示售出时间,其他状态隐藏时间
const formattedDate = product.status === 'sold_out' ? formatDateTime(updatedAt) : '';
// 标记是否显示已售空标签(除了status === 'sold_out'的其他售空状态)
const isSoldOutLabel = isSoldOut && product.status !== 'sold_out';
return {
...product,
@ -2842,7 +2861,8 @@ Page({
mediaItems: processMediaUrls(product.imageUrls),
province: province, // 添加省份字段
weightQuantityData: weightQuantityData, // 添加价格处理数据
formattedDate: formattedDate // 添加格式化的日期字段
formattedDate: formattedDate, // 添加格式化的日期字段
isSoldOutLabel: isSoldOutLabel // 添加是否显示已售空标签的标记
};
});

8
pages/goods-detail/goods-detail.wxml

@ -265,6 +265,8 @@
mode="aspectFill"
lazy-load="true"
></image>
<!-- 已售空标签 -->
<view wx:if="{{item.isSoldOutLabel}}" class="sold-out-label">已售空</view>
</view>
<view class="compare-goods-info">
<text class="compare-goods-name">{{item.name}}</text>
@ -279,7 +281,7 @@
</block>
</text>
<text class="compare-goods-region-time">
{{item.province || item.region || '暂无地区'}} | {{item.formattedDate === '已售空' ? '' : '售出时间:'}}{{item.formattedDate || '暂无时间'}}
{{item.province || item.region || '暂无地区'}}{{item.formattedDate ? ' | 售出时间:' + item.formattedDate : ''}}
</text>
</view>
</view>
@ -314,6 +316,8 @@
mode="aspectFill"
lazy-load="true"
></image>
<!-- 已售空标签 -->
<view wx:if="{{item.isSoldOutLabel}}" class="sold-out-label">已售空</view>
</view>
<view class="compare-goods-info">
<text class="compare-goods-name">{{item.name}}</text>
@ -328,7 +332,7 @@
</block>
</text>
<text class="compare-goods-region-time">
{{item.province || item.region || '暂无地区'}} | {{item.formattedDate === '已售空' ? '' : '售出时间:'}}{{item.formattedDate || '暂无时间'}}
{{item.province || item.region || '暂无地区'}}{{item.formattedDate ? ' | 售出时间:' + item.formattedDate : ''}}
</text>
</view>
</view>

15
pages/goods-detail/goods-detail.wxss

@ -989,4 +989,19 @@ video.slider-media .wx-video-volume-icon {
.goods-detail-page {
position: relative;
z-index: 1;
}
/* 已售空标签样式 */
.sold-out-label {
position: absolute;
bottom: 8rpx;
right: 8rpx;
background-color: #ff4d4f;
color: white;
font-size: 24rpx;
padding: 4rpx 8rpx;
border-radius: 6rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.2);
font-weight: 600;
z-index: 10;
}
Loading…
Cancel
Save