zlwu 9 months ago
parent
commit
8514f0d584

+ 13 - 7
backend/app/api/client/auth.py

@@ -20,7 +20,7 @@ from app.services.session_service import SessionService
 from app.services.heartbeat_monitor import HeartbeatMonitor
 from app.services.anti_repeat_service import anti_repeat_service
 from app.utils.timestamp_validator import TimestampValidator
-from app.utils.timezone import beijing_now
+from app.utils.timezone import beijing_now, datetime_to_beijing
 from datetime import datetime, timedelta
 import json
 import base64
@@ -534,7 +534,7 @@ async def recharge(
 
         # 计算新的到期时间
         expire_time_before = user.expire_time
-        if expire_time_before and expire_time_before > beijing_now():
+        if expire_time_before and datetime_to_beijing(expire_time_before) > beijing_now():
             # 如果还有有效期,则累加
             expire_time_after = expire_time_before + timedelta(days=card.days)
         else:
@@ -564,13 +564,19 @@ async def recharge(
         )
         db.add(recharge_record)
 
+        # 先提交主记录以获取ID
+        db.commit()
+
+        # 刷新对象以获取生成的ID
+        db.refresh(recharge_record)
+
         # 创建历史记录
         from app.utils.history import create_user_history, create_card_history, create_recharge_record_history
         create_user_history(db, user, "UPDATE")
         create_card_history(db, card, "UPDATE")
         create_recharge_record_history(db, recharge_record, "INSERT")
 
-        # 一次性提交所有更改
+        # 提交历史记录
         db.commit()
 
         logger.info(f"用户 {req['username']} 卡密充值成功: {req['card_code']}")
@@ -609,7 +615,7 @@ async def heartbeat(
         HeartbeatMonitor.record_heartbeat_success(db, user.id, session.session_id)
 
         # 检查用户是否过期
-        if user.expire_time and user.expire_time < beijing_now():
+        if user.expire_time and datetime_to_beijing(user.expire_time) < beijing_now():
             logger.warning(f"用户 {user.username} 卡密已过期")
             return create_client_response(code=403, msg="卡密已过期", db=db)
 
@@ -831,7 +837,7 @@ async def validate_session(
             return create_client_response(code=401, msg="用户不存在", db=db)
 
         # 检查用户是否过期
-        if user.expire_time and user.expire_time < beijing_now():
+        if user.expire_time and datetime_to_beijing(user.expire_time) < beijing_now():
             logger.warning(f"[会话验证] 用户 {user.username} 卡密已过期")
             return create_client_response(code=403, msg="卡密已过期", db=db)
 
@@ -901,13 +907,13 @@ async def activate_card(
         
         # 计算新的到期时间
         expire_time_before = user.expire_time
-        if expire_time_before and expire_time_before > beijing_now():
+        if expire_time_before and datetime_to_beijing(expire_time_before) > beijing_now():
             # 如果还有有效期,则累加
             expire_time_after = expire_time_before + timedelta(days=card.days)
         else:
             # 如果已过期或没有有效期,则从当前时间开始计算
             expire_time_after = beijing_now() + timedelta(days=card.days)
-        
+
         # 更新用户到期时间
         user.expire_time = expire_time_after
         user.updated_at = beijing_now()

+ 17 - 11
client-tauri/src-tauri/src/commands.rs

@@ -826,7 +826,7 @@ pub async fn secure_user_register(request: RegisterRequest) -> Result<RegisterRe
 
         let message = decrypted_json.get("message")
             .and_then(|m| m.as_str())
-            .unwrap_or("Registration successful")
+            .unwrap_or("注册成功")
             .to_string();
 
         Ok(RegisterResponse {
@@ -951,14 +951,19 @@ pub async fn secure_user_unbind(request: UnbindRequest) -> Result<UnbindResponse
         let encrypted_bytes = general_purpose::STANDARD.decode(encrypted_data)
             .map_err(|e| format!("Failed to decode encrypted data: {}", e))?;
 
-        // 使用AES密钥的后16字节作为IV(与后端encrypt_for_client保持一致)
-        let response_iv = &aes_key[16..32];
+        if encrypted_bytes.len() < 16 {
+            return Err("Encrypted data too short".to_string());
+        }
+
+        // 提取前16字节作为IV,后面的作为加密数据(与后端create_secure_response保持一致)
+        let response_iv = &encrypted_bytes[0..16];
+        let encrypted_payload = &encrypted_bytes[16..];
 
-        // AES解密整个响应数据
+        // AES解密响应数据
         let mut cipher = Ctr64BE::<Aes256>::new_from_slices(&aes_key, response_iv)
             .map_err(|e| format!("AES cipher init failed: {}", e))?;
 
-        let mut decrypted_data = encrypted_bytes.to_vec();
+        let mut decrypted_data = encrypted_payload.to_vec();
         cipher.apply_keystream(&mut decrypted_data);
 
         let decrypted_json: serde_json::Value = serde_json::from_slice(&decrypted_data)
@@ -979,7 +984,7 @@ pub async fn secure_user_unbind(request: UnbindRequest) -> Result<UnbindResponse
         // 提取解绑结果
         let message = decrypted_json.get("message")
             .and_then(|m| m.as_str())
-            .unwrap_or("Unbind successful")
+            .unwrap_or("解绑成功")
             .to_string();
 
         let success = decrypted_json.get("success")
@@ -1113,14 +1118,15 @@ pub async fn secure_user_recharge(request: RechargeRequest) -> Result<RechargeRe
             return Err("Invalid encrypted data length".to_string());
         }
 
-        // 使用AES密钥的后16字节作为IV(与后端encrypt_for_client保持一致)
-        let response_iv = &aes_key[16..32];
+        // 提取前16字节作为IV,后面的作为加密数据(与后端create_secure_response保持一致)
+        let response_iv = &encrypted_bytes[0..16];
+        let encrypted_payload = &encrypted_bytes[16..];
 
-        // AES解密整个响应数据
+        // AES解密响应数据
         let mut cipher = Ctr64BE::<Aes256>::new_from_slices(&aes_key, response_iv)
             .map_err(|e| format!("AES cipher init failed: {}", e))?;
 
-        let mut decrypted_data = encrypted_bytes.to_vec();
+        let mut decrypted_data = encrypted_payload.to_vec();
         cipher.apply_keystream(&mut decrypted_data);
 
         let decrypted_json: serde_json::Value = serde_json::from_slice(&decrypted_data)
@@ -1141,7 +1147,7 @@ pub async fn secure_user_recharge(request: RechargeRequest) -> Result<RechargeRe
         // 提取充值结果
         let message = decrypted_json.get("message")
             .and_then(|m| m.as_str())
-            .unwrap_or("Recharge successful")
+            .unwrap_or("充值成功")
             .to_string();
 
         let success = decrypted_json.get("success")

BIN
client-tauri/src-tauri/target/debug/build/objc_exception-d30fb85a046e76b6/out/libexception.a


File diff suppressed because it is too large
+ 3 - 3
client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/output


+ 16 - 16
client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/stderr

@@ -3,23 +3,23 @@ No value given for CMAKECONFIGDIR
 No value given for PKGCONFIGDIR
 No value given for libdir
 DEBUG: PREFIX = . => PREFIX = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src
-DEBUG: libdir = . => DEBUG: all keys: APPLINKDIR, BINDIR, CMAKECONFIGDIR, ENGINESDIR, INCLUDEDIR, LDLIBS, LIBDIR, MODULESDIR, PKGCONFIGDIR, PREFIX, VERSION, libdir
-DEBUG: PREFIX = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install => libdir = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src
-DEBUG: BINDIR = apps => PREFIX = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install
-DEBUG: libdir = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib => libdir = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib
-BINDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/apps, BINDIR_REL_PREFIX = apps
-DEBUG: BINDIR = bin => DEBUG: LIBDIR = BINDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/bin, BINDIR_REL_PREFIX = bin
-DEBUG: LIBDIR =  => lib => LIBDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src, LIBDIR_REL_PREFIX = 
-DEBUG: INCLUDEDIR = [ include, ./include ] => LIBDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib, LIBDIR_REL_PREFIX = lib
-INCLUDEDIR = [ /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/include, /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/include ], INCLUDEDIR_REL_PREFIX = [ include, ./include ]
-DEBUG: APPLINKDIR = DEBUG: INCLUDEDIR = include => ms => INCLUDEDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/include, INCLUDEDIR_REL_PREFIX = include
-DEBUG: APPLINKDIR = include/openssl => APPLINKDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/ms, APPLINKDIR_REL_PREFIX = msAPPLINKDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/include/openssl, APPLINKDIR_REL_PREFIX = include/openssl
-
-DEBUG: ENGINESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/engines-3 => DEBUG: ENGINESDIR = engines => ENGINESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/engines, ENGINESDIR_REL_LIBDIR = engines
+DEBUG: libdir = . => libdir = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src
+DEBUG: BINDIR = apps => BINDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/apps, BINDIR_REL_PREFIX = apps
+DEBUG: LIBDIR =  => LIBDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src, LIBDIR_REL_PREFIX = 
+DEBUG: INCLUDEDIR = [ include, ./include ] => INCLUDEDIR = [ /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/include, /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/include ], INCLUDEDIR_REL_PREFIX = [ include, ./include ]
+DEBUG: APPLINKDIR = ms => APPLINKDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/ms, APPLINKDIR_REL_PREFIX = ms
+DEBUG: ENGINESDIR = engines => ENGINESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/engines, ENGINESDIR_REL_LIBDIR = engines
 DEBUG: MODULESDIR = providers => MODULESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src/providers, MODULESDIR_REL_LIBDIR = providers
 DEBUG: PKGCONFIGDIR = . => PKGCONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src, PKGCONFIGDIR_REL_LIBDIR = .
-DEBUG: CMAKECONFIGDIR = . => ENGINESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/engines-3, ENGINESDIR_REL_LIBDIR = engines-3
-DEBUG: MODULESDIR = CMAKECONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src, CMAKECONFIGDIR_REL_LIBDIR = .
-/Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/ossl-modules => MODULESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/ossl-modules, MODULESDIR_REL_LIBDIR = ossl-modules
+DEBUG: CMAKECONFIGDIR = . => CMAKECONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/build/src, CMAKECONFIGDIR_REL_LIBDIR = .
+DEBUG: all keys: APPLINKDIR, BINDIR, CMAKECONFIGDIR, ENGINESDIR, INCLUDEDIR, LDLIBS, LIBDIR, MODULESDIR, PKGCONFIGDIR, PREFIX, VERSION, libdir
+DEBUG: PREFIX = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install => PREFIX = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install
+DEBUG: libdir = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib => libdir = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib
+DEBUG: BINDIR = bin => BINDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/bin, BINDIR_REL_PREFIX = bin
+DEBUG: LIBDIR = lib => LIBDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib, LIBDIR_REL_PREFIX = lib
+DEBUG: INCLUDEDIR = include => INCLUDEDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/include, INCLUDEDIR_REL_PREFIX = include
+DEBUG: APPLINKDIR = include/openssl => APPLINKDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/include/openssl, APPLINKDIR_REL_PREFIX = include/openssl
+DEBUG: ENGINESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/engines-3 => ENGINESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/engines-3, ENGINESDIR_REL_LIBDIR = engines-3
+DEBUG: MODULESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/ossl-modules => MODULESDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/ossl-modules, MODULESDIR_REL_LIBDIR = ossl-modules
 DEBUG: PKGCONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/pkgconfig => PKGCONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/pkgconfig, PKGCONFIGDIR_REL_LIBDIR = pkgconfig
 DEBUG: CMAKECONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/cmake/OpenSSL => CMAKECONFIGDIR = /Users/wuzilong/work/00code/Buff/client-tauri/src-tauri/target/debug/build/openssl-sys-74f77a4301a03bdd/out/openssl-build/install/lib/cmake/OpenSSL, CMAKECONFIGDIR_REL_LIBDIR = cmake/OpenSSL

BIN
client-tauri/src-tauri/target/debug/build/tao-baeca0b73a07582e/out/libcarbon_hotkey_binding.a.a


BIN
client-tauri/src-tauri/target/debug/deps/libopenssl_sys-f3402d783aa245bb.rlib


BIN
client-tauri/src-tauri/target/debug/游铛铛


+ 14 - 14
client-tauri/src/components/LoginPage.vue

@@ -397,7 +397,7 @@ const loadAnnouncements = async () => {
       if (!isPublicKeyInitializing.value && !publicKeyInitialized.value) {
         isPublicKeyInitializing.value = true
         // 显示系统初始化中的提示
-        showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0) // 不自动隐藏
+        showLoginStatus('系统初始化中...', 'info', 0) // 不自动隐藏
       }
 
       announcements.value = []
@@ -444,7 +444,7 @@ const loadAnnouncements = async () => {
       // 公钥不存在,显示初始化提示
       if (!isPublicKeyInitializing.value && !publicKeyInitialized.value) {
         isPublicKeyInitializing.value = true
-        showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+        showLoginStatus('系统初始化中...', 'info', 0)
       }
     } else {
       // 公钥存在但获取失败,显示错误
@@ -491,8 +491,8 @@ const checkBackendStatus = async () => {
       backendAvailable.value = true
       backendCheckFailures.value = 0
 
-      // 显示登录卡内的状态横幅(服务正常),并在1分钟后自动隐藏
-      showLoginStatus('服务正常', 'success', 60_000)
+      // 服务正常时不显示提示,清除任何现有的错误提示
+      showLoginStatus('', 'info', 0)
 
       if (announcementsLoadFailed.value) {
         console.log('检测到公告加载失败记录,尝试重新加载公告...')
@@ -534,9 +534,9 @@ const showLoginStatus = (text: string, type: 'info' | 'success' | 'error' = 'inf
 
   loginStatusBanner.text = text
   loginStatusBanner.type = type
-  loginStatusBanner.show = true
+  loginStatusBanner.show = text.trim() !== '' // 只有当text不为空时才显示
 
-  if (durationMs > 0) {
+  if (durationMs > 0 && loginStatusBanner.show) {
     loginStatusBanner.timer = window.setTimeout(() => {
       loginStatusBanner.show = false
       loginStatusBanner.timer = null
@@ -639,7 +639,7 @@ const handleLogin = async () => {
   const hasStoredKey = await PublicKeyManager.hasStoredKey()
   if (!hasStoredKey) {
     console.log('Rust后端公钥不存在,无法进行安全登录')
-    showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+    showLoginStatus('系统初始化中...', 'info', 0)
     return
   }
 
@@ -669,7 +669,7 @@ const handleLogin = async () => {
 
     // 根据错误类型显示不同提示
     if (!(await PublicKeyManager.hasStoredKey())) {
-      showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+      showLoginStatus('系统初始化中...', 'info', 0)
     } else {
       // 映射错误信息为用户友好提示
       const errorMsg = (() => {
@@ -700,7 +700,7 @@ const handleRegister = async () => {
   const hasStoredKey = await PublicKeyManager.hasStoredKey()
   if (!hasStoredKey) {
     console.log('Rust后端公钥不存在,无法进行安全注册')
-    showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+    showLoginStatus('系统初始化中...', 'info', 0)
     return
   }
 
@@ -729,7 +729,7 @@ const handleRegister = async () => {
 
     // 根据错误类型显示不同提示
     if (!(await PublicKeyManager.hasStoredKey())) {
-      showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+      showLoginStatus('系统初始化中...', 'info', 0)
     } else {
       const errText = error && (error.toString ? error.toString() : JSON.stringify(error))
       showMessage(errText || '注册失败,请稍后重试', 'error')
@@ -785,7 +785,7 @@ const handleUnbind = async () => {
   const hasStoredKey = await PublicKeyManager.hasStoredKey()
   if (!hasStoredKey) {
     console.log('Rust后端公钥不存在,无法进行安全解绑')
-    showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+    showLoginStatus('系统初始化中...', 'info', 0)
     return
   }
 
@@ -812,7 +812,7 @@ const handleUnbind = async () => {
 
     // 根据错误类型显示不同提示
     if (!(await PublicKeyManager.hasStoredKey())) {
-      showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+      showLoginStatus('系统初始化中...', 'info', 0)
     } else {
       const errText = error && (error.toString ? error.toString() : JSON.stringify(error))
       showMessage(errText || '解绑失败,请稍后重试', 'error')
@@ -832,7 +832,7 @@ const handleRecharge = async () => {
   const hasStoredKey = await PublicKeyManager.hasStoredKey()
   if (!hasStoredKey) {
     console.log('Rust后端公钥不存在,无法进行安全充值')
-    showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+    showLoginStatus('系统初始化中...', 'info', 0)
     return
   }
 
@@ -860,7 +860,7 @@ const handleRecharge = async () => {
 
     // 根据错误类型显示不同提示
     if (!(await PublicKeyManager.hasStoredKey())) {
-      showLoginStatus('系统初始化中,请稍等几分钟...', 'info', 0)
+      showLoginStatus('系统初始化中...', 'info', 0)
     } else {
       const errText = error && (error.toString ? error.toString() : JSON.stringify(error))
       showMessage(errText || '充值失败,请稍后重试', 'error')

Some files were not shown because too many files changed in this diff