# TASK_AGENT_READY_P0(仅 P0) > 从 `PRD/TASK_AGENT_READY.md` 按“先基础设施 → 再业务模块”重排提取。 ## 执行顺序说明 ### A. 基础设施(先做) - 用户登录 - 组织人事 - 权限管理 - 系统配置 ### B. 业务模块(后做) - 楼盘管理 - 房源管理 - 客源管理 **P0 任务总数:42** ## 模块分布 - 用户登录: 3 - 组织人事: 3 - 权限管理: 5 - 系统配置: 3 - 楼盘管理: 3 - 房源管理: 8 - 客源管理: 17 # TASK Agent Ready Prompts(OpenCode 执行版) > 生成时间:2026-04-28 16:01:37 > 来源文件:`PRD/TASK.md` > 目标:把每条 US 转成可直接交给 OpenCode 的执行提示词。 ## 1) 总体结论 - 任务总数:**83** - 完备度分级:A=24,B+=38,B=5,C=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.py,public 路由在 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。 ## 4) 通用执行模板(复制后替换 US 内容) ```text 你是 OpenCode 编程代理。请在当前仓库根目录实现以下任务。 【任务ID】 【任务标题】 【阶段】 【模块】<模块名> 【输入文档】 - 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:已对齐/偏差项) - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-ACCOUNT-002 系统识别多租户子域名域名路由 - 阶段:**P0** - 模块:**用户登录** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 多租户识别 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.md` - UI:N/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-ACCOUNT-002 【任务标题】系统识别多租户子域名域名路由 【阶段】P0 【模块】用户登录 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - 多租户识别 - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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:N/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-ACCOUNT-003 【任务标题】系统管理 Token 与会话超时 【阶段】P0 【模块】用户登录 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/登录管理/用户登录管理模块PRD.md` - Token 管理/会话超时 - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_LOGIN.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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-ORG-001 管理员维护公司组织结构部门门店树 - 阶段:**P0** - 模块:**组织人事** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 公司组织结构(部门/门店树) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-ORG-002 管理员查看与维护员工列表 - 阶段:**P0** - 模块:**组织人事** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工列表/员工详情 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-ORG-003 管理员办理员工入职并创建系统账号 - 阶段:**P0** - 模块:**组织人事** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/组织人事管理/组织人事管理模块PRD.md` - 员工入职/账号创建 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_ORG.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PERMISSION-001 管理员配置角色预设角色自定义角色 - 阶段:**P0** - 模块:**权限管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色管理(预设角色+自定义角色) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PERMISSION-002 管理员查看与管理人员权限列表 - 阶段:**P0** - 模块:**权限管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 人员权限列表 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PERMISSION-003 管理员批量为员工分配角色 - 阶段:**P0** - 模块:**权限管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 角色批量分配 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PERMISSION-004 系统执行功能权限控制菜单级 - 阶段:**P0** - 模块:**权限管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 功能权限(菜单级) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PERMISSION-005 系统执行数据权限控制部门个人全司 - 阶段:**P0** - 模块:**权限管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/权限管理/权限管理模块PRD.md` - 数据权限(部门/个人/全司) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PERMISSION.md` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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) - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - UI:N/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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-COMPLEX-003 管理员维护区域管理城区商圈 - 阶段:**P0** - 模块:**楼盘管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 区域管理 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.md` - UI:N/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-COMPLEX-003 【任务标题】管理员维护区域管理城区商圈 【阶段】P0 【模块】楼盘管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/房源管理/楼盘管理模块PRD.md` - 区域管理 - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_COMPLEX.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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PROPERTY-004 经纪人写入与查看房源跟进记录 - 阶段:**P0** - 模块:**房源管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 跟进记录(全部/写入/修改/其他) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md` - UI:N/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-PROPERTY-004 【任务标题】经纪人写入与查看房源跟进记录 【阶段】P0 【模块】房源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 跟进记录(全部/写入/修改/其他) - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PROPERTY-005 经纪人管理房源图片上传分类排序 - 阶段:**P0** - 模块:**房源管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 图片管理(相册上传/分类/排序) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md` - UI:N/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-PROPERTY-005 【任务标题】经纪人管理房源图片上传分类排序 【阶段】P0 【模块】房源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 图片管理(相册上传/分类/排序) - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PROPERTY-006 经纪人管理业主联系人 - 阶段:**P0** - 模块:**房源管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 业主联系人管理 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md` - UI:N/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-PROPERTY-006 【任务标题】经纪人管理业主联系人 【阶段】P0 【模块】房源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 业主联系人管理 - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PROPERTY-007 经纪人调整房源价格 - 阶段:**P0** - 模块:**房源管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 价格调整(调价/调价记录) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md` - UI:N/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-PROPERTY-007 【任务标题】经纪人调整房源价格 【阶段】P0 【模块】房源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 价格调整(调价/调价记录) - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-PROPERTY-008 经纪人变更房源状态 - 阶段:**P0** - 模块:**房源管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源状态变更(在售/暂缓/成交/下架) - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_PROPERTY.md` - UI:N/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-PROPERTY-008 【任务标题】经纪人变更房源状态 【阶段】P0 【模块】房源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/房源管理/房源管理模块PRD.md` - 房源状态变更(在售/暂缓/成交/下架) - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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) 执行测试并报告结果。 【验收标准(原始)】 勾选客源后激活批量操作按钮(修改相关方/修改来源/删除客源/合并客户);批量删除执行软删除,可在"已删客源"中查看;批量修改相关方成功后列表归属人字段实时刷新;列表支持导出当前筛选结果为Excel(Celery异步处理) 【必须执行测试命令】 - pytest -q - 如有 HTMX 局部请求:补充 HTTP_HX_REQUEST=true 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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` - - 参考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` - 参考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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ``` ### US-CLIENT-016 系统自动将超时无跟进的私客转为公客 - 阶段:**P0** - 模块:**客源管理** - 完备度:**B+** **引用文档** - - 参考PRD文档:`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - 关键业务规则:私客自动转公 - - 参考DATA_MODEL文档:`Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md` - UI:N/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-CLIENT-016 【任务标题】系统自动将超时无跟进的私客转为公客 【阶段】P0 【模块】客源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - 关键业务规则:私客自动转公 - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - 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:N/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-CLIENT-017 【任务标题】系统自动检测重复客源并提示 【阶段】P0 【模块】客源管理 【输入文档(必须阅读)】 - 参考PRD文档:`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` - Story 2:顶部重复检测提示;关键业务规则:私客手机号唯一性 - 参考DATA_MODEL文档:`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.py,public 路由在 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 的测试场景 【交付格式】 - 变更文件列表 - UI 一致性核对清单(逐条对应 UI 静态页:已对齐/偏差项) - 核心实现说明(与验收标准逐条对应) - 测试命令与结果 - 未完成项/阻塞项 ```