12 KiB
12 KiB
PRD-RSMS-001:全国记者站管理系统产品需求文档
文档版本:v1.0 状态:待确认 编制日期:2026-08-01 项目缩写:RSMS
1. 产品概述与定位
全国记者站管理系统(RSMS)是一个面向全国 37 个记者站的管理平台,服务于总部管理员、分站负责人和记者三类角色。系统以工作记录填报和分级审核为业务核心,构建统一的人员、考核、档案和通知管理体系。
1.1 产品定位
- 目标:替代线下/Excel 管理方式,实现业务线上化、考核标准化、数据可追溯。
- 用户:总部约 5-10 名管理员;37 个分站各 1-2 名负责人;约 500 名记者。
- 核心价值:减少重复填报、统一审核标准、提升考核透明度、积累可分析数据。
1.2 成功指标
| 指标 | 目标值 |
|---|---|
| 工作记录线上填报率 | >= 95% |
| 审核平均处理时长 | <= 24 小时 |
| 考核数据可追溯覆盖率 | 100% |
| 系统可用性 | >= 99.5% |
2. 用户画像与核心场景
场景 1:记者填报工作记录(SCENE-001)
人物:林晓,北京记者站记者,2021 年入站。 痛点:此前通过微信群或邮件提交,格式不统一,审核进度靠追问,档案整理靠人工。 解法:移动/PC 端随时填报,自动进入审核流,实时看到审核状态,归档记录自动进入个人档案。
场景 2:分站负责人初审(SCENE-002)
人物:苏明远,北京记者站负责人。 痛点:接收材料格式混乱,退回修改反复沟通,统计靠人工汇总。 解法:统一格式接收,核验后一键通过或退回,退回时填写意见,作者修改后自动推送,全站数据自动汇总。
场景 3:总部管理员复核与监管(SCENE-003)
人物:林致远,总部考核管理员。 痛点:37 个站数据分散,统计口径不一致,复核工作量大,考核结果解释成本高。 解法:分类复核(高价值逐条 + 普通抽查),自动计分和排名,审核轨迹可查,报表一键导出。
场景 4:记者查询个人档案(SCENE-004)
人物:林晓,想查看自己本季度的考核得分和全年排名。 痛点:历史记录分散在各个群聊和文件中,不知道自己排名。 解法:个人档案聚合全部归档记录,支持按类型/时间筛选,显示年度汇总和趋势。
3. 功能清单与优先级
使用 MoSCoW 标注:Must = P0,Should = P1,Could = P2。
| 编号 | 功能 | 优先级 | 映射需求 |
|---|---|---|---|
| PRD-FUNC-001 | 三角色模拟登录与权限隔离 | Must | REQ-AUTH-001~003 |
| PRD-FUNC-002 | 工作记录新建(7 种类型) | Must | REQ-WORK-001~005 |
| PRD-FUNC-003 | 工作记录列表(搜索/筛选/分页) | Must | REQ-WORK-002 |
| PRD-FUNC-004 | 分站初审(通过/退回/评分) | Must | REQ-ASSESS-001~002 |
| PRD-FUNC-005 | 总部复核(确认/调整/退回) | Must | REQ-ASSESS-003~005 |
| PRD-FUNC-006 | 审核流程留痕(audit_log) | Must | REQ-ASSESS-004 |
| PRD-FUNC-007 | 个人电子档案 | Must | REQ-PROFILE-001~003 |
| PRD-FUNC-008 | 工作台仪表盘(指标卡+趋势图+排名) | Must | REQ-STAT-001~003 |
| PRD-FUNC-009 | 通知公告(只读) | Must | REQ-NOTICE-001~002 |
| PRD-FUNC-010 | 审核中心(待办聚合) | Must | REQ-NOTICE-002 |
| PRD-FUNC-011 | 人员管理(增删改查) | Must | REQ-USER-001~003 |
| PRD-FUNC-012 | 记者站管理(增删改查) | Must | REQ-ORG-001 |
| PRD-FUNC-013 | 通知公告发布(富文本/附件/回执) | Should | REQ-NOTICE-003~004 |
| PRD-FUNC-014 | 考核规则可视化配置 | Should | REQ-ASSESS-006 |
| PRD-FUNC-015 | 数据统计报表(导出) | Should | REQ-STAT-001~003 |
| PRD-FUNC-016 | 申诉与复议 | Could | — |
| PRD-FUNC-017 | 全国地图分布 | Could | REQ-ORG-003 |
| PRD-FUNC-018 | 个人能力画像 | Could | — |
4. 关键流程
4.1 工作记录全生命周期
记者新建 → 保存草稿 / 直接提交
↓提交
待分站审核 ← 分站负责人处理
│通过 │退回
↓ ↓
待总部复核 已退回 → 记者修改 → 重新提交
│通过
↓
已归档 → 自动进入个人档案 + 统计汇总
4.2 数据权限控制流
请求进入 → 后端读取 x-user-role header
↓
headquarters: 返回全国全部数据
station: WHERE station = '所属站'
reporter: WHERE reporter = '本人姓名'
5. 角色权限矩阵
| 功能 | 总部管理员 | 分站负责人 | 记者 |
|---|---|---|---|
| 站点管理(查) | 全部 | 本站 | 本站 |
| 站点管理(增删改) | 是 | 否 | 否 |
| 人员管理(查) | 全部 | 本站 | 本人 |
| 人员管理(增删改) | 全部 | 本站 | 否 |
| 工作记录(填报) | 否 | 否(可代填) | 是 |
| 工作记录(查看) | 全部 | 本站 | 本人 |
| 分站初审 | 否 | 是(本站) | 否 |
| 总部复核 | 是 | 否 | 否 |
| 电子档案(查看) | 全部 | 本站 | 本人 |
| 通知公告(发布) | 是 | 否 | 否 |
| 通知公告(查看) | 全部 | 本站 | 本人 |
| 统计报表(全局) | 是 | 否 | 否 |
| 统计报表(本站) | 是 | 是 | 否 |
| 统计成绩(本人) | 是 | 是 | 是 |
| 系统设置 | 是 | 否 | 否 |
6. UI/UX 设计原则
6.1 整体风格
- 配色:主色 #b42318(红),强调色 #4ba66a(绿/成功),背景 #f5f4f1(米白)
- 字体:Noto Sans SC,Songti SC(标题)
- 图标:Lucide Icons
- 布局:侧边栏固定 238px + 顶部栏 + 内容区
- 交互:Toast 反馈、Drawer 侧滑详情、Modal 弹窗表单
6.2 页面导航结构
工作台(dashboard)
├─ 指标卡(本月记录 / 待处理 / 归档 / 得分)
├─ 趋势图(近6月工作量 AreaChart)
├─ 排名(站点/类型)
└─ 待办(待审核 / 被退回 / 截止提醒)
工作记录(work)
├─ 搜索 + 状态筛选 + 类型筛选
└─ 记录列表(点击打开详情抽屉)
审核中心(review)[总部/分站]
├─ 审核摘要(待办数 / 已处理 / 平均时长)
└─ 待审列表(通过 / 退回)
人员管理(people)[总部/分站]
└─ 人员列表 + 筛选 + 新增
记者站管理(stations)[总部]
└─ 站点卡片网格
电子档案(archive)
└─ 个人档案聚合页 + 历史归档列表
通知公告(notices)
└─ 公告列表 + 详情侧边
6.3 统一交互模式
| 场景 | 组件 | 说明 |
|---|---|---|
| 列表加载中 | 顶部进度条动画 | 红色 2px 细条 |
| 列表为空 | EmptyState + 对应图标 | 居中文字提示 |
| 操作失败 | Toast 弹窗 | 2.4s 自动消失 |
| 操作成功 | Toast 弹窗 + 图标 | 绿色勾选图标 |
| 表单校验错误 | 输入框红框 + 错误提示 | 实时校验 |
| 危险操作(删除/退回) | ConfirmDialog 或二次确认 | 明确后果 |
| 分页 | 无(当前为全量加载) | 列表数据量小 |
| 搜索防抖 | 300ms debounce | 工作记录搜索 |
6.4 响应式断点
| 断点 | 布局变化 |
|---|---|
| > 1100px | 标准布局(指标4列、站点3列) |
| 761-1100px | 指标2列、站点2列、侧栏不变 |
| <= 760px | 侧栏变为抽屉,汉堡菜单触发,指标2列,站点1列,表单全宽 |
| <= 430px | 指标2列,保持最小可读性 |
7. 公共组件抽取规划
| 组件 | 类型 | 适用场景 | 输入状态 | 输出事件 | 使用页面 | 优先级 |
|---|---|---|---|---|---|---|
StatusBadge |
基础组件 | 工作记录状态展示 | status: WorkStatus |
— | 全局 | Must(已存在于代码) |
MetricCard |
基础组件 | 指标数据展示 | icon / label / value / delta / color |
— | 工作台 | Must(已存在) |
PanelHeader |
组合组件 | 面板标题栏 | title / subtitle / action / onAction |
onAction |
工作台/审核/档案 | Must(已存在) |
RecordTable |
领域组件 | 工作记录列表 | records / onSelect / compact / review |
onSelect |
工作/审核/档案 | Must(已存在) |
RecordDrawer |
领域组件 | 记录详情+审核 | record / role / onUpdate |
onUpdate |
工作/审核 | Must(已存在) |
CreateModal |
领域组件 | 新建工作记录 | onClose / onSubmit |
onSubmit |
工作台/工作记录 | Must(已存在) |
FilterBar |
组合组件 | 列表筛选栏 | searchPlaceholder / filters / onFilter |
onFilter / onReset |
工作记录/人员 | Should |
Pagination |
基础组件 | 列表分页 | page / pageSize / total |
onChange |
列表页面 | Could(当前 MVP 未分页) |
NotificationBadge |
基础组件 | 导航待办角标 | count |
— | 侧边栏导航 | Must(已存在) |
EmptyState |
基础组件 | 空状态展示 | icon / text |
— | 列表空时 | Must(已存在) |
Toast |
基础组件 | 操作反馈 | message(自动消失) |
— | 全局 | Must(已存在) |
PageHeading |
组合组件 | 页面标题区 | title / description / action / onAction |
onAction |
所有内容页 | Should(已存在但未抽取) |
RoleSwitcher |
领域组件 | 角色模拟切换 | role / onChange |
onChange |
顶部栏 | Must(已存在) |
8. 版本规划
8.1 MVP(当前版本 V0.1)
已实现(代码层面):
- 角色模拟登录(header 传参)
- 工作记录 CRUD(前端 + 后端 API)
- 分站初审 / 总部复核流程
- 审核留痕(audit_log)
- 7 个页面/组件
- SQLite 数据库
- Express API 服务
待补齐(文档层面):
pmdocs/0-req-RSMS.md(本文档)pmdocs/1-prd-RSMS.md(本文档)pmdocs/2-task-RSMS.mdrun.md- 前端模块化重构
8.2 二期
- 通知公告发布(富文本 + 附件 + 回执)
- 人员管理增删改(当前仅展示)
- 记者站管理增删改(当前仅展示)
- 考核规则配置界面
- 数据统计专项页面
- 个人中心功能完善
8.3 三期
- 申诉与复议流程
- 全国地图记者站分布
- 个人能力画像
- 外部系统集成
- 自动化测试
9. 技术架构概览
9.1 前端
- 框架:React 18 + TypeScript
- 构建:Vite
- 图表:Recharts(AreaChart)
- 图标:Lucide React
- 样式:纯 CSS(含响应式)
- 状态:React useState / useEffect(当前),Redux Toolkit(预留)
- 路由:条件渲染(当前),React Router(后续)
9.2 后端
- 运行时:Node.js
- 框架:Express.js
- 数据库:SQLite(WAL 模式)
- 进程:
node --watch开发热重载
9.3 API 概览
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /api/health |
公开 | 健康检查 |
| GET | /api/records |
角色隔离 | 查询工作记录 |
| POST | /api/records |
reporter/station | 新建记录 |
| PATCH | /api/records/:id/review |
station/hq | 审核操作 |
| GET | /api/records/:id/audit |
角色隔离 | 流转记录 |
10. 风险与依赖
| 风险 | 影响 | 缓解措施 |
|---|---|---|
| SQLite 并发写入冲突 | 高 | WAL 模式已启用;高并发时考虑迁移 PostgreSQL |
| 前端单文件维护性差 | 中 | 二期重构为模块化结构 |
| 无自动化测试 | 中 | 二期引入 Vitest + Playwright |
| 角色模拟安全性不足 | 高 | 二期接入真实认证体系 |
| 考核规则硬编码 | 中 | 二期实现规则可视化配置 |
11. 关键决策记录索引
| 决策 | ADR 编号 | 状态 |
|---|---|---|
| 前端技术栈(React+Vite) | ADR-001 | 已决策 |
| 后端技术栈(Express+SQLite) | ADR-001 | 已决策 |
| 认证方案(角色模拟) | ADR-002 | 待确认 |
| 数据库选型(SQLite) | ADR-001 | 已决策 |