﻿# HOMEVISTA A端 MVP 页面与流程 PRD

> 文档版本：v0.25
>
> 首个测试项目：HOMEVISTA DEMO（缺失数据可使用明确标记的模拟数据）

## 修订记录

| 版本 | 日期 | 变更类型 | 变更摘要 | 修改人 / 来源 |
|---|---|---|---|---|
| v0.1-v0.9 | 2026-07-16 至 2026-07-20 | 历史修订汇总 | 收口 Widget 登记、项目页面发布、长期有效和页面不可切换模板等规则。 | 产品讨论 / Codex |
| v0.10 | 2026-07-20 | **重大页面与流程变更** | Widget 页面展示三类内容属性；模板页面改为 Widget 区块编排；项目页面按区块内容类型动态配置。 | 销售沟通 / 产品确认 / Codex |
| v0.11 | 2026-07-20 | 页面用语统一 | 页面统一使用“Widget 管理、内容输入规则、项目页面、展示方式、无需登录即可查看”等业务用语；技术字段名不直接暴露给操作人员。 | 产品评审 / Codex |
| v0.12 | 2026-07-20 | **重大页面与流程变更：Widget 注册先行** | 添加 Widget 改为注册 Widget：A端填写名称、内容配置方式、内容说明和展示方式，系统生成唯一标识；开发部署后需验证启用。三类内容名称同步调整。 | 产品评审 / Codex |
| v0.13 | 2026-07-20 | **重大页面与流程变更：展示规则** | Widget 注册页拆为基本信息、内容规则、展示规则；展示方式使用说明和小中大可视化规格，模板选择完整展示方案。 | 产品确认 / Codex |
| v0.14 | 2026-07-20 | **重大页面与流程变更：确认上线** | 删除待开发和模拟开发步骤；注册后直接待验证，MVP 由操作人员确认上线，不执行自动验证。 | 产品确认 / Codex |
| v0.15 | 2026-07-20 | **重大页面与流程变更：展示规则极简化** | 注册页删除展示方式名称、说明和添加操作，只保留小、中、大三个复选项；模板区块只选择一个支持的展示规格。 | 产品确认 / Codex |
| v0.16 | 2026-07-20 | Widget 区块术语与配置澄清 | 页面统一将 Widget 在模板中的一次引用称为“Widget 区块”；每个区块独立配置展示规格，同页不同或相同 Widget 均可采用相同或不同规格。 | 产品确认 / Codex |
| v0.17 | 2026-07-20 | Widget 区块拖拽排序 | 新建模板页删除上移、下移按钮，改为按住区块左侧手柄拖拽排序，并即时更新顺序编号。 | 产品确认 / Codex |
| v0.18 | 2026-07-20 | **重大页面与流程变更：模板注册先行** | 页面模板改为先注册取得唯一标识，再由开发实现和部署；注册后待验证，人工确认上线后才可创建项目页面。页面明确动态 Widget 区块与模板代码内容的边界。 | 产品确认 / Codex |
| v0.19 | 2026-07-20 | 模板字段精简 | MVP 删除模板分类输入项、列表分类列及相关筛选，不建立当前流程未使用的模板分类体系。 | 产品确认 / Codex |
| v0.20 | 2026-07-21 | **重大页面与流程变更：左侧目录及项目选择** | 删除顶部业务模块 Tab，左侧固定展示“Widget 与模板管理”和“项目管理”两个一级目录；新增项目选择页和项目主题占位，项目页面列表必须在选定项目后进入。 | 产品确认 / Codex |
| v0.21 | 2026-07-21 | **重大页面与主题流程变更** | 项目主题从占位转为独立需求；项目页面删除单页主题选择，统一读取项目当前主题。主题更新影响全部页面且不要求已上线页面重新发布。 | 产品确认 / Codex |
| v0.22 | 2026-07-28 | **重大页面与流程变更：Widget 数据来源** | Widget 注册内容规则增加单选数据来源；台账显示数据来源；项目页面需要选择内容时按该标识展示对应项目数据。“其它”表示无需选择数据，技术接口方案不在产品原型定义。 | 产品确认 / Codex |
| v0.23 | 2026-07-28 | Widget 注册页面结构优化 | 注册页调整为“唯一标识、Widget 定义、展示规则”；标识独立且不可修改，名称并入 Widget 定义并允许修改。 | 产品确认 / Codex |
| v0.24 | 2026-07-28 | **重大页面与字段变更：C端分类统一** | Widget 定义新增 C端七类 Widget 分类；数据来源改为十项 C端内容资产对象名称，外景拆分为建筑与楼栋、眺望与景观；台账增加分类筛选和分类列。 | 产品确认 / Codex |
| v0.25 | 2026-07-28 | **重大 MVP 展示范围收敛** | Widget 台账首批演示数据删除通用“自定义图文”Widget；保留“自定义内容”注册能力，待明确具体业务 Widget 后使用。 | 产品确认 / Codex |

## 0. MVP 主流程

```text
注册 Widget 并取得唯一标识，进入待验证
→ 开发在 A端流程外实现并部署 Widget
→ A端人工确认上线
→ 从 Widget 清单注册页面模板并取得唯一标识，进入待验证
→ 开发在 A端流程外使用模板标识实现并部署模板代码
→ A端人工确认模板上线
→ 在项目中选择模板并逐区块配置内容
→ 预览并发布项目页面
→ 销售选择项目页面分享
→ 顾客访问项目页面
```

模板管理负责“模板管理身份、页面有哪些动态 Widget 区块、区块顺序和展示规格参数”；开发代码负责通用组件和固定非区块内容；项目页面配置负责“这些 Widget 区块在当前项目中使用什么内容”。三者不得混成一个编辑器。

术语统一：Widget 是可复用定义；把 Widget 添加到模板后形成一个“Widget 区块”。同一 Widget 重复添加会形成多个独立 Widget 区块，不是把 Widget 本身改名为区块。

## 一、页面信息架构

A端的两个一级业务目录全部位于左侧导航：

```text
Widget 与模板管理
├── Widget 管理
└── 页面模板

项目管理
├── 选择项目
├── 项目页面
└── 项目主题
```

顶部栏只保留产品身份、全局操作和用户入口，不提供两个业务目录之间的 Tab。未选择项目时，“项目页面”和“项目主题”不可直接进入；选择项目后，两者共享当前项目上下文。

| 编号 | 页面显示名称 | 页面目标 | 核心动作 |
|---|---|---|---|
| A-W01 | Widget 管理 | 管理 Widget 的业务名称及待验证、已启用和已停用状态。 | 搜索、查看内容及展示规则、修改名称、确认上线、停用。 |
| A-W02 | 注册 Widget | 在开发前建立 Widget 管理身份和业务属性。 | 查看系统生成的唯一标识，填写 Widget 定义和展示规则。 |
| A-T01 | 页面模板 | 管理模板的待验证、已启用和已停用状态。 | 搜索、查看模板标识和区块结构、确认上线、停用。 |
| A-T02 | 注册页面模板 | 在开发前建立模板管理身份并登记动态 Widget 区块。 | 取得模板标识，填写基本信息、添加 / 重复添加 / 排序 / 删除 Widget、选择展示规格。 |
| A-P01 | 选择项目 | 先建立项目上下文，再进入该项目的页面与主题管理。 | 搜索项目、选择并进入。 |
| A-I01 | 项目页面 | 管理当前所选项目已经创建的页面。 | 新建、配置内容、预览、上线、下线。 |
| A-I02 | 配置项目页面 | 按选定模板逐区块配置当前项目内容。 | 选择访问方式、配置区块内容、保存、预览、发布。 |
| A-TH01 | 项目主题 | 为当前项目管理一套个性化配色主题。 | 查看默认状态、配置、预览、保存并应用、恢复默认。 |

页面不得直接显示“输入契约、发布快照、occurrence、配置版本、definition release”等技术词。确需跨产品与开发核对的 Widget 标识、模板标识和页面编号可以显示，但需要明确说明用途。

## 二、A-W01 Widget 管理

页面展示：

- Widget 名称和 Widget 标识；
- Widget 分类；
- 内容说明；
- 内容配置方式；
- 数据来源；
- 支持的小、中、大展示规格；
- 被多少模板使用；
- 注册状态：待验证、已启用、已停用。

停用前提示影响范围。停用后不能用于新模板，但不删除已有模板或项目页面。

首批台账演示数据不包含通用“自定义图文”Widget。台账仍支持后续登记内容配置方式为“自定义内容”的具体业务 Widget，但不能以用途不明的通用容器代替业务定义。

## 三、A-W02 注册 Widget

### 3.1 页面步骤

1. 在“唯一标识”查看系统预生成的 Widget 标识；该字段不可编辑，注册后永久固定。
2. 在“Widget 定义”填写 Widget 名称，单选 Widget 分类、内容配置方式和数据来源，并填写内容说明；Widget 名称后续允许修改，改名不改变 Widget 标识。
3. Widget 分类固定为项目基础、建筑与空间、空间体验、住户产品、周边环境、资料内容、系统能力，用于业务归类和筛选。
4. 数据来源固定为项目基本信息、楼层信息、户型、住户、样板间、公共空间、建筑与楼栋、眺望与景观、资料文件、其它（无需选择数据）；选择项目内容时不能选择“其它”。
5. 在“展示规则”直接复选支持规格：小 · 半宽、中 · 通栏、大 · 全屏。
6. 至少选择一个，最多三个全选；页面不提供展示方式名称、说明或新增按钮。
7. 点击“注册并取得 Widget 标识”，系统固定页面中预生成的全局唯一标识，状态直接进入“待验证”。
8. 开发人员在 A端流程外使用该标识实现并部署 Widget。
9. 操作人员点击“确认上线”；MVP 不执行自动验证，确认后 Widget 进入已启用。

数据来源只是产品标识。注册页不要求填写接口地址、请求参数、返回结构或调用规则，具体技术实施方案由工程师另行输出。

确认弹窗必须说明：“MVP暂不执行自动验证。请确认 Widget 已完成开发部署并具备使用条件。确认后，该 Widget 将可以用于页面模板。”

### 3.2 用语要求

| 不在页面使用 | 页面使用 |
|---|---|
| 输入契约、输入契约摘要 | 内容配置方式、内容说明 |
| 固定内容 | 自动带入 |
| 结构性内容 | 选择项目内容 |
| 非结构性内容 | 自定义内容 |
| 支持的表现形式 | 支持的展示规格 |

Widget 标识旁必须说明：“由系统生成，注册后固定。开发人员必须使用这个标识。”
Widget 名称属于“Widget 定义”，允许后续修改；名称只用于业务识别，不能作为代码或模板引用依据。

## 四、A-T01 页面模板

列表展示模板名称、模板标识、Widget 区块数、是否重复使用 Widget、已生成页面数和状态。状态包括待验证、已启用、已停用；待验证行操作为“确认上线”。MVP 不展示模板分类列或分类筛选。

页面说明模板也是开发产物：A端登记动态 Widget 区块，通用组件和固定非区块内容由模板代码实现。不在列表展示发布引用；模板修改不影响已有项目页面。

## 五、A-T02 注册页面模板

### 5.1 基本信息

- 模板名称；
- 模板标识：系统预生成、注册后固定，并说明开发人员必须使用；
- 顾客任务：用自然语言说明页面帮助顾客了解什么。

页面显示“模板代码边界”：A端只登记需要动态配置的 Widget 区块；页头、导航等通用组件，以及固定且无需按项目配置的非区块内容，由开发人员在模板代码中实现。

### 5.2 添加 Widget 区块

1. 清单只显示当前可用的 Widget。
2. 点击“添加 Widget”生成一个独立 Widget 区块。
3. 同一 Widget 可以重复添加，页面显示“已重复添加”，不能自动合并。
4. 每个区块可以修改名称和删除；按住左侧拖拽手柄可直接调整顺序，不显示上移、下移按钮。
5. 展示规格是 Widget 区块引用 Widget 时的配置参数，只能从该 Widget 已登记的小、中、大范围中选择。
6. 同一页面可添加不同或相同 Widget；每个 Widget 区块独立选择规格，可与其他区块相同或不同。
7. 拖动过程中突出显示当前区块和目标位置；松开后立即更新区块编号，保存后的顺序用于生成项目页面。
8. 内容配置方式只读显示，不在模板中改变。

注册前检查：模板基本信息完整、至少有一个区块、区块名称完整、Widget 均可用、展示规格有效。

点击“注册并取得模板标识”后，模板进入待验证，不立即启用。开发人员使用模板标识完成代码并部署；操作人员点击“确认上线”后模板进入已启用，才能创建项目页面。MVP 不执行自动验证，确认弹窗必须说明人工确认边界。

模板修改后只用于之后新建的项目页面，不能改变已有页面。

## 六、A-P01 选择项目

页面位于左侧“项目管理”的第一个子项。项目清单至少展示项目名称、项目标识和已创建页面数量。点击“进入项目”后，系统保存当前项目上下文并进入该项目的项目页面列表。

未选择项目时，不得展示跨项目混合的项目页面列表。返回项目选择页并选择另一个项目后，项目页面和项目主题必须同步切换到新项目。

## 七、A-I01 项目页面

页面位于项目管理，只能在选择项目后进入。页面顶部明确显示当前项目，并提供“切换项目”入口；列表只展示当前项目的数据：

- 页面名称和页面编号；
- 使用的模板；
- 访问方式：“无需登录即可查看”或“需要顾客身份”；
- 页面状态；
- 最近发布时间。

不展示模板配置版本、内部结构记录或发布快照编号。

## 八、A-I02 配置项目页面

### 8.1 页面固定信息

- 当前项目；
- 使用的模板，并说明“创建后不可更换”；
- 区块顺序和展示规格，只读显示。

### 8.2 可配置内容

- 页面名称；
- 是否允许未登录顾客查看；
- 各 Widget 区块的内容。

页面不提供单独选择主题的入口，统一读取当前项目有效主题。

项目页面默认长期有效，不显示开始时间、结束时间或有效期。

### 8.3 三类内容的页面表达

| 内容配置方式 | 页面表达 | 完成条件 |
|---|---|---|
| 自动带入 | “无需配置”，并显示内容说明。 | Widget 能够按当前项目自动取得内容。 |
| 选择项目内容 | 按 Widget 登记的数据来源展示当前项目的可选内容，例如户型复选项或资料单选项。 | 至少选择一个有效内容，具体单选或多选由 Widget 实现。 |
| 自定义内容 | 提供该 Widget 自己实现的文字、图片或视频等输入方式。 | 至少有一个有效内容项。 |

同一 Widget 重复出现时，每个区块单独配置和保存。例如“A户型推荐”和“小户型推荐”可以选择不同户型。

### 8.4 发布

1. 内容不完整时可以保存草稿，但不能发布。
2. 所有区块完成后必须预览一次当前内容。
3. 预览后点击“发布页面”。
4. 已上线页面修改后，顾客仍看到原有线上内容；重新预览并发布后才显示新内容。
5. 项目页面不能更换模板、增删区块、调整顺序或改变展示规格。

## 九、A-TH01 项目主题

项目主题用于为每个项目定义统一的个性化配色，详细需求见 `05-A端项目主题管理PRD.md`。本页必须遵守：

- 未定义个性化主题时使用 VISTA 默认主题；
- 每个项目最多一个个性化主题；
- 可调整页面背景、项目菜单、Widget 和通用组件的业务配色；
- 不支持修改页面布局、Widget 顺序、展示规格、字体或内容；
- 保存并应用后影响当前项目全部页面，包括已上线页面；
- 页面不需要因主题变化重新发布。

## 十、异常与空状态

| 场景 | 页面处理 |
|---|---|
| 没有可用 Widget | 模板页显示空状态，引导先注册 Widget，并完成开发验证和启用。 |
| Widget 在模板编辑时被停用 | 保存时指出具体区块，并阻止保存。 |
| 模板仍为待验证 | 不进入项目页面的可选模板清单；提示先完成代码部署并确认上线。 |
| 项目没有对应内容 | 区块显示“当前项目暂无可选内容”，允许保存草稿但禁止发布。 |
| 模板已停用 | 不能创建新页面，已有页面仍按自身状态访问。 |
| 模板后来被修改 | 已有项目页面保持不变，不提示自动升级。 |
| 未选择项目 | 项目页面和项目主题不可直接进入，引导先到项目清单选择项目。 |
| 项目没有页面 | 当前项目页面列表显示空状态，不显示其他项目的数据。 |
| 项目主题配置无效 | 阻止应用并指出问题；真实页面继续使用上一个有效主题或 VISTA 默认主题。 |

## 十一、验收清单

| 编号 | 验收内容 |
|---|---|
| AC-A01 | 注册 Widget 页面能选择自动带入、选择项目内容、自定义内容三种内容配置方式。 |
| AC-A02 | 注册页分为唯一标识、Widget 定义、展示规则；Widget 定义包含名称、Widget 分类、内容配置方式、数据来源和内容说明；Widget 标识由系统生成且注册后不可修改，Widget 名称允许修改且改名不影响标识；页面不要求上传文件，也不显示“输入契约”或“输入契约摘要”。 |
| AC-A03 | 模板页可以添加并重复添加同一 Widget。 |
| AC-A04 | 模板区块可以命名、排序、删除和选择 Widget 支持的展示规格。 |
| AC-A14 | 同一页面可使用不同或相同 Widget；各 Widget 区块可选择相同或不同展示规格，修改一个区块不得联动改变其他区块。 |
| AC-A15 | Widget 区块支持通过左侧手柄拖拽排序；页面不显示上移、下移按钮，松开后区块编号和保存顺序立即更新。 |
| AC-A16 | 注册页面模板时系统预生成唯一模板标识，页面说明开发人员必须使用该标识实现模板代码。 |
| AC-A17 | 页面明确区分 A端登记的动态 Widget 区块与模板代码负责的通用组件、固定非区块内容。 |
| AC-A18 | 模板注册后为待验证；确认上线弹窗说明 MVP 不执行自动验证，确认后才进入项目页面可选清单。 |
| AC-A19 | 模板注册页没有模板分类输入项，模板列表没有分类列或分类筛选。 |
| AC-A05 | 模板确定的展示规格在项目页面配置中只读。 |
| AC-A11 | 注册页用一行三个可复选 Tab 表达小、中、大，不提供方式名称、说明或新增方式；小规格在 PC端半宽、移动端全宽紧凑，中规格通栏，大规格使用完整安全可视区域。 |
| AC-A06 | 项目页面按三种内容配置方式提供不同的配置界面。 |
| AC-A07 | 重复 Widget 的多个区块可以保存不同内容。 |
| AC-A08 | 内容不完整时可以保存草稿但不能发布。 |
| AC-A09 | 项目页面不能切换模板；模板修改不影响已有页面。 |
| AC-A10 | 原型页面不出现未解释的契约、快照、引用、配置版本等技术术语。 |
| AC-A12 | Widget 注册后直接显示待验证；页面不存在待开发或模拟开发完成操作。 |
| AC-A13 | 确认上线弹窗明确说明 MVP 不执行自动验证；确认后 Widget 才进入模板可选清单。 |
| AC-A20 | 顶部不再显示两个业务模块的切换 Tab；左侧同时展示两个一级目录及其子项。 |
| AC-A21 | 进入项目管理后先看到项目清单；选择项目后才进入该项目的项目页面列表，且列表不混入其他项目数据。 |
| AC-A22 | 当前项目页面提供切换项目入口；切换后项目页面和项目主题使用同一项目上下文。 |
| AC-A23 | 项目管理下存在项目主题入口；未定义个性化主题时显示 VISTA 默认主题状态。 |
| AC-A24 | 项目页面配置中不提供单页主题选择；页面统一读取项目当前有效主题。 |
| AC-A25 | 项目主题保存并应用后影响当前项目全部页面，包括已上线页面，且不改变页面发布状态。 |
| AC-A26 | 注册 Widget 的 Widget 定义中存在独立且必选的“Widget 分类”和“数据来源”；分类只显示 C端七类功能模块分类，数据来源只显示十项确认清单。 |
| AC-A27 | “其它”显示为“其它（无需选择数据）”；内容配置方式为“选择项目内容”时不能保存该组合。 |
| AC-A28 | Widget 台账能够查看数据来源；项目页面需要选择内容时，候选数据与该来源标识一致。 |
| AC-A29 | 注册页和项目页面不要求填写或展示接口地址、请求参数、返回结构及技术调用方案。 |
| AC-A30 | Widget 台账首批演示数据不包含“自定义图文”；注册页仍保留“自定义内容”作为内容配置方式。 |

## 十二、原型说明

正式原型入口：`http://localhost:5174/prototype/a/`。评审者应能直接看懂三个问题：Widget 怎样取得内容；模板怎样组成页面；当前项目需要为每个区块配置什么内容。
