登录按钮防重复点击:任务运行期间禁用开始登录和重试按钮

This commit is contained in:
yml2213
2026-06-24 16:38:28 +08:00
parent a7ebfc9678
commit f61794592f
+7 -3
View File
@@ -36,6 +36,7 @@ export default function LoginTasksPage() {
const [selectedIds, setSelectedIds] = useState<number[]>([]); const [selectedIds, setSelectedIds] = useState<number[]>([]);
const [tasks, setTasks] = useState<LoginTaskItem[]>([]); const [tasks, setTasks] = useState<LoginTaskItem[]>([]);
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
const [starting, setStarting] = useState(false);
const [batchId, setBatchId] = useState<string | null>(null); const [batchId, setBatchId] = useState<string | null>(null);
const [selectedTags, setSelectedTags] = useState<string[]>([]); const [selectedTags, setSelectedTags] = useState<string[]>([]);
const [concurrency, setConcurrency] = useState(() => { const [concurrency, setConcurrency] = useState(() => {
@@ -136,6 +137,7 @@ export default function LoginTasksPage() {
message.warning('请选择账号'); message.warning('请选择账号');
return; return;
} }
setStarting(true);
setLoading(true); setLoading(true);
try { try {
const result = await loginApi.createBatch({ const result = await loginApi.createBatch({
@@ -146,11 +148,12 @@ export default function LoginTasksPage() {
message.success(`已创建登录任务,共 ${result.count} 个账号`); message.success(`已创建登录任务,共 ${result.count} 个账号`);
connectLogs(`/api/login/ws/login/${result.batch_id}`, { connectLogs(`/api/login/ws/login/${result.batch_id}`, {
onClose: () => setBatchId(null), onClose: () => { setBatchId(null); setStarting(false); },
onResult: () => setBatchId(null), onResult: () => { setBatchId(null); setStarting(false); },
}); });
} catch (e: unknown) { } catch (e: unknown) {
message.error(getErrorMessage(e)); message.error(getErrorMessage(e));
setStarting(false);
} finally { } finally {
setLoading(false); setLoading(false);
} }
@@ -343,7 +346,7 @@ export default function LoginTasksPage() {
icon={<PlayCircleOutlined />} icon={<PlayCircleOutlined />}
loading={loading} loading={loading}
onClick={handleBatchLogin} onClick={handleBatchLogin}
disabled={selectedIds.length === 0 || wsConnected} disabled={selectedIds.length === 0 || starting}
size="small" size="small"
> >
@@ -380,6 +383,7 @@ export default function LoginTasksPage() {
icon={<ReloadOutlined />} icon={<ReloadOutlined />}
onClick={handleRetryFailed} onClick={handleRetryFailed}
loading={loading} loading={loading}
disabled={starting}
> >
({failedCount}) ({failedCount})
</Button> </Button>