用户详情

This commit is contained in:
ryan
2026-06-09 15:30:12 +08:00
parent 92664273ed
commit 73b220de3c
11 changed files with 1005 additions and 20 deletions
+22 -1
View File
@@ -37,8 +37,10 @@ interface AdminUsersContextState {
fetchUsers: (force?: boolean) => Promise<void>
refresh: () => Promise<void>
getUserDetail: (id: string) => Promise<AdminUser>
updateUserStatus: (user: AdminUser) => Promise<void>
createUser: (req: CreateUserRequest) => Promise<AdminUser>
deleteUser: (user: AdminUser) => Promise<void>
}
const CACHE_DURATION = 5 * 60 * 1000 // 5 minutes cache
@@ -189,6 +191,10 @@ export function AdminUsersProvider({ children }: { children: React.ReactNode })
}
}
const getUserDetail = async (id: string) => {
return AdminService.getUser(id)
}
const createUser = async (req: CreateUserRequest) => {
try {
const newUser = await AdminService.createUser(req)
@@ -204,6 +210,19 @@ export function AdminUsersProvider({ children }: { children: React.ReactNode })
}
}
const deleteUser = async (user: AdminUser) => {
try {
await AdminService.deleteUser(user.id)
setUsers(prev => prev.filter(u => u.id !== user.id))
setTotal(prev => Math.max(0, prev - 1))
cacheRef.current = {}
toast.success(`已删除用户 ${ user.username }`)
} catch (err) {
toast.error(err instanceof Error ? err.message : '删除用户失败')
throw err
}
}
const value = {
users,
total,
@@ -221,8 +240,10 @@ export function AdminUsersProvider({ children }: { children: React.ReactNode })
setStatusFilter,
fetchUsers,
refresh,
getUserDetail,
updateUserStatus,
createUser
createUser,
deleteUser
}
return (