Browse Source

修复商品详情页分享功能,添加联系人信息

pull/5/head
徐飞洋 2 months ago
parent
commit
9547a67291
  1. 62
      pages/goods-detail/goods-detail.js

62
pages/goods-detail/goods-detail.js

@ -198,9 +198,21 @@ Page({
onShareAppMessage() { onShareAppMessage() {
const goodsDetail = this.data.goodsDetail || {}; const goodsDetail = this.data.goodsDetail || {};
const title = goodsDetail.name ? `优质鸡蛋 - ${goodsDetail.name}` : '优质鸡蛋货源'; const title = goodsDetail.name ? `优质鸡蛋 - ${goodsDetail.name}` : '优质鸡蛋货源';
// 获取联系人和电话号码信息
const contactName = goodsDetail.product_contact || '';
const contactPhone = goodsDetail.contact_phone || '';
// 构建包含联系人信息的分享路径
const contactNameParam = encodeURIComponent(contactName);
const contactPhoneParam = encodeURIComponent(contactPhone);
const contactPath = contactName && contactPhone
? `/pages/goods-detail/goods-detail?productId=${goodsDetail.id || goodsDetail.productId}&contactName=${contactNameParam}&contactPhone=${contactPhoneParam}`
: `/pages/goods-detail/goods-detail?productId=${goodsDetail.id || goodsDetail.productId}`;
return { return {
title: title, title: title,
path: `/pages/goods-detail/goods-detail?productId=${goodsDetail.id || goodsDetail.productId}`, path: contactPath,
imageUrl: goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0 ? goodsDetail.imageUrls[0] : '/images/你有好蛋.png' imageUrl: goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0 ? goodsDetail.imageUrls[0] : '/images/你有好蛋.png'
} }
}, },
@ -209,9 +221,21 @@ Page({
onShareTimeline() { onShareTimeline() {
const goodsDetail = this.data.goodsDetail || {}; const goodsDetail = this.data.goodsDetail || {};
const title = goodsDetail.name ? `优质鸡蛋 - ${goodsDetail.name}` : '优质鸡蛋货源'; const title = goodsDetail.name ? `优质鸡蛋 - ${goodsDetail.name}` : '优质鸡蛋货源';
// 获取联系人和电话号码信息
const contactName = goodsDetail.product_contact || '';
const contactPhone = goodsDetail.contact_phone || '';
// 构建包含联系人信息的分享查询参数
const contactNameParam = encodeURIComponent(contactName);
const contactPhoneParam = encodeURIComponent(contactPhone);
const contactQuery = contactName && contactPhone
? `productId=${goodsDetail.id || goodsDetail.productId}&contactName=${contactNameParam}&contactPhone=${contactPhoneParam}`
: `productId=${goodsDetail.id || goodsDetail.productId}`;
return { return {
title: title, title: title,
query: `productId=${goodsDetail.id || goodsDetail.productId}`, query: contactQuery,
imageUrl: goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0 ? goodsDetail.imageUrls[0] : '/images/你有好蛋.png' imageUrl: goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0 ? goodsDetail.imageUrls[0] : '/images/你有好蛋.png'
} }
}, },
@ -286,6 +310,16 @@ Page({
} }
} }
// 优先使用分享URL中的联系人信息
let contactFromShare = null;
if (options.contactName && options.contactPhone) {
contactFromShare = {
product_contact: decodeURIComponent(options.contactName),
contact_phone: decodeURIComponent(options.contactPhone),
};
console.log('从分享URL中获取联系人信息:', contactFromShare);
}
// 从商品数据中提取商品ID // 从商品数据中提取商品ID
let productId; let productId;
if (goodsData && (goodsData.id || goodsData.productId)) { if (goodsData && (goodsData.id || goodsData.productId)) {
@ -309,7 +343,7 @@ Page({
console.log('最终使用的商品ID:', productId); console.log('最终使用的商品ID:', productId);
// 加载商品详情(即使已有goodsData,也调用API获取最新数据) // 加载商品详情(即使已有goodsData,也调用API获取最新数据)
this.loadGoodsDetail(productId, goodsData); this.loadGoodsDetail(productId, goodsData, contactFromShare);
// 添加收藏状态变化事件监听 // 添加收藏状态变化事件监听
const app = getApp(); const app = getApp();
@ -334,7 +368,7 @@ Page({
} }
}, },
loadGoodsDetail: function (productId, preloadedData = null) { loadGoodsDetail: function (productId, preloadedData = null, contactFromShare = null) {
// 首先显示预加载的数据,确保UI快速响应 // 首先显示预加载的数据,确保UI快速响应
if (preloadedData) { if (preloadedData) {
console.log('使用预加载数据显示UI'); console.log('使用预加载数据显示UI');
@ -477,23 +511,27 @@ Page({
supplyStatusValue = '预售'; supplyStatusValue = '预售';
} }
// 关键修改:优先使用预加载数据中的联系人信息,与buyer页面保持一致 // 关键修改:优先使用分享URL中的联系人信息
let contactPhone = ''; let contactPhone = '';
let contactName = ''; let contactName = '';
let region = ''; let region = '';
// 首先检查预加载数据,与buyer页面保持一致 // 优先级1:分享URL中的联系人信息
if (preloadedData) { if (contactFromShare) {
// 直接从预加载数据中获取联系人信息,与buyer页面保持一致 contactPhone = contactFromShare.contact_phone || '';
contactName = contactFromShare.product_contact || '';
region = '';
console.log('使用分享URL中的联系人信息:', { contactName, contactPhone, region });
}
// 优先级2:预加载数据中的联系人信息
else if (preloadedData) {
contactPhone = preloadedData.contact_phone || preloadedData.contactPhone || preloadedData.phone || ''; contactPhone = preloadedData.contact_phone || preloadedData.contactPhone || preloadedData.phone || '';
contactName = preloadedData.product_contact || preloadedData.contact || preloadedData.contactName || ''; contactName = preloadedData.product_contact || preloadedData.contact || preloadedData.contactName || '';
region = preloadedData.region || ''; region = preloadedData.region || '';
console.log('使用预加载数据中的联系人信息:', { contactName, contactPhone, region });
console.log('从预加载数据获取联系人信息:', { contactName, contactPhone, region });
console.log('preloadedData product_contact:', preloadedData.product_contact, 'contact_phone:', preloadedData.contact_phone);
} }
// 如果预加载数据中没有,则使用API返回的数据 // 优先级3:API返回的数据
if (!contactPhone && product) { if (!contactPhone && product) {
contactPhone = product.contact_phone || product.contactPhone || product.phone || ''; contactPhone = product.contact_phone || product.contactPhone || product.phone || '';
} }

Loading…
Cancel
Save