From ecc519e3224edda7175473bb241c8a33c63ae60c Mon Sep 17 00:00:00 2001 From: dark Date: Fri, 13 Feb 2026 21:44:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=A1=AE=E8=AE=A4=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pc/src/pages/UserManagementPage.tsx | 60 +++++++++++++++++-- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/frontend/react-shadcn/pc/src/pages/UserManagementPage.tsx b/frontend/react-shadcn/pc/src/pages/UserManagementPage.tsx index 21cc8ac..12a5186 100644 --- a/frontend/react-shadcn/pc/src/pages/UserManagementPage.tsx +++ b/frontend/react-shadcn/pc/src/pages/UserManagementPage.tsx @@ -33,6 +33,9 @@ export function UserManagementPage() { }, []) const [error, setError] = useState(null) + const [deleteConfirmOpen, setDeleteConfirmOpen] = useState(false) + const [userToDelete, setUserToDelete] = useState(null) + const [isDeleting, setIsDeleting] = useState(false) const fetchUsers = async () => { try { @@ -80,14 +83,24 @@ export function UserManagementPage() { } } - const handleDeleteUser = async (id: number) => { - if (!confirm('确定要删除该用户吗?')) return + const openDeleteConfirm = (user: User) => { + setUserToDelete(user) + setDeleteConfirmOpen(true) + } + + const handleDeleteUser = async () => { + if (!userToDelete) return try { - await apiClient.deleteUser(id) + setIsDeleting(true) + await apiClient.deleteUser(userToDelete.id) + setDeleteConfirmOpen(false) + setUserToDelete(null) await fetchUsers() } catch (error) { console.error('Failed to delete user:', error) alert('删除用户失败') + } finally { + setIsDeleting(false) } } @@ -211,7 +224,7 @@ export function UserManagementPage() { + + + } + > +
+

+ 确定要删除用户 {userToDelete?.username} 吗? +

+

此操作不可恢复,请谨慎操作。

+
+ ) }