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