Browse Source

合并冲突

Xfy
Trae AI 5 days ago
parent
commit
c3a084a990
  1. 216
      pages/compare_price/index.js

216
pages/compare_price/index.js

@ -127,22 +127,6 @@ Page({
if (Array.isArray(goodsData.price)) { if (Array.isArray(goodsData.price)) {
goodsData.price = goodsData.price[0]; goodsData.price = goodsData.price[0];
} }
// 格式化价格,最多显示一位小数
goodsData.price = formatPrice(goodsData.price);
}
// 处理原始价格
if (goodsData.originalPrice) {
// 如果原始价格是字符串且包含逗号,只取第一个价格
if (typeof goodsData.originalPrice === 'string' && goodsData.originalPrice.includes(',')) {
goodsData.originalPrice = goodsData.originalPrice.split(',')[0].trim();
}
// 如果原始价格是数组,只取第一个价格
if (Array.isArray(goodsData.originalPrice)) {
goodsData.originalPrice = goodsData.originalPrice[0];
}
// 格式化原始价格,最多显示一位小数
goodsData.originalPrice = formatPrice(goodsData.originalPrice);
} }
// 处理当前商品的地区信息,只显示省份 // 处理当前商品的地区信息,只显示省份
@ -287,102 +271,124 @@ Page({
} }
// 处理商品数据 // 处理商品数据
const processedGoods = filteredGoods.map(item => { const processedGoods = filteredGoods.map(item => {
// 首先清理 imageUrls 字段(如果存在) // 首先清理 imageUrls 字段(如果存在)
if (item.imageUrls && Array.isArray(item.imageUrls)) { if (item.imageUrls && Array.isArray(item.imageUrls)) {
item.imageUrls = item.imageUrls.map(url => { item.imageUrls = item.imageUrls.map(url => {
return url.trim().replace(/[`]/g, ''); return url.trim().replace(/[`]/g, '');
}); });
// 使用processMediaUrls函数处理媒体数据
item.mediaItems = processMediaUrls(item.imageUrls);
// 确保图片优先显示:将图片类型的媒体项移到数组前面
if (item.mediaItems && item.mediaItems.length > 1) {
const imageItems = item.mediaItems.filter(media => media.type === 'image');
const videoItems = item.mediaItems.filter(media => media.type === 'video');
item.mediaItems = [...imageItems, ...videoItems];
}
}
// 清理 mediaItems 中的 URL // 使用processMediaUrls函数处理媒体数据
if (item.mediaItems && Array.isArray(item.mediaItems)) { item.mediaItems = processMediaUrls(item.imageUrls);
item.mediaItems = item.mediaItems.map(media => {
if (media.url) {
// 去除 URL 中的反引号和空格
media.url = media.url.trim().replace(/[`]/g, '');
// 确保媒体类型正确
if (!media.type) {
media.type = isVideoUrl(media.url) ? 'video' : 'image';
}
}
return media;
});
}
// 处理商品价格,使用选中规格的价格 // 确保图片优先显示:将图片类型的媒体项移到数组前面
if (specWeight) { if (item.mediaItems && item.mediaItems.length > 1) {
if (item.weightQuantityData && Array.isArray(item.weightQuantityData)) { const imageItems = item.mediaItems.filter(media => media.type === 'image');
// 尝试从weightQuantityData中找到对应规格的价格 const videoItems = item.mediaItems.filter(media => media.type === 'video');
const matchingSpec = item.weightQuantityData.find(spec => { item.mediaItems = [...imageItems, ...videoItems];
if (spec.weightSpec) { }
return spec.weightSpec.trim() === specWeight; }
}
return false;
});
if (matchingSpec && matchingSpec.price) {
// 确保价格是一个单一的值,而不是多个价格的组合
item.price = matchingSpec.price;
}
}
}
// 清理价格字段,确保只显示单一价格 // 清理 mediaItems 中的 URL
if (item.price) { if (item.mediaItems && Array.isArray(item.mediaItems)) {
// 如果价格是字符串且包含逗号,只取第一个价格 item.mediaItems = item.mediaItems.map(media => {
if (typeof item.price === 'string' && item.price.includes(',')) { if (media.url) {
item.price = item.price.split(',')[0].trim(); // 去除 URL 中的反引号和空格
} media.url = media.url.trim().replace(/[`]/g, '');
// 如果价格是数组,只取第一个价格 // 确保媒体类型正确
if (Array.isArray(item.price)) { if (!media.type) {
item.price = item.price[0]; media.type = isVideoUrl(media.url) ? 'video' : 'image';
} }
} }
return media;
});
}
// 处理规格信息,将多个净重信息分割成数组 // 处理商品价格,使用选中规格的价格
item.processedSpecs = []; if (specWeight) {
if (item.specification) { if (item.weightQuantityData && Array.isArray(item.weightQuantityData)) {
item.processedSpecs = processSpecifications(item.specification); // 尝试从weightQuantityData中找到对应规格的价格
} else if (item.weightSpec) { const matchingSpec = item.weightQuantityData.find(spec => {
item.processedSpecs = processSpecifications(item.weightSpec); if (spec.weightSpec) {
} else if (item.grossWeight) { return spec.weightSpec.trim() === specWeight;
item.processedSpecs = processSpecifications(item.grossWeight); }
} else if (selectedSpec) { return false;
item.processedSpecs = processSpecifications(selectedSpec); });
} if (matchingSpec && matchingSpec.price) {
// 确保价格是一个单一的值,而不是多个价格的组合
item.price = matchingSpec.price;
}
}
}
// 处理库存显示逻辑 // 清理价格字段,确保只显示单一价格
const quantity = item.quantity || item.minOrder || item.stock || item.inventory || item.availableStock || item.totalAvailable; if (item.price) {
const totalStock = quantity; // 如果价格是字符串且包含逗号,只取第一个价格
if (typeof item.price === 'string' && item.price.includes(',')) {
let displayStock; item.price = item.price.split(',')[0].trim();
if (totalStock >= 10000) { }
// 库存>=10000时显示"库存充足" // 如果价格是数组,只取第一个价格
displayStock = '充足'; if (Array.isArray(item.price)) {
} else if (totalStock === 0) { item.price = item.price[0];
// 库存=0时显示"暂无" }
displayStock = '暂无'; }
} else {
// 其他情况显示具体数字
displayStock = totalStock;
}
// 更新商品的库存显示 // 处理规格信息,将多个净重信息分割成数组
item.totalStock = displayStock; item.processedSpecs = [];
item.originalTotalStock = totalStock; if (item.specification) {
item.processedSpecs = processSpecifications(item.specification);
} else if (item.weightSpec) {
item.processedSpecs = processSpecifications(item.weightSpec);
} else if (item.grossWeight) {
item.processedSpecs = processSpecifications(item.grossWeight);
} else if (selectedSpec) {
item.processedSpecs = processSpecifications(selectedSpec);
}
return item; // 处理库存显示逻辑
}); const quantity = item.quantity || item.minOrder || item.stock || item.inventory || item.availableStock || item.totalAvailable;
const totalStock = quantity;
let displayStock;
if (totalStock >= 10000) {
// 库存>=10000时显示"库存充足"
displayStock = '充足';
} else if (totalStock === 0) {
// 库存=0时显示"暂无"
displayStock = '暂无';
} else {
// 其他情况显示具体数字
displayStock = totalStock;
}
// 更新商品的库存显示
item.totalStock = displayStock;
item.originalTotalStock = totalStock;
// 处理地区信息,只显示省份
if (item.region) {
// 提取省份信息
const provinceRegex = /^([^省]+省|[^自治区]+自治区|[^直辖市]+直辖市|[^特别行政区]+特别行政区)/;
const match = item.region.match(provinceRegex);
if (match) {
item.region = match[1];
}
}
// 计算价格涨幅
if (goodsData.price) {
const currentPrice = parseFloat(goodsData.price);
const itemPrice = parseFloat(item.price);
if (!isNaN(currentPrice) && !isNaN(itemPrice)) {
const priceDiff = itemPrice - currentPrice;
const pricePercent = ((priceDiff / currentPrice) * 100).toFixed(1);
item.priceDiff = priceDiff;
item.pricePercent = pricePercent;
}
}
return item;
});
// 显示提示信息 // 显示提示信息
wx.showToast({ wx.showToast({

Loading…
Cancel
Save