﻿# HOMEVISTA A端自由模板 PRD

> 文档版本：v0.5
>
> 所属范围：A端系统提供、A/B端使用的页面创建能力
>
> 适用对象：产品、A端与B端业务人员、设计、开发、测试、Codex

## 修订记录

| 版本 | 日期 | 变更类型 | 变更摘要 | 备注 |
|---|---|---|---|---|
| v0.1 | 2026-08-24 | 初始创建 / 重大模板规则补充 | 新增系统预置“通用模板”：模板固定为空、不可维护；A端和B端均可基于它创建并自由组装 Widget 的页面实例。 | 产品确认。 |
| v0.2 | 2026-09-02 | **重大实例、生效与版本规则统一** | 明确页面第一次保存成功后与通用模板完全解耦；删除空白草稿、发布和快照规则；页面保存成功后立即生效，素材变化由页面同步读取。 | 产品确认；统一方案见 `../修改说明/2026-09-02-ABC端页面实例统一规则修改说明.md`。 |
| v0.3 | 2026-09-03 | 文档表达清理 | 正文改为直接描述通用模板、独立页面实例和单一有效内容模型，清理以旧草稿、快照和模板联动逻辑为参照的重复表述。 | 初步需求评审整改。 |
| v0.4 | 2026-09-03 | **重大：自由模板定义与跨端入口对齐** | 正式名称改为“自由模板”；明确 A端负责提供和维护空白结构及初始样式，B端新建页面时自动使用且不展示模板对象。模板修改仅影响之后开始新建的页面。 | 对齐 B端《VISTA Link 产品需求文档》V0.251。 |
| v0.4 | 2026-09-03 | **重大：自由模板系统维护边界确认** | 自由模板改由产品与研发随系统版本维护；A端操作人员只读查看，不提供更新、改名、复制、停用或删除入口。 | 产品确认；同一连续编辑时段沿用 v0.4。 |
| v0.4 | 2026-09-03 | **重大：多 Widget 独占窗口与尺寸配置取消** | 自由模板继续保持空白；A/B端新建页面时可添加、重复添加和排序多个 Widget。删除微、小、中、大尺寸与布局方案配置；导航或演示模式切换不由 A端配置。 | 产品纠正；同一连续编辑时段沿用 v0.4。 |
| v0.5 | 2026-09-04 | **重大：恢复页面逐 Widget 展示规格** | A/B端基于自由模板新建页面时，为每个 Widget 实例选择微、小、中、大中的一个支持展示规格；C端独占窗口和导航／演示模式切换规则保持不变。 | 撤回 2026-09-03 17:16 的尺寸取消要求。 |

## 1. 文档目的

本文定义全系统唯一“自由模板”的产品边界、A端系统保障责任，以及 A端、B端开始新建页面时的复制与实例独立规则。Widget 准入、页面内容配置、保存、固定链接和顾客访问分别以对应端正式 PRD 为准。

## 2. 背景与目标

自由模板为按销售需要组合 Widget 的页面提供统一起点。它只包含空白页面结构和初始样式，不预置业务内容。用户开始新建后，当前模板配置被复制到本次页面编辑中，可添加和排序多个 Widget，并为每个 Widget 选择展示规格；该页面从此独立。

本期目标：

1. 全系统始终提供一套自由模板，所有项目共用。
2. A端系统随产品版本提供空白结构和初始样式，并保障自由模板始终可用。
3. A端可选择自由模板创建系统默认页面；B端点击新建页面时自动使用自由模板。
4. 页面从开始新建时起与自由模板解耦，保存后只运行自身配置。
5. A、B端基于自由模板创建的页面使用同一套多 Widget 编排、展示规格与校验规则。

## 3. 范围与边界

### 3.1 本期包含

- 唯一自由模板的只读展示和系统可用保障；
- 空白页面结构和初始样式随产品版本更新；
- A端创建页面时选择自由模板；
- B端点击“新建页面”后自动复制自由模板；
- 页面实例独立、素材动态读取、保存立即生效；
- 系统版本更新自由模板后的影响范围和异常处理。

### 3.2 边界

- 自由模板内不预置页头、页尾、Widget、素材、固定文案或其他固定内容。
- 自由模板不按项目分别配置，项目主题也不属于自由模板。
- 自由模板由系统保持可用，A端操作人员只有查看权限。
- 空白结构和初始样式只随产品版本更新，A端不提供结构、样式、业务内容或程序代码的编辑入口。
- B端页面库不展示自由模板，也不提供模板选择、查看或管理入口。

## 4. 核心对象与规则

| 对象 | 规则 |
|---|---|
| 自由模板 | 全系统唯一的页面创建起点，名称固定，包含空白结构和初始样式。 |
| A端系统责任 | 产品与研发随系统版本提供自由模板配置，并保证它始终可用于新建页面。 |
| A端操作人员 | 在模板清单中只读查看自由模板的系统身份和可用状态。 |
| A端新建 | A端创建页面时可选择自由模板，再添加、配置和排序一个或多个 Widget。 |
| B端新建 | B端用户点击“新建页面”后，系统自动使用当前自由模板打开编辑页；用户不接触模板对象。 |
| 未保存页面 | 开始新建时复制当时的自由模板配置，从生成时起独立。 |
| 已保存页面 | 保存自身 Widget 实例、顺序、展示规格、内容和页面配置；模板更新不改写页面。 |

### 4.1 系统维护与只读规则

- A端模板清单始终显示唯一的“自由模板”，状态显示为“系统必备”。
- A端操作人员只读查看该记录；操作列不提供编辑、改名、复制、停用或删除入口。
- 产品与研发在系统版本中维护空白页面结构和初始样式，并保证自由模板不包含页头、页尾、Widget、素材、固定文案或其他固定内容。
- 新系统版本生效后，更新后的配置成为之后开始新建页面的起点。
- 已经开始新建但尚未保存的页面继续使用开始新建时复制的配置。
- 已经保存的页面继续使用自身配置。
- 系统版本中的自由模板配置变化只用于之后开始新建的页面；既有页面继续使用自身的 Widget 实例、顺序、素材、页面内容、固定链接、链接状态和客户关系。

### 4.2 实例页面共同规则

- A端选择自由模板、B端点击新建页面时，系统复制当时的空白结构和初始样式并进入未保存编辑状态。
- 用户从当前已启用 Widget 清单中添加一个或多个 Widget，每次添加形成独立 Widget 实例。
- 同一 Widget 可在页面中重复添加，每个实例的名称、内容、素材、展示规格和顺序相互独立。
- 每个 Widget 在顾客端独占内容窗口；同一时刻不与其他 Widget 并排展示。
- 顾客端通过页面导航或演示模式按钮切换 Widget。A端只维护 Widget 顺序，不配置导航、按钮或切换动效。
- A/B端必须为每个 Widget 实例从其支持集合中选择微、小、中、大之一；展示规格表示该 Widget 在独占窗口内采用的展示方案，不决定同时展示数量。
- 页面至少有一个内容完整的 Widget 后才可保存。
- 第一次保存成功时生成独立页面实例；以后每次保存成功后，最新配置成为该页面唯一有效内容。
- 页面保存素材引用；素材源变化后，页面读取最新有效内容。
- 页面使用所属项目当前主题；主题不复制进页面，也不属于自由模板。

## 5. 用户用例

### UC-F01：A端查看自由模板

1. A端操作人员打开页面模板清单。
2. 清单显示唯一的“自由模板”，状态为“系统必备”，Widget 数量为 0。
3. 操作列显示“系统维护”，不提供可执行操作。

**结果**：A端操作人员能够识别自由模板及其状态，但不能修改该对象。

### UC-F02：A端基于自由模板创建页面

1. A端用户创建项目页面并选择自由模板。
2. 系统复制当前自由模板并打开空白编辑页。
3. 用户添加、配置和排序一个或多个 Widget，为每个 Widget 选择展示规格，完成页面信息。
4. 保存通过后生成 A端页面实例。

### UC-F03：B端新建页面

1. B端用户在页面库点击“新建页面”。
2. 系统自动复制当前自由模板并打开空白编辑页。
3. 用户添加、配置和排序一个或多个 Widget，为每个 Widget 选择展示规格，完成页面名称、备注和封面。
4. 保存通过后生成 B端页面实例，并由 B端创建该页面唯一固定链接。

**结果**：B端流程中不出现模板清单、模板选择或模板详情。

## 6. 功能需求矩阵

| 功能 ID | 功能名称 | 关联用例 | 优先级 |
|---|---|---|---|
| F-001 | 唯一自由模板 | UC-F01、UC-F02、UC-F03 | P0 |
| F-002 | A端只读查看自由模板 | UC-F01 | P0 |
| F-003 | A端选择自由模板创建页面 | UC-F02 | P0 |
| F-004 | B端自动使用自由模板新建页面 | UC-F03 | P0 |
| F-005 | 页面从开始新建时起独立 | UC-F02、UC-F03 | P0 |

## 7. 交互、状态与异常规则

| 场景 | 规则 |
|---|---|
| A端模板列表 | 显示唯一自由模板及“系统必备”状态，操作列显示“系统维护”。 |
| B端点击新建页面 | 直接打开由当前自由模板生成的空白编辑页。 |
| 系统版本更新时已有未保存页面 | 该页面保持开始新建时复制的结构和样式。 |
| 系统版本更新时已有页面实例 | 该页面保持自身配置。 |
| 自由模板暂时不可读取 | 阻止开始新的页面创建并提示稍后重试；不影响既有页面。 |
| 页面没有 Widget 或 Widget 内容不完整 | 保持当前编辑状态并指出未完成内容。 |
| Widget 未选择展示规格或选择值不在支持集合中 | 保持当前编辑状态并定位到对应 Widget，阻止保存。 |
| 新增 Widget 在保存前停用 | 保留页面其他信息，阻止保存并提示删除该 Widget 或改用已启用 Widget。 |
| B端无页面创建权限 | B端按自身权限规则隐藏“新建页面”。 |

## 8. 验收标准

| AC 编号 | Given | When | Then |
|---|---|---|---|
| AC-F01 | A端打开模板清单 | 查看自由模板 | 只存在一套全系统共用的自由模板，状态为“系统必备”。 |
| AC-F02 | 系统提供自由模板 | 检查模板定义 | 只有空白结构和初始样式，不含页头、页尾、Widget、素材、固定文案或其他固定内容。 |
| AC-F03 | A端操作人员查看自由模板 | 检查模板信息和可用操作 | 页面 Widget 显示“创建页面时选择”，操作列显示“系统维护”。 |
| AC-F04 | B端用户有创建页面权限 | 点击“新建页面” | 系统直接打开自由模板生成的空白编辑页，不展示模板选择。 |
| AC-F05 | 页面已开始新建但尚未保存 | 新系统版本更新自由模板 | 当前未保存页面结构和样式保持不变。 |
| AC-F06 | 页面已经保存 | 新系统版本更新自由模板 | 页面 Widget、素材、内容、固定链接和客户关系保持不变。 |
| AC-F07 | A端或B端基于自由模板新建页面 | 添加、重复添加、排序 Widget 或选择展示规格 | 页面保留多个独立 Widget 实例、当前顺序和各自展示规格。 |
| AC-F11 | 页面已经第一次保存 | 再次编辑页面 | 页面可增删、排序或编辑 Widget 展示规格与内容，修改仅影响当前页面。 |
| AC-F12 | 页面包含多个 Widget | 查看顾客端 | 同一时刻只显示一个独占内容窗口的 Widget，可通过导航或演示模式按钮切换。 |
| AC-F13 | 打开 A端页面配置 | 检查 Widget 字段 | 可选择每个 Widget 的支持展示规格；不出现导航样式、演示模式按钮或切换动效配置。 |
| AC-F08 | 页面配置完整 | 第一次保存成功 | 生成独立页面实例，最新配置成为唯一有效内容。 |
| AC-F09 | 页面引用素材 | 素材源内容更新 | 页面下次读取或刷新时显示最新有效内容。 |
| AC-F10 | 项目主题更新 | 打开既有页面 | 页面使用项目当前主题，页面配置和来源模板记录保持不变。 |

## 9. 关联文档与执行说明

- `01-A端Widget管理PRD.md`：Widget 可用清单和页面使用所需规则。
- `02-A端页面模板管理PRD.md`：自由模板在 A端模板管理中的只读展示和系统保护规则，以及其他页面模板管理规则。
- `03-A端项目页面管理PRD.md`：A端项目页面内容、预览、保存、状态及代处理规则。
- B端《VISTA Link 产品需求文档》V0.251：B端自动使用自由模板的新建流程、固定链接和访问规则。

供 Codex 使用：自由模板由 A端系统随产品版本提供和维护，A端操作人员不可修改；B端新建页面时自动使用但不展示模板对象。开始新建就是模板复制边界；未保存页面和已保存页面均不再持续读取模板。页面、素材、主题和固定链接分别按各自对象规则变化。

## 10. 待确认事项

微、小、中、大在 C端独占窗口中的具体视觉差异、响应式适配和降级方式，由 C端重构与 Widget 设计统一收口；A/B端只负责选择、保存和传递已定义规格。
