Browse Source

修复视频黑边问题,删除隐藏样式,更新index.json配置

pull/12/head
徐飞洋 2 months ago
parent
commit
02606125ab
  1. 55
      pages/goods-detail/goods-detail.js
  2. 34
      pages/goods-detail/goods-detail.wxml
  3. 37
      pages/goods-detail/goods-detail.wxss
  4. 2
      pages/index/index.json

55
pages/goods-detail/goods-detail.js

@ -303,6 +303,40 @@ function checkLoginStatus() {
return !!(openid && userId); return !!(openid && userId);
} }
// 格式化日期时间函数
function formatDateTime(dateString) {
if (!dateString) return '';
// 尝试解析日期字符串
const date = new Date(dateString);
// 检查是否是有效的日期对象
if (isNaN(date.getTime())) {
// 如果解析失败,返回原始字符串
return dateString;
}
// 如果是 ISO 格式的字符串(包含 T 字符),则转换为本地时间格式,只保留日期部分
if (typeof dateString === 'string' && dateString.includes('T')) {
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
return `${year}-${month}-${day}`;
}
// 对于其他格式的字符串,尝试提取日期部分
if (typeof dateString === 'string') {
// 检查是否包含空格,提取空格前的日期部分
const spaceIndex = dateString.indexOf(' ');
if (spaceIndex !== -1) {
return dateString.substring(0, spaceIndex);
}
}
// 如果以上都不匹配,直接返回
return dateString;
}
// 处理净重、件数、规格和价格数据,将逗号分隔的字符串转换为一一对应的数组 // 处理净重、件数、规格和价格数据,将逗号分隔的字符串转换为一一对应的数组
function processWeightAndQuantityData(weightSpecString, quantityString, specString, priceString) { function processWeightAndQuantityData(weightSpecString, quantityString, specString, priceString) {
console.log('===== 处理净重、件数、规格和价格数据 ====='); console.log('===== 处理净重、件数、规格和价格数据 =====');
@ -2484,12 +2518,17 @@ Page({
// 提取省份信息 // 提取省份信息
const province = extractProvince(goods.region || ''); const province = extractProvince(goods.region || '');
// 格式化日期
const updatedAt = goods.updated_at || goods.updatedAt;
const formattedDate = formatDateTime(updatedAt);
return { return {
...goods, ...goods,
price: priceString, // 确保price字段是字符串类型 price: priceString, // 确保price字段是字符串类型
mediaItems: processMediaUrls(goods.imageUrls), mediaItems: processMediaUrls(goods.imageUrls),
weightQuantityData: weightQuantityData, weightQuantityData: weightQuantityData,
province: province // 添加省份字段 province: province, // 添加省份字段
formattedDate: formattedDate // 添加格式化的日期字段
}; };
}).filter(goods => { }).filter(goods => {
// 只有当当前商品有明确的规格时才进行筛选 // 只有当当前商品有明确的规格时才进行筛选
@ -2697,12 +2736,17 @@ Page({
// 处理数据 // 处理数据
const weightQuantityData = processWeightAndQuantityData(weightSpecString, quantityString, '', priceString); const weightQuantityData = processWeightAndQuantityData(weightSpecString, quantityString, '', priceString);
// 格式化日期
const updatedAt = product.updated_at || product.updatedAt;
const formattedDate = formatDateTime(updatedAt);
return { return {
...product, ...product,
price: priceString, // 确保price字段是字符串类型 price: priceString, // 确保price字段是字符串类型
mediaItems: processMediaUrls(product.imageUrls), mediaItems: processMediaUrls(product.imageUrls),
province: province, // 添加省份字段 province: province, // 添加省份字段
weightQuantityData: weightQuantityData // 添加价格处理数据 weightQuantityData: weightQuantityData, // 添加价格处理数据
formattedDate: formattedDate // 添加格式化的日期字段
}; };
}); });
console.log('所有商品详情获取完成,有效商品数量:', validProducts.length); console.log('所有商品详情获取完成,有效商品数量:', validProducts.length);
@ -2754,12 +2798,17 @@ Page({
// 处理数据 // 处理数据
const weightQuantityData = processWeightAndQuantityData(weightSpecString, quantityString, '', priceString); const weightQuantityData = processWeightAndQuantityData(weightSpecString, quantityString, '', priceString);
// 格式化日期
const updatedAt = product.updated_at || product.updatedAt;
const formattedDate = formatDateTime(updatedAt);
return { return {
...product, ...product,
price: priceString, // 确保price字段是字符串类型 price: priceString, // 确保price字段是字符串类型
mediaItems: processMediaUrls(product.imageUrls), mediaItems: processMediaUrls(product.imageUrls),
province: province, // 添加省份字段 province: province, // 添加省份字段
weightQuantityData: weightQuantityData // 添加价格处理数据 weightQuantityData: weightQuantityData, // 添加价格处理数据
formattedDate: formattedDate // 添加格式化的日期字段
}; };
}); });

34
pages/goods-detail/goods-detail.wxml

@ -268,10 +268,19 @@
</view> </view>
<view class="compare-goods-info"> <view class="compare-goods-info">
<text class="compare-goods-name">{{item.name}}</text> <text class="compare-goods-name">{{item.name}}</text>
<text class="compare-goods-spec">{{item.specification || item.spec || item.specs || '暂无规格'}}</text> <text class="compare-goods-spec-quantity">
<text class="compare-goods-quantity">{{item.quantity || '暂无件数'}}件</text> <block wx:if="{{item.weightQuantityData && item.weightQuantityData.length > 0}}">
<text class="compare-goods-price">价格: {{item.price}}</text> <block wx:for="{{item.weightQuantityData}}" wx:for-item="specItem" wx:key="index">
<text class="compare-goods-region">{{item.province || item.region || '暂无地区'}}</text> {{specItem.display}}
</block>
</block>
<block wx:else>
{{item.specification || item.spec || item.specs || '暂无规格'}}|{{item.quantity || '暂无件数'}}件
</block>
</text>
<text class="compare-goods-region-time">
{{item.province || item.region || '暂无地区'}} | 售出时间:{{item.formattedDate || '暂无时间'}}
</text>
</view> </view>
</view> </view>
</block> </block>
@ -308,10 +317,19 @@
</view> </view>
<view class="compare-goods-info"> <view class="compare-goods-info">
<text class="compare-goods-name">{{item.name}}</text> <text class="compare-goods-name">{{item.name}}</text>
<text class="compare-goods-spec">{{item.specification || item.spec || item.specs || '暂无规格'}}</text> <text class="compare-goods-spec-quantity">
<text class="compare-goods-quantity">{{item.quantity || '暂无件数'}}件</text> <block wx:if="{{item.weightQuantityData && item.weightQuantityData.length > 0}}">
<text class="compare-goods-price">价格: {{item.price.split(',')[0]}}</text> <block wx:for="{{item.weightQuantityData}}" wx:for-item="specItem" wx:key="index">
<text class="compare-goods-region">{{item.province || item.region || '暂无地区'}}</text> {{specItem.display}}
</block>
</block>
<block wx:else>
{{item.specification || item.spec || item.specs || '暂无规格'}}|{{item.quantity || '暂无件数'}}件
</block>
</text>
<text class="compare-goods-region-time">
{售出时间}{{item.province || item.region || '暂无地区'}} | {{item.formattedDate || '暂无时间'}}
</text>
</view> </view>
</view> </view>
</block> </block>

37
pages/goods-detail/goods-detail.wxss

@ -857,15 +857,16 @@ video.slider-media .wx-video-volume-icon {
.compare-goods-list { .compare-goods-list {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
padding: 16rpx; padding: 12rpx;
} }
.compare-goods-item { .compare-goods-item {
display: flex; display: flex;
align-items: center;
background-color: #fff; background-color: #fff;
border-radius: 16rpx; border-radius: 12rpx;
padding: 16rpx; padding: 12rpx;
margin-bottom: 16rpx; margin-bottom: 12rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08); box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
transition: all 0.3s ease; transition: all 0.3s ease;
border: 1rpx solid #f0f0f0; border: 1rpx solid #f0f0f0;
@ -879,8 +880,8 @@ video.slider-media .wx-video-volume-icon {
.compare-goods-image { .compare-goods-image {
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
border-radius: 12rpx; border-radius: 10rpx;
margin-right: 16rpx; margin-right: 12rpx;
object-fit: cover; object-fit: cover;
background: linear-gradient(135deg, #f0f4ff 0%, #d9e4ff 100%); background: linear-gradient(135deg, #f0f4ff 0%, #d9e4ff 100%);
} }
@ -889,8 +890,8 @@ video.slider-media .wx-video-volume-icon {
.product-image-wrapper { .product-image-wrapper {
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
border-radius: 12rpx; border-radius: 10rpx;
margin-right: 16rpx; margin-right: 12rpx;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
background: linear-gradient(135deg, #f0f4ff 0%, #d9e4ff 100%); background: linear-gradient(135deg, #f0f4ff 0%, #d9e4ff 100%);
@ -912,15 +913,15 @@ video.slider-media .wx-video-volume-icon {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: flex-start;
} }
.compare-goods-name { .compare-goods-name {
font-size: 32rpx; font-size: 32rpx;
color: #222; color: #222;
font-weight: 600; font-weight: 600;
line-height: 1.4; line-height: 1.3;
margin-bottom: 8rpx; margin-bottom: 4rpx;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
@ -955,6 +956,20 @@ video.slider-media .wx-video-volume-icon {
color: #999; color: #999;
} }
.compare-goods-spec-quantity {
font-size: 28rpx;
color: #666;
line-height: 1.1;
margin: 2rpx 0;
}
.compare-goods-region-time {
font-size: 26rpx;
color: #999;
line-height: 1.1;
margin-top: 2rpx;
}
.compare-empty { .compare-empty {
text-align: center; text-align: center;
padding: 80rpx 0; padding: 80rpx 0;

2
pages/index/index.json

@ -2,7 +2,7 @@
"usingComponents": { "usingComponents": {
"navigation-bar": "/components/navigation-bar/navigation-bar" "navigation-bar": "/components/navigation-bar/navigation-bar"
}, },
"enablePullDownRefresh": true, "enablePullDownRefresh": false,
"backgroundTextStyle": "dark", "backgroundTextStyle": "dark",
"backgroundColor": "#f8f8f8" "backgroundColor": "#f8f8f8"
} }
Loading…
Cancel
Save