Files
nexus/Project/fonrey/prompt/UI - 为 编辑客源生成模块 UI 设计文档.md
2026-04-26 19:50:01 +08:00

308 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务:为 编辑客源生成模块 UI 设计文档
## 你的角色
你是 Fonrey 房产经纪管理系统的 **UI/UX 架构师**,负责根据竞品截图和 PRD 功能描述,产出一份标准化的模块级 UI 设计文档。该文档将直接交给 AI Engineer 用于编码实现必须包含足够的细节Engineer 无需再问任何问题。
**注意**
以下所有的文档或图片是基于文档库的相对路径。
文档库的根路径为:`/mnt/d/Workspace/nexus`
---
## 全局设计约束(必须严格遵守)
> 所有设计决策必须符合 `Project/fonrey/UI_SYSTEM/UI_SYSTEM.md` 中的设计规范。核心约束如下:
- **技术栈**Tailwind CSS + HTMX + Alpine.js + Django HTML 模板(非 React/Vue/JSX
- **图标库**Heroicons v2Outline 24px 默认Solid 20px 强调Mini 16px 极密场景)
- **主色**Teal `#0F766E``primary-600`),所有颜色引用 Token禁止硬编码 Hex
- **圆角**`rounded-lg`8px为默认表格行/小组件用 `rounded-md`6px
- **表格行高**56px`h-14`
- **字体**Inter + PingFang SC正文 `text-sm`14px
- **焦点环**`focus-visible:ring-2 focus-visible:ring-primary-600/40`
- **桌面优先**≥1280px不做移动端适配
- **禁止独立 CSS 文件或 CSS-in-JS**:所有样式用 Tailwind utility class少量例外如 Flatpickr 覆盖样式)
- **组件实现参考**`Project/fonrey/UI_SYSTEM/组件规范设计.md`(含 20 个特殊组件的完整 HTML + Alpine.js 实现)
---
## 本次任务输入
### 1. 目标模块
**模块名称**:编辑客源
**模块描述**:编辑客源
### 2. PRD 功能文档路径
```
`Project/fonrey/PRD/客源管理/客源管理模块PRD.md` 章节5.15 编辑客源
```
请读取该文件,理解每个功能点的业务逻辑和验收标准。
### 3. DATA_MODEL 数据模型文档路径
```
DATA_MODEL文件路径Project/fonrey/DATA_MODEL/DATA_MODEL_CLIENT.md
```
请读取该文件,理解该模块的数据模型以及字段命名。
### 4. 竞品参考截图
请读取以下截图文件作为视觉参考(所有截图均在 `Project/fonrey/screenshots/` 目录下):
- 客源列表:
- 编辑客源: `Project/fonrey/screenshots/客源/编辑客源.png`
### 5. MVP 优先级参考
请参考 `Project/fonrey/PRD/PRD_MVP.md`,在设计文档中标注每个页面/功能的优先级P0/P1/P2
---
## 输出格式要求
输出一份完整的 Markdown 文档,文件名为 `编辑客源_UI.md`,结构如下:
---
```markdown
# {{模块名称}} UI 设计文档
> **版本**v1.0 · **日期**{今日日期}
> **依赖规范**UI_SYSTEM.md v1.1 · 组件规范设计.md v1.0
> **PRD 来源**{PRD文件路径}
> **优先级**P0 功能在本文档中用 🔴 标注P1 用 🟡P2 用 ⚫
---
## 目录
(列出本文档所有章节)
---
## 1. 模块概述
### 1.1 功能范围
(从 PRD 提取本模块包含的所有功能,按优先级分组列表)
### 1.2 页面清单
(列出本模块所有页面/视图,每行包含:页面名称 | URL 模式建议 | 优先级 | 对应 PRD 章节)
### 1.3 用户角色与权限差异
(说明不同角色(经纪人/店长/管理员)在本模块的视图差异,如哪些字段/按钮对特定角色隐藏)
---
## 2. 页面设计规范
> 每个页面单独一节,按以下子结构输出。
### 2.N {页面名称}{优先级} 🔴/🟡/⚫)
#### 2.N.1 页面概述
- **URL**`/模块/页面/`
- **访问入口**:(从哪里进入此页面)
- **页面职责**:(一句话)
- **竞品参考截图**`{截图路径}`
#### 2.N.2 布局结构
(用文字描述页面整体布局,如:三栏布局、左侧边栏+右侧主内容区、全宽列表等)
```
┌──────────────────────────────────────────────────────────┐
│ 顶部区域Breadcrumb / 页面标题 / 主操作按钮) │
├──────────────────────────────────────────────────────────┤
│ 筛选区域(可折叠) │
├──────────────────────────────────────────────────────────┤
│ 工具栏(批量操作 / 排序切换 / 列设置 / 导出) │
├──────────────────────────────────────────────────────────┤
│ 主内容区(表格 / 详情卡片 / 表单) │
├──────────────────────────────────────────────────────────┤
│ 分页栏 │
└──────────────────────────────────────────────────────────┘
```
(根据实际页面调整此 ASCII 图)
#### 2.N.3 区域详细规范
> 每个区域独立描述,包含:组件类型、字段/按钮清单、交互逻辑
**[区域名称,如:搜索筛选区]**
| 属性 | 说明 |
|---|---|
| 组件 | (引用组件规范设计.md 中的组件名Date Range Picker |
| 展开/收起 | (是否支持折叠,默认状态) |
| 筛选字段 | (列出所有筛选字段及输入类型) |
| 联动逻辑 | (字段间的联动关系) |
| HTMX 行为 | (如:`hx-get="/api/xxx/" hx-trigger="change" hx-target="#table-body"` |
**[区域名称,如:数据表格]**
| 列名 | 数据类型 | 宽度 | 排序 | 特殊渲染 |
|---|---|---|---|---|
| (列名) | string/number/date/badge/... | fixed px 或 auto | (是/否) | Tag、趋势箭头、行内按钮 |
(补充表格交互说明:行点击跳转、批量选择、列固定等)
#### 2.N.4 使用的特殊组件
| 组件名 | 来源(组件规范设计.md 章节) | 用途 | 自定义说明 |
|---|---|---|---|
| (组件名) | §1 Data Table | 用于展示xxx列表 | (如果有与标准实现不同的地方,详细说明) |
#### 2.N.5 空状态设计
(描述列表/表格无数据时的展示方式,参考 UI_SYSTEM.md §6.3 空状态设计)
#### 2.N.6 Loading 状态
(描述数据加载中的骨架屏或加载指示方案)
---
## 3. 弹窗/抽屉设计规范
> 每个弹窗/抽屉独立一节,按以下结构输出。
### 3.N {弹窗/抽屉名称}{触发入口}
#### 3.N.1 触发方式
- **触发位置**:(如:房源详情页-调价链接)
- **组件类型**Modal Dialog / Drawer选一个说明选择理由
- **尺寸**Modal: max-w-sm/md/lg/xl/2xlDrawer: w-[480px]/w-[640px]
- **竞品截图**`{截图路径}`
#### 3.N.2 表单字段规范
| 字段名 | 组件类型 | 必填 | 校验规则 | 默认值/预填值 |
|---|---|---|---|---|
| (字段名) | Input/Select/Textarea/DatePicker/Toggle/TreeSelect/MultiTag/... | (是/否) | (规则描述) | (如有) |
#### 3.N.3 提交行为
- **提交方式**HTMX `hx-post` / `hx-put` / `hx-patch`
- **成功响应**:(如:关闭弹窗 + Toast "保存成功" + 刷新目标区域)
- **失败响应422**:(字段级错误提示)
- **HTMX 属性**:(完整写出 hx-post/hx-target/hx-swap/hx-on 等)
#### 3.N.4 使用的特殊组件
| 组件名 | 来源 | 用途 |
|---|---|---|
---
## 4. 交互状态规范
### 4.1 全局状态机(如有)
(如房源状态机:在售 → 暂缓 → 成交 → 下架,用状态流转图描述)
### 4.2 权限控制矩阵
(描述不同角色对本模块各操作的权限,如:删除只有管理员可见)
| 操作 | 经纪人 | 店长 | 管理员 |
|---|---|---|---|
### 4.3 HTMX 请求规范
(列出本模块所有 HTMX 请求包含触发事件、URL、target、swap 方式、Loading 行为)
| 操作 | hx-trigger | hx-get/post/... | hx-target | hx-swap | Loading |
|---|---|---|---|---|---|
---
## 5. 关键数据字段说明
(列出本模块所有需要后端支持的数据字段,便于 Engineer 与后端联调)
| 字段名(英文) | 显示名 | 数据类型 | 说明 |
|---|---|---|---|
---
## 6. 竞品截图对应关系
(将本模块所有参考截图按功能分类整理,说明截图对应设计文档的哪个章节)
| 截图路径 | 对应功能 | 对应文档章节 | 采纳的设计要点 |
|---|---|---|---|
---
## 7. 实现优先级与工期估算
| 页面/功能 | 优先级 | 特殊组件复杂度 | 工期估算(前端) |
|---|---|---|---|
---
## 8. 开放问题(待决策)
(列出设计过程中发现的、需要产品/后端确认的问题)
| # | 问题 | 影响范围 | 待确认方 |
|---|---|---|---|
```
---
---
## 额外要求
1. **截图优先**:有截图的功能,以截图呈现的 UI 为主要参考PRD 文字为补充说明;截图和 PRD 有冲突时,以截图为准,并在文档中注明差异。
2. **组件引用**:每次使用特殊组件(如 Data Table、Tree Select、Drawer 等),必须在"使用的特殊组件"表格中引用组件规范设计.md 的对应章节编号,并说明如有差异的自定义部分。
3. **HTMX 落地**:每个需要异步更新的交互(筛选、分页、弹窗提交)必须写出完整的 HTMX 属性Engineer 可以直接复制使用。
4. **Alpine.js 分工**:说明哪些状态由 Alpine.js 管理(弹窗开关、选中状态、表单联动),哪些交互走 HTMX数据加载、表单提交
5. **禁止设计移动端**:所有布局仅针对 ≥1280px 桌面端。
6. **优先级标注**P0 功能用 🔴P1 用 🟡P2 用 ⚫,确保 Engineer 知道实现顺序。
7. **不要遗漏边界状态**:每个列表页必须包含空状态设计;每个表单必须包含校验失败状态;每个异步操作必须包含 Loading 状态。
---PROMPT END---
---
## 已生成的模块 UI 设计文档
| 模块 | 文件路径 | 生成日期 | 覆盖 PRD 版本 |
|---|---|---|---|
| (待填入) | | | |
---
## 变量填写示例(房源列表页)
```
{{模块名称}} → 房源管理
{{一句话描述模块核心功能}} → 管理房产经纪公司的二手房/租赁房源,支持录入、筛选、跟进、状态变更
{{PRD文件路径}} → Project/fonrey/PRD/房源管理/房源管理模块PRD.md
{{截图列表}} →
- 房源列表(二手&租赁):`Project/fonrey/screenshots/房源/全部房源.png`
- 房源列表(全部商铺):`Project/fonrey/screenshots/房源/全部商铺.png`
- 房源详情第1屏`Project/fonrey/screenshots/房源/房源详情1.png`
- 房源详情第2屏`Project/fonrey/screenshots/房源/房源详情2.png`
- 房源详情第3屏`Project/fonrey/screenshots/房源/房源详情3.png`
- 新增住宅表单:`Project/fonrey/screenshots/房源/增房/新增住宅.png`
- 调价弹窗:`Project/fonrey/screenshots/房源/调价.png`
- 调价记录弹窗:`Project/fonrey/screenshots/房源/调价记录.png`
- 房源状态变更:`Project/fonrey/screenshots/房源/房源状态变更.png`
- 跟进管理-全部:`Project/fonrey/screenshots/房源/跟进管理/全部.png`
- 跟进管理-写入跟进:`Project/fonrey/screenshots/房源/跟进管理/写入跟进.png`
- 相册管理:`Project/fonrey/screenshots/房源/增房/上传图片.png`
```
---
## 注意事项
- 单次提示词只针对**一个模块**,不要同时处理多个模块
- 对于同一模块内页面较多的情况(如房源管理有列表、详情、新增、跟进等多个页面),**全部包含在同一份文档中**,通过 `§2.N` 分节区分
- 弹窗数量较多时(如房源详情有 10+ 个编辑弹窗),可以将**结构相似的弹窗合并为一个通用弹窗规范**,仅列出字段差异表
- 生成完成后,将文档路径更新到上方「已生成的模块 UI 设计文档」表格中