nieyuge 1 месяц назад
Родитель
Сommit
1db71612c6
2 измененных файлов с 20 добавлено и 5 удалено
  1. 19 3
      src/views/account/dialog/qrcode.tsx
  2. 1 2
      src/views/account/list/index.tsx

+ 19 - 3
src/views/account/dialog/qrcode.tsx

@@ -83,7 +83,7 @@ const QrCodeModal: React.FC<QrCodeModalProps> = ({
       pollTimerRef.current = null;
     }
     
-    // 设置轮询间隔为3
+    // 设置轮询间隔为2
     pollTimerRef.current = setInterval(async () => {
       try {
         const res = await http.post<LoginStatusData>(qwCheckLogin, { uuid });
@@ -108,14 +108,18 @@ const QrCodeModal: React.FC<QrCodeModalProps> = ({
           } 
           // 需要验证码时
           else if (loginStatus === -1) {
-            // 显示验证码输入弹窗
+            // 显示验证码输入弹窗,并停止轮询
+            if (pollTimerRef.current) {
+              clearInterval(pollTimerRef.current);
+              pollTimerRef.current = null;
+            }
             setVerifyModalVisible(true);
           }
         }
       } catch (error) {
         console.error("轮询登录状态失败:", error);
       }
-    }, 3000);
+    }, 1500);
   };
 
   // 提交验证码
@@ -143,6 +147,12 @@ const QrCodeModal: React.FC<QrCodeModalProps> = ({
         setVerifyModalVisible(false);
         // 重置验证码
         setVerifyCode("");
+        // 延迟2秒后恢复轮询
+        if (qrCodeData) {
+          setTimeout(() => {
+            startPollingLoginStatus(qrCodeData.uuid);
+          }, 1000);
+        }
       } else {
         message.error(res.msg || "验证失败");
       }
@@ -231,6 +241,12 @@ const QrCodeModal: React.FC<QrCodeModalProps> = ({
   const handleVerifyModalClose = () => {
     setVerifyModalVisible(false);
     setVerifyCode("");
+    // 延迟2秒后恢复轮询
+    if (qrCodeData) {
+      setTimeout(() => {
+        startPollingLoginStatus(qrCodeData.uuid);
+      }, 1000);
+    }
   };
 
   return (

+ 1 - 2
src/views/account/list/index.tsx

@@ -83,7 +83,6 @@ const Gzh: React.FC = () => {
         const statusMap: Record<number, string> = {
           0: '离线',
           1: '在线',
-          2: '注销'
         }
         return <span style={{
           color: status === 1 ? '#52c41a' : status === 0 ? '#f5222d' : '#999999'
@@ -95,7 +94,7 @@ const Gzh: React.FC = () => {
       key: 'action',
       render: (_, record) => (
         <>
-          {record.loginStatus === 0 && <a onClick={() => handleLogin(record.vid)}>登录</a>}
+          {record.loginStatus !== 1 && <a onClick={() => handleLogin(record.vid)}>登录</a>}
           {record.loginStatus === 1 && <>
             <a onClick={() => handleLogout(record.uuid)}>登出</a>&emsp;
             <a onClick={() => handleConfigClick(record.uuid)}>配置</a>