From 9f464121317fc1a3147aceaa0708242498084818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=9A=E6=B5=A9=E6=98=9F?= <13657094050@163.com> Date: Mon, 20 Oct 2025 22:41:56 +0800 Subject: [PATCH] =?UTF-8?q?'=E7=99=BB=E5=BD=95=E8=B0=83=E8=AF=95'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/App.vue | 199 +++++++++++++ frontend/manifest.json | 2 +- frontend/pages.json | 12 + frontend/pages/index/user.vue | 81 ------ frontend/pages/user/mock-login.vue | 265 ++++++++++++++++++ .../sheep/platform/provider/ccblife/index.js | 10 +- 6 files changed, 485 insertions(+), 84 deletions(-) create mode 100644 frontend/pages/user/mock-login.vue diff --git a/frontend/App.vue b/frontend/App.vue index 870c77a..f0b4487 100644 --- a/frontend/App.vue +++ b/frontend/App.vue @@ -1,8 +1,14 @@ + diff --git a/frontend/manifest.json b/frontend/manifest.json index 18ba43d..7a5afdb 100644 --- a/frontend/manifest.json +++ b/frontend/manifest.json @@ -1,6 +1,6 @@ { "name" : "Shopro", - "appid" : "__UNI__E99FC80", + "appid" : "__UNI__A0E4D3E", "description" : "Shopro是由SheepJS团队开发,使用Uniapp+Vue3技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。", "versionName" : "3.1.0", "versionCode" : 310, diff --git a/frontend/pages.json b/frontend/pages.json index baf7987..e7c558a 100644 --- a/frontend/pages.json +++ b/frontend/pages.json @@ -61,6 +61,18 @@ "navigationBarTitleText": "登录" } }, + { + "path": "pages/user/mock-login", + "style": { + "navigationBarTitleText": "测试登录", + "navigationStyle": "custom" + }, + "meta": { + "auth": false, + "title": "测试登录", + "group": "测试" + } + }, { "path": "pages/index/search", "style": { diff --git a/frontend/pages/index/user.vue b/frontend/pages/index/user.vue index f594d52..eadb5cb 100644 --- a/frontend/pages/index/user.vue +++ b/frontend/pages/index/user.vue @@ -27,87 +27,6 @@ const template = computed(() => sheep.$store('app').template.user); const isLogin = computed(() => sheep.$store('user').isLogin); - // 建行生活自动登录(测试用) - const testCcbLogin = async () => { - // 检查是否已登录 - if (isLogin.value) { - console.log('[User] 用户已登录,跳过建行测试登录'); - return; - } - - // 测试用的固定加密参数 - const testCcbParam = { - ccbParamSJ: "ZWVlRURYQndmYlpJOGpMRWRPRWEwRjVCZk82NjQxam1sL0l0d0NWMm9lUDdURld3MDRXamlNSGcva29COXBoZkVHKytHbHpSeUM3VkNESkUvTXYrOHFGYkhZWXo4d1NmanZuN0kvODF6TEo1OU9UbTZhS29MSUw3NjQzTGRKQWtrUHhyQi92TEVscWZzVWhlbVBpMVhHbHV2Z2RheXczK0VDL0J5N0g5aWNNR1ZPbFpWN0w4RHlNMGcrY09ZdWF2RUwzN2xheUNqUXdNV1dkR0F6RmlKL1V4b0NyMUhQM2R0Ui9ld0Vicll4eFdFeTFvUEthQ3Z5Vy9MajZxNFhQZTlrSjdTQVh1UjFyOWZGYjdMa003LzZpNnVSd2hWSnBCZ1h0WnRwU1VQb3UxSmh1UG00ejdleW9SUVMrOUJ2bW5VcVJBZnM0dy9RWEIwRlhwOGtLZW5rQ3RPK2xjdHlmTzE2cnU5UXJleHhmT2Y1ZXZwNjh3Qy9aTWVCTnoxZng4OXI2YWd5NUFWbmE2bzUwOVJES2tCZElhaG5JZll2eURPa2lyeTBqS0pBdGptSkRIRWFhcjUvaTlTVXkrbVdIbklmdDNsZE4rbWRnMWE0R0tzZmpqNUpDcll2VkFvQ0tBWklIc3FRL21admtrSDBqWEhYZ0ZrMjk2MWJ3eExSNGI=", - cityid: "360100", - CITYID: "360100" - }; - - console.log('[User] 开始建行测试登录...'); - - // 显示加载提示 - uni.showLoading({ - title: '建行登录中...', - mask: true - }); - - try { - // 调用建行登录API - const result = await sheep.$api.third.ccbLogin(testCcbParam); - - uni.hideLoading(); - - if (result.code === 1) { - console.log('[User] 登录接口返回成功,开始更新状态...'); - - // 🔑 关键:使用setToken方法更新登录状态 - // 这会同时: - // 1. 设置isLogin = true - // 2. 保存token到storage - // 3. 自动调用loginAfter()更新用户信息 - sheep.$store('user').setToken(result.data.token); - - // 也保存userInfo到storage(可选,setToken会自动获取) - uni.setStorageSync('userInfo', result.data.user_info); - - console.log('[User] ✅ 建行测试登录成功'); - console.log('[User] 登录状态已更新:', sheep.$store('user').isLogin); - - // 显示欢迎提示 - uni.showToast({ - title: `欢迎 ${result.data.user_info?.nickname || ''}`, - icon: 'success', - duration: 2000 - }); - - // 等待状态更新完成后刷新页面 - setTimeout(() => { - console.log('[User] 刷新页面数据...'); - sheep.$store('user').updateUserData(); - }, 100); - } else { - throw new Error(result.msg || '登录失败'); - } - } catch (error) { - console.error('[User] ❌ 建行测试登录失败:', error); - - uni.hideLoading(); - - uni.showModal({ - title: '登录失败', - content: error.message || error.msg || '请检查网络连接', - showCancel: false - }); - } - }; - - // 页面挂载时自动登录(仅用于测试) - onMounted(() => { - // 延迟500ms执行,确保页面渲染完成 - setTimeout(() => { - testCcbLogin(); - }, 500); - }); - onShow(() => { sheep.$store('user').updateUserData(); }); diff --git a/frontend/pages/user/mock-login.vue b/frontend/pages/user/mock-login.vue new file mode 100644 index 0000000..a232b96 --- /dev/null +++ b/frontend/pages/user/mock-login.vue @@ -0,0 +1,265 @@ + + + + + + diff --git a/frontend/sheep/platform/provider/ccblife/index.js b/frontend/sheep/platform/provider/ccblife/index.js index 25d06dd..dcdb79b 100644 --- a/frontend/sheep/platform/provider/ccblife/index.js +++ b/frontend/sheep/platform/provider/ccblife/index.js @@ -48,8 +48,8 @@ const CcbLifePlatform = { // 如果在建行App内,初始化JSBridge if (this.isInCcbApp) { this.setupBridge(); - // 自动登录 - this.autoLogin(); + // ⚠️ 自动登录已禁用,改用App.vue中的checkCCBLogin统一处理 + // this.autoLogin(); } console.log('[CcbLife] 初始化完成, 是否在建行App内:', this.isInCcbApp); @@ -490,8 +490,14 @@ const CcbLifePlatform = { /** * 处理URL跳转登录 * 建行App通过URL携带加密参数跳转到H5时调用 + * + * ⚠️ 注意:此方法已禁用,改用App.vue中的checkCCBLogin统一处理 + * 原因:App.vue实现了更完善的逻辑(ccbParamSJ比较、用户切换、防重复调用) */ async handleUrlLogin() { + console.log('[CcbLife] handleUrlLogin被调用,但已禁用(改用App.vue统一处理)'); + return; // 🔒 禁用此方法,避免与App.vue重复调用 + const params = this.getUrlParams(); // 如果有ccbParamSJ参数,说明是从建行跳转过来的