﻿# HOMEVISTA A端 Widget、页面模板与项目页面 PRD

> 文档版本：v0.34
>
> 所属终端：A端（装配交付与服务支持端）
>
> 适用对象：产品、服务商、供应商、设计、开发、测试、Codex

## 修订记录

| 版本 | 日期 | 变更类型 | 变更摘要 | 修改人 / 来源 |
|---|---|---|---|---|
| v0.1-v0.17 | 2026-07-16 至 2026-07-20 | 历史修订汇总 | 完成 A端台账准入、实例访问、发布快照、长期有效、B端分享边界及实例不可切换模板等规则的逐步收口。 | 产品讨论 / Codex |
| v0.18 | 2026-07-20 | **重大需求变更：模板职责与内容模型** | Widget 增加固定、结构性、非结构性三类内容属性和可选表现形式；页面模板由“已部署模板登记”改为 A端从已登记 Widget 清单进行编排，允许同一 Widget 多次出现并按区块锁定表现形式；实例按模板区块逐项配置内容。 | 销售初步沟通 / 产品确认 / Codex |
| v0.19 | 2026-07-20 | 术语与页面表达统一 | 原型及产品说明统一使用“内容输入规则、项目页面、无需登录即可查看、展示方式”等业务用语；ID、快照、契约等技术词只保留在字段字典或技术映射中。 | 产品评审 / Codex |
| v0.20 | 2026-07-20 | **重大需求变更：Widget 注册与属性** | Widget 改为注册先行：A端先生成唯一标识，开发使用该标识实现，部署后验证并启用。内容属性改为“自动带入、选择项目内容、自定义内容”，内容来源与可用内容合并为内容说明，展示方式允许登记多项。 | 产品评审 / Codex |
| v0.21 | 2026-07-20 | **重大需求变更：展示规格与响应式规则** | Widget 注册信息拆为基本信息、内容规则和展示规则；每种展示方式登记说明及支持的小、中、大规格。模板选择完整展示方案，项目页面不可修改；补充 PC 与移动端响应式映射。 | 产品确认 / Codex |
| v0.22 | 2026-07-20 | **重大需求变更：Widget 上线门槛简化** | 删除待开发状态，注册后直接进入待验证；MVP 不实施自动验证，由操作人员确认开发部署完成后直接上线启用。验证标准保留为后续能力。 | 产品确认 / Codex |
| v0.23 | 2026-07-20 | **重大需求变更：展示规则极简化** | 删除展示方式名称、说明及展示方式与尺寸的组合模型；Widget 仅登记支持的小、中、大规格，模板区块只选择一个允许规格，具体表现由 Widget 代码决定。 | 产品确认 / Codex |
| v0.24 | 2026-07-20 | Widget 引用参数与术语澄清 | 明确 Widget 是可复用定义，每次加入模板形成独立的“Widget 区块”；展示规格作为区块引用 Widget 时的配置参数，同页多个区块可引用不同或相同 Widget，并采用相同或不同规格。 | 产品确认 / Codex |
| v0.25 | 2026-07-20 | 模板区块排序交互 | Widget 区块排序改为拖拽手柄操作，删除上移、下移按钮；明确拖拽反馈、顺序编号更新和模板保存规则。 | 产品确认 / Codex |
| v0.26 | 2026-07-20 | **重大需求变更：页面模板注册与开发** | 页面模板明确为开发产物：A端先生成唯一模板标识并登记动态 Widget 区块，开发使用标识实现模板代码，注册后待验证，人工确认上线后才能创建项目页面；通用组件和固定非区块内容由模板代码负责。 | 产品确认 / Codex |
| v0.27 | 2026-07-20 | 模板字段精简 | MVP 删除模板分类字段及模板列表分类列；不提前建立当前流程不使用的分类体系。 | 产品确认 / Codex |
| v0.28 | 2026-07-21 | **重大信息架构与流程变更：项目上下文先行** | Widget 与模板管理、项目管理改为左侧一级目录，不再使用顶部 Tab；项目管理必须先选择项目，再进入该项目的项目页面列表，并增加项目主题管理占位。主题具体定义另行形成 PRD 后实施。 | 产品确认 / Codex |
| v0.29 | 2026-07-21 | **重大项目主题规则变更** | 项目主题改为项目级共享配置，不再固化在页面发布内容中；未配置时使用 VISTA 默认主题，每项目最多一个个性化主题，更新后影响全部页面且无需逐页重新发布。详细规则转由独立主题管理 PRD 承担。 | 产品确认 / Codex |
| v0.30 | 2026-07-28 | **重大 Widget 数据来源规则变更** | Widget 注册增加单选数据来源；MVP 固定九项业务标识，创建项目页面需要选择数据时按该标识确定可选数据范围。“其它”明确表示无需选择项目数据；PRD 不规定接口实现。 | 产品确认 / Codex |
| v0.31 | 2026-07-28 | Widget 注册结构优化 | 注册页调整为“唯一标识、Widget 定义、展示规则”三个模块；Widget 标识单独展示且注册后不可修改，Widget 名称与内容规则合并到 Widget 定义中，名称允许修改且不改变标识。 | 产品确认 / Codex |
| v0.32 | 2026-07-28 | **重大 Widget 分类与数据来源规则统一** | Widget 注册新增独立业务分类，沿用 C端七类功能模块分类；数据来源按 C端内容资产对象统一命名，“外景”拆分为“建筑与楼栋”和“眺望与景观”。明确 Widget 分类不决定数据接口，数据来源不承担业务模块分类。 | 产品确认 / Codex |
| v0.33 | 2026-07-28 | **重大 Widget 范围调整** | C端项目联系方式退出 Widget 清单，改由页面固定的项目联系页脚通用组件承接；A端不为其生成 Widget 标识、登记台账或配置模板区块，项目级公共联系资料仍按项目基础数据维护。 | 产品确认 / Codex |
| v0.34 | 2026-07-28 | **重大 MVP 样例范围收敛** | 首批登记清单删除通用“自定义图文”Widget，待业务任务和内容边界明确后再注册；“自定义内容”仍作为可选内容配置方式保留。 | 产品确认 / Codex |

## 0. 结论与实施边界

本期采用三层对象模型：

```text
在 A端注册 Widget 并取得唯一标识
→ 开发使用该标识实现并部署 Widget
→ A端人工确认上线
→ A端注册页面模板并取得唯一标识，登记动态 Widget 区块及展示规格
→ 开发使用模板标识实现并部署模板代码
→ A端人工确认模板上线
→ A端项目管理选择模板，为各区块配置项目内容并生成项目页面
→ 销售端选择已上线项目页面分享
→ 顾客通过项目页面链接访问
```

- Widget 是开发产物，但管理记录必须先于开发建立。A端生成全局唯一 Widget 标识，开发必须使用该标识；A端不上传程序文件，也不编辑 Widget 内部功能。
- Widget 注册必须分别选择 Widget 分类和数据来源。Widget 分类沿用 C端功能模块分类，用于业务归类和查找；数据来源用于创建项目页面时识别应提供哪类项目数据。两者不等同，也不在 A端定义接口调用方式。
- 页面模板也是开发产物。A端先生成全局唯一模板标识并登记动态 Widget 区块，开发人员必须使用该标识实现模板代码；开发部署完成并人工确认上线后，模板才可用于创建项目页面。
- A端的模板记录只描述需要按项目动态配置的 Widget 区块，不是完整页面代码。页头、导航等通用组件，以及固定且无需按项目配置的非区块内容，由模板代码实现，A端不管理其具体内容。
- Widget 是可复用定义，不会因为被页面模板引用而改名。每次把 Widget 加入模板，都会形成一个独立的“Widget 区块”；“区块”表示 Widget 在该模板中的一次使用记录。
- 同一 Widget 可在一个模板中多次出现。每个 Widget 区块都有独立编号、名称、顺序、展示规格参数和项目内容。
- 项目页面在“项目管理”创建，不和模板管理混放。页面生成后不能更换模板或调整区块展示规格；访问方式和区块内容可以修改，已上线页面需重新预览、发布后才影响顾客看到的内容。
- “Widget 与模板管理”和“项目管理”是左侧导航中的两个一级目录，不在顶部使用 Tab 切换。项目管理采用项目上下文：操作人员必须先选择项目，再查看该项目的项目页面或进入项目主题管理。
- 项目主题是项目级共享配置，不属于单个页面发布内容。未配置时使用 VISTA 默认主题；每项目最多一个个性化主题，只改变配色、不改变布局；应用后影响全部页面，包括已上线页面。详细规则见 `05-A端项目主题管理PRD.md`。
- 模板本身没有访问地址。只有已生成并上线的项目页面可以分享和访问。
- MVP 项目页面默认长期有效，不设置起止时间；具体顾客授权由销售端处理。

### 0.1 用语规则

- A端页面面向服务商和交付人员，优先使用业务用语，不直接展示开发字段名。
- “内容配置方式”表示创建项目页面时内容是自动带入、从项目中选择，还是单独填写；页面不再显示“输入契约”或“内容输入规则”。
- “项目页面”是页面上的统一名称；数据和技术文档中可称为“页面实例”。
- “无需登录即可查看”是页面用语；字段字典中对应 `anonymous_access`。
- “当前线上内容”是页面用语；字段字典中对应“发布快照”。
- Widget 标识、页面编号等确需跨产品与开发核对的识别信息可以保留，但必须附带人话说明。

## 一、产品目标

1. 建立可复用的 Widget 可用清单，清楚表达每个 Widget 如何取得内容、支持哪些展示规格。
2. 让服务商或供应商在 A端预先登记模板身份和动态 Widget 区块，由开发完成模板代码，一线销售不制作页面。
3. 让交付人员在项目内按模板要求选择内容，生成内容完整的项目页面。
4. 跑通 A端生成项目页面、销售端选择分享、顾客访问页面的最小闭环。

### 1.1 MVP 不做

- 不在 A端开发或修改 Widget 程序。
- 不在 A端开发模板代码、通用组件或固定非区块内容。
- 不提供自由画布、像素级拖拽、任意 CSS、脚本或 Widget 内部布局编辑。
- 不在项目页面中更换模板、增删 Widget、调整顺序或改变展示规格。
- 不做模板审批、灰度、回滚、复杂版本迁移和旧页面自动升级。
- 不在 A端选择具体顾客；不设置项目页面或单次分享有效期。
- 首批不预置通用“自定义图文”Widget；其业务任务、内容范围和输入边界明确后，再作为独立 Widget 注册。

## 二、核心对象

### 2.1 Widget 注册记录

Widget 注册记录用于在开发前建立唯一身份和产品使用规则。首次注册必须填写：

| 属性 | 规则 |
|---|---|
| Widget 名称 | 给产品、交付和模板制作人员识别。 |
| Widget 标识 | 系统在注册时生成，全局唯一且长期不变；开发人员不得自行创建。 |
| Widget 分类 | 项目基础、建筑与空间、空间体验、住户产品、周边环境、资料内容、系统能力七选一。 |
| 内容配置方式 | 自动带入、选择项目内容、自定义内容三选一。 |
| 数据来源 | 项目基本信息、楼层信息、户型、住户、样板间、公共空间、建筑与楼栋、眺望与景观、资料文件、其它十选一。 |
| 内容说明 | 一段人话描述，合并说明内容从哪里来、可以使用什么内容；不定义准确数据结构。 |
| 展示规则 | 小、中、大三个规格至少选择一个，最多全选；不填写展示方式名称或说明。页面模板中的每个区块选择一个支持规格。 |

三种内容配置方式的业务含义：

| 配置方式 | 定义 | 模板阶段 | 项目页面阶段 |
|---|---|---|---|
| 自动带入 | Widget 根据当前项目自动取得内容，创建页面时无需人工选择。 | 添加区块并确定展示规格。 | 显示“无需配置”。 |
| 选择项目内容 | 从当前项目已有内容中选择展示范围。 | 添加区块并确定展示规格。 | 单选或多选项目内容，例如户型或视频。 |
| 自定义内容 | 为当前页面单独填写或组合内容。 | 添加区块并确定展示规格。 | 填写文字，或选择图片、视频等内容。 |

“内容配置方式”描述创建项目页面时怎样提供内容，不是内容文件格式。资料展示 Widget 如果从项目资料文件中选择一个对象，属于“选择项目内容”；如果由操作人员单独填写外部资源地址，则属于“自定义内容”。实际选择控件由 Widget 自己实现，A端的内容说明不承担数据结构定义。

“Widget 分类”沿用 C端功能模块清单的业务分类，只用于归类、筛选和理解 Widget 的主要业务归属，不决定数据来源或技术接口。MVP 固定为：

| Widget 分类 | 业务含义 |
|---|---|
| 项目基础 | 项目概览等可独立装配的项目基础能力；项目联系页脚属于 C端通用组件，不登记为 Widget。 |
| 建筑与空间 | 建筑、楼栋、楼层、公共空间等能力。 |
| 空间体验 | WALK、VR 等空间体验能力。 |
| 住户产品 | 户型、住户、样板间、费用等住户产品能力。 |
| 周边环境 | 日影、眺望、地图等周边环境能力。 |
| 资料内容 | 资料文件夹、PDF、活动、外部内容承载等能力。 |
| 系统能力 | 预约等非内容展示型系统能力。 |

“数据来源”只定义业务标识，不定义技术方案。创建项目页面且内容配置方式为“选择项目内容”时，系统依据该标识提供对应范围的数据；单选、多选、筛选和具体输入控件仍由 Widget 决定。MVP 数据来源清单如下：

| 页面选项 | 产品标识 | 业务含义 |
|---|---|---|
| 项目基本信息 | `project-basic-info` | 项目名称、简介等基础资料。 |
| 楼层信息 | `floor-info` | 项目楼层数据。 |
| 户型 | `floorplan` | 项目户型数据。 |
| 住户 | `resident` | 项目住户数据。 |
| 样板间 | `model-room` | 项目样板间数据。 |
| 公共空间 | `public-space` | 项目公共空间数据。 |
| 建筑与楼栋 | `building-and-tower` | 项目建筑主体、楼栋及建筑外观数据。 |
| 眺望与景观 | `view-landscape` | 按楼栋、楼层、朝向关联的眺望与景观数据。 |
| 资料文件 | `resource-file` | 项目资料文件及文件夹数据。 |
| 其它（无需选择数据） | `other` | Widget 不需要选择项目数据，内容相对固化。 |

“其它”不能用于代替尚未列入清单的新数据类型。出现新的真实项目数据来源时，应扩展受控清单，不能一律登记为“其它”。

Widget 状态只保留：待验证、已启用、已停用。注册后直接进入待验证；开发部署过程不在 A端管理。MVP 不执行自动验证，操作人员确认 Widget 已完成开发部署并具备使用条件后，点击“确认上线”进入已启用。只有已启用 Widget 可用于注册页面模板。

#### 全局尺寸规格

| 规格 | PC端规则 | 移动端规则 |
|---|---|---|
| 小 · 半宽 | 占一行的半列，可以与相邻的小规格区块并排。 | 自动改为全宽紧凑展示，不强制双列。 |
| 中 · 通栏 | 独占一行，高度由内容决定，不写死为半个视口。 | 独占一行，高度由内容决定。 |
| 大 · 全屏 | 独占一行，以一个完整安全可视区域为目标；内容超出时允许继续向下。 | 独占一行，以当前设备安全可视区域为目标；不得为了固定高度裁掉内容。 |

尺寸规格由系统统一定义。Widget 只声明支持哪些规格，不在 A端登记“列表式、卡片滑动式、标准播放器”等内部表现；各规格下内容怎样呈现由 Widget 代码决定。同一个 Widget 在同一个规格下，MVP 只允许一种开发确定的表现。

### 2.2 页面模板

页面模板是具有稳定身份的开发产物。首次注册时系统生成全局唯一且长期不变的模板标识；开发人员必须使用该标识实现和部署模板代码。A端模板记录包含基本信息和有序 Widget 区块，每个区块至少保存：

- 区块唯一编号；
- 区块显示名称；
- 使用的 Widget 标识；
- 创建时的内容配置方式记录；
- 创建时的数据来源记录；
- 区块顺序；
- 从该 Widget 支持列表中选择的展示规格。

展示规格是 Widget 区块引用 Widget 时传入的模板参数，而不是 Widget 全局固定值。Widget 注册记录只声明允许使用的小、中、大范围；模板中的每个 Widget 区块必须从该范围内独立选择一个规格。

同一页面可以包含多个不同 Widget，也可以重复使用同一 Widget。各 Widget 区块之间不要求展示规格相同：可以选择不同规格，也可以重复选择相同规格。例如“户型列表”可分别形成“A户型推荐”和“小户型推荐”两个 Widget 区块，两者可使用不同规格，也可都使用中规格；在项目页面中分别选择内容，互不覆盖。

Widget 区块清单只覆盖页面中需要按项目动态配置的内容区域。模板代码还可以包含通用组件和固定非区块内容，但这些内容不得依赖项目或页面实例配置；一旦需要变化，应改为 Widget，或在后续增加明确的模板参数。

页面模板状态为待验证、已启用、已停用。注册完成后直接进入待验证，开发过程不在 A端管理。MVP 不执行自动验证；操作人员确认模板代码已经使用正确模板标识完成部署，并能按登记结构承载 Widget 区块后，点击“确认上线”进入已启用。

模板确认上线前必须检查：至少包含一个 Widget；所有 Widget 均已注册并启用；每个区块的展示规格属于该 Widget 支持范围；区块编号唯一；名称不为空。只有已启用模板可创建项目页面。

模板更新只影响之后新建的项目页面。MVP 不自动更新已有页面。技术实现可保存模板版本或页面生成时的结构记录，但必须保证已有页面不被后来修改影响。

### 2.3 项目页面

项目页面由以下内容组成：

- 项目；
- 创建时使用的模板和页面结构；
- 每个 Widget 区块的内容配置结果；
- 是否允许未登录顾客查看；
- 状态和当前线上内容。

项目页面生成后：

- 不可切换模板；
- 不可增删、排序 Widget；
- 不可修改区块展示规格；
- 可以在原模板结构内修改访问方式和区块内容；
- 已上线页面的修改先保存为草稿，重新预览并发布后才替换当前线上内容。

项目主题不包含在页面内容中。页面始终读取所属项目当前有效主题；主题更新不产生页面未发布修改，也不要求重新发布页面。

## 三、MVP 功能范围

| 功能 | 说明 |
|---|---|
| Widget 管理 | 搜索、查看内容配置方式、内容说明、支持的展示规格、状态和被模板使用情况；允许修改 Widget 名称，但不能修改 Widget 标识。 |
| 注册 Widget | 页面分为唯一标识、Widget 定义和展示规则；唯一标识由系统生成且不可修改，Widget 定义包含名称、Widget 分类、内容配置方式、数据来源和内容说明。 |
| 确认上线 | MVP 不执行自动验证；操作人员确认 Widget 已完成开发部署并具备使用条件后启用。 |
| 页面模板 | 查看模板标识、Widget 区块数、重复使用情况、待验证 / 已启用 / 已停用状态和已生成页面数。 |
| 注册页面模板 | 系统生成模板标识；填写基本信息，从已启用 Widget 清单添加、重复添加、命名、排序、删除并选择展示规格；注册后进入待验证。 |
| 确认模板上线 | MVP 不执行自动验证；操作人员确认模板代码已使用正确标识完成部署后启用。 |
| 选择项目 | 在项目管理中搜索并选择项目，建立后续页面和主题操作的项目上下文。 |
| 项目页面 | 选择项目后，查看、新建、配置、预览、上线、下线该项目的页面。不得混入其他项目页面。 |
| 创建项目页面 | 在已选项目内选择模板和访问方式；按模板区块配置内容；预览并上线。 |
| 项目主题管理 | 为当前项目配置一个个性化配色主题；未配置时使用 VISTA 默认主题。主题只改配色不改布局，应用后影响全部页面。详细需求见独立 PRD。 |

## 四、关键流程

### 4.1 注册与确认上线 Widget

1. 在“唯一标识”查看系统预生成的 Widget 标识；该标识全局唯一，注册后不可修改。
2. 在“Widget 定义”填写名称，分别选择 Widget 分类、内容配置方式和数据来源，并填写内容说明；Widget 名称后续允许修改，改名不改变 Widget 标识。
3. 在“展示规则”中复选至少一种小、中、大规格。
4. 提交注册后，Widget 状态直接进入“待验证”。
5. 开发人员在 A端流程之外使用该标识实现并部署 Widget。
6. 操作人员确认 Widget 已完成开发部署并具备使用条件，点击“确认上线”。
7. Widget 进入已启用状态；待验证 Widget 不进入新建模板清单。

#### 4.1.1 MVP 验证边界与后续标准

MVP 的“待验证”是上线前的人工确认门槛，不代表系统会自动检查 Widget。点击“确认上线”时只显示确认说明，不输出“验证通过”结果。

后续实施自动验证时，至少应检查：Widget 标识一致；Widget 能正常加载且没有阻断性错误；内容配置方式一致；数据来源标识一致；支持的展示规格一致。Widget 分类属于业务登记信息，不要求 Widget 代码提供同名技术字段。实际功能是否符合自然语言“内容说明”需要人工判断。任一标准不符时不得上线，应修改注册定义或修改 Widget 后重新验证。

### 4.2 注册与确认上线页面模板

1. 填写模板名称和顾客任务；系统预生成唯一模板标识。MVP 不设置模板分类。
2. 从已启用 Widget 清单添加区块。
3. 为区块命名并从该 Widget 支持范围中选择一个展示规格；只有一个规格时自动选中并锁定。
4. 可重复添加同一 Widget，并分别命名与配置。
5. 按住 Widget 区块左侧拖拽手柄调整顺序；拖动过程中显示目标位置反馈，松开后立即更新顺序编号。
6. 点击“注册并取得模板标识”，模板进入待验证；此时不能创建项目页面。
7. 开发人员在 A端流程外使用模板标识完成模板代码，代码可包含通用组件和固定非区块内容。
8. 操作人员确认代码已经部署并具备使用条件后点击“确认上线”；MVP 不执行自动验证。
9. 模板进入已启用；登记的区块顺序即为项目页面生成和顾客端展示顺序。

### 4.3 创建项目页面

1. 进入左侧“项目管理”，先从项目清单选择一个项目。
2. 进入该项目的项目页面列表；列表和新建操作只显示当前项目的数据。
3. 选择已启用模板。系统记录所选模板，并按模板顺序展示 Widget 区块；之后不能更换模板。
4. 自动带入区块显示“无需配置”。
5. 选择项目内容区块依据 Widget 登记的数据来源，展示当前项目对应范围的单选或多选。
6. 自定义内容区块由 Widget 提供文字、图片或视频等输入方式。
7. 选择是否允许未登录顾客查看；页面默认长期有效。页面主题自动读取项目当前有效主题，不在此处单独选择。
8. 所有需要配置的区块都有有效内容后，完成内部预览并上线。

### 4.4 项目主题管理

1. 只有选定项目后，才能进入该项目的“项目主题”。
2. 未定义个性化主题时使用 VISTA 默认主题；每个项目最多一个个性化主题。
3. 项目主题统一控制该项目全部页面的业务配色，不改变页面布局。
4. 主题保存并应用后影响全部页面，包括已上线页面，页面不需要重新发布。
5. 主题配置范围、预览、校验和异常处理见 `05-A端项目主题管理PRD.md`。

## 五、状态与影响规则

- Widget 停用：不能再添加到新模板；不删除已有模板或项目页面。
- 模板待验证：代码尚未被人工确认可用，不能创建项目页面。
- 模板停用：不能创建新页面；不影响已有页面访问。
- 页面草稿：可修改内容但不可被分享访问。
- 页面上线：可以进入后续分享流程，顾客看到当前线上内容。
- 页面下线：停止访问；模板和其他页面不受影响。
- 模板修改：只供新页面使用，不改变已有页面。

## 六、验收标准

| 编号 | 验收标准 |
|---|---|
| AC-01 | 注册 Widget 页面分为唯一标识、Widget 定义、展示规则；Widget 定义包含名称、Widget 分类、内容配置方式、数据来源和内容说明；展示规则仅提供小、中、大三个复选项，并要求至少选择一个。 |
| AC-02 | Widget 标识由系统生成且全局唯一，注册后不可修改；Widget 名称允许修改，改名不改变 Widget 标识；注册后状态为待验证，确认上线前不能用于模板。 |
| AC-03 | 未启用或已停用 Widget 不能被新模板添加。 |
| AC-04 | 每个 Widget 区块只能选择对应 Widget 支持的展示规格；展示规格作为该区块的引用参数独立保存，并在项目页面配置中只读。 |
| AC-05 | 同一 Widget 的多个区块在项目页面中分别配置内容，彼此不覆盖。 |
| AC-06 | 自动带入区块无需人工配置；选择项目内容区块可选择当前项目内容；自定义内容区块按 Widget 提供的输入方式填写。 |
| AC-07 | 缺少任何需配置区块的有效内容时可保存草稿，但不能上线。 |
| AC-08 | 项目页面生成后不能切换模板、改变区块顺序或展示规格。 |
| AC-09 | 模板后来修改不影响已有页面；新页面使用新的模板配置。 |
| AC-10 | 模板不能直接访问，只有已上线项目页面可以进入后续分享与顾客访问流程。 |
| AC-11 | 同一页面可包含不同或相同 Widget；各 Widget 区块允许配置相同或不同展示规格，不相互联动。 |
| AC-12 | 模板中的 Widget 区块可通过拖拽手柄重新排序；拖动时显示当前对象和目标位置，松开后编号立即更新，保存后再次进入模板仍保持该顺序。 |
| AC-13 | 注册页面模板时由系统生成全局唯一且长期不变的模板标识；开发人员必须使用该标识实现模板代码。 |
| AC-14 | 顶部不显示“Widget 与模板管理 / 项目管理”切换 Tab；两个一级目录及其子项均在左侧导航展示。 |
| AC-15 | 未选择项目时不能直接进入项目页面列表或项目主题；选择项目后，项目页面列表只展示该项目的数据。 |
| AC-16 | 左侧项目管理下存在“项目主题”入口；具体配置范围、预览、应用和恢复默认规则以独立主题管理 PRD 为准。 |
| AC-17 | 项目页面不提供单独选择主题的入口；页面依据所属项目读取当前有效主题。 |
| AC-18 | 修改项目主题不改变页面发布状态，但会影响该项目全部页面，包括已上线页面。 |
| AC-14 | 页面明确说明 A端只登记动态 Widget 区块，通用组件和固定非区块内容由模板代码实现。 |
| AC-15 | 模板注册后进入待验证；MVP 人工确认代码已部署后进入已启用，待验证模板不能创建项目页面。 |
| AC-16 | 模板确认上线弹窗明确说明不执行自动验证，并要求确认模板标识和 Widget 区块承载能力。 |
| AC-17 | Widget 和模板的确认上线弹窗均明确说明 MVP 不执行自动验证，不得显示虚假的逐项验证通过结果。 |
| AC-18 | MVP 的模板注册页、模板列表和数据记录均不包含模板分类字段。 |
| AC-19 | Widget 注册页提供必选的单选“Widget 分类”，选项仅为项目基础、建筑与空间、空间体验、住户产品、周边环境、资料内容、系统能力；同时提供独立的单选“数据来源”，选项仅为项目基本信息、楼层信息、户型、住户、样板间、公共空间、建筑与楼栋、眺望与景观、资料文件、其它。 |
| AC-20 | “其它”显示为“其它（无需选择数据）”；选择项目内容的 Widget 不能使用“其它”。 |
| AC-21 | 创建项目页面需要选择内容时，可选数据范围与 Widget 登记的数据来源一致；页面和 PRD 不展示接口地址、请求参数或返回结构。 |

## 七、待后续确认（不阻断当前原型）

1. 自定义内容的第一版是否只允许文字和既有项目媒体，还是同时允许上传新文件；当前原型采用“选择项目媒体 + 录入文字”。
2. 模板保存后的修改是否采用“另存新版本”还是系统自动保留历史记录；MVP 只要求不影响已有页面。
3. 销售端分享资格是否需要独立的“允许销售分享”开关；当前需求只明确“是否允许未登录顾客查看”，暂不把分享开关作为创建页面的必填项。

## 八、供 Codex 使用的执行说明

- 原型不得再使用“主承载 Widget + 依赖 Widget”的旧模型；技术字段统一使用有序 `widget_occurrences`，页面显示为“Widget 区块”。
- 不把 Widget 注册误写成 A端制作 Widget 内容、输入控件或容器内部表现。
- 不把模板区块展示规格开放到项目页面配置页。
- 修改本文件时同步检查 `02` 样例、`03` 字段字典、`04` 页面流程和正式原型。
