feat: 新增Droid cli支持

This commit is contained in:
shaw
2025-10-09 23:05:09 +08:00
parent 4de2ea3d17
commit 2fc84a6aca
13 changed files with 2734 additions and 36 deletions

View File

@@ -11,6 +11,7 @@ export const useAccountsStore = defineStore('accounts', () => {
const openaiAccounts = ref([])
const azureOpenaiAccounts = ref([])
const openaiResponsesAccounts = ref([])
const droidAccounts = ref([])
const loading = ref(false)
const error = ref(null)
const sortBy = ref('')
@@ -151,6 +152,25 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 获取Droid账户列表
const fetchDroidAccounts = async () => {
loading.value = true
error.value = null
try {
const response = await apiClient.get('/admin/droid-accounts')
if (response.success) {
droidAccounts.value = response.data || []
} else {
throw new Error(response.message || '获取Droid账户失败')
}
} catch (err) {
error.value = err.message
throw err
} finally {
loading.value = false
}
}
// 获取所有账户
const fetchAllAccounts = async () => {
loading.value = true
@@ -163,7 +183,8 @@ export const useAccountsStore = defineStore('accounts', () => {
fetchGeminiAccounts(),
fetchOpenAIAccounts(),
fetchAzureOpenAIAccounts(),
fetchOpenAIResponsesAccounts()
fetchOpenAIResponsesAccounts(),
fetchDroidAccounts()
])
} catch (err) {
error.value = err.message
@@ -273,6 +294,46 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 创建Droid账户
const createDroidAccount = async (data) => {
loading.value = true
error.value = null
try {
const response = await apiClient.post('/admin/droid-accounts', data)
if (response.success) {
await fetchDroidAccounts()
return response.data
} else {
throw new Error(response.message || '创建Droid账户失败')
}
} catch (err) {
error.value = err.message
throw err
} finally {
loading.value = false
}
}
// 更新Droid账户
const updateDroidAccount = async (id, data) => {
loading.value = true
error.value = null
try {
const response = await apiClient.put(`/admin/droid-accounts/${id}`, data)
if (response.success) {
await fetchDroidAccounts()
return response.data
} else {
throw new Error(response.message || '更新Droid账户失败')
}
} catch (err) {
error.value = err.message
throw err
} finally {
loading.value = false
}
}
// 创建Azure OpenAI账户
const createAzureOpenAIAccount = async (data) => {
loading.value = true
@@ -694,6 +755,22 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 生成Droid OAuth URL
const generateDroidAuthUrl = async (proxyConfig) => {
error.value = null
try {
const response = await apiClient.post('/admin/droid-accounts/generate-auth-url', proxyConfig)
if (response.success) {
return response.data
} else {
throw new Error(response.message || '生成授权URL失败')
}
} catch (err) {
error.value = err.message
throw err
}
}
// 交换OpenAI OAuth Code
const exchangeOpenAICode = async (data) => {
try {
@@ -709,6 +786,18 @@ export const useAccountsStore = defineStore('accounts', () => {
}
}
// 交换Droid OAuth Code
const exchangeDroidCode = async (data) => {
error.value = null
try {
const response = await apiClient.post('/admin/droid-accounts/exchange-code', data)
return response
} catch (err) {
error.value = err.message
throw err
}
}
// 排序账户
const sortAccounts = (field) => {
if (sortBy.value === field) {
@@ -728,6 +817,7 @@ export const useAccountsStore = defineStore('accounts', () => {
openaiAccounts.value = []
azureOpenaiAccounts.value = []
openaiResponsesAccounts.value = []
droidAccounts.value = []
loading.value = false
error.value = null
sortBy.value = ''
@@ -743,6 +833,7 @@ export const useAccountsStore = defineStore('accounts', () => {
openaiAccounts,
azureOpenaiAccounts,
openaiResponsesAccounts,
droidAccounts,
loading,
error,
sortBy,
@@ -756,12 +847,15 @@ export const useAccountsStore = defineStore('accounts', () => {
fetchOpenAIAccounts,
fetchAzureOpenAIAccounts,
fetchOpenAIResponsesAccounts,
fetchDroidAccounts,
fetchAllAccounts,
createClaudeAccount,
createClaudeConsoleAccount,
createBedrockAccount,
createGeminiAccount,
createOpenAIAccount,
createDroidAccount,
updateDroidAccount,
createAzureOpenAIAccount,
createOpenAIResponsesAccount,
updateClaudeAccount,
@@ -782,6 +876,8 @@ export const useAccountsStore = defineStore('accounts', () => {
exchangeGeminiCode,
generateOpenAIAuthUrl,
exchangeOpenAICode,
generateDroidAuthUrl,
exchangeDroidCode,
sortAccounts,
reset
}