feat:rock增加手动刷新Token按钮

This commit is contained in:
2026-11-03 12:37:05 +08:00
parent f69cdc6d8e
commit d6530b47f4
7 changed files with 166 additions and 16 deletions
+12
View File
@@ -794,6 +794,18 @@ export const rockApi = {
request
.post("/platform/rock/login-test", data)
.then((r) => r.data.data as { username: string; role: string; points: number }),
refreshRockToken: () =>
request
.post("/platform/rock/token/refresh")
.then(
(r) =>
r.data.data as {
username: string;
role: string;
points: number;
refreshed_at: string;
},
),
getStats: () =>
request.get("/platform/rock/stats").then((r) => r.data.data as RockStats),
refreshDashboard: () =>
+17
View File
@@ -32,6 +32,7 @@ export default function PlatformRock() {
const [loadingStats, setLoadingStats] = useState(false)
const [testingConn, setTestingConn] = useState(false)
const [testingLogin, setTestingLogin] = useState(false)
const [refreshingToken, setRefreshingToken] = useState(false)
const [savingConfig, setSavingConfig] = useState(false)
const [autoPurchaseEnabled, setAutoPurchaseEnabled] = useState(false)
const [togglingAutoPurchase, setTogglingAutoPurchase] = useState(false)
@@ -205,6 +206,20 @@ export default function PlatformRock() {
}
}
// 强制登录上游并保存新的 Token
const handleRefreshToken = async () => {
setRefreshingToken(true)
try {
const res = await rockApi.refreshRockToken()
message.success(`Token 已刷新:${res.username}(${res.role}),积分 ${res.points}`)
await loadData()
} catch (e) {
message.error('刷新 Token 失败: ' + (e instanceof Error ? e.message : '未知错误'))
} finally {
setRefreshingToken(false)
}
}
// 保存策略配置
const handleSaveConfig = async () => {
try {
@@ -395,6 +410,8 @@ export default function PlatformRock() {
lastTokenError={config?.last_token_error}
testingLogin={testingLogin}
onTestLogin={handleTestLogin}
refreshingToken={refreshingToken}
onRefreshToken={handleRefreshToken}
togglingAutoPurchase={togglingAutoPurchase}
testingConn={testingConn}
savingConfig={savingConfig}
@@ -36,6 +36,8 @@ export interface RockStrategyCardProps {
lastTokenError?: string
testingLogin: boolean
onTestLogin: () => void
refreshingToken: boolean
onRefreshToken: () => void
togglingAutoPurchase: boolean
testingConn: boolean
savingConfig: boolean
@@ -56,6 +58,8 @@ export function RockStrategyCard({
lastTokenError,
testingLogin,
onTestLogin,
refreshingToken,
onRefreshToken,
togglingAutoPurchase,
testingConn,
savingConfig,
@@ -245,6 +249,9 @@ export function RockStrategyCard({
<Button size="small" onClick={onTestLogin} loading={testingLogin}>
测试登录
</Button>
<Button size="small" onClick={onRefreshToken} loading={refreshingToken}>
刷新 Token
</Button>
{lastTokenError ? (
<Text type="danger" style={{ fontSize: 12 }}>
Token 刷新失败:{lastTokenError}