=== index页面onShow被调用 === mp.esm.js:529 主页重新显示,重置页面状态 mp.esm.js:529 主页首次显示,跳过onShow中的用户资料检查,交由initData处理 mp.esm.js:529 === index页面onShow执行完成 === mp.esm.js:529 [Login] ▶ onMounted 开始 mp.esm.js:529 [Login] 📝 form 初始值: UTSJSONObject {account: "", password: "(ref 已被其他逻辑覆盖)", toJSON: undefined, _resolveKeyPath: ƒ, _getValue: ƒ, …} mp.esm.js:529 [Login] 📦 读取 storage[rememberEmail]: mp.esm.js:529 [Login] ℹ️ 无缓存,使用默认账号密码(已由 ref 初始化) mp.esm.js:529 [Login] 📝 onMounted 完成,最终 form 値: UTSJSONObject {account: "", isDefault: false, toJSON: undefined, _resolveKeyPath: ƒ, _getValue: ƒ, …} [system] Launch Time: 7027 ms mp.esm.js:529 [ak-req] POST http://119.146.131.237:9126/auth/v1/token?grant_type=password mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...7890 | auth-mode: anon-key | prefer: (none) mp.esm.js:529 [SignInPersist] access token stored: eyJhbG...XZrEdE mp.esm.js:529 [SignInPersist] refresh token stored: mlvwsvdwrc5b mp.esm.js:529 [SignInPersist] expires_at stored: 1778732276 mp.esm.js:529 signIn result: AkSupaSignInResult {access_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiN…HNlfQ.nwTcxi618xZggVkO8iNcYCCSZJtGxZrYnt0emXZrEdE", refresh_token: "mlvwsvdwrc5b", expires_at: 1778732276, user: UTSJSONObject, token_type: "bearer", …} mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ak_users filter: auth_id=eq.b653fded-7d5e-4950-aa0d-725595543e3c mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ak_users?select=id%2C%20role&auth_id=eq.b653fded-7d5e-4950-aa0d-725595543e3c mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: (none) mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ak_users filter: auth_id=eq.b653fded-7d5e-4950-aa0d-725595543e3c mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ak_users?select=*&auth_id=eq.b653fded-7d5e-4950-aa0d-725595543e3c mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: (none) mp.esm.js:529 Profile Load Result: AkReqResponse {status: 200, data: Array(1), headers: Proxy, error: null, total: 1, …} mp.esm.js:529 fetch profile success: UserProfile {id: "b653fded-7d5e-4950-aa0d-725595543e3c", username: "test_user", email: "test@mall.com", gender: null, birthday: null, …} mp.esm.js:529 获取 Push CID 失败: UniError: getPushClientId:fail uniPush is not enabled at _construct (weapp:///http://127.0.0.1:50694/appservice/@babel/runtime/helpers/construct.js?forceSync=true:1:1227) at new r (weapp:///http://127.0.0.1:50694/appservice/@babel/runtime/helpers/wrapNativeSuper.js?forceSync=true:1:1357) at UniError2. (weapp:///http://127.0.0.1:50694/appservice/@babel/runtime/helpers/createSuper.js?forceSync=true:1:1176) at new UniError2 (weapp:///http://127.0.0.1:50694/appservice/common/vendor.js?t=wechat&s=1778722325335&v=7a2b56415f28ccea76c623b821c329c0:890:22) at invokeFail (weapp:///http://127.0.0.1:50694/appservice/common/vendor.js?t=wechat&s=1778722325335&v=7a2b56415f28ccea76c623b821c329c0:7110:101) at reject (weapp:///http://127.0.0.1:50694/appservice/common/vendor.js?t=wechat&s=1778722325335&v=7a2b56415f28ccea76c623b821c329c0:7145:16) at weapp:///http://127.0.0.1:50694/appservice/common/vendor.js?t=wechat&s=1778722325335&v=7a2b56415f28ccea76c623b821c329c0:7530:9 at weapp:///http://127.0.0.1:50694/appservice/common/vendor.js?t=wechat&s=1778722325335&v=7a2b56415f28ccea76c623b821c329c0:7510:5 at Array.forEach () at invokeGetPushCidCallbacks (weapp:///http://127.0.0.1:50694/appservice/common/vendor.js?t=wechat&s=1778722325335&v=7a2b56415f28ccea76c623b821c329c0:7509:23) (anonymous) @ mp.esm.js:529 __f__ @ uni.api.esm.js:590 fail @ login.uvue:598 (anonymous) @ uni.api.esm.js:156 (anonymous) @ uni.api.esm.js:226 invokeCallback @ uni.api.esm.js:183 invokeFail @ uni.api.esm.js:397 reject @ uni.api.esm.js:426 (anonymous) @ uni.api.esm.js:812 (anonymous) @ uni.api.esm.js:795 invokeGetPushCidCallbacks @ uni.api.esm.js:794 (anonymous) @ uni.api.esm.js:816 Promise.then (async) (anonymous) @ uni.api.esm.js:801 (anonymous) @ uni.api.esm.js:424 invokeApi @ uni.api.esm.js:330 (anonymous) @ uni.api.esm.js:353 invokeApi @ uni.api.esm.js:330 promiseApi @ uni.api.esm.js:889 _callee4$ @ login.uvue:579 s @ regeneratorRuntime.js?forceSync=true:1 (anonymous) @ regeneratorRuntime.js?forceSync=true:1 (anonymous) @ regeneratorRuntime.js?forceSync=true:1 fulfilled @ uni.mp.esm.js:1134 Promise.then (async) step @ uni.mp.esm.js:1134 fulfilled @ uni.mp.esm.js:1134 Promise.then (async) step @ uni.mp.esm.js:1134 fulfilled @ uni.mp.esm.js:1134 Promise.then (async) step @ uni.mp.esm.js:1134 (anonymous) @ uni.mp.esm.js:1134 __awaiter @ uni.mp.esm.js:1134 handleLogin @ login.uvue:437 callWithErrorHandling @ vue.runtime.esm.js:1356 callWithAsyncErrorHandling @ vue.runtime.esm.js:1363 invoke @ vue.runtime.esm.js:6223 setTimeout (async) invoker @ vue.runtime.esm.js:6232 [自动热重载] 已开启代码文件保存后自动热重载 mp.esm.js:529 === index页面onShow被调用 === mp.esm.js:529 主页重新显示,重置页面状态 mp.esm.js:529 主页首次显示,跳过onShow中的用户资料检查,交由initData处理 mp.esm.js:529 === index页面onShow执行完成 === wx.getSystemInfoSync is deprecated.Please use wx.getSystemSetting/wx.getAppAuthorizeSetting/wx.getDeviceInfo/wx.getWindowInfo/wx.getAppBaseInfo instead. (anonymous) @ uni.api.esm.js:1042 initPage @ index.uvue:1358 (anonymous) @ index.uvue:1401 (anonymous) @ vue.runtime.esm.js:2483 callWithErrorHandling @ vue.runtime.esm.js:1356 callWithAsyncErrorHandling @ vue.runtime.esm.js:1363 hook.__weh.hook.__weh @ vue.runtime.esm.js:2461 invokeArrayFns @ uni-shared.es.js:1344 callHook @ uni.mp.esm.js:241 ready @ uni.mp.esm.js:1039 mp.esm.js:529 [SupaConfig] SUPA_URL : http://119.146.131.237:9126 mp.esm.js:529 [SupaConfig] SUPA_KEY : eyJhbGciOi...34567890 mp.esm.js:529 [IndexInit] 准备加载首页数据,确认当前请求将使用上述 SUPA_URL mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ak_users filter: auth_id=eq.b653fded-7d5e-4950-aa0d-725595543e3c mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ak_users?select=*&auth_id=eq.b653fded-7d5e-4950-aa0d-725595543e3c mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: (none) mp.esm.js:529 Profile Load Result: AkReqResponse {status: 200, data: Array(1), headers: Proxy, error: null, total: 1, …} mp.esm.js:529 主页初始化:用户资料加载完成 mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_categories filter: parent_id=is.null mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_categories?select=*&order=sort_order.asc&parent_id=is.null mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: (none) mp.esm.js:529 一级分类数据: [{"id":"e3a8b95c-80ad-4a64-8962-7663d55697f0","name":"数码电器","icon":"📱","description":"手机、电脑、家电等数码产品","color":"#ff5000","parent_id":null,"level":1,"slug":"digital","created_at":null},{"id":"86cfa659-fae9-4f84-920f-75073907eecc","name":"服装鞋帽","icon":"👕","description":"男装、女装、鞋子、配饰","color":"#ff5000","parent_id":null,"level":1,"slug":"fashion","created_at":null},{"id":"79cd5b69-f914-4358-ac05-bcce9919c483","name":"家居用品","icon":"🏠","description":"家具、装饰、生活用品","color":"#ff5000","parent_id":null,"level":1,"slug":"home","created_at":null},{"id":"ad6cb41c-eca6-4f81-a5ba-8177a621497f","name":"食品饮料","icon":"🍎","description":"新鲜食材、零食、饮品","color":"#ff5000","parent_id":null,"level":1,"slug":"food","created_at":null},{"id":"55169612-358e-4203-8c98-33d037cd7dde","name":"美妆护肤","icon":"💄","description":"化妆品、护肤品、个人护理","color":"#ff5000","parent_id":null,"level":1,"slug":"beauty","created_at":null},{"id":"5a1b6acc-104e-4b2b-b2a1-47a715155b0c","name":"运动户外","icon":"⚽","description":"运动器材、户外装备、健身用品","color":"#ff5000","parent_id":null,"level":1,"slug":"sports","created_at":null},{"id":"bc77baa7-c17b-40ff-a276-aabcf6c92f5e","name":"图书文娱","icon":"📚","description":"图书、音像、文具、玩具","color":"#ff5000","parent_id":null,"level":1,"slug":"books","created_at":null},{"id":"d3fa79f9-0dc7-4984-a7b3-742e802b99c9","name":"母婴用品","icon":"👶","description":"婴儿用品、孕妇用品、儿童玩具","color":"#ff5000","parent_id":null,"level":1,"slug":"baby","created_at":null},{"id":"65d46471-90e7-468b-a515-d039cfa29c35","name":"医药健康","icon":"💊","description":"","color":"#ff5000","parent_id":null,"level":1,"slug":"health","created_at":null}] mp.esm.js:529 [getBrands] 开始获取品牌数据... mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_brands filter: null mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_brands?select=id%2C%20name%2C%20logo_url%2C%20description%2C%20is_active&order=name.asc mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: (none) mp.esm.js:529 [getBrands] 数据条数: 10 mp.esm.js:529 [getBrands] 返回品牌数量: 10 mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_search_history filter: null mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_search_history?select=keyword&limit=100&order=created_at.desc mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: count=exact mp.esm.js:529 加载热搜词: 3 个 mp.esm.js:529 [getSmartRecommendations] 开始获取智能推荐... mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_search_history filter: null mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_search_history?select=keyword&limit=10&order=created_at.desc mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: count=exact mp.esm.js:529 [getSmartRecommendations] 用户搜索历史: [] mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_browse_history filter: null mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_browse_history?select=product_id&limit=20&order=created_at.desc mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: count=exact mp.esm.js:529 [getSmartRecommendations] 用户浏览分类: [] mp.esm.js:529 [getHotProducts] 开始获取热销商品... mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_products_detail_view filter: status=eq.1 mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_products_detail_view?select=id%2C%20name%2C%20description%2C%20base_price%2C%20market_price%2C%20main_image_url%2C%20image_urls%2C%20category_id%2C%20brand_id%2C%20merchant_id%2C%20total_stock%2C%20sale_count%2C%20status%2C%20is_featured%2C%20is_new%2C%20is_hot&limit=60&order=sale_count.desc&status=eq.1 mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: count=exact mp.esm.js:529 [getHotProducts] 原始数据条数: 60 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: iPhone 15 Pro 256GB 深空黑色 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: Nike Air Max 270 男士运动鞋 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 厨具精选优品 4号 - 超值装 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 老干妈风味豆豉 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 男装精选优品 4号 - 超值装 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 新鲜水果精选优品 2号 - 家庭装 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 零食坚果精选优品 4号 - 超值装 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 测试1 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 瑞山天泉15L(20桶送2桶) mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 加厚垃圾袋 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 瑞山天泉15L(20桶送2桶) mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 宜家 - 明星单品系列 03 mp.esm.js:529 [getHotProducts] 最终返回商品数: 12 mp.esm.js:529 [getSmartRecommendations] 返回商品数量: 6 mp.esm.js:529 [getRecommendedProducts] 开始获取推荐商品... mp.esm.js:529 [AkSupaQueryBuilder] execute - 表: ml_products_detail_view filter: status=eq.1 mp.esm.js:529 [ak-req] GET http://119.146.131.237:9126/rest/v1/ml_products_detail_view?select=id%2C%20name%2C%20description%2C%20base_price%2C%20market_price%2C%20main_image_url%2C%20image_urls%2C%20category_id%2C%20brand_id%2C%20merchant_id%2C%20total_stock%2C%20sale_count%2C%20status%2C%20is_featured%2C%20is_new%2C%20is_hot&limit=30&order=sale_count.desc&status=eq.1 mp.esm.js:529 [ak-req] apikey: eyJhbG...7890 | Authorization: Bearer eyJhbG...rEdE | auth-mode: pre-set | prefer: count=exact mp.esm.js:529 [getRecommendedProducts] 查询完成 mp.esm.js:529 [getRecommendedProducts] 数据条数: 30 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 九阳破壁机 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: UNIQLO 优质棉圆领T恤(短袖) mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: iPhone 15 Pro 256GB 深空黑色 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: vc mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: Nike Air Max 270 男士运动鞋 mp.esm.js:529 [parseProductFromRaw] 开始解析商品 mp.esm.js:529 [parseProductFromRaw] JSON转换成功 mp.esm.js:529 [parseProductFromRaw] 图片处理完成 mp.esm.js:529 [parseProductFromRaw] 商品解析成功: 店铺1 - 甄选商品 1