12 KiB
12 KiB
平台管理后台 UI 设计文档
模块:平台管理后台(Platform Admin Console)
输出文件:UI_DESIGN/平台管理后台/平台管理后台_UI.md
设计基线:UI_SYSTEM/UI_SYSTEM.md、UI_SYSTEM/组件规范设计.md
需求依据:PRD/平台管理后台/平台管理后台PRD.md
数据模型依据:DATA_MODEL/DATA_MODEL_PUBLIC.md
定位声明:本界面面向平台管理员/运营/审计员,非终端经纪人界面
1. 设计目标与范围
1.1 目标
围绕平台侧管理链路,提供一套高密度、强审计、低误操作风险的后台 UI,覆盖:
- 租户全生命周期管理(开通/挂起/恢复/删除/License)
- 平台版本治理(灰度升级、回滚、版本总览)
- 数据备份恢复与导出
- 客户端发布治理与版本分布监控
- 平台监控与告警
- 审计日志与管理员安全设置(MFA/IP 白名单/会话)
1.2 非目标(UI 层)
- 不设计租户内业务页面(房源、客源等终端业务流)
- 不设计移动端适配(桌面优先,
>=1280px) - 不设计主题切换入口(保持后台浅色高对比工作流)
2. 管理员后台设计原则(Admin-first)
- 可控优先:所有高危操作(删除、恢复、回滚、强制更新)采用统一二次确认 + MFA。
- 信息密度优先:列表和状态总览优先,卡片用于关键 KPI 快速判断。
- 风险分级可视化:高危动作使用
danger语义色,关键状态统一 Badge 体系。 - 可追溯:写操作入口旁可快速进入审计记录,避免“做了但查不到”。
- 可扩展 Dashboard:仪表盘采用模块化组件插槽,便于后续新增运营看板。
3. 全局信息架构(IA)
3.1 页面路由与导航分组
一级导航(Sidebar)
- 概览看板
- 租户管理
- 系统版本
- 备份与恢复
- 客户端发布
- 监控与告警
- 审计日志
- 管理员设置
Topbar 仅承载品牌、全局告警与管理员信息,不承担页面切换。
页面清单(与 PRD 对齐)
/admin/login登录页/admin仪表盘/admin/tenants租户列表/admin/tenants/new新建租户/admin/tenants/{id}租户详情-基本信息/admin/tenants/{id}/users租户详情-用户管理/admin/tenants/{id}/plan租户详情-套餐信息/admin/tenants/{id}/monitoring租户详情-监控/admin/tenants/{id}/backups租户详情-备份记录/admin/tenants/{id}/history租户详情-操作历史/admin/system/versions系统版本管理(含版本总览)/admin/system/backups备份管理/admin/monitoring监控与告警/admin/client-releases客户端版本管理/admin/audit-logs审计日志/admin/settings/admins管理员设置
3.2 页面壳层规范(复用 UI_SYSTEM)
- Topbar:
h-14,bg-primary-800,固定顶部 - Sidebar:展开
w-60,折叠w-16 - Main:展开态
ml-60,折叠态ml-16 - 主内容区:
bg-neutral-50,px-6 py-4 - 列表工具栏:
sticky top-14 z-30
仅替换导航文案与菜单结构,壳层尺寸、栅格、颜色 token 不做新发明。
4. 关键页面 UI 设计
4.1 登录页(平台管理员)
页面结构
- 左侧品牌区(平台管理后台标识)
- 右侧登录卡片(账号 + 密码)
- 登录成功后若未配置 MFA,强制进入 MFA 设置向导
交互要点
- 登录失败提示明确(账号/密码错误、IP 不在白名单)
- 首次登录强制绑定 TOTP
- 会话超时 30 分钟后自动跳回登录页
4.2 仪表盘(可扩展)
v1 固定模块
- 全局概览 Stat Card
- 总租户数
- 活跃租户数
- 本月新增
- 系统健康面板(服务状态)
- Django / PostgreSQL / Redis / Celery / R2
- 近期告警列表(24h)
- 资源概览趋势(存储/API 调用)
- 客户端覆盖(活跃安装数、最新版本占比)
- 最近高危操作(10条)
Dashboard 扩展位(预留)
widget-slot-a(左侧 2/3 宽)widget-slot-b(右侧 1/3 宽)widget-slot-footer(全宽)
新增 dashboard 时仅允许以「卡片组件 + 图表组件 + 列表组件」组合,不新增壳层。
4.3 租户列表
筛选区
- 关键词:公司名称 / Tenant Code / 联系邮箱
- 状态:Active / Suspended / Pending Delete / Failed
- 套餐:Basic / Professional / Enterprise
- 到期筛选:即将到期(15天内)
- 用户数筛选:用户数已满(
current >= license_user_limit)
表格列
- 公司名称
- Tenant Code
- 套餐
- 状态
- License 到期日
- 活跃用户数 / License 上限
- 客户端最新版本占比
- 操作(详情 / 挂起 / 备份 / 导出)
批量与行操作规则
- 挂起:需要原因(欠费/违规/主动申请/其他)
- 恢复:可直接恢复或按策略恢复
- 删除:软删除默认;硬删除仅 Platform Admin 且需 MFA
4.4 租户详情(单页分区,无二级 Tab)
租户详情在同一详情页内按信息分区纵向展示:基本信息 / 用户管理 / 套餐信息 / 监控 / 备份记录 / 操作历史。 页面切换统一通过 Sidebar 完成,不在详情抽屉中再设置二级 Tab。
A. 基本信息
- 公司与联系人信息
- License 到期日期
- License 授权用户上限
- 当前用户数(含 Tenant Admin + Agent)
- 租户访问链接(
https://app.fonrey.com/?tenant={TenantCode}) - 入驻信息 PDF 下载
B. 用户管理
- Tenant Admin 列表
- 用户列表
- 新增/替换/撤销 Tenant Admin
- 重置密码(链接 / 临时密码)
C. 套餐信息
- 当前套餐
- 升级路径与差异对比
- 生效方式(立即 / 下一账期)
D. 监控
- CPU/内存、存储、API 调用、慢查询、异常请求
E. 备份记录
- 备份时间、触发方式、大小、状态
- 手动备份
- 恢复入口(仅 Platform Admin,MFA)
F. 操作历史
- 该租户相关操作审计流
4.5 系统版本管理(含版本总览)
Part 1 平台基础数据版本
- 版本号
- 最后升级时间
- 升级描述
- 执行人
Part 2 租户数据升级版本
- 租户名称
- 当前数据版本
- 上次升级时间
- 升级状态(最新/待升级/升级中/升级失败)
- 支持筛选:待升级、升级失败
升级操作区
- 升级包管理
- 升级策略(全量/灰度)
- 灰度租户名单
- 实时进度(批次 + 租户维度)
- 一键回滚(MFA)
4.6 备份管理(全局)
配置区
- 频率:每小时 / 每日 / 每周
- 执行时间窗口
- 保留数量
- 存储目标(local/s3/r2/gcs)
列表区
- 备份任务状态(pending/in_progress/success/failed)
- 支持重试失败任务
- 支持按租户下钻
4.7 客户端版本管理
版本列表
- 版本号(SemVer)
- 版本类型(普通/强制)
- 状态(草稿/已发布/已下线)
- 发布时间
- 下载量
- 操作(发布/下线/编辑/回滚)
新增/编辑版本表单
- 版本号
- 最低兼容版本
- 安装包(EXE)
- 便携版(ZIP,可选)
- SHA256(自动生成)
- 更新日志(Markdown)
- 内部发布说明
分布统计区(Dashboard 风格)
- 版本分布(饼图/条形)
- 升级进度趋势
- 租户版本分布明细
- 全平台租户活跃榜(tenant_code、活跃安装、历史装机)
强制更新
- 支持按版本范围打标
- 强制更新推送需 MFA
4.8 监控与告警
监控维度
- 全局与租户维度切换
- 资源、错误率、SLA、慢查询
告警规则
- 指标 + 阈值 + 通知渠道(邮件/Webhook)
- 告警历史可检索
4.9 审计日志
筛选项
- 操作人
- 时间范围
- 操作对象
- 操作类型(创建/修改/删除/高危)
- 结果(成功/失败)
列表字段
- 操作人
- 操作时间
- 对象类型/对象ID
- 内容摘要
- 结果
- 来源 IP
导出
- 按当前筛选导出 CSV
4.10 管理员设置
功能区
- 管理员账号管理(创建/编辑/停用)
- 角色分配(super_admin / ops_operator / read_only_auditor)
- MFA 设备管理
- IP 白名单管理(CIDR)
- 活跃会话与强制登出
5. 高危操作统一交互模式(全局组件契约)
5.1 两段式确认
- 首次确认弹窗(动作影响说明)
- MFA 验证弹窗(TOTP 输入)
5.2 高危动作清单
- 硬删除租户
- 数据恢复
- 系统回滚
- 客户端版本下线
- 强制更新推送
5.3 文案模板
- 标题:
确认执行高危操作? - 副文案:
该操作可能影响在线租户与数据可用性,请完成 MFA 验证后继续。 - 按钮:
取消(Secondary) /继续并验证(Danger)
6. 组件复用清单(来自 UI_SYSTEM/组件规范)
- Data Table:租户列表、版本列表、审计日志
- Pagination:统一 20/50/100 条
- Toolbar:批量操作与快捷入口
- Section Navigation(详情分区):租户详情采用单页分区结构(无二级 Tab),版本管理保持分区信息架构
- Modal Dialog:确认与新建操作
- Drawer:复杂编辑(规则、详情)
- Date Range Picker:日志与统计筛选
- Stat Card:仪表盘 KPI
禁止引入不在 UI_SYSTEM 定义的新视觉范式。
7. 数据模型映射(DATA_MODEL_PUBLIC)
| 页面能力 | 主要表 |
|---|---|
| 租户列表/详情/状态变更 | public.tenants, public.tenant_status_logs |
| 管理员登录/MFA/会话/IP 白名单 | public.platform_admins, public.admin_mfa_devices, public.admin_sessions, public.ip_whitelist |
| 审计日志 | public.platform_audit_logs |
| 备份与导出 | public.backup_schedules, public.backup_records, public.export_tasks |
| 系统版本与升级事件 | public.system_versions, public.upgrade_events |
| 客户端发布 | public.client_releases, public.client_heartbeats |
| Feature Flag(后续扩展) | public.feature_flag_definitions, public.feature_flag_change_log, public.tenants.feature_flags |
8. 角色权限与页面可见性矩阵
| 页面/操作 | Platform Admin | 运营人员 | 只读审计员 |
|---|---|---|---|
| 仪表盘查看 | ✅ | ✅ | ✅ |
| 租户创建/挂起/恢复 | ✅ | ✅ | ❌ |
| 硬删除租户 | ✅ | ❌ | ❌ |
| 调整 License 到期/用户上限 | ✅ | ✅ | ❌ |
| 备份触发 | ✅ | ✅ | ❌ |
| 数据恢复 | ✅ | ❌ | ❌ |
| 系统升级/回滚 | ✅ | ❌(只读) | ❌ |
| 客户端发布/下线/强制更新 | ✅ | ❌(只读) | ❌ |
| 审计日志查看与导出 | ✅ | ✅ | ✅ |
| 管理员设置 | ✅ | ❌ | ❌ |
9. 状态矩阵(关键页面)
| 页面 | 默认态 | 加载态 | 成功态 | 失败态 |
|---|---|---|---|---|
| 租户列表 | 最近查询结果 | 表格骨架/Spinner | Toast 成功 + 刷新列表 | 错误 Toast + 保留原列表 |
| 租户详情 | 分区信息默认展开 | 局部 Skeleton | 字段回写 + 操作日志入口 | 字段级错误提示 |
| 系统版本 | 当前版本总览 | 批次进度中 | 升级完成状态标记 | halted 告警 + 回滚入口 |
| 客户端发布 | 版本列表 | 上传进度 | SHA256 回填 + 发布成功 | 校验失败/上传失败提示 |
| 审计日志 | 最近记录 | 列表刷新中 | 导出任务创建成功 | 导出失败提示 + 重试 |
10. 校验与文案规范(管理员语境)
- 所有错误文案需“可操作”:
- ✅
版本号格式错误,应为 X.Y.Z - ❌
参数非法
- ✅
- 高危操作失败需包含最小原因:
MFA 验证失败,请重新输入 6 位动态码
- 操作成功反馈需带动作对象:
租户「上海某某地产」已挂起
- 审计可见入口:写操作成功 Toast 提供
查看审计记录链接
11. 可访问性与实现约束
- 所有 Icon 按钮必须有
aria-label - 表格头使用
scope="col" - 弹窗支持
Esc关闭(高危二次确认按流程控制) - 焦点可见(
focus-visible:ring-*) - 禁止仅用颜色表达状态,必须
Badge + 文本
12. 验收清单
- 页面 IA 与路由覆盖 PRD 16 个页面
- 管理员三角色权限可见性已定义
- 高危操作统一二段式确认(含 MFA)
- Dashboard 已定义固定模块 + 扩展插槽
- 与
DATA_MODEL_PUBLIC主表映射完成 - 复用
UI_SYSTEM与组件规范设计组件体系 - 明确本后台为管理员使用,不采用终端用户视觉套路