Browse Source

修复商品详情页登录状态共享问题

pull/3/head
徐飞洋 2 months ago
parent
commit
6cef7b0a83
  1. 37
      pages/goods-detail/goods-detail.js

37
pages/goods-detail/goods-detail.js

@ -64,6 +64,19 @@ function extractProvince(region) {
return region; return region;
} }
// 检查用户是否已经登录
function checkLoginStatus() {
const openid = wx.getStorageSync('openid');
const userId = wx.getStorageSync('userId');
console.log('检查登录状态:', {
openid: openid ? '已登录' : '未登录',
userId: userId ? '已设置' : '未设置'
});
return !!(openid && userId);
}
// 处理净重、件数和规格数据,将逗号分隔的字符串转换为一一对应的数组 // 处理净重、件数和规格数据,将逗号分隔的字符串转换为一一对应的数组
function processWeightAndQuantityData(weightSpecString, quantityString, specString) { function processWeightAndQuantityData(weightSpecString, quantityString, specString) {
console.log('===== 处理净重、件数和规格数据 ====='); console.log('===== 处理净重、件数和规格数据 =====');
@ -196,15 +209,33 @@ Page({
onLoad: function (options) { onLoad: function (options) {
console.log('商品详情页面加载,参数:', options); console.log('商品详情页面加载,参数:', options);
// 处理登录状态检查 // 处理登录状态检查 - 优化版:优先检查本地登录状态
if (options.needLogin === 'true' || options.needLogin === true) { console.log('开始检查登录状态...');
console.log('检测到需要登录,显示登录提示弹窗');
// 1. 首先检查用户是否已经登录
const isLoggedIn = checkLoginStatus();
// 2. 检查URL参数中的needLogin
const needLoginFromUrl = (options.needLogin === 'true' || options.needLogin === true);
console.log('登录状态检查结果:', {
isLoggedIn,
needLoginFromUrl
});
// 只有在用户未登录且URL参数明确要求登录时才显示登录弹窗
if (!isLoggedIn && needLoginFromUrl) {
console.log('检测到需要登录且用户未登录,显示登录提示弹窗');
// 延迟显示登录弹窗,确保页面完全加载 // 延迟显示登录弹窗,确保页面完全加载
setTimeout(() => { setTimeout(() => {
this.setData({ this.setData({
showOneKeyLoginModal: true showOneKeyLoginModal: true
}); });
}, 500); }, 500);
} else {
console.log('不需要显示登录弹窗:', {
reason: isLoggedIn ? '用户已登录' : 'URL参数未要求登录'
});
} }
// 解析传入的商品数据 // 解析传入的商品数据

Loading…
Cancel
Save