登录按钮防重复点击:任务运行期间禁用开始登录和重试按钮
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user