Files
nexus/Project/fonrey/UI_DESIGN/平台管理后台/平台管理后台_UI.md
2026-05-02 11:35:20 +08:00

449 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 平台管理后台 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覆盖
1. 租户全生命周期管理(开通/挂起/恢复/删除/License
2. 平台版本治理(灰度升级、回滚、版本总览)
3. 数据备份恢复与导出
4. 客户端发布治理与版本分布监控
5. 平台监控与告警
6. 审计日志与管理员安全设置MFA/IP 白名单/会话)
### 1.2 非目标UI 层)
- 不设计租户内业务页面(房源、客源等终端业务流)
- 不设计移动端适配(桌面优先,`>=1280px`
- 不设计主题切换入口(保持后台浅色高对比工作流)
---
## 2. 管理员后台设计原则Admin-first
1. **可控优先**:所有高危操作(删除、恢复、回滚、强制更新)采用统一二次确认 + MFA。
2. **信息密度优先**:列表和状态总览优先,卡片用于关键 KPI 快速判断。
3. **风险分级可视化**:高危动作使用 `danger` 语义色,关键状态统一 Badge 体系。
4. **可追溯**:写操作入口旁可快速进入审计记录,避免“做了但查不到”。
5. **可扩展 Dashboard**:仪表盘采用模块化组件插槽,便于后续新增运营看板。
---
## 3. 全局信息架构IA
## 3.1 页面路由与导航分组
### 一级导航Sidebar
- 概览看板
- 租户管理
- 系统版本
- 备份与恢复
- 客户端发布
- 监控与告警
- 审计日志
- 管理员设置
> Topbar 仅承载品牌、全局告警与管理员信息,不承担页面切换。
### 页面清单(与 PRD 对齐)
1. `/admin/login` 登录页
2. `/admin` 仪表盘
3. `/admin/tenants` 租户列表
4. `/admin/tenants/new` 新建租户
5. `/admin/tenants/{id}` 租户详情-基本信息
6. `/admin/tenants/{id}/users` 租户详情-用户管理
7. `/admin/tenants/{id}/plan` 租户详情-套餐信息
8. `/admin/tenants/{id}/monitoring` 租户详情-监控
9. `/admin/tenants/{id}/backups` 租户详情-备份记录
10. `/admin/tenants/{id}/history` 租户详情-操作历史
11. `/admin/system/versions` 系统版本管理(含版本总览)
12. `/admin/system/backups` 备份管理
13. `/admin/monitoring` 监控与告警
14. `/admin/client-releases` 客户端版本管理
15. `/admin/audit-logs` 审计日志
16. `/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 固定模块
1. **全局概览 Stat Card**
- 总租户数
- 活跃租户数
- 本月新增
2. **系统健康面板**(服务状态)
- Django / PostgreSQL / Redis / Celery / R2
3. **近期告警列表24h**
4. **资源概览趋势**(存储/API 调用)
5. **客户端覆盖**(活跃安装数、最新版本占比)
6. **最近高危操作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 AdminMFA
### 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 管理员设置
### 功能区
1. 管理员账号管理(创建/编辑/停用)
2. 角色分配super_admin / ops_operator / read_only_auditor
3. MFA 设备管理
4. IP 白名单管理CIDR
5. 活跃会话与强制登出
---
## 5. 高危操作统一交互模式(全局组件契约)
## 5.1 两段式确认
1. 首次确认弹窗(动作影响说明)
2. MFA 验证弹窗TOTP 输入)
## 5.2 高危动作清单
- 硬删除租户
- 数据恢复
- 系统回滚
- 客户端版本下线
- 强制更新推送
## 5.3 文案模板
- 标题:`确认执行高危操作?`
- 副文案:`该操作可能影响在线租户与数据可用性,请完成 MFA 验证后继续。`
- 按钮:`取消`Secondary / `继续并验证`Danger
---
## 6. 组件复用清单(来自 UI_SYSTEM/组件规范)
1. **Data Table**:租户列表、版本列表、审计日志
2. **Pagination**:统一 20/50/100 条
3. **Toolbar**:批量操作与快捷入口
4. **Section Navigation详情分区**:租户详情采用单页分区结构(无二级 Tab版本管理保持分区信息架构
5. **Modal Dialog**:确认与新建操作
6. **Drawer**:复杂编辑(规则、详情)
7. **Date Range Picker**:日志与统计筛选
8. **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. 校验与文案规范(管理员语境)
1. 所有错误文案需“可操作”:
-`版本号格式错误,应为 X.Y.Z`
-`参数非法`
2. 高危操作失败需包含最小原因:
- `MFA 验证失败,请重新输入 6 位动态码`
3. 操作成功反馈需带动作对象:
- `租户「上海某某地产」已挂起`
4. 审计可见入口:写操作成功 Toast 提供 `查看审计记录` 链接
---
## 11. 可访问性与实现约束
- 所有 Icon 按钮必须有 `aria-label`
- 表格头使用 `scope="col"`
- 弹窗支持 `Esc` 关闭(高危二次确认按流程控制)
- 焦点可见(`focus-visible:ring-*`
- 禁止仅用颜色表达状态,必须 `Badge + 文本`
---
## 12. 验收清单
- [x] 页面 IA 与路由覆盖 PRD 16 个页面
- [x] 管理员三角色权限可见性已定义
- [x] 高危操作统一二段式确认(含 MFA
- [x] Dashboard 已定义固定模块 + 扩展插槽
- [x]`DATA_MODEL_PUBLIC` 主表映射完成
- [x] 复用 `UI_SYSTEM``组件规范设计` 组件体系
- [x] 明确本后台为管理员使用,不采用终端用户视觉套路