Files
nexus/Project/fonrey/PRD/TASK_AGENT_READY_P0.md
2026-04-29 15:43:49 +08:00

3613 lines
209 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.
# TASK_AGENT_READY_P0仅 P0
> 从 `PRD/TASK_AGENT_READY.md` 按“先基础设施 → 再业务模块”重排提取。
## 执行顺序说明
### A. 基础设施(先做)
- 用户登录
- 组织人事
- 权限管理
- 系统配置
### B. 业务模块(后做)
- 楼盘管理
- 房源管理
- 客源管理
**P0 任务总数42**
## 模块分布
- 用户登录: 3
- 组织人事: 3
- 权限管理: 5
- 系统配置: 3
- 楼盘管理: 3
- 房源管理: 8
- 客源管理: 17
# TASK Agent Ready PromptsOpenCode 执行版)
> 生成时间2026-04-28 16:01:37
> 来源文件:`PRD/TASK.md`
> 目标:把每条 US 转成可直接交给 OpenCode 的执行提示词。
## 1) 总体结论
- 任务总数:**83**
- 完备度分级A=24B+=38B=5C=16
- 其中 C 级(不建议直接编码):**16**(主要为 P2 验收标准占位)
### 分阶段统计
| Phase | 任务数 | A | B+ | B | C | 验收占位数 |
|---|---:|---:|---:|---:|---:|---:|
| P0 | 42 | 20 | 21 | 1 | 0 | 0 |
| P1 | 28 | 4 | 17 | 4 | 3 | 0 |
| P2 | 13 | 0 | 0 | 0 | 13 | 13 |
## 2) 模块 → TECH_STACK 技术方案映射
| 模块 | 技术方案输入文档 |
|---|---|
| 用户登录 | `Project/fonrey/TECH_STACK/登录管理技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 楼盘管理 | `Project/fonrey/TECH_STACK/楼盘管理技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 房源管理 | `Project/fonrey/TECH_STACK/房源管理技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 客源管理 | `Project/fonrey/TECH_STACK/客源管理技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 组织人事 | `Project/fonrey/TECH_STACK/组织人事技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 权限管理 | `Project/fonrey/TECH_STACK/权限管理系统技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 系统配置 | `Project/fonrey/TECH_STACK/系统设置技术方案.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 系统管理(运营后台) | `Project/fonrey/TECH_STACK/系统管理技术文档.md``Project/fonrey/TECH_STACK/API_CONTRACT.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
| 客户端发布 | `Project/fonrey/TECH_STACK/API_CONTRACT.md``Project/fonrey/TECH_STACK/系统管理技术文档.md``Project/fonrey/TECH_STACK/TECH_STACK.md``Project/fonrey/TECH_STACK/测试规范.md` |
## 3) OpenCode 全局执行约束(每条任务都必须带上)
1. 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
2. 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
3. Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
4. HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
5. 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
6. 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
7. PII手机号等必须加密存储core/encryption.py展示默认脱敏。
8. 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
9. 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
10. 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
11. `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于**强约束输入**:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
12. 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
### 3.1) 可复用模板(建议直接引用)
- API 契约冲突提报模板:`Project/fonrey/prompt/提示词模板/API_CONTRACT_冲突提报模板_v1.md`
## 4) 通用执行模板(复制后替换 US 内容)
```text
你是 OpenCode 编程代理。请在当前仓库根目录实现以下任务。
【任务ID】<US-ID>
【任务标题】<US-标题>
【阶段】<P0/P1/P2>
【模块】<模块名>
【输入文档】
- PRD: <路径>
- DATA_MODEL: <路径或 N/A>
- UI: <路径或 N/A>
- TECH_STACK: <路径列表>
【必须遵循约束】
- 多租户 URL 分离、Admin 弃用、HTMX 片段返回、TenantClient、PII 加密、testing settings 等(见 TASK_AGENT_READY.md §3
【实现要求】
1) 先输出你将修改/新增的文件清单(精确路径)。
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 `UI_DESIGN/` 对应 `.html`/`.md` 静态页面,列出“必须保持一致”的页面结构与交互点,再开始编码。
4) 再按最小可交付实现功能,不做额外功能扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补充/更新对应测试。
6) 执行测试命令并给出结果。
7) 输出风险与后续建议。
【验收标准】
<粘贴该 US 的验收标准>
【必须执行测试命令】
- pytest -q
- 如涉及 HTMX 局部接口:补充 HTTP_HX_REQUEST=true 场景测试
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 关键实现说明
- 测试结果
- 未完成项/阻塞项
```
## 5) 任务索引与完备性
| US | Phase | 模块 | 完备度 | 缺口 |
|---|---|---|---|---|
| US-ACCOUNT-001 | P0 | 用户登录 | A | 无 |
| US-ACCOUNT-002 | P0 | 用户登录 | B+ | 缺 UI |
| US-ACCOUNT-003 | P0 | 用户登录 | B+ | 缺 UI |
| US-COMPLEX-001 | P0 | 楼盘管理 | B | 引用文件缺失 |
| US-COMPLEX-002 | P0 | 楼盘管理 | A | 无 |
| US-COMPLEX-003 | P0 | 楼盘管理 | B+ | 缺 UI |
| US-PROPERTY-001 | P0 | 房源管理 | A | 无 |
| US-PROPERTY-002 | P0 | 房源管理 | A | 无 |
| US-PROPERTY-003 | P0 | 房源管理 | A | 无 |
| US-PROPERTY-004 | P0 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-005 | P0 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-006 | P0 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-007 | P0 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-008 | P0 | 房源管理 | B+ | 缺 UI |
| US-CLIENT-001 | P0 | 客源管理 | A | 无 |
| US-CLIENT-002 | P0 | 客源管理 | A | 无 |
| US-CLIENT-003 | P0 | 客源管理 | A | 无 |
| US-CLIENT-004 | P0 | 客源管理 | A | 无 |
| US-CLIENT-005 | P0 | 客源管理 | A | 无 |
| US-CLIENT-006 | P0 | 客源管理 | A | 无 |
| US-CLIENT-007 | P0 | 客源管理 | A | 无 |
| US-CLIENT-008 | P0 | 客源管理 | A | 无 |
| US-CLIENT-009 | P0 | 客源管理 | A | 无 |
| US-CLIENT-010 | P0 | 客源管理 | A | 无 |
| US-CLIENT-011 | P0 | 客源管理 | A | 无 |
| US-CLIENT-012 | P0 | 客源管理 | A | 无 |
| US-CLIENT-013 | P0 | 客源管理 | A | 无 |
| US-CLIENT-014 | P0 | 客源管理 | A | 无 |
| US-CLIENT-015 | P0 | 客源管理 | A | 无 |
| US-CLIENT-016 | P0 | 客源管理 | B+ | 缺 UI |
| US-CLIENT-017 | P0 | 客源管理 | B+ | 缺 UI |
| US-ORG-001 | P0 | 组织人事 | B+ | 缺 UI |
| US-ORG-002 | P0 | 组织人事 | B+ | 缺 UI |
| US-ORG-003 | P0 | 组织人事 | B+ | 缺 UI |
| US-PERMISSION-001 | P0 | 权限管理 | B+ | 缺 UI |
| US-PERMISSION-002 | P0 | 权限管理 | B+ | 缺 UI |
| US-PERMISSION-003 | P0 | 权限管理 | B+ | 缺 UI |
| US-PERMISSION-004 | P0 | 权限管理 | B+ | 缺 UI |
| US-PERMISSION-005 | P0 | 权限管理 | B+ | 缺 UI |
| US-SETTING-001-A | P0 | 系统配置 | B+ | 缺 UI |
| US-SETTING-001-B | P0 | 系统配置 | B+ | 缺 UI |
| US-SETTING-001-C | P0 | 系统配置 | B+ | 缺 UI |
| US-ACCOUNT-010 | P1 | 用户登录 | B+ | 缺 UI |
| US-ACCOUNT-011 | P1 | 用户登录 | B+ | 缺 UI |
| US-ACCOUNT-012 | P1 | 用户登录 | B+ | 缺 UI |
| US-COMPLEX-010 | P1 | 楼盘管理 | B+ | 缺 UI |
| US-COMPLEX-011 | P1 | 楼盘管理 | B+ | 缺 UI |
| US-COMPLEX-012 | P1 | 楼盘管理 | B+ | 缺 UI |
| US-PROPERTY-010 | P1 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-011 | P1 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-012 | P1 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-013 | P1 | 房源管理 | B+ | 缺 UI |
| US-PROPERTY-014 | P1 | 房源管理 | B+ | 缺 UI |
| US-CLIENT-020 | P1 | 客源管理 | A | 无 |
| US-CLIENT-021 | P1 | 客源管理 | A | 无 |
| US-CLIENT-022 | P1 | 客源管理 | A | 无 |
| US-CLIENT-023 | P1 | 客源管理 | A | 无 |
| US-CLIENT-024 | P1 | 客源管理 | B+ | 缺 UI |
| US-ORG-010 | P1 | 组织人事 | B+ | 缺 UI |
| US-ORG-011 | P1 | 组织人事 | B+ | 缺 UI |
| US-ORG-012 | P1 | 组织人事 | B+ | 缺 UI |
| US-PERMISSION-010 | P1 | 权限管理 | B+ | 缺 UI |
| US-PERMISSION-011 | P1 | 权限管理 | B+ | 缺 UI |
| US-SETTING-010 | P1 | 系统配置 | C | 缺 UI引用文件缺失 |
| US-SETTING-011 | P1 | 系统配置 | C | 缺 UI引用文件缺失 |
| US-SETTING-012 | P1 | 系统配置 | C | 缺 UI引用文件缺失 |
| US-SYSTEM-010 | P1 | 系统管理(运营后台) | B | 缺 DATA_MODEL缺 UI |
| US-SYSTEM-011 | P1 | 系统管理(运营后台) | B | 缺 DATA_MODEL缺 UI |
| US-RELEASE-010 | P1 | 客户端发布 | B | 缺 DATA_MODEL缺 UI |
| US-RELEASE-011 | P1 | 客户端发布 | B | 缺 DATA_MODEL缺 UI |
| US-PROPERTY-020 | P2 | 房源管理 | C | 缺 DATA_MODEL缺 UI验收占位 |
| US-PROPERTY-021 | P2 | 房源管理 | C | 缺 DATA_MODEL缺 UI验收占位 |
| US-COMPLEX-020 | P2 | 楼盘管理 | C | 缺 DATA_MODEL缺 UI验收占位 |
| US-CLIENT-030 | P2 | 客源管理 | C | 缺 UI验收占位 |
| US-CLIENT-031 | P2 | 客源管理 | C | 缺 UI验收占位 |
| US-CLIENT-032 | P2 | 客源管理 | C | 缺 UI验收占位 |
| US-ORG-020 | P2 | 组织人事 | C | 缺 UI验收占位 |
| US-ORG-021 | P2 | 组织人事 | C | 缺 UI验收占位 |
| US-ORG-022 | P2 | 组织人事 | C | 缺 UI验收占位 |
| US-SETTING-020 | P2 | 系统配置 | C | 缺 DATA_MODEL缺 UI验收占位引用文件缺失 |
| US-SETTING-021 | P2 | 系统配置 | C | 缺 DATA_MODEL缺 UI验收占位引用文件缺失 |
| US-SYSTEM-020 | P2 | 系统管理(运营后台) | C | 缺 DATA_MODEL缺 UI验收占位 |
| US-SYSTEM-021 | P2 | 系统管理(运营后台) | C | 缺 DATA_MODEL缺 UI验收占位 |
## 6) P0 任务的 OpenCode 可执行提示词(按执行顺序)
### US-ACCOUNT-001 经纪人管理员使用账号密码登录系统
- 阶段:**P0**
- 模块:**用户登录**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 账号密码登录
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/登录管理/登录_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-ACCOUNT-001
【任务标题】经纪人管理员使用账号密码登录系统
【阶段】P0
【模块】用户登录
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 账号密码登录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/登录管理/登录_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
输入正确账号密码后跳转首页;密码错误时展示"账号或密码错误"提示连续错误5次后账号锁定提示登录成功后 Token 写入 Cookie
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-ACCOUNT-002 系统识别多租户子域名域名路由
- 阶段:**P0**
- 模块:**用户登录**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 多租户识别
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-ACCOUNT-002
【任务标题】系统识别多租户子域名域名路由
【阶段】P0
【模块】用户登录
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 多租户识别
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
访问不同子域名时系统自动切换对应租户 Schema非法/不存在子域名返回404页面跨租户请求被拦截并返回403
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-ACCOUNT-003 系统管理 Token 与会话超时
- 阶段:**P0**
- 模块:**用户登录**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - Token 管理/会话超时
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-ACCOUNT-003
【任务标题】系统管理 Token 与会话超时
【阶段】P0
【模块】用户登录
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - Token 管理/会话超时
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_账号密码_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/登录_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/登录管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
会话超时后自动跳转登录页Token 刷新机制正常工作;登出后 Token 立即失效,再次请求跳转登录页
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-ORG-001 管理员维护公司组织结构部门门店树
- 阶段:**P0**
- 模块:**组织人事**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 公司组织结构(部门/门店树)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-ORG-001
【任务标题】管理员维护公司组织结构部门门店树
【阶段】P0
【模块】组织人事
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 公司组织结构(部门/门店树)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
支持新增/编辑/删除部门和门店节点;组织树以层级结构展示(公司→区域→门店→小组);删除有员工的部门时系统提示并阻止操作;组织结构变更实时反映在员工选择器弹层中
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-ORG-002 管理员查看与维护员工列表
- 阶段:**P0**
- 模块:**组织人事**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工列表/员工详情
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-ORG-002
【任务标题】管理员查看与维护员工列表
【阶段】P0
【模块】组织人事
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工列表/员工详情
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
员工列表支持按姓名/手机号关键词搜索;支持按部门/状态筛选;列表展示员工姓名/所属门店/职位/状态等字段;点击员工姓名跳转员工详情页
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-ORG-003 管理员办理员工入职并创建系统账号
- 阶段:**P0**
- 模块:**组织人事**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工入职/账号创建
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-ORG-003
【任务标题】管理员办理员工入职并创建系统账号
【阶段】P0
【模块】组织人事
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工入职/账号创建
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/组织人事技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
入职表单必填字段(姓名/手机号/所属门店/职位)校验;创建账号后系统自动生成登录密码并可发送给员工;新员工账号立即可登录系统;员工账号与组织树节点正确关联
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PERMISSION-001 管理员配置角色预设角色自定义角色
- 阶段:**P0**
- 模块:**权限管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色管理(预设角色+自定义角色)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PERMISSION-001
【任务标题】管理员配置角色预设角色自定义角色
【阶段】P0
【模块】权限管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色管理(预设角色+自定义角色)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
系统预设角色(经纪人/店长/管理员等)不可删除但可复制;支持创建自定义角色并配置功能权限;角色名称在同租户内唯一;删除自定义角色前需解除所有人员绑定
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PERMISSION-002 管理员查看与管理人员权限列表
- 阶段:**P0**
- 模块:**权限管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 人员权限列表
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PERMISSION-002
【任务标题】管理员查看与管理人员权限列表
【阶段】P0
【模块】权限管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 人员权限列表
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
人员权限列表展示员工姓名/所属部门/当前角色;支持按部门/角色筛选;列表支持分页;点击员工行可查看详细权限配置
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PERMISSION-003 管理员批量为员工分配角色
- 阶段:**P0**
- 模块:**权限管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色批量分配
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PERMISSION-003
【任务标题】管理员批量为员工分配角色
【阶段】P0
【模块】权限管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色批量分配
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
勾选多名员工后可批量指定角色批量分配成功后所有选中员工角色立即生效分配后员工下次登录或刷新页面权限即更新Redis权限快照失效重载
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PERMISSION-004 系统执行功能权限控制菜单级
- 阶段:**P0**
- 模块:**权限管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 功能权限(菜单级)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PERMISSION-004
【任务标题】系统执行功能权限控制菜单级
【阶段】P0
【模块】权限管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 功能权限(菜单级)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
无权限的菜单在导航中不展示直接访问无权限URL返回403页面权限变更后Redis缓存自动失效用户下一次请求即应用新权限经纪人无法访问管理员专属功能页
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PERMISSION-005 系统执行数据权限控制部门个人全司
- 阶段:**P0**
- 模块:**权限管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 数据权限(部门/个人/全司)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PERMISSION-005
【任务标题】系统执行数据权限控制部门个人全司
【阶段】P0
【模块】权限管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 数据权限(部门/个人/全司)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/权限管理系统技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
经纪人只能看到自己名下的房源和客源数据店长可见本门店所有员工的房源和客源管理员可见全司数据不同数据权限级别的用户查询结果严格隔离不可通过URL参数绕过
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-SETTING-001-A 管理员配置可选枚举值 Lookup Items
- 阶段:**P0**
- 模块:**系统配置**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-A
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `lookup_items` DDL
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-SETTING-001-A
【任务标题】管理员配置可选枚举值 Lookup Items
【阶段】P0
【模块】系统配置
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-A
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `lookup_items` DDL
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
- 管理员进入「系统设置 → 参数配置」,页面按模块分组展示所有可配置参数项(客源来源、跟进目的、房源来源)
- 可新增自定义选项,新选项追加至列表末尾并立即对经纪人录入下拉生效(刷新后)
- 系统预制选项(`is_system=True`)不可删除,仅可停用;停用后前端下拉不再展示,历史数据保留并标注「已停用」
- 支持调整选项排序(拖拽或修改排序值),排序变更在保存后前端生效
- 配置保存时主动失效 Redis 缓存 key `{tenant_schema}:setting:lookup:{module}.{key}`,最长 5 分钟延迟
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-SETTING-001-B 管理员配置房源字段必填规则
- 阶段:**P0**
- 模块:**系统配置**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-B
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `field_requirement_rules` DDL`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-SETTING-001-B
【任务标题】管理员配置房源字段必填规则
【阶段】P0
【模块】系统配置
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-B
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `field_requirement_rules` DDL、`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
- 管理员进入「系统设置 → 房源字段规则」,以「用途 × 交易状态」矩阵展示配置(住宅×出售、住宅×出租)
- 每个字段显示当前规则(必填 / 选填 / 隐藏),以三态 Toggle 或 Radio 形式编辑,保存后生效
- 规则应用于录入界面:必填字段显示「*」标记,提交时为空则拦截;隐藏字段不渲染
- 规则变更仅影响新录入,不影响存量房源数据
- MVP 可配置字段:朝向、装修情况、楼层、建筑面积、套内面积、房型、产权年限、车位数
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-SETTING-001-C 管理员配置客源录入规则
- 阶段:**P0**
- 模块:**系统配置**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-C
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `tenant_settings` DDL`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- UIN/A
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-SETTING-001-C
【任务标题】管理员配置客源录入规则
【阶段】P0
【模块】系统配置
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/系统配置/系统配置模块PRD.md` - US-SETTING-001-C
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL.md`(待 Atlas 补充 `tenant_settings` DDL、`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/系统设置技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
- 管理员进入「系统设置 → 客源规则」,可配置新增私客时的查重范围:本人(默认)/ 本部门 / 全公司
- 查重规则实时生效:经纪人录入手机号失焦后,系统按当前查重范围加密比对,若重复则提示归属人和录入时间,经纪人可选「仍然录入」或「放弃」
- 可配置客源必填字段开关(等级、来源默认必填;总价区间、居室需求、购房目的默认选填)
- 配置保存时主动失效 Redis 缓存 key `{tenant_schema}:setting:client_rules`,经纪人下次打开录入界面即应用最新规则
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-COMPLEX-001 管理员录入与维护楼盘基础信息
- 阶段:**P0**
- 模块:**楼盘管理**
- 完备度:**B**
- 引用缺失:`UI_DESIGN/楼盘管理/楼盘详情_UI.md`
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘信息管理
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/楼盘管理/楼盘详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-COMPLEX-001
【任务标题】管理员录入与维护楼盘基础信息
【阶段】P0
【模块】楼盘管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘信息管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/楼盘管理/楼盘详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【输入缺口】
- 缺少文件UI_DESIGN/楼盘管理/楼盘详情_UI.md
- 若缺口阻塞实现,请先输出“阻塞清单 + 最小替代方案”,再继续实现可落地部分。
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
可录入楼盘名称、地址、楼栋、结构等基础字段;保存成功后楼盘出现在楼盘列表;必填字段未填时高亮错误提示;楼盘编号系统自动生成且唯一
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-COMPLEX-002 经纪人查看楼盘列表与详情
- 阶段:**P0**
- 模块:**楼盘管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘列表/楼盘详情
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/楼盘管理/楼盘列表_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-COMPLEX-002
【任务标题】经纪人查看楼盘列表与详情
【阶段】P0
【模块】楼盘管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 楼盘列表/楼盘详情
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/楼盘管理/楼盘列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
楼盘列表支持按名称/地址关键词搜索支持分页默认20条/页);点击楼盘名称跳转详情页;详情页展示楼盘基本信息、楼栋结构信息
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-COMPLEX-003 管理员维护区域管理城区商圈
- 阶段:**P0**
- 模块:**楼盘管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 区域管理
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-COMPLEX-003
【任务标题】管理员维护区域管理城区商圈
【阶段】P0
【模块】楼盘管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 区域管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/区域管理_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/楼盘详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/楼盘管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
可新增/编辑/删除城区和商圈;商圈必须归属于城区;区域数据被房源和客源模块正确关联引用;删除有关联数据的区域时系统给出警告
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-001 经纪人录入二手住宅出售出租
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 录入住宅(二手出售/出租)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/新增房源_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-001
【任务标题】经纪人录入二手住宅出售出租
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 录入住宅(二手出售/出租)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/新增房源_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
可在3分钟内完成住宅基本信息录入必填字段楼盘/楼层/面积/价格)未填时高亮错误提示;保存成功后跳转房源详情页并显示"保存成功";录入后即刻出现在房源列表
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-002 经纪人查看与筛选房源列表
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源列表(二手&租赁)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/房源列表_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-002
【任务标题】经纪人查看与筛选房源列表
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源列表(二手&租赁)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/房源列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
列表支持按楼盘名/业主姓名/电话/房源编号关键词搜索;支持状态/区域/价格/房型多维度组合筛选列表分页默认20条/页且89000条数据下查询响应<2秒支持导出当前筛选结果为Excel
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-003 经纪人查看房源详情页
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源详情页
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/房源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-003
【任务标题】经纪人查看房源详情页
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源详情页
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/房源管理/房源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
详情页完整展示基本信息、产证信息、交易信息;号码默认打码,点击"查看号码"后解密展示并记录审计日志;页面各功能 Tab 可正常切换
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-004 经纪人写入与查看房源跟进记录
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 跟进记录(全部/写入/修改/其他)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-004
【任务标题】经纪人写入与查看房源跟进记录
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 跟进记录(全部/写入/修改/其他)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
跟进记录按时间线倒序展示;支持写入跟进/修改跟进/其他跟进(钥匙/委托/实勘子Tab切换跟进内容最少6字校验写入成功后记录实时出现在列表顶部
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-005 经纪人管理房源图片上传分类排序
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 图片管理(相册上传/分类/排序)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-005
【任务标题】经纪人管理房源图片上传分类排序
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 图片管理(相册上传/分类/排序)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
支持上传 bmp/jpg/png/gif 格式图片单文件最大20MB上传成功后自动按分类展示支持拖拽排序封面图可手动指定
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-006 经纪人管理业主联系人
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 业主联系人管理
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-006
【任务标题】经纪人管理业主联系人
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 业主联系人管理
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
支持新增/编辑业主联系人(姓名/电话/微信);手机号加密存储,展示时默认打码;可查看同业主名下其他房源;至少保留一个联系人
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-007 经纪人调整房源价格
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 价格调整(调价/调价记录)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-007
【任务标题】经纪人调整房源价格
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 价格调整(调价/调价记录)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
调价弹窗需填写新价格和调价原因;调价成功后房源列表和详情页价格实时更新;调价记录以时间线形式留存且不可删除;调价幅度在列表中以"降价XX万"标签展示
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-PROPERTY-008 经纪人变更房源状态
- 阶段:**P0**
- 模块:**房源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源状态变更(在售/暂缓/成交/下架)
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-PROPERTY-008
【任务标题】经纪人变更房源状态
【阶段】P0
【模块】房源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源状态变更(在售/暂缓/成交/下架)
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增房源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/房源详情_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/房源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
状态变更严格遵循状态机流转规则(在售→暂缓/成交/下架);每次状态变更需填写原因;状态变更后列表状态标签实时更新;状态变更记录写入跟进日志
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-001 经纪人录入新私客
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 1经纪人录入新私客5.2 录入私客
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/新增客源_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-001
【任务标题】经纪人录入新私客
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 1经纪人录入新私客5.2 录入私客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/新增客源_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
录入页面可通过顶部导航「客源」→「+新增私客」或右侧快捷入口「增客」触达联系人1必填姓名/性别/电话1联系人2起可增加删除基础信息必填字段状态/用途/等级/来源)缺填时高亮错误并定位到第一个错误处;保存成功后跳转该客源详情页并显示"保存成功"提示
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-002 经纪人查看与筛选私客列表全部求购求租
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2/3/4经纪人查看与筛选私客列表5.1 客源列表
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-002
【任务标题】经纪人查看与筛选私客列表全部求购求租
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2/3/4经纪人查看与筛选私客列表5.1 客源列表
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
顶部Tab导航私客/资料客/营销客/成交客/公客及二级Tab求购/求租/暂缓/全部私客)可正常切换;搜索框支持按客源姓名/号码/号码后4位/客源编号/备注检索;筛选栏支持状态/等级/位置/价格/房室等多维度组合筛选列表底部实时显示当前筛选总条数分页默认20条/页89000条数据量下查询<2秒
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-003 经纪人批量操作私客列表
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2列表批量操作5.1.3 批量操作
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-003
【任务标题】经纪人批量操作私客列表
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2列表批量操作5.1.3 批量操作
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源列表_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
勾选客源后激活批量操作按钮(修改相关方/修改来源/删除客源/合并客户);批量删除执行软删除,可在"已删客源"中查看批量修改相关方成功后列表归属人字段实时刷新列表支持导出当前筛选结果为ExcelCelery异步处理
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-004 经纪人查看私客详情页
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 6经纪人查看私客详情页Story 15经纪人查看客源信息概览面板
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-004
【任务标题】经纪人查看私客详情页
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 6经纪人查看私客详情页Story 15经纪人查看客源信息概览面板
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
详情页顶部展示需求标题+联系人姓名+带看进度标签;右侧固定信息概览面板展示客户编号/委托日期/需求类型等字段且不随页面滚动消失主内容区Tab导航需求信息/跟进记录/带看/客源解读/智能配房)默认激活"需求信息"Tab右侧面板三个主操作按钮打电话/写跟进/报备带看)可正常触发对应流程
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-005 经纪人查看与编辑需求信息
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 7经纪人查看与编辑需求信息
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-005
【任务标题】经纪人查看与编辑需求信息
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 7经纪人查看与编辑需求信息
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
需求信息Tab展示总价/面积/居室/装修/朝向/楼层/楼龄/意向商圈/意向小区等字段(三栏布局);字段值为空时显示"-"占位符;右上角「编辑」链接点击后字段转为输入框/选择器;保存成功后返回详情页并刷新需求信息区块
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-006 经纪人写入与查看跟进记录
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 8经纪人写入与查看跟进记录
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-006
【任务标题】经纪人写入与查看跟进记录
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 8经纪人写入与查看跟进记录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
跟进记录分5个子Tab全部/写入跟进/敏感信息跟进/修改跟进/其他跟进全部Tab支持时间范围筛选及「有录音」「有图片」快速过滤跟进记录以时间线形式按日期分组倒序展示写入跟进时跟进目的支持23项多选跟进内容最少6字校验系统自动生成的操作日志如新增私客/状态变更)出现在"其他跟进"Tab
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-007 经纪人管理带看记录预约带看新增带看
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 9经纪人管理带看记录
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-007
【任务标题】经纪人管理带看记录预约带看新增带看
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 9经纪人管理带看记录
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
带看Tab分"预约"和"带看"两个子Tab新增带看表单必填字段带看时间/带看情况≥6字/带看房源≥1套校验通过才可提交带看记录以时间线展示含带看房源蓝色可点击链接和带看进度标签员工选择器弹层支持组织树搜索和多选带看房源选择器支持按编号/楼盘/业主关键词搜索
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-008 经纪人管理客源联系人查看新增编辑
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 23经纪人管理客源联系人
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-008
【任务标题】经纪人管理客源联系人查看新增编辑
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 23经纪人管理客源联系人
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
联系人面板默认打码显示电话("+86 135\*\*\*\*\*\*\*\*"),点击「查看号码」后展示完整号码并写入敏感信息跟进日志;新增联系人必填字段(姓名/称呼/电话1校验编辑联系人时电话1需点击「查看号码」后才可编辑保存成功后联系人面板实时刷新
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-009 经纪人修改客源等级
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 17经纪人修改客源等级
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-009
【任务标题】经纪人修改客源等级
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 17经纪人修改客源等级
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
点击「改等级」触发弹窗展示当前等级只读和新等级下拉选择器A急迫/B较强/C一般/D较弱/E暂不关注新等级未选择时「确定」按钮置灰保存成功后信息概览面板等级标签实时更新操作日志中自动新增"改等级"记录
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-010 经纪人修改客源状态
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 18经纪人修改客源状态
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-010
【任务标题】经纪人修改客源状态
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 18经纪人修改客源状态
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
点击「改状态」触发弹窗,展示当前状态(只读)、新状态下拉(求购/求租/租购)、等级下拉和必填更改理由文本框;新状态未选或理由未填时「确定」按钮置灰;保存成功后信息概览面板状态标签实时更新;操作日志新增"改状态"记录(含更改理由)
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-011 经纪人手动将私客转为公客
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 19经纪人手动将私客转为公客
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-011
【任务标题】经纪人手动将私客转为公客
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 19经纪人手动将私客转为公客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
点击「转公客」触发弹窗状态和等级均为必填确认后客源从私客列表移除并进入公客池client_type='public'transfer_to_public_type='manual');操作日志新增"转公客"记录(含操作人/操作时间);权限控制:仅归属人、首录人或有管理权限的店长/经理可操作
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-012 经纪人将私客转为成交客
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 20经纪人将私客转为成交客
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-012
【任务标题】经纪人将私客转为成交客
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 20经纪人将私客转为成交客
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
点击「转成交」触发"客户成交"弹窗,必填字段(状态/房源类型/成交房源/成交日期/成交价格/成交方)全部填写后「确定」按钮高亮;成交房源选择浮层支持关键词搜索和区域/状态筛选;提交后客源移入成交客列表,状态更新为"成交";操作日志新增"转成交"记录(含成交信息摘要)
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-013 经纪人将客源标记为无效
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 21经纪人将客源标记为无效
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-013
【任务标题】经纪人将客源标记为无效
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 21经纪人将客源标记为无效
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
点击「转无效」触发弹窗,展示蓝色提示框说明"将把所有电话标记无效",无效原因单选(号码无效/同行中介/广告推销/客户无意向/其他)默认选中"号码无效";确认后所有联系人电话标记为无效,客源从私客活跃列表移除;操作日志新增"转无效"记录(含无效原因);权限控制:仅归属人、首录人或有管理权限者可操作
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-014 经纪人编辑客源完整信息联系人基础信息需求
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 14经纪人编辑客源信息
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/编辑客源_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-014
【任务标题】经纪人编辑客源完整信息联系人基础信息需求
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 14经纪人编辑客源信息
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/编辑客源_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
编辑页面分三个Tab联系人/基础信息/二手或新房或租房联系人Tab的电话1需点击「查看号码」后才可编辑旁边提供「标记无效」链接基础信息Tab包含需求类型/购房目的/付款方式/名下房产/贷款记录等扩展字段;保存时校验所有必填字段,成功后返回详情页并刷新需求信息区块
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-015 经纪人管理客源相关员工查看编辑归属人首录人
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**A**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 24经纪人管理客源相关员工
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-015
【任务标题】经纪人管理客源相关员工查看编辑归属人首录人
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 24经纪人管理客源相关员工
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI_Design文档`Project/fonrey/UI_DESIGN/客源管理/客源详情_UI.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
相关员工面板展示首录人/归属人的所属门店+小组+姓名及参与时间;点击「编辑」触发弹窗,首录人和归属人均为必填下拉选择器(支持搜索姓名);保存后面板实时更新,操作日志新增"修改相关员工"记录;权限控制:跨团队/跨店修改需店长及以上权限
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-016 系统自动将超时无跟进的私客转为公客
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - 关键业务规则:私客自动转公
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-016
【任务标题】系统自动将超时无跟进的私客转为公客
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - 关键业务规则:私客自动转公
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
Celery Beat 定时任务每日凌晨执行超过运营配置天数如30天无跟进且非保护客的私客自动转入公客池transfer_to_public_type='auto');自动转公后 client_status_logs 生成一条 to_public 记录;即将过期的私客在列表中显示"即将掉公"提示标签
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```
### US-CLIENT-017 系统自动检测重复客源并提示
- 阶段:**P0**
- 模块:**客源管理**
- 完备度:**B+**
**引用文档**
- - 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2顶部重复检测提示关键业务规则私客手机号唯一性
- - 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- - 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- - 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
```text
你是 OpenCode 编程代理。请在当前仓库根目录完成下面任务。
【任务ID】US-CLIENT-017
【任务标题】系统自动检测重复客源并提示
【阶段】P0
【模块】客源管理
【输入文档(必须阅读)】
- 参考PRD文档`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2顶部重复检测提示关键业务规则私客手机号唯一性
- 参考DATA_MODEL文档`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源列表_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/新增客源_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/客源详情_UI.html`
- 参考UI静态页面`Project/fonrey/UI_DESIGN/编辑客源_UI.html`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/客源管理技术方案.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/TECH_STACK.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/测试规范.md`
- 参考TECH_STACK文档`Project/fonrey/TECH_STACK/API_CONTRACT.md`
【必须遵循项目约束】
- 技术栈固定Django + HTMX + Alpine.js + Tailwind + PostgreSQL + Redis + Celery + R2。禁止引入 React/Vue。
- 必须保持多租户边界tenant 路由在 config/urls.pypublic 路由在 config/urls_public.py。
- Django Admin 全环境弃用:不得引入 django.contrib.admin / admin.site.urls。
- HTMX 局部请求必须按片段返回;出错通过 HX-Trigger 触发 toast。
- 涉及 HTMX 视图测试需带 HTTP_HX_REQUEST=true。
- 集成测试必须使用 TenantClient禁止 Django 原生 Client()。
- PII手机号等必须加密存储core/encryption.py展示默认脱敏。
- 测试默认 settings 使用 config.settings.testing且 CELERY_TASK_ALWAYS_EAGER=True。
- 必须遵守 `Project/fonrey/TECH_STACK/API_CONTRACT.md`:接口路径/方法/参数/响应结构/错误码与契约一致;禁止擅自变更契约。
- 如实现与 API 契约冲突:先按契约实现,并在交付中列出差异与影响;不得未确认即改契约。
- `UI_DESIGN/` 下已审阅的静态页面(`.html`/`.md`)属于强约束输入:必须以其为实现基线,禁止擅自重做页面信息架构、主布局、字段顺序与关键交互。
- 若实现与 UI 静态页存在冲突:先按 UI 静态页落地,并在交付中列出冲突点;不得在未确认前自行改版 UI。
【实现步骤】
1) 先输出你将变更的文件清单create/modify精确到路径
2) 先对照 `Project/fonrey/TECH_STACK/API_CONTRACT.md`,列出本任务涉及接口的契约核对项(路径/方法/参数/响应/错误码)。
3) 先对照 UI 静态页(如该任务 UI=N/A需在交付中明确说明列出必须保持一致的页面结构与关键交互。
4) 实现最小可交付版本,不做需求外扩展,不得擅自重做 UI 信息架构,不得擅自改动 API 契约。
5) 补齐/更新测试(单测+必要集成测试)。
6) 执行测试并报告结果。
【验收标准(原始)】
录入/编辑联系人手机号时实时通过phone_hash检测与现有私客/成交客/公客的重复;客源列表顶部实时显示"私客与成交客重复XX"和"私客与公客重复XX"蓝色可点击链接;点击重复数字链接可查看重复名单
【必须执行测试命令】
- pytest -q
- 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景
【交付格式】
- 变更文件列表
- API 契约核对清单(逐条对应 API_CONTRACT已对齐/偏差项)
- API 契约冲突说明(如无冲突写“无”)
- 冲突接口Method + Path
- 当前契约要求(来自 API_CONTRACT
- 实现差异 / 建议改动
- 影响面(前端/后端/测试/存量数据)
- 回滚方案
- UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项)
- 核心实现说明(与验收标准逐条对应)
- 测试命令与结果
- 未完成项/阻塞项
```