feat: add batch RT import page for managing S2A account creation.
This commit is contained in:
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user