fix: Codex 刷新限额功能优化

- 修复并发协程中直接操作 SQLAlchemy Session 的问题,改为收集后统一更新
- 抽取硬编码模型名为 CODEX_QUOTA_REFRESH_MODEL 常量
- 前端刷新限额前添加确认对话框,提示会产生 API 调用费用
- 修正 loguru 日志格式为 {} 占位符风格
This commit is contained in:
fawney19
2026-02-05 18:05:46 +08:00
parent 93090e227f
commit a9b24c9161
2 changed files with 46 additions and 12 deletions

View File

@@ -663,6 +663,7 @@ import Button from '@/components/ui/button.vue'
import Badge from '@/components/ui/badge.vue'
import Card from '@/components/ui/card.vue'
import { useToast } from '@/composables/useToast'
import { useConfirm } from '@/composables/useConfirm'
import { useClipboard } from '@/composables/useClipboard'
import { useCountdownTimer, formatCountdown, getOAuthExpiresCountdown } from '@/composables/useCountdownTimer'
import { getProvider, getProviderEndpoints, updateProvider } from '@/api/endpoints'
@@ -715,6 +716,7 @@ const emit = defineEmits<{
}>()
const { error: showError, success: showSuccess } = useToast()
const { confirm } = useConfirm()
const { copyToClipboard } = useClipboard()
const { tick: countdownTick, start: startCountdownTimer, stop: stopCountdownTimer } = useCountdownTimer()
@@ -1066,6 +1068,16 @@ async function handleRefreshOAuth(key: EndpointAPIKey) {
// 刷新 Codex 所有账号限额
async function handleRefreshQuota() {
if (refreshingQuota.value || !props.providerId) return
// 确认对话框
const confirmed = await confirm({
title: '获取限额',
message: '这将使用每个账号发送测试请求以获取最新限额信息,会产生少量 API 调用费用。是否继续?',
confirmText: '继续',
variant: 'info'
})
if (!confirmed) return
refreshingQuota.value = true
try {
const result = await refreshProviderQuota(props.providerId)