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 @@
+
+
+
+
+
+
+
+
+ 1
+
+
+ 测试用户1
+ 138****0001
+ ID: user_test_001
+
+
+ →
+
+
+
+
+
+
+ 2
+
+
+ 测试用户2
+ 138****0002
+ ID: user_test_002
+
+
+ →
+
+
+
+
+
+ 💡 提示:点击用户卡片后将模拟建行生活跳转
+ URL格式:url?platform=ccblife&channel=mbs&ccbParamSJ=xxx&CITYID=xxx&USERCITYID=xxx
+ App.vue 将自动检测参数并完成登录
+
+
+
+
+
+
+
+
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参数,说明是从建行跳转过来的