From 17b82cc20dc1e092dc3fe2e79bb2beb0bffc82fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BE=90=E9=A3=9E=E6=B4=8B?=
<15778543+xufeiyang6017@user.noreply.gitee.com>
Date: Mon, 12 Jan 2026 15:31:50 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=AF=94=E4=BB=B7=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=EF=BC=9A1.=20=E5=8F=AA=E6=9C=89status=3Dsold=5Fout?=
=?UTF-8?q?=E7=9A=84=E5=95=86=E5=93=81=E6=98=BE=E7=A4=BA=E5=94=AE=E5=87=BA?=
=?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=9B2.=20=E5=85=B6=E4=BB=96=E5=94=AE?=
=?UTF-8?q?=E7=A9=BA=E7=8A=B6=E6=80=81=E5=9C=A8=E5=95=86=E5=93=81=E5=8D=A1?=
=?UTF-8?q?=E7=89=87=E5=8F=B3=E4=B8=8B=E8=A7=92=E6=98=BE=E7=A4=BA=E5=B7=B2?=
=?UTF-8?q?=E5=94=AE=E7=A9=BA=E6=A0=87=E7=AD=BE=EF=BC=9B3.=20=E5=94=AE?=
=?UTF-8?q?=E5=87=BA=E6=97=B6=E9=97=B4=E4=B8=BA=E7=A9=BA=E6=97=B6=E4=B8=8D?=
=?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BB=BB=E4=BD=95=E7=9B=B8=E5=85=B3=E5=86=85?=
=?UTF-8?q?=E5=AE=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/goods-detail/goods-detail.js | 36 +++++++++++++++++++++-------
pages/goods-detail/goods-detail.wxml | 8 +++++--
pages/goods-detail/goods-detail.wxss | 15 ++++++++++++
3 files changed, 49 insertions(+), 10 deletions(-)
diff --git a/pages/goods-detail/goods-detail.js b/pages/goods-detail/goods-detail.js
index 58ac482..8ccc31d 100644
--- a/pages/goods-detail/goods-detail.js
+++ b/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 // 添加是否显示已售空标签的标记
};
});
diff --git a/pages/goods-detail/goods-detail.wxml b/pages/goods-detail/goods-detail.wxml
index 5bc3e93..4cda168 100644
--- a/pages/goods-detail/goods-detail.wxml
+++ b/pages/goods-detail/goods-detail.wxml
@@ -265,6 +265,8 @@
mode="aspectFill"
lazy-load="true"
>
+
+ 已售空
{{item.name}}
@@ -279,7 +281,7 @@
- {{item.province || item.region || '暂无地区'}} | {{item.formattedDate === '已售空' ? '' : '售出时间:'}}{{item.formattedDate || '暂无时间'}}
+ {{item.province || item.region || '暂无地区'}}{{item.formattedDate ? ' | 售出时间:' + item.formattedDate : ''}}
@@ -314,6 +316,8 @@
mode="aspectFill"
lazy-load="true"
>
+
+ 已售空
{{item.name}}
@@ -328,7 +332,7 @@
- {{item.province || item.region || '暂无地区'}} | {{item.formattedDate === '已售空' ? '' : '售出时间:'}}{{item.formattedDate || '暂无时间'}}
+ {{item.province || item.region || '暂无地区'}}{{item.formattedDate ? ' | 售出时间:' + item.formattedDate : ''}}
diff --git a/pages/goods-detail/goods-detail.wxss b/pages/goods-detail/goods-detail.wxss
index 39879be..390dd7a 100644
--- a/pages/goods-detail/goods-detail.wxss
+++ b/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;
}
\ No newline at end of file