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} 吗? +

+

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

+
+ ) }