fix: 修复专属账号下拉框,仅显示dedicated类型账号

- 修改CreateApiKeyModal和EditApiKeyModal的过滤逻辑
- 专属账号下拉框只显示accountType='dedicated'的账号
- 移除accountType='group'的账号,这些账号通过分组调度
- 更新标签文字为'专属账号'以更准确描述
This commit is contained in:
shaw
2025-08-03 22:25:06 +08:00
parent 9c9afe1528
commit a5c7eeaf84
8 changed files with 497 additions and 35 deletions

View File

@@ -985,7 +985,7 @@ const expandedApiKeys = ref({})
const apiKeyModelStats = ref({})
const apiKeyDateFilters = ref({})
const defaultTime = ref([new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)])
const accounts = ref({ claude: [], gemini: [] })
const accounts = ref({ claude: [], gemini: [], claudeGroups: [], geminiGroups: [] })
const editingExpiryKey = ref(null)
const expiryEditModalRef = ref(null)
@@ -1102,10 +1102,11 @@ const paginatedApiKeys = computed(() => {
// 加载账户列表
const loadAccounts = async () => {
try {
const [claudeData, claudeConsoleData, geminiData] = await Promise.all([
const [claudeData, claudeConsoleData, geminiData, groupsData] = await Promise.all([
apiClient.get('/admin/claude-accounts'),
apiClient.get('/admin/claude-console-accounts'),
apiClient.get('/admin/gemini-accounts')
apiClient.get('/admin/gemini-accounts'),
apiClient.get('/admin/account-groups')
])
// 合并Claude OAuth账户和Claude Console账户
@@ -1122,23 +1123,27 @@ const loadAccounts = async () => {
}
if (claudeConsoleData.success) {
claudeConsoleData.data?.forEach(account => {
claudeAccounts.push({
...account,
platform: 'claude-console',
isDedicated: account.accountType === 'dedicated'
})
})
// 将 Claude Console 账号合并到 claude 数组中
const consoleAccounts = (claudeConsoleData.data || []).map(acc => ({
...acc,
platform: 'claude-console'
}))
accounts.value.claude = [...accounts.value.claude, ...consoleAccounts]
}
accounts.value.claude = claudeAccounts
if (geminiData.success) {
accounts.value.gemini = (geminiData.data || []).map(account => ({
...account,
isDedicated: account.accountType === 'dedicated'
}))
}
if (groupsData.success) {
// 处理分组数据
const allGroups = groupsData.data || []
accounts.value.claudeGroups = allGroups.filter(g => g.platform === 'claude')
accounts.value.geminiGroups = allGroups.filter(g => g.platform === 'gemini')
}
} catch (error) {
console.error('加载账户列表失败:', error)
}