diff --git a/pages/goods-detail/goods-detail.js b/pages/goods-detail/goods-detail.js index 06d80a5..70d9be9 100644 --- a/pages/goods-detail/goods-detail.js +++ b/pages/goods-detail/goods-detail.js @@ -64,6 +64,19 @@ function extractProvince(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) { console.log('===== 处理净重、件数和规格数据 ====='); @@ -196,15 +209,33 @@ Page({ onLoad: function (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(() => { this.setData({ showOneKeyLoginModal: true }); }, 500); + } else { + console.log('不需要显示登录弹窗:', { + reason: isLoggedIn ? '用户已登录' : 'URL参数未要求登录' + }); } // 解析传入的商品数据