产品需求文档:平台运营后台(只读视图)
说明: 这是 Phase 2 交付物,目的是把当前的「超管 / RBAC 现状」透明化。Phase 3 后端 RBAC 上线后,本页将切到
GET /api/me + GET /api/audit 等真后端数据源。1. 介绍 / 概述
「平台运营后台」是一个仅超级管理员可见的运维信息面板,承担三件事:
- 展示当前生效的平台超管账号清单
- 展示当前登录会话的身份字段
- 跨商户汇总「商户员工」记录
边界(重要):
核心约束:本页面只有「读」,没有「写」。超管账号的新增 / 停用 / 移除永远走外部运维链路(配置文件 / CI 部署 / DBA 工单 / SSO 身份系统),不在任何业务 UI 自助操作。
这条约束是为了避免「超管之间互相提权 / 互相删除」横向风险,符合最小权限与职责分离原则。详见人员管理 PRD §6 / 商户管理 PRD §5 的对应说明。
2. 目标
- 让超级管理员能在一个页面里透明地看到「平台超管清单从哪来、当前生效的是哪些账号」,不再需要去翻代码或问研发。
- 让超管能确认自己当前会话的身份字段(身份、所属商户等),便于排查跨商户数据查看异常。
- 让超管能跨商户聚合查看商户员工总数 / 启用 / 停用情况,作为后续审计 + 配额管理的入口。
- 让普通用户(商户管理员、商户员工)完全无法访问该页面。手动输入 URL → 立即跳转到「总览」,不渲染任何敏感内容。
- 让本页面的实现里不存在任何写入路径(除「退出登录」这一会话清理动作 + 偏好性的语言切换之外)。
3. 用户流程 / 用户故事
UF-001:超管登录后从侧边栏进入「平台运营后台」
描述: 作为平台超级管理员,我希望登录后在侧边栏直接看到「平台运营」入口,一键进入。
主流程:
- 超管账号登录。
- 所有页面侧边栏顶部自动出现「平台运营」分组,包含「平台运营后台」入口(🛡️ 图标)。
- 超管点击入口,进入
platform-ops.html。
验收标准:
- 「平台运营」分组只在超管登录时渲染;普通用户登录时整组不存在。
- 分组位置固定在侧边栏最顶部(在「运营管理」之上),与其它两个分组保持视觉一致(图标 + 文案)。
- 当前页是
platform-ops.html时,「平台运营后台」入口高亮(active)。 - 该分组的注入由身份判定中枢自动完成(不需要每个页面 HTML 自己写),切换身份后立即生效。
参考截图:

UF-002:阅读平台超管账号清单
描述: 作为超管,我希望看到当前生效的全部超管账号,知道清单是从哪个来源加载的。
主流程:
- 超管进入「平台运营后台」。
- 页面第一个区块展示「平台超级管理员账号清单」。
- 区块顶端的徽章显示「共 N 个」。
- 区块下方的提示说明清单来源:外部注入 / 代码层内置默认。
- 逐条列出账号字符串(按注入顺序、编号 #1 / #2 …)。
验收标准:
- 区块标题「平台超级管理员账号清单」;徽章显示当前账号总数。
- 当存在外部注入的清单时,提示文案说明「来源:外部注入」;否则说明「来源:代码层内置默认清单」。
- 账号字符串以读取链路返回的实际值显示(已 trim、小写、去重)。
- 清单为空时显示警示空状态「⚠️ 当前清单为空。这通常意味着配置异常,请联系运维。」
- 该区块旁没有「新增 / 编辑 / 删除」按钮,也没有任何编辑用 input / textarea / select。
UF-003:查看当前登录会话
描述: 作为超管,我希望确认自己当前的身份字段(身份、所属商户、登录账号等)。
主流程:
- 用户在「平台运营后台」第二个区块「当前登录会话」中查看 6 行字段。
- 身份字段把内部值翻译成人话:
super_admin→ 「平台超级管理员」,merchant→ 「商户用户」。
验收标准:
- 展示字段:账号、身份、展示名称、登录手机号、所属商户 ID、所属商户名称。
- 身份字段做友好翻译,不直接暴露内部枚举字符串。
- 每个字段下方提供简短 hint 说明字段含义(如「所属商户 ID — 超管为空」)。
- 缺失字段以
-显示并加 muted 灰度样式。 - 提示文案明确:「来源:localStorage.sidebarLoginProfile · 仅本视图展示」,并标注「前端 RBAC 临时方案,正式安全保证待 Phase 3 后端 RBAC 上线」。
UF-004:跨商户聚合查看商户员工
描述: 作为超管,我希望知道平台上有多少商户、每个商户有多少员工 / 启用 / 停用,为日后审计与配额管理打基础。
主流程:
- 用户在「平台运营后台」第三个区块「商户员工汇总(跨商户)」查看商户清单。
- 清单按商户 ID 升序排列。
- 每行展示:商户 ID、商户名称、人员徽章(总员工数 / 启用数 / 停用数)。
- 区块顶端徽章「共 N 商户 · M 员工」。
验收标准:
- 每行包含商户 ID、商户名称、人员徽章三列。
- 徽章颜色:总员工灰色、启用绿色、停用红色(停用数为 0 时不渲染停用徽章)。
- 商户名称缺失时显示「(未命名商户)」。
- 清单按商户 ID 字典序排列,便于审阅。
- 区块没有任何「跳到该商户员工详情」/「编辑」入口;如需细节,需要去「人员管理」页面查看。
- 无员工数据时显示空状态「暂无商户员工数据」。
参考截图:

4. 功能需求
- 访问控制:进入页面前立即调用身份判定中枢,非超管 →
location.replace('overview.html'),不渲染任何敏感内容。 - 侧边栏入口:由身份判定中枢自动注入到所有页面侧边栏的最顶部分组,只对超管渲染;当前页时高亮 active。
- 只读 banner:页面顶部固定显示「🔒 只读视图」banner,明确告知用户不能在此做账号变更。
- 三个只读区块:超管清单 / 当前会话 / 商户员工汇总;每个区块顶部带统计徽章,下方带数据来源 hint。
- 无写入路径:页面 JS 里不允许出现写业务数据到 localStorage 的代码、不允许 fetch POST/PUT/PATCH/DELETE、不允许 XMLHttpRequest。例外仅限:
- 退出登录时清理
sidebarLoginProfile+cofeLoginSession(属会话清理,非业务数据写入) - 语言切换写
adminSidebarLang(偏好字段)
- 退出登录时清理
- 无编辑控件:页面不引入任何
<input>、<textarea>、<select>。 - 守门测试:仓库内的单测会在每次构建前校验上述约束(写入路径白名单、控件白名单、关键文案存在性);测试不通过则部署失败。
5. 当前版本限制 / 未来规划
当前版本限制(Phase 2):
- 页面数据全部读自 localStorage:超管清单读自
CofePlatformConfig(前端配置),员工汇总读自staffManagersData。浏览器 devtools 改 localStorage 即可伪造 — 当前版本不构成真正的安全边界。 - 无任何审计 / 日志能力。无法查看「谁、何时、对什么做了什么」。
- 商户员工汇总只展示总数 / 启用数 / 停用数,不展示员工姓名、手机号、权限等敏感字段。如需,去「人员管理」页面看。
- 登录信息只展示当前一次会话,没有历史登录、登录 IP、设备指纹等。
未来规划(Phase 3 起):
- 数据源切换:本页数据全部改读后端 API(
GET /api/me、GET /api/super-admins、GET /api/staff/summary),不再读 localStorage。 - 审计流:增加「最近超管登录」「关键操作审计」两个只读区块,数据来自
GET /api/audit?actor_role=super_admin。 - SSO 对接:超管账号来源切到公司 IT 身份系统(OIDC group / role)。本页超管清单变成只读「IT 身份系统视图」,不需要平台再维护配置文件。
- 永远不提供 UI 自助新增 / 删除超管的入口。即使后续做了「平台运营管理员」等次级角色,也不会破坏「超管身份归属由外部身份系统决定」这条原则。