Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
shaw
2025-07-30 10:17:25 +08:00
17 changed files with 2174 additions and 38 deletions

View File

@@ -5,6 +5,7 @@ import { apiClient } from '@/config/api'
export const useAccountsStore = defineStore('accounts', () => {
// 状态
const claudeAccounts = ref([])
const claudeConsoleAccounts = ref([])
const geminiAccounts = ref([])
const loading = ref(false)
const error = ref(null)
@@ -32,6 +33,25 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 获取Claude Console账户列表
const fetchClaudeConsoleAccounts = async () => {
loading.value = true
error.value = null
try {
const response = await apiClient.get('/admin/claude-console-accounts')
if (response.success) {
claudeConsoleAccounts.value = response.data || []
} else {
throw new Error(response.message || '获取Claude Console账户失败')
}
} catch (err) {
error.value = err.message
throw err
} finally {
loading.value = false
}
}
// 获取Gemini账户列表
const fetchGeminiAccounts = async () => {
loading.value = true
@@ -58,6 +78,7 @@ export const useAccountsStore = defineStore('accounts', () => {
try {
await Promise.all([
fetchClaudeAccounts(),
fetchClaudeConsoleAccounts(),
fetchGeminiAccounts()
])
} catch (err) {
@@ -88,6 +109,26 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 创建Claude Console账户
const createClaudeConsoleAccount = async (data) => {
loading.value = true
error.value = null
try {
const response = await apiClient.post('/admin/claude-console-accounts', data)
if (response.success) {
await fetchClaudeConsoleAccounts()
return response.data
} else {
throw new Error(response.message || '创建Claude Console账户失败')
}
} catch (err) {
error.value = err.message
throw err
} finally {
loading.value = false
}
}
// 创建Gemini账户
const createGeminiAccount = async (data) => {
loading.value = true
@@ -128,6 +169,26 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 更新Claude Console账户
const updateClaudeConsoleAccount = async (id, data) => {
loading.value = true
error.value = null
try {
const response = await apiClient.put(`/admin/claude-console-accounts/${id}`, data)
if (response.success) {
await fetchClaudeConsoleAccounts()
return response
} else {
throw new Error(response.message || '更新Claude Console账户失败')
}
} catch (err) {
error.value = err.message
throw err
} finally {
loading.value = false
}
}
// 更新Gemini账户
const updateGeminiAccount = async (id, data) => {
loading.value = true
@@ -153,14 +214,21 @@ export const useAccountsStore = defineStore('accounts', () => {
loading.value = true
error.value = null
try {
const endpoint = platform === 'claude'
? `/admin/claude-accounts/${id}/toggle`
: `/admin/gemini-accounts/${id}/toggle`
let endpoint
if (platform === 'claude') {
endpoint = `/admin/claude-accounts/${id}/toggle`
} else if (platform === 'claude-console') {
endpoint = `/admin/claude-console-accounts/${id}/toggle`
} else {
endpoint = `/admin/gemini-accounts/${id}/toggle`
}
const response = await apiClient.put(endpoint)
if (response.success) {
if (platform === 'claude') {
await fetchClaudeAccounts()
} else if (platform === 'claude-console') {
await fetchClaudeConsoleAccounts()
} else {
await fetchGeminiAccounts()
}
@@ -181,14 +249,21 @@ export const useAccountsStore = defineStore('accounts', () => {
loading.value = true
error.value = null
try {
const endpoint = platform === 'claude'
? `/admin/claude-accounts/${id}`
: `/admin/gemini-accounts/${id}`
let endpoint
if (platform === 'claude') {
endpoint = `/admin/claude-accounts/${id}`
} else if (platform === 'claude-console') {
endpoint = `/admin/claude-console-accounts/${id}`
} else {
endpoint = `/admin/gemini-accounts/${id}`
}
const response = await apiClient.delete(endpoint)
if (response.success) {
if (platform === 'claude') {
await fetchClaudeAccounts()
} else if (platform === 'claude-console') {
await fetchClaudeConsoleAccounts()
} else {
await fetchGeminiAccounts()
}
@@ -284,6 +359,7 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 排序账户
const sortAccounts = (field) => {
if (sortBy.value === field) {
@@ -297,6 +373,7 @@ export const useAccountsStore = defineStore('accounts', () => {
// 重置store
const reset = () => {
claudeAccounts.value = []
claudeConsoleAccounts.value = []
geminiAccounts.value = []
loading.value = false
error.value = null
@@ -307,6 +384,7 @@ export const useAccountsStore = defineStore('accounts', () => {
return {
// State
claudeAccounts,
claudeConsoleAccounts,
geminiAccounts,
loading,
error,
@@ -315,11 +393,14 @@ export const useAccountsStore = defineStore('accounts', () => {
// Actions
fetchClaudeAccounts,
fetchClaudeConsoleAccounts,
fetchGeminiAccounts,
fetchAllAccounts,
createClaudeAccount,
createClaudeConsoleAccount,
createGeminiAccount,
updateClaudeAccount,
updateClaudeConsoleAccount,
updateGeminiAccount,
toggleAccount,
deleteAccount,