From 464c5fce51afeca008e48b3b1595e039c806e3f2 Mon Sep 17 00:00:00 2001 From: Shen Wei Date: Sat, 2 May 2026 05:10:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fonrey/PRD/系统管理/系统管理模块PRD.md | 135 +++-- Project/fonrey/文档Review清单_打印版.html | 460 ++++++++++++++++++ Project/fonrey/文档Review清单_打印版.pdf | Bin 0 -> 1113428 bytes .../fonrey/规范/DATA_MODEL_注释补全规范_v1.md | 320 ------------ 4 files changed, 567 insertions(+), 348 deletions(-) create mode 100644 Project/fonrey/文档Review清单_打印版.html create mode 100644 Project/fonrey/文档Review清单_打印版.pdf delete mode 100644 Project/fonrey/规范/DATA_MODEL_注释补全规范_v1.md diff --git a/Project/fonrey/PRD/系统管理/系统管理模块PRD.md b/Project/fonrey/PRD/系统管理/系统管理模块PRD.md index 7ab9aea3..b288f7a9 100644 --- a/Project/fonrey/PRD/系统管理/系统管理模块PRD.md +++ b/Project/fonrey/PRD/系统管理/系统管理模块PRD.md @@ -2,8 +2,8 @@ **状态**:Draft **作者**:产品经理 -**最后更新**:2026-04-24 -**版本**:v1.0 +**最后更新**:2026-05-01 +**版本**:v1.3 **利益相关方**:工程负责人、运营团队、安全合规、客户成功团队 ## 变更历史 @@ -11,6 +11,8 @@ | 版本 | 日期 | 作者 | 变更说明 | |------|------|------|---------| | v1.0 | 2026-04-24 | 产品经理 | 初稿 | +| v1.1 | 2026-05-01 | 产品经理 | ① Story 1 补充「默认配置」内容定义(权限定义 + 系统默认角色);② Story 1 补充欢迎通知机制(邮件内容规范、默认密码发放、Tenant Code、页面下载 PDF);③ Story 2 补充 License 时效管理(到期自动挂起、提前 15 天预警倒计时);④ Story 3 标注为已废弃(暂不实现);⑤ 新增 Story 7:平台版本总览(基础数据版本 + 租户数据升级版本);⑥ §5.1.1 补充默认配置内容说明、通知机制细节、时效日期字段、到期挂起流程;⑦ 管理员角色权限矩阵补充版本总览权限 | +| v1.3 | 2026-05-01 | 产品经理 | Story 1 Tenant Admin 权限机制修正:初始 Tenant Admin 不赋予任何业务角色,由系统在租户创建时直接写入独立的「租户管理员」专属权限集合;该集合不在角色管理界面显示,不可自行修改或分配;新增/变更租户管理员须由平台运营方操作 | --- @@ -48,13 +50,13 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten ## 2. 目标与成功指标 -| 目标 | 指标 | 当前基线 | 目标值 | 测量窗口 | -|------|------|---------|--------|---------| -| 租户管理效率提升 | 新租户开通耗时 | 人工脚本 ~30 分钟 | < 5 分钟(含自动初始化) | 上线后 30 天 | -| 平台升级零停机 | 升级期间受影响租户数 | 全量中断 | 灰度阶段受影响 ≤ 5% 租户 | 每次升级 | -| 数据恢复能力建立 | RTO(恢复时间目标) | 无标准流程 | 单租户恢复 < 2 小时 | v1 上线即达标 | -| 操作合规覆盖 | 高危操作审计日志覆盖率 | 0% | 100% | 上线后 30 天 | -| 管理员安全 | MFA 启用率 | 0% | 100%(强制) | 上线即达标 | +| 目标 | 指标 | 当前基线 | 目标值 | 测量窗口 | +| -------- | ----------- | ----------- | --------------- | -------- | +| 租户管理效率提升 | 新租户开通耗时 | 人工脚本 ~30 分钟 | < 5 分钟(含自动初始化) | 上线后 30 天 | +| 平台升级零停机 | 升级期间受影响租户数 | 全量中断 | 灰度阶段受影响 ≤ 5% 租户 | 每次升级 | +| 数据恢复能力建立 | RTO(恢复时间目标) | 无标准流程 | 单租户恢复 < 2 小时 | v1 上线即达标 | +| 操作合规覆盖 | 高危操作审计日志覆盖率 | 0% | 100% | 上线后 30 天 | +| 管理员安全 | MFA 启用率 | 0% | 100%(强制) | 上线即达标 | --- @@ -78,11 +80,29 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten > 作为运营人员,我希望通过填写表单快速完成租户开通,并由系统自动完成数据库初始化与欢迎邮件,无需手动执行脚本。 **验收标准**: -- [ ] 表单提交后,系统在后台自动创建 PostgreSQL Schema 并注入默认配置,完成时间 < 60 秒 -- [ ] 新租户创建后,管理员收到系统通知,租户联系人收到欢迎邮件 -- [ ] 子域名创建成功后在租户详情中显示可访问链接 +- [ ] 表单提交后,系统在后台自动创建 PostgreSQL Schema 并注入默认配置(见 §5.1.1 默认配置说明),完成时间 < 60 秒 +- [ ] 默认配置注入包含两部分:**(1)权限定义(PermissionDef)**:注入该平台所有权限码的定义数据(`permission_code`、描述、模块归属),作为该租户 RBAC 权限体系的基础;**(2)系统默认角色与权限绑定**:按「角色权限矩阵.md」定义注入 7 个系统内置业务角色——置业顾问、店管、区管、区总、副总、总经、其他职能——并完成各角色对应的权限集合绑定 +- [ ] 初始 Tenant Admin 用户(以联系人手机号创建)**不通过业务角色赋权**,而是在租户创建时由系统直接写入「租户管理员」专属权限集合;该权限集合独立于 7 个业务角色之外,不在租户的角色管理界面中显示,不可由 Tenant Admin 自行修改或分配给其他用户;如需新增或变更租户管理员,须由平台运营方在管理后台操作 +- [ ] 新租户创建后,平台运营管理员收到系统内通知(站内消息);租户联系人收到欢迎邮件(见下方「欢迎邮件规范」) +- [ ] 若联系人无邮箱,运营人员可在租户详情页下载「入驻信息 PDF 文档」,通过微信等渠道手动转发 +- [ ] 租户访问地址采用 Fonrey 平台统一域名 + Tenant Code 参数的形式(如 `https://app.fonrey.com/?tenant=ABCD`),无需为每个租户单独创建子域名;租户详情页展示该访问链接,可一键复制 - [ ] 创建失败时回滚所有已创建资源,并显示明确的错误原因 +**欢迎邮件规范**(联系人有邮箱时自动发送): + +| 字段 | 内容 | +| ---- | ----------------------------------------------------------------------------------------------------------- | +| 主题 | 【房睿平台】您的账号已开通,欢迎登录 | +| 收件人 | 租户联系人邮箱 | +| 正文内容 | 公司名称、**Tenant Code**(登录时所需的租户识别码)、登录地址(`https://app.fonrey.com/?tenant={Tenant Code}`)、Tenant Admin 手机号(脱敏展示后三位)、**系统初始密码**(明文,首次登录后强制修改)、平台客服联系方式 | +| 备注 | 初始密码由系统随机生成(12 位,含大小写字母+数字),发送后立即标记为「首次登录强制修改」状态 | + +**入驻信息 PDF 文档**(可在租户详情页下载,适用于无邮箱客户): + +- 包含与欢迎邮件相同的所有关键信息 +- 页面入口:租户详情 → 基本信息 Tab → 「下载入驻信息」按钮 +- 文件名格式:`{公司名称}_入驻信息_{日期}.pdf` + **Story 2**:挂起问题租户 > 作为运营人员,我希望能快速冻结欠费租户的访问,同时保证数据不丢失,并在欠费解决后一键恢复。 @@ -92,15 +112,21 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten - [ ] 支持设置到期时间,到期后系统自动恢复租户状态,并发送通知邮件 - [ ] 所有挂起/恢复操作记录于操作审计日志,包含操作人、时间、原因 -**Story 3**:响应客户数据导出请求 +**Story 2b**:License 时效管理与到期自动挂起 -> 作为运营人员,我希望能为指定租户触发数据导出,并在完成后通过邮件通知对方下载,无需手动操作数据库。 +> 作为 Platform Admin,我希望每个租户能够设置 License 有效期,在到期后系统自动挂起租户,并在到期前提前预警,减少人工干预。 **验收标准**: -- [ ] 导出任务异步执行(Celery),提交后界面不阻塞 -- [ ] 导出完成后邮件通知管理员,邮件包含加密下载链接,有效期 24 小时 -- [ ] 支持按模块选择导出内容(客户数据、房源数据、交易记录、系统配置) -- [ ] 导出格式支持:CSV、JSON、SQL Dump +- [ ] 每个租户的「基本信息」中包含 **License 到期日期**字段,由 Platform Admin 在创建租户或套餐续费时设定(如购买 1 年期 License) +- [ ] 系统(Celery Beat 每日检查)在 License 到期时自动将租户状态切换为「已挂起 Suspended」,挂起原因标注为「License 到期」 +- [ ] 自动挂起后,租户联系人收到通知邮件;Platform Admin 可手动解除挂起(续费后操作) +- [ ] **提前 15 天预警倒计时**:租户内的 Tenant Admin 在登录后的管理界面顶部看到醒目横幅提示,内容示例:「您的 License 将于 X 天后到期({到期日期}),请联系平台续费。」;提前 15 天开始出现,每天展示直至到期或续费完成 +- [ ] 倒计时横幅仅对租户端 Tenant Admin 可见,不影响普通 Agent 用户体验(可配置) +- [ ] License 到期日期在管理后台租户列表和详情页均可见,支持按「即将到期(15 天内)」筛选 + +**Story 3**:响应客户数据导出请求 + +> **状态**:暂缓(当前 P0 计划阶段不实现,后续迭代规划)。本 Story 保留需求描述,待进入相应排期后正式细化。 --- @@ -145,7 +171,46 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten --- -## 5. 功能规格 +### Persona D:Platform Admin(平台超级管理员)David(平台版本总览) + +**Story 7**:查看平台与租户版本总览 + +> 作为 Platform Admin,我希望能在管理界面一眼看到整个平台的版本情况,包括基础数据版本和每个租户各自的数据升级版本,以便掌握升级进度和版本差异。 + +**验收标准**: +- [ ] 管理控制台「系统版本管理」页面提供「版本总览」视图,分为两个部分: + + **Part 1:平台基础数据版本** + - 展示当前平台基础数据(公共 Schema 中的 PermissionDef、系统配置等 seed 数据)的版本号 + - 该版本对所有租户一致,每次平台升级为一次性全量升级 + - 展示字段:版本号、最后升级时间、升级描述、升级执行人 + + **Part 2:租户数据升级版本** + - 以列表形式展示每个租户当前的数据版本号(即该租户 Schema 已完成的 migration 版本) + - 由于采用灰度升级,各租户版本号可能不一致 + - 列表字段:租户名称、当前数据版本号、上次升级时间、升级状态(最新 / 待升级 / 升级中 / 升级失败) + - 支持按「待升级」「升级失败」筛选,快速定位异常租户 + - 点击租户行可跳转至该租户详情的「备份记录」Tab 查看详情 + +- [ ] 页面支持手动刷新版本状态 +- [ ] 「版本总览」数据展示无需实时,允许最多 5 分钟缓存延迟 + +--- + +**Story 8**:查看与控制租户用户数 + +> 作为 Platform Admin,我希望能在管理界面看到每个租户当前的用户数量,并能设置用户数上限,以便根据 License 授权进行管控(用户数是 License 计费的重要依据)。 + +**验收标准**: +- [ ] 租户列表新增「当前用户数」列,显示该租户当前已创建的有效用户总数(含 Tenant Admin + 所有 Agent,不含已删除/离职用户) +- [ ] 租户详情页「基本信息」Tab 显示:当前用户数 / License 授权用户数上限(如:12 / 50) +- [ ] Platform Admin 可在租户详情页设置「License 授权用户数上限」字段;当租户实际用户数达到上限时,Tenant Admin 在该租户内将无法继续创建新用户,并收到提示:「当前用户数已达 License 上限,请联系平台扩容」 +- [ ] Platform Admin 可随时调整用户数上限(续费扩容 or 缩容),变更记录写入操作审计日志 +- [ ] 租户列表支持按「用户数已满(≥ 上限)」筛选,便于平台运营主动识别需要续费的租户 + +--- + + ### 5.1 租户管理(Tenant Management) @@ -157,27 +222,40 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten |------|------|------|------| | 公司名称 | Text | ✅ | 最大 100 字符 | | 联系人 | Text | ✅ | 租户主联系人姓名 | -| 联系邮箱 | Email | ✅ | 用于发送欢迎邮件及系统通知 | +| 联系邮箱 | Email | ❌(可选) | 用于发送欢迎邮件及系统通知;无邮箱时改用 PDF 下载方式 | | 所在地区 | Select | ✅ | 省市两级 | | 订阅套餐 | Select | ✅ | Basic / Professional / Enterprise | -| 子域名 | Text | ✅ | 格式:`{slug}.platform.com`,唯一,创建后不可修改 | +| 子域名 | Text | ❌(无需) | 租户访问统一使用 Fonrey 平台域名 + Tenant Code 参数,无子域名 | +| License 到期日期 | Date | ✅ | 由 Platform Admin 设定,决定租户有效期;到期后系统自动挂起 | 创建流程: 1. 表单校验通过后,后台 Celery 任务执行: - 创建 PostgreSQL Schema(`tenant_{id}`) - 执行 Migrate 初始化表结构 - - 注入默认系统配置 - - 发送欢迎邮件至联系邮箱 + - 注入默认配置(见下方「默认配置内容」说明) + - 生成初始密码(12 位随机,含大小写字母+数字),标记为「首次登录强制修改」 + - 若联系邮箱已填写:发送欢迎邮件(含 Tenant Code、初始密码、平台访问链接 `https://app.fonrey.com/?tenant={TenantCode}`) 2. 任务完成后更新租户状态为 `active`,失败则全量回滚并标记为 `failed` -3. 生成唯一 Tenant ID(UUID),记录创建时间、创建人 +3. 生成唯一 Tenant ID(UUID)及 Tenant Code(可读短码,如 `FR-2024-0001`),记录创建时间、创建人 + +**默认配置内容(Schema 初始化时注入)**: + +| 配置类型 | 内容 | 说明 | +|---------|------|------| +| 权限定义(PermissionDef) | 平台全量权限码(`permission_code`、描述、模块归属) | 从 public schema 同步至租户 schema,作为 RBAC 权限体系基础 | +| 系统默认角色 | Tenant Admin(租户管理员)、Agent(经纪人) | 按权限管理模块 PRD 定义的权限集合完成角色-权限绑定 | +| 初始 Tenant Admin 用户 | 以联系人手机号创建,角色为 Tenant Admin | 首次登录后强制修改密码 | **挂起(Suspend)** -- 操作触发条件:运营人员手动触发,选择挂起原因(欠费 / 违规 / 主动申请 / 其他) +- 操作触发条件: + - **手动触发**:运营人员手动触发,选择挂起原因(欠费 / 违规 / 主动申请 / 其他) + - **自动触发**:Celery Beat 每日检查 License 到期日期,到期后自动挂起(原因标注为「License 到期」) - 可设置挂起到期时间(留空表示永久挂起直至手动恢复) - 挂起效果:该租户所有用户请求返回 `HTTP 403`,重定向至暂停提示页;管理后台数据仍可访问 -- 到期自动恢复:`Celery Beat` 定时检查到期挂起记录,自动切换状态为 `active` -- 通知:挂起与恢复均向租户联系邮箱发送通知邮件 +- 到期自动恢复:`Celery Beat` 定时检查到期挂起记录,自动切换状态为 `active`(仅适用于手动设置了到期时间的挂起;License 到期自动挂起需 Platform Admin 手动恢复) +- 通知:挂起与恢复均向租户联系邮箱发送通知邮件(无邮箱则跳过) +- **License 到期预警**:License 到期前 15 天起,租户端 Tenant Admin 管理界面顶部显示倒计时横幅,直至到期或续费后由 Platform Admin 更新 License 到期日期 **删除(Delete)** @@ -385,7 +463,7 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten - 分页展示(默认 20 条/页) - 搜索:按公司名称、子域名、联系邮箱关键词搜索 -- 筛选:按状态(Active / Suspended / Deleted)、套餐(Basic/Pro/Enterprise)、注册时间范围 +- 筛选:按状态(Active / Suspended / Deleted)、套餐(Basic/Pro/Enterprise)、注册时间范围、**即将到期(15 天内)** - 列表字段:公司名称、子域名、套餐、状态、注册时间、活跃用户数 - 快捷操作:查看详情、挂起、发起备份、数据导出 @@ -564,6 +642,7 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten | 数据恢复 | ✅ | ❌ | ❌ | | 系统升级 | ✅ | ❌ | ❌ | | 系统回滚 | ✅ | ❌ | ❌ | +| 查看版本总览 | ✅ | ✅ | ❌ | | 配置告警规则 | ✅ | ✅ | ❌ | | 查看审计日志 | ✅ | ✅ | ✅ | | 导出审计日志 | ✅ | ✅ | ✅ | diff --git a/Project/fonrey/文档Review清单_打印版.html b/Project/fonrey/文档Review清单_打印版.html new file mode 100644 index 00000000..3dca5f6f --- /dev/null +++ b/Project/fonrey/文档Review清单_打印版.html @@ -0,0 +1,460 @@ + + + + +Fonrey 项目文档 Review 清单 + + + + + + +
+

📋 Fonrey 项目 · 文档 Review 清单

+
+ 📁 项目路径:D:\Workspace\nexus\Project\fonrey + 📅 生成时间:2026-05-01 + ✅ 打印后逐项勾选完成状态 +
+
+ +
+ 文档类型: +
PRD 需求文档
+
DATA 数据模型
+
UI UI设计文档
+
HTML UI静态原型
+
TECH 技术方案
+
TEST 测试用例
+
TASK 任务清单
+
REVIEW Review报告
+
+ + +
+
+ 01 登录管理(Login) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD用户登录管理模块PRDPRD/登录管理/用户登录管理模块PRD.md
2DATADATA_MODEL_LOGINDATA_MODEL/DATA_MODEL_LOGIN.md
3UI登录_UI 设计文档UI_DESIGN/登录管理/登录_UI.md
4HTML登录页(账号密码)原型UI_DESIGN/登录_账号密码_UI.html
5HTML登录页(重置密码)原型UI_DESIGN/登录_重置密码_UI.html
6HTML登录页原型(主入口)UI_DESIGN/登录_UI.html
7TECH登录管理技术方案TECH_STACK/登录管理技术方案.md
8TESTTEST_CASES_LOGIN_MODULETEST_CASES/TEST_CASES_LOGIN_MODULE.md
9TASKTASK / TASK_AGENT_READYPRD/TASK.md · PRD/TASK_AGENT_READY.md · PRD/TASK_AGENT_READY_P0.md
+
+ + +
+
+ 02 组织人事管理(Org & HR) +
+ + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD组织人事管理模块PRDPRD/组织人事管理/组织人事管理模块PRD.md
2DATADATA_MODEL_ORGDATA_MODEL/DATA_MODEL_ORG.md
3UI组织人事_UI 设计文档UI_DESIGN/组织人事管理/组织人事_UI.md
4HTML组织人事管理页原型UI_DESIGN/组织人事_UI.html
5TECH组织人事技术方案TECH_STACK/组织人事技术方案.md
6TEST— 暂无 TEST_CASES —
7TASK权限种子数据(组织人事-组织)PRD/权限管理/组织人事-组织.md
+
+ + +
+
+ 03 权限管理(Permission) +
+ + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD权限管理模块PRDPRD/权限管理/权限管理模块PRD.md
2PRD角色权限矩阵PRD/权限管理/角色权限矩阵.md
3PRD权限种子数据 MVP Batch1PRD/权限管理/PERMISSION_SEED_MVP_BATCH1.md
4DATADATA_MODEL_PERMISSIONDATA_MODEL/DATA_MODEL_PERMISSION.md
5UI权限管理_UI 设计文档UI_DESIGN/权限管理/权限管理_UI.md
6HTML权限管理页原型UI_DESIGN/权限管理_UI.html
7TECH权限管理系统技术方案TECH_STACK/权限管理系统技术方案.md
8TEST— 暂无 TEST_CASES —
+
+ + +
+
+ 04 楼盘管理(Property Complex) +
+ + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD楼盘管理模块PRDPRD/房源管理/楼盘管理模块PRD.md
2DATADATA_MODEL_COMPLEX(楼盘)DATA_MODEL/DATA_MODEL_COMPLEX.md
3UI楼盘列表_UI 设计文档UI_DESIGN/楼盘管理/楼盘列表_UI.md
4UI楼盘详情_UI 设计文档UI_DESIGN/楼盘管理/楼盘详情_UI.md
5UI区域管理_UI 设计文档UI_DESIGN/楼盘管理/区域管理_UI.md
6HTML楼盘列表页原型UI_DESIGN/楼盘列表_UI.html
7HTML楼盘详情页原型UI_DESIGN/楼盘详情_UI.html
8HTML区域管理页原型UI_DESIGN/区域管理_UI.html
9TECH楼盘管理技术方案TECH_STACK/楼盘管理技术方案.md
10TEST— 暂无 TEST_CASES —
+
+ + +
+
+ 05 房源管理(Property Listing) +
+ + + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD房源管理模块PRDPRD/房源管理/房源管理模块PRD.md
2DATADATA_MODEL_PROPERTY(房源)DATA_MODEL/DATA_MODEL_PROPERTY.md
3UI房源列表_UI 设计文档UI_DESIGN/房源管理/房源列表_UI.md
4UI房源详情_UI 设计文档UI_DESIGN/房源管理/房源详情_UI.md
5UI新增房源_UI 设计文档UI_DESIGN/房源管理/新增房源_UI.md
6HTML房源列表页原型UI_DESIGN/房源列表_UI.html
7HTML房源详情页原型UI_DESIGN/房源详情_UI.html
8HTML新增房源页原型UI_DESIGN/新增房源_UI.html
9TECH房源管理技术方案TECH_STACK/房源管理技术方案.md
10TEST— 暂无 TEST_CASES —
11PRD权限种子:房源-二手租赁PRD/权限管理/房源-二手租赁.md
+
+ + +
+
+ 06 客源管理(Client / Lead) +
+ + + + + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD客源管理模块PRDPRD/客源管理/客源管理模块PRD.md
2DATADATA_MODEL_CLIENT(客源)DATA_MODEL/DATA_MODEL_CLIENT.md
3UI客源列表_UI 设计文档UI_DESIGN/客源管理/客源列表_UI.md
4UI客源详情_UI 设计文档UI_DESIGN/客源管理/客源详情_UI.md
5UI新增客源_UI 设计文档UI_DESIGN/客源管理/新增客源_UI.md
6UI编辑客源_UI 设计文档UI_DESIGN/客源管理/编辑客源_UI.md
7HTML客源列表页原型UI_DESIGN/客源列表_UI.html
8HTML客源详情页原型UI_DESIGN/客源详情_UI.html
9HTML新增客源页原型UI_DESIGN/新增客源_UI.html
10HTML编辑客源页原型UI_DESIGN/编辑客源_UI.html
11TECH客源管理技术方案TECH_STACK/客源管理技术方案.md
12TEST— 暂无 TEST_CASES —
13PRD权限种子:客源PRD/权限管理/客源.md
+
+ + +
+
+ 07 系统配置 / 系统管理(System Config & Admin) +
+ + + + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD系统配置模块PRDPRD/系统配置/系统配置模块PRD.md
2PRD系统管理模块PRDPRD/系统管理/系统管理模块PRD.md
3PRD系统配置参数数据PRD/系统配置/系统配置参数数据.md
4DATADATA_MODEL_SETTING(系统设置)DATA_MODEL/DATA_MODEL_SETTING.md
5UI系统配置_UI 设计文档UI_DESIGN/系统配置/系统配置_UI.md
6UI首页设置_UI 设计文档UI_DESIGN/系统配置/首页设置_UI.md
7HTML系统配置页原型UI_DESIGN/系统配置_UI.html
8HTML首页设置页原型UI_DESIGN/首页设置_UI.html
9TECH系统设置技术方案TECH_STACK/系统设置技术方案.md
10TECH系统管理技术文档TECH_STACK/系统管理技术文档.md
11TEST— 暂无 TEST_CASES —
12PRD权限种子:首页PRD/权限管理/首页.md
+
+ + +
+
+ 08 客户端发布管理(Release Management) +
+ + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRD客户端发布管理模块PRDPRD/发布管理/客户端发布管理模块PRD.md
2DATA— 暂无专属 DATA_MODEL —
3UI— 暂无 UI 设计文档 —
4HTML— 暂无 HTML 原型 —
5TECH客户端发布管理技术方案TECH_STACK/客户端发布管理技术方案.md
6TESTTEST_CASES_RELEASE_MODULETEST_CASES/TEST_CASES_RELEASE_MODULE.md
+
+ + +
+
+ ⬡ 全局文档(Global) +
+ + + + + + + + + + + + + + + + + + + + + + + + +
#类型文档名称文件路径✓ 已读⚠ 有问题
1PRDPRD_MVP(全局需求)PRD/PRD_MVP.md
2PRDPERSONA 用户画像定义PRD/PERSONA_定义.md
3DATADATA_MODEL(主索引)DATA_MODEL/DATA_MODEL.md
4DATADATA_MODEL_PUBLIC(公共)DATA_MODEL/DATA_MODEL_PUBLIC.md
5DATAENUMS 枚举数据字典DATA_MODEL/ENUMS.md
6UIUI_SYSTEM 设计系统UI_SYSTEM/UI_SYSTEM.md
7UIUI_DESIGN 设计任务总表UI_DESIGN/UI_设计任务总表.md
8TECHTECH_STACK 全局技术方案TECH_STACK/TECH_STACK.md
9TECHAPI_CONTRACT 接口契约TECH_STACK/API_CONTRACT.md
10TECHADR 架构决策记录ADR.md
11TECH测试规范TECH_STACK/测试规范.md
12TESTTEST_CASE_REGISTRY 测试用例注册表TEST_CASES/TEST_CASE_REGISTRY.md
13TESTTEST_CASE_ID_SPEC 用例ID规范TEST_CASES/TEST_CASE_ID_SPEC.md
14TASKTASK_AGENT_READY_P0(优先任务)PRD/TASK_AGENT_READY_P0.md
15REVIEWREVIEW_全局_2026-04-25REVIEW/REVIEW_全局_2026-04-25.md
16REVIEWREVIEW_全局_2026-04-26REVIEW/REVIEW_全局_2026-04-26.md
17REVIEWREVIEW_全局_2026-04-28REVIEW/REVIEW_全局_2026-04-28.md
18REVIEWVIBE_CODING 开工前缺失清单VIBE_CODING_开工前缺失清单.md
+
+ + +
+

📊 文档统计摘要

+
+
17
PRD 需求文档
+
9
Data Model 数据模型
+
16
UI 设计文档 (.md)
+
17
UI HTML 原型页面
+
11
Tech Stack 技术方案
+
4
Test Cases 测试用例
+
3
Task 任务清单
+
4
Review 报告
+
+
+ 📦 合计 81 份文档待 Review  ·  + ⚠ 标记 5 个模块缺少 TEST_CASES  ·  + ⚠ 发布管理 缺少 UI 设计 + HTML 原型 +
+
+ + + + + diff --git a/Project/fonrey/文档Review清单_打印版.pdf b/Project/fonrey/文档Review清单_打印版.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2bb155b66975038733cb20af2afba79f5b9b41d4 GIT binary patch literal 1113428 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