diff --git a/backend/main.py b/backend/main.py index fc1a3e73..e5da5118 100644 --- a/backend/main.py +++ b/backend/main.py @@ -265,7 +265,7 @@ class AppServer: def _initialize_devices(self): """ - 初始化设备(在用户登录成功后调用) + """ try: self.logger.info('开始初始化设备...') diff --git a/frontend/src/renderer/src/views/Login.vue b/frontend/src/renderer/src/views/Login.vue index a27ca536..ab290c05 100644 --- a/frontend/src/renderer/src/views/Login.vue +++ b/frontend/src/renderer/src/views/Login.vue @@ -426,7 +426,6 @@ const handleRegisterSubmit = async () => { // 登录处理 const handleLogin = async () => { - isLoading.value = true // 验证用户名 if (!form.value.account) { showError('请输入登录账号!') @@ -439,7 +438,9 @@ const handleLogin = async () => { return } - // 网络访问测试(最多重试3次,每次延迟2秒) + isLoading.value = true + + // 网络访问测试(最多重试3次,短退避:200/400/800ms,总上限约 1.4s) let healthOk = false for (let attempt = 1; attempt <= 3; attempt++) { try { @@ -451,9 +452,11 @@ const handleLogin = async () => { // 后台返回非 healthy 状态 if (attempt === 3) { showError('后台服务异常,请稍后重试!') + isLoading.value = false return } - await new Promise(resolve => setTimeout(resolve, 2000)) + const delay = 200 * Math.pow(2, attempt - 1) + await new Promise(resolve => setTimeout(resolve, delay)) } } catch (error) { // 捕获异常,等待后重试 @@ -462,7 +465,8 @@ const handleLogin = async () => { isLoading.value = false return } - await new Promise(resolve => setTimeout(resolve, 2000)) + const delay = 200 * Math.pow(2, attempt - 1) + await new Promise(resolve => setTimeout(resolve, delay)) } } @@ -1210,4 +1214,4 @@ const copyPassword = async () => { background: transparent; } - \ No newline at end of file +