From 2a871ec8527118cc4c3bacbfeecb4df02eaf9ca0 Mon Sep 17 00:00:00 2001 From: Litong <1183454000@qq.com> Date: Thu, 30 Jul 2026 18:07:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E6=94=AF=E6=8C=81=E6=8C=89?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E7=BB=93=E6=9E=9C=E5=85=A8=E9=80=89=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/admin/accounts.ts | 13 + .../admin/account/AccountBulkActionsBar.vue | 56 +++-- .../__tests__/AccountBulkActionsBar.spec.ts | 50 ++++ .../src/i18n/locales/en/admin/accounts.ts | 6 + .../src/i18n/locales/zh/admin/accounts.ts | 6 + .../utils/__tests__/accountSelection.spec.ts | 68 ++++++ frontend/src/utils/accountSelection.ts | 45 ++++ frontend/src/views/admin/AccountsView.vue | 79 +++++- .../AccountsView.selectAllResults.spec.ts | 228 ++++++++++++++++++ 9 files changed, 533 insertions(+), 18 deletions(-) create mode 100644 frontend/src/components/admin/account/__tests__/AccountBulkActionsBar.spec.ts create mode 100644 frontend/src/utils/__tests__/accountSelection.spec.ts create mode 100644 frontend/src/utils/accountSelection.ts create mode 100644 frontend/src/views/admin/__tests__/AccountsView.selectAllResults.spec.ts diff --git a/frontend/src/api/admin/accounts.ts b/frontend/src/api/admin/accounts.ts index 40b80c1861..ea9b59b20c 100644 --- a/frontend/src/api/admin/accounts.ts +++ b/frontend/src/api/admin/accounts.ts @@ -715,6 +715,8 @@ export interface BatchOperationResult { total: number success: number failed: number + success_ids?: number[] + failed_ids?: number[] errors?: Array<{ account_id: number; error: string }> warnings?: Array<{ account_id: number; warning: string }> } @@ -729,6 +731,16 @@ export async function revertProxyFallback(id: number): Promise<{ message: string return data } +/** + * Delete multiple accounts with bounded server-side concurrency. + */ +export async function batchDelete(accountIds: number[]): Promise { + const { data } = await apiClient.post('/admin/accounts/batch-delete', { + account_ids: accountIds + }) + return data +} + /** * Batch clear account errors * @param accountIds - Array of account IDs @@ -968,6 +980,7 @@ export const accountsAPI = { importCodexSession, createOpenAICodexPAT, getAntigravityDefaultModelMapping, + batchDelete, batchClearError, batchRefresh, setPrivacy, diff --git a/frontend/src/components/admin/account/AccountBulkActionsBar.vue b/frontend/src/components/admin/account/AccountBulkActionsBar.vue index f3a062d0d6..64844e0955 100644 --- a/frontend/src/components/admin/account/AccountBulkActionsBar.vue +++ b/frontend/src/components/admin/account/AccountBulkActionsBar.vue @@ -1,26 +1,45 @@