feat: add batch RT import page for managing S2A account creation.

This commit is contained in:
2026-02-08 19:11:24 +08:00
parent 9510267f45
commit 959dbf6c2b

View File

@@ -13,7 +13,7 @@ import {
FileText,
AlertTriangle,
} from 'lucide-react'
import { Card, CardHeader, CardTitle, CardContent, Button, Input } from '../components/common'
import { Card, CardHeader, CardTitle, CardContent, Button } from '../components/common'
import { useConfig } from '../hooks/useConfig'
interface RTImportResult {
@@ -41,9 +41,6 @@ export default function BatchRTImport() {
const [tokens, setTokens] = useState<string[]>([])
const [prefix, setPrefix] = useState<'team' | 'free'>('team')
const [concurrency, setConcurrency] = useState(3)
const [priority, setPriority] = useState(10)
const [rateMultiplier, setRateMultiplier] = useState(1.0)
const [status, setStatus] = useState<RTImportStatus | null>(null)
const [polling, setPolling] = useState(false)
const [loading, setLoading] = useState(false)
@@ -153,10 +150,6 @@ export default function BatchRTImport() {
body: JSON.stringify({
tokens,
prefix,
concurrency,
priority,
rate_multiplier: rateMultiplier,
group_ids: [],
}),
})
@@ -172,7 +165,7 @@ export default function BatchRTImport() {
setFileError('启动失败')
}
setLoading(false)
}, [tokens, prefix, concurrency, priority, rateMultiplier, fetchStatus])
}, [tokens, prefix, fetchStatus])
// 停止导入
const handleStop = useCallback(async () => {
@@ -373,37 +366,7 @@ export default function BatchRTImport() {
</div>
</div>
{/* Parameters */}
<div className="grid grid-cols-3 gap-2">
<Input
label="并发数"
type="number"
min={1}
max={10}
value={concurrency}
onChange={(e) => setConcurrency(Number(e.target.value))}
disabled={isRunning}
/>
<Input
label="优先级"
type="number"
min={1}
max={100}
value={priority}
onChange={(e) => setPriority(Number(e.target.value))}
disabled={isRunning}
/>
<Input
label="计费倍率"
type="number"
min={0.1}
max={10}
step={0.1}
value={rateMultiplier}
onChange={(e) => setRateMultiplier(Number(e.target.value))}
disabled={isRunning}
/>
</div>
{/* Action Buttons */}
<div className="flex gap-2 pt-2">