AdminUserDetailPage UI 设计规范
自动生成时间: 2026-02-04
组件路径: workbench/NextUI.Workbench/Pages/Admin/AdminUserDetailPage.razor
1. 组件概述
Admin User Detail Page 是用户详情页面,显示单个用户的完整信息,并提供编辑、角色管理、会话管理、密码重置、禁用/启用、删除等操作。
2. 路由参数
参数
类型
说明
UserId
string
用户 ID (URL 参数)
3. 页面模式
模式
条件
显示内容
Loading
_loading == true
加载进度指示器
User Found
_user != null
完整用户详情
User Not Found
_user == null && !_loading
用户未找到提示
Access Denied
!HasAdminRole
访问被拒绝
4. 页面结构
4.1 Breadcrumb
Admin > Users > [UserName]
┌─────────────────────────────────────────────────────────────┐
│ Profile Information [Active/Disabled] │
├─────────────────────────────────────────────────────────────┤
│ [Avatar] Display Name | User ID │
│ Email | Last Login │
│ Created | Email Verified │
└─────────────────────────────────────────────────────────────┘
4.3 Roles & Permissions Card
┌─────────────────────────────────────────────────────────────┐
│ Roles & Permissions [Edit Roles] │
├─────────────────────────────────────────────────────────────┤
│ Realm Roles: [admin] [user] ... │
│ ───────────────────────────── │
│ Groups: [Engineering] [Admin Team] ... │
└─────────────────────────────────────────────────────────────┘
4.4 Active Sessions Card
┌─────────────────────────────────────────────────────────────┐
│ Active Sessions [Terminate All] │
├─────────────────────────────────────────────────────────────┤
│ [Desktop] Desktop - Chrome [x] │
│ 192.168.1.100 - Started 2h ago │
│ [Mobile] Mobile - Safari [x] │
│ 10.0.0.50 - Started 1d ago │
└─────────────────────────────────────────────────────────────┘
4.5 Actions Card
┌─────────────────────────────────────────────────────────────┐
│ Actions │
├─────────────────────────────────────────────────────────────┤
│ [Edit Profile] [Reset Password] [Disable/Enable] [Delete] │
└─────────────────────────────────────────────────────────────┘
5. 状态变量
变量
类型
默认值
说明
_loading
bool
true
加载状态
_user
UserDetail?
null
用户详情
_sessions
List<SessionInfo>
new()
用户会话列表
_availableRoles
List<RoleSelection>
new()
可用角色列表
_editDialogOpen
bool
false
编辑对话框状态
_editRolesDialogOpen
bool
false
编辑角色对话框状态
_resetPasswordDialogOpen
bool
false
重置密码对话框状态
_disableDialogOpen
bool
false
禁用对话框状态
_deleteDialogOpen
bool
false
删除对话框状态
6. 对话框规范
6.1 Edit Profile Dialog
字段
组件
绑定
Display Name
SxInput
_editDisplayName
Email
SxInput
_editEmail
Avatar URL
SxInput
_editAvatarUrl
按钮: Cancel, Save Changes
6.2 Edit Roles Dialog
元素
组件
说明
角色列表
SxCheckbox
每个可用角色一个 checkbox
按钮: Cancel, Save Roles
6.3 Reset Password Dialog
元素
组件
说明
Warning
SxMessageBar
"发送密码重置邮件"
Confirmation
SxTypography
确认信息
按钮: Cancel, Send Reset Email
6.4 Disable User Dialog
元素
组件
说明
Warning
SxMessageBar
"用户将被登出且无法登录"
Confirmation
SxTypography
确认信息
按钮: Cancel, Disable User
6.5 Delete User Dialog
元素
组件
说明
Error
SxMessageBar
"此操作无法撤销"
Confirmation
SxTypography
确认信息
按钮: Cancel, Delete User
7. 操作按钮
按钮
条件
行为
Edit Profile
Always
打开 Edit Profile 对话框
Edit Roles
Always
打开 Edit Roles 对话框
Reset Password
Always
打开 Reset Password 对话框
Disable User
_user.IsActive == true
打开 Disable 对话框
Enable User
_user.IsActive == false
直接启用用户
Delete User
Always
打开 Delete 对话框
Terminate All
Always
终止所有会话
Back to Users
User Not Found
导航到 /admin/users
8. 数据模型
8.1 UserDetail
private class UserDetail
{
public string UserId { get; set; }
public string DisplayName { get; set; }
public string Email { get; set; }
public string? AvatarUrl { get; set; }
public List<string> Roles { get; set; }
public List<string> Groups { get; set; }
public bool IsActive { get; set; }
public bool EmailVerified { get; set; }
public DateTime? LastLogin { get; set; }
public DateTime CreatedAt { get; set; }
}
8.2 SessionInfo
private class SessionInfo
{
public string DeviceType { get; set; } // Desktop, Mobile, Tablet
public string Browser { get; set; }
public string IpAddress { get; set; }
public DateTime StartTime { get; set; }
}
8.3 RoleSelection
private class RoleSelection
{
public string Name { get; set; }
public bool IsSelected { get; set; }
}
9. 状态转换图
┌─────────────────┐
│ Page Load │
└────────┬────────┘
│
┌────────▼────────┐
│ LoadUser() │
│ _loading=true │
└────────┬────────┘
│
┌──────────────┴──────────────┐
│ Found Not │
▼ Found
┌───────────┐ ┌───────────┐
│ Show User │ │ Show Not │
│ Details │ │ Found │
└─────┬─────┘ └───────────┘
│
┌────────┼────────┬────────┬────────┐
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
[Edit] [Roles] [Reset] [Disable] [Delete]
Dialog Dialog Dialog Dialog Dialog
10. 典型使用场景 (Use Cases)
10.1 UC-1: 查看用户详情
Admin 从用户列表点击用户
导航到 /admin/users/{UserId}
加载用户数据
显示用户信息、角色、会话
10.2 UC-2: 编辑用户资料
Admin 点击 "Edit Profile"
对话框打开,显示当前值
修改 Display Name 或 Email
点击 "Save Changes"
对话框关闭,更新显示
10.3 UC-3: 修改用户角色
Admin 点击 "Edit Roles"
对话框显示可用角色 (checkbox)
选择或取消角色
点击 "Save Roles"
角色徽章更新
10.4 UC-4: 重置密码
Admin 点击 "Reset Password"
对话框显示警告信息
点击 "Send Reset Email"
密码重置邮件发送
10.5 UC-5: 禁用/启用用户
Admin 点击 "Disable User"
确认对话框显示
点击确认
用户状态更新为 Disabled
按钮变为 "Enable User"
10.6 UC-6: 删除用户
Admin 点击 "Delete User"
警告对话框显示
点击确认
用户删除
导航回用户列表
10.7 UC-7: 终止单个会话
Admin 点击会话行的 按钮
会话从列表移除
10.8 UC-8: 终止所有会话
Admin 点击 "Terminate All"
所有会话清空
11. 测试检查点
11.1 必须测试 (单元测试)
11.2 状态不变性测试
11.3 E2E 测试
12. 规范合规检查
12.1 组件使用
12.2 样式
13. 已知问题 / TODO
用户数据来自 DemoUsers,需要连接真实 Admin API
密码重置仅关闭对话框,需要实际 API 调用
会话数据为模拟数据
14. 变更历史