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

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