Browse Source

修复商品详情页分享功能:添加地区信息到朋友圈分享并修复参数接收逻辑

pull/5/head
徐飞洋 2 months ago
parent
commit
c3cf7136b6
  1. 65
      pages/goods-detail/goods-detail.js

65
pages/goods-detail/goods-detail.js

@ -199,20 +199,37 @@ Page({
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 contactName = goodsDetail.product_contact || '';
const contactPhone = goodsDetail.contact_phone || ''; const contactPhone = goodsDetail.contact_phone || '';
const region = goodsDetail.region || '';
// 构建包含联系人信息的分享路径 // 构建包含联系人信息的分享路径
const contactNameParam = encodeURIComponent(contactName); const contactNameParam = encodeURIComponent(contactName);
const contactPhoneParam = encodeURIComponent(contactPhone); const contactPhoneParam = encodeURIComponent(contactPhone);
const contactPath = contactName && contactPhone const regionParam = encodeURIComponent(region);
? `/pages/goods-detail/goods-detail?productId=${goodsDetail.id || goodsDetail.productId}&contactName=${contactNameParam}&contactPhone=${contactPhoneParam}`
: `/pages/goods-detail/goods-detail?productId=${goodsDetail.id || goodsDetail.productId}`; // 如果有联系人或地区信息,则添加到分享路径
let sharePath = `/pages/goods-detail/goods-detail?productId=${goodsDetail.id || goodsDetail.productId}`;
if (contactName && contactPhone && region) {
sharePath += `&contactName=${contactNameParam}&contactPhone=${contactPhoneParam}&region=${regionParam}`;
} else if (contactName && contactPhone) {
sharePath += `&contactName=${contactNameParam}&contactPhone=${contactPhoneParam}`;
} else if (contactName && region) {
sharePath += `&contactName=${contactNameParam}&region=${regionParam}`;
} else if (contactPhone && region) {
sharePath += `&contactPhone=${contactPhoneParam}&region=${regionParam}`;
} else if (contactName) {
sharePath += `&contactName=${contactNameParam}`;
} else if (contactPhone) {
sharePath += `&contactPhone=${contactPhoneParam}`;
} else if (region) {
sharePath += `&region=${regionParam}`;
}
return { return {
title: title, title: title,
path: contactPath, path: sharePath,
imageUrl: goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0 ? goodsDetail.imageUrls[0] : '/images/你有好蛋.png' imageUrl: goodsDetail.imageUrls && goodsDetail.imageUrls.length > 0 ? goodsDetail.imageUrls[0] : '/images/你有好蛋.png'
} }
}, },
@ -222,16 +239,30 @@ Page({
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 contactName = goodsDetail.product_contact || '';
const contactPhone = goodsDetail.contact_phone || ''; const contactPhone = goodsDetail.contact_phone || '';
const region = goodsDetail.region || '';
// 构建包含联系人信息的分享查询参数 // 构建分享查询参数
const contactNameParam = encodeURIComponent(contactName); const contactNameParam = encodeURIComponent(contactName);
const contactPhoneParam = encodeURIComponent(contactPhone); const contactPhoneParam = encodeURIComponent(contactPhone);
const contactQuery = contactName && contactPhone const regionParam = encodeURIComponent(region);
? `productId=${goodsDetail.id || goodsDetail.productId}&contactName=${contactNameParam}&contactPhone=${contactPhoneParam}`
: `productId=${goodsDetail.id || goodsDetail.productId}`; let queryParams = [`productId=${goodsDetail.id || goodsDetail.productId}`];
// 添加联系人信息到查询参数
if (contactName) {
queryParams.push(`contactName=${contactNameParam}`);
}
if (contactPhone) {
queryParams.push(`contactPhone=${contactPhoneParam}`);
}
if (region) {
queryParams.push(`region=${regionParam}`);
}
const contactQuery = queryParams.join('&');
return { return {
title: title, title: title,
@ -317,7 +348,19 @@ Page({
product_contact: decodeURIComponent(options.contactName), product_contact: decodeURIComponent(options.contactName),
contact_phone: decodeURIComponent(options.contactPhone), contact_phone: decodeURIComponent(options.contactPhone),
}; };
// 如果有地区信息,也添加到联系人信息中
if (options.region) {
contactFromShare.region = decodeURIComponent(options.region);
}
console.log('从分享URL中获取联系人信息:', contactFromShare); console.log('从分享URL中获取联系人信息:', contactFromShare);
} else if (options.region) {
// 如果只有地区信息,也需要处理
contactFromShare = {
region: decodeURIComponent(options.region),
};
console.log('从分享URL中获取地区信息:', contactFromShare);
} }
// 从商品数据中提取商品ID // 从商品数据中提取商品ID
@ -520,7 +563,7 @@ Page({
if (contactFromShare) { if (contactFromShare) {
contactPhone = contactFromShare.contact_phone || ''; contactPhone = contactFromShare.contact_phone || '';
contactName = contactFromShare.product_contact || ''; contactName = contactFromShare.product_contact || '';
region = ''; region = contactFromShare.region || '';
console.log('使用分享URL中的联系人信息:', { contactName, contactPhone, region }); console.log('使用分享URL中的联系人信息:', { contactName, contactPhone, region });
} }
// 优先级2:预加载数据中的联系人信息 // 优先级2:预加载数据中的联系人信息

Loading…
Cancel
Save