﻿# ABC端页面实例统一规则修改说明

> 文档版本：v0.4
>
> 状态：A端展示规格与多 Widget 独占窗口并存规则已确认；B端待同步设计，C端重构中暂不修改
>
> 适用对象：产品、A端、B端、C端、设计、开发、测试、Codex

## 修订记录

| 版本 | 日期 | 变更类型 | 变更摘要 | 备注 |
|---|---|---|---|---|
| v0.1 | 2026-09-02 | 初始创建 / 重大跨端规则统一 | 统一页面实例与模板、素材、保存生效及版本机制；汇总 A端文档与原型修改范围，并列出 B端、C端后续同步要求。 | 产品确认。 |
| v0.1 | 2026-09-02 | **重大访问授权与主题边界补充** | 页面首次保存后允许进入已启用状态，但顾客访问必须满足 B端固定链接规则；项目主题动态影响所属项目页面；当前系统尚未上线，不存在历史页面迁移。 | 产品补充确认；同一连续编辑时段沿用 v0.1。 |
| v0.2 | 2026-09-03 | 文档表达整改 | 已确认规则改为直接描述现行业务模型；旧规则仅在变更背景中集中说明，B/C端同步要求改为目标状态。 | 初步需求评审整改。 |
| v0.3 | 2026-09-03 | **重大：B端 V0.251 反向对齐 A/C端** | 以最新 B端固定链接、自由模板和客户识别规则替换原“B端分享权限”抽象口径；A端移除匿名访问配置，C端改为固定链接状态驱动并使用邮箱验证码认证。 | 来源：[B端最新需求目录](https://alidocs.dingtalk.com/i/nodes/EpGBa2Lm8aEEL34lHwPBOA5e8gN7R35y)。 |
| v0.3 | 2026-09-03 | **重大：自由模板系统维护边界确认** | 自由模板由产品与研发随系统版本维护；A端操作人员只读查看。 | 产品确认；同一连续编辑时段沿用 v0.3。 |
| v0.3 | 2026-09-03 | **重大：多 Widget 独占窗口与尺寸方案取消** | 页面可包含多个 Widget，并保留重复引用与有序编排；每个 Widget 独占顾客端内容窗口，通过导航或演示模式按钮切换。A端不配置 Widget 尺寸或切换控件。B端需同步设计，C端因重构本轮不修改。 | 产品纠正；同一连续编辑时段沿用 v0.3。 |
| v0.4 | 2026-09-04 | **重大：恢复 Widget 展示规格并保留独占窗口切换** | 撤回尺寸取消部分：恢复微、小、中、大支持展示规格及逐 Widget 选择；保留页面多 Widget、独占内容窗口、导航／演示模式切换。A端配置规格但不配置切换控件；B端需同步，C端本轮不修改。 | 产品确认。 |

## 1. 文档目的

本文是本次跨 A、B、C 端页面规则变更的统一事实入口。各端正式 PRD 仍负责本端具体功能、页面和验收标准；如与本文冲突，应按本文已确认规则完成修订。

## 2. 统一业务模型

页面采用“独立页面实例 + 有序 Widget 结构 + 逐 Widget 展示规格 + 动态素材引用 + 项目当前主题 + 单一有效内容”的模型：模板提供创建时的初始结构，页面保存后独立维护；素材和项目主题更新后由页面动态读取；每次保存成功后，页面当前有效内容立即更新。

## 3. 已确认统一规则

### 3.1 页面实例与模板

1. 模板只在创建页面时提供初始结构和初始配置。
2. 页面实例生成成功后即与模板解除运行关系，只保留来源模板记录用于追溯。
3. 模板最新配置只用于之后新建页面；已生成页面继续使用自身保存的 Widget 结构、顺序、页头、页脚及其他固定公共部分。
4. 页面编辑结果只保存到当前页面实例。

### 3.2 页面实例与素材

1. 页面保存素材标识、选择范围和页面内顺序，不复制素材正文。
2. 素材标题、说明、图片、视频及其他源内容变化后，页面在下一次读取或刷新时使用最新有效内容。
3. 素材被停用、删除或失去公开权限后，受影响 Widget 执行已定义的空状态、隐藏或不可用提示，其他 Widget 继续可用。

### 3.3 页面可编辑内容

页面可单独编辑并保存：

- 页面名称、备注、封面及多语言文本；
- Widget 的组成与顺序；普通模板生成的页面是否允许改结构，按该端页面编辑权限执行；
- 每个 Widget 实例的展示规格、展示名称、多语言文本和内容配置；普通模板页面的规格按端内权限锁定，自由模板页面允许修改；
- 页面选择了哪些素材及其页面内顺序。

素材正文统一在素材管理入口维护，所有引用页面读取其最新有效内容。

### 3.4 保存、生效与状态

1. 系统为每个页面维护一份当前有效内容，以及最近保存人、最近保存时间和操作记录等审计信息。
2. 保存前的输入仅保留于当前编辑会话；离开会话后丢弃。
3. 页面第一次保存成功时生成独立实例并进入已启用状态；保存前允许更换模板，更换后按新模板重新初始化当前未保存配置；保存成功后来源模板只读。
4. 已有页面编辑保存成功后，各端读取最新页面配置；顾客是否能够访问由页面状态与 B端固定链接规则共同决定。
5. 保存前执行内容完整性、权限和并发冲突校验；校验失败时继续使用最近一次保存成功的内容，当前编辑会话保留输入并显示原因。
6. 页面状态为“已启用、已停用、已删除”；内容保存与状态操作分别管理。

### 3.5 固定链接与访问

1. A端页面第一次保存成功后进入 B端页面库；B端为其创建唯一固定链接，默认启用且默认需要认证。
2. B端创建页面第一次保存成功时，同时创建唯一固定链接。
3. 固定链接公开时，未识别访客可匿名访问；需要认证时，按客户标识参数、同项目浏览器会话、邮箱验证码的顺序识别客户。
4. 页面保存不改变链接地址、启停、公开状态、客户关系或客户标识参数。
5. A端来源页面下架后，B端保留固定链接状态和关系但停止页面访问；恢复上线后原链接按原状态继续使用。
6. A端来源页面删除后，B端保留链接和历史关联记录，永久解除来源关系并停止访问。

### 3.6 页面实例与项目主题

1. 项目主题与页面模板是两个独立对象。
2. 页面按所属项目读取当前有效主题。
3. 项目主题变化后，该项目全部页面在下一次读取或刷新时使用最新主题，既有页面、Widget 结构和分享关系保持原值。

### 3.7 页面与 Widget

1. 每个页面至少包含一个 Widget，可以包含多个 Widget，也可以重复引用同一 Widget；每次引用形成独立 Widget 实例。
2. 每个 Widget 独占顾客端内容窗口。同一时刻只展示一个 Widget，不与其他 Widget 并排出现；通用页头、品牌、导航和系统提示不计入 Widget 数量。
3. 顾客通过页面导航或演示模式按钮在同一页面的 Widget 之间切换。
4. Widget 顺序是导航和演示模式切换顺序的数据依据。A端负责维护组成与顺序，不配置导航样式、演示模式按钮或切换动效。
5. Widget 元数据提供微、小、中、大支持展示规格集合。每次 Widget 引用必须从其支持集合中单选一个展示规格。
6. 展示规格表示当前 Widget 在独占窗口内采用哪一种展示方案，不表示页面同时展示多少个 Widget，也不改变独占窗口规则。
7. 普通模板保存一个或多个有序 Widget 引用及各自展示规格；创建页面时复制完整 Widget 结构、顺序与规格，页面内锁定。
8. 自由模板保持空白；基于自由模板创建页面时，可添加、删除、重复添加、排序 Widget，并修改各 Widget 展示规格；至少有一个已启用且配置完整的 Widget 才能保存。
9. 保存时校验页面内所有 Widget 的有效状态、展示规格和内容完整性；新增 Widget 已停用或配置不完整时阻止保存，并定位到对应 Widget。

## 4. 本次 A端修改范围

| 文件 | 修改重点 | 本次状态 |
|---|---|---|
| `输出稿/01-A端Widget管理PRD.md` | 恢复微、小、中、大支持展示规格只读元数据；明确规格与独占窗口的关系。 | 已完成 |
| `输出稿/02-A端页面模板管理PRD.md` | 普通模板登记有序多 Widget 结构，并为每次引用选择展示规格；不配置切换控件。 | 已完成 |
| `输出稿/03-A端项目页面管理PRD.md` | 页面保存多个 Widget 实例、顺序与规格；普通模板页面锁定规格，自由模板页面可编辑规格。 | 已完成 |
| `输出稿/04-A端项目主题管理PRD.md` | 主题作用于页面全部 Widget，但不改变 Widget 展示规格、结构、顺序或切换方式。 | 已完成 |
| `输出稿/05-A端自由模板PRD.md` | 基于自由模板创建页面时可自由编排多个 Widget，并逐个选择展示规格。 | 已完成 |
| `README.md` | 更新 A端对象关系与跨端职责摘要。 | 已完成 |
| `prototype/` | 恢复支持展示规格及逐 Widget 选择；保留多 Widget 编排，并在预览中演示规格、导航与演示模式切换。 | 已完成 |

## 5. B端最新基准与同步要求

### 5.1 事实源

- [B端最新需求目录](https://alidocs.dingtalk.com/i/nodes/EpGBa2Lm8aEEL34lHwPBOA5e8gN7R35y)
- 目录内《VISTA Link 产品需求文档》V0.251，最近更新 2026-09-03。

### 5.2 保持不变的 B端规则

1. B端页面库只管理可直接分享的页面实例，不展示模板对象。
2. 新建或复制后的页面是独立页面，第一次保存成功时创建新的唯一固定链接；原链接、链接状态、客户关系、客户标识参数和访问记录不复制。
3. 页面只维护一份最新保存内容；固定链接地址不随页面编辑变化。
4. 链接默认启用且默认需要认证，公开状态与启停状态分别生效。
5. 页面、素材与主题的最新有效内容按第 3 章统一规则读取。

### 5.3 B端必须补充或修订的设计

1. 新建页面：自动使用自由模板后，支持添加一个或多个 Widget、重复添加和排序，并为每个 Widget 从支持集合中选择微、小、中、大之一；至少有一个已启用且配置完整的 Widget 才能保存。
2. 编辑页面：以有序 Widget 列表管理页面内容；各 Widget 实例分别维护展示规格、展示名称、素材和内容配置。
3. 复制页面：复制来源页面完整的有序 Widget 列表、各 Widget 实例展示规格、内容和素材引用；新页面仍生成新的固定链接。
4. 页面列表与详情：如展示 Widget 信息，可使用 Widget 数量与顺序摘要；是否同时展示规格摘要由 B端设计决定，但不得把规格解释为同屏数量。
5. 字段与校验：恢复逐 Widget 展示规格字段；页面保存、复制和有效性校验均覆盖完整 Widget 列表及各自规格。
6. 顾客端导航或演示模式按钮属于跨端展示规则，不是 A端配置。B端应明确其页面编辑器如何维护 Widget 顺序，并与 C端重构确认顾客端切换入口、默认选中项和异常状态；不得把切换控件转化为 A端配置项。
7. B端正式 PRD、原型、测试用例及实现说明应同步修订；本说明定义业务边界，不替代 B端详细交互设计。

## 6. C端本次处理边界

C端正在重构，本次不修改 C端需求文档或原型。后续重构以“页面可包含多个有序 Widget、每个 Widget 带一个展示规格、同一时刻仅展示一个 Widget、顾客通过导航或演示模式按钮切换”为输入，并沿用固定链接访问、动态素材和项目主题规则。各规格在独占窗口中的视觉差异、响应式适配、默认选中项、切换动效与异常状态由 C端重构方案收口。

## 7. 初始上线要求

1. 当前系统尚未上线，首次生产发布没有存量页面迁移范围。
2. A、B、C 三端首次上线统一采用本文定义的页面模型。
3. 原型或测试环境中的演示数据仅用于本地验证，生产环境从正式业务数据开始建设。

## 8. 统一验收标准

| 编号 | Given | When | Then |
|---|---|---|---|
| AC-U01 | 已通过任一模板生成页面 | 修改来源模板任意内容 | 既有页面继续使用自身 Widget 结构、顺序、内容、外观、链接和状态。 |
| AC-U02 | 页面引用有效素材 | 修改素材源内容 | 页面下次读取或刷新时显示最新素材。 |
| AC-U03 | 页面固定链接可用 | A端或B端修改页面并保存成功 | 顾客再次读取页面时看到最新保存配置，链接地址保持不变。 |
| AC-U04 | 用户正在编辑页面但尚未保存 | 顾客通过可用固定链接访问 | 顾客继续看到最近一次保存成功的页面内容。 |
| AC-U05 | 页面保存校验失败 | 用户点击保存 | 页面继续使用最近一次保存成功的内容；当前会话保留输入并显示原因。 |
| AC-U06 | 页面已停用 | 完成内容编辑并保存 | 顾客仍不能访问；重新启用后直接使用最近保存内容。 |
| AC-U07 | 素材被停用、删除或失去公开权限 | 打开引用该素材的页面 | 受影响 Widget 执行已定义的降级处理，其他 Widget 继续展示。 |
| AC-U08 | 页面和固定链接可用 | 顾客满足公开或客户识别条件后访问 | 顾客读取页面当前有效配置、最新有效素材和当前项目主题。 |
| AC-U09 | 项目已有多个页面 | 更新并应用项目主题 | 该项目全部页面下次读取或刷新时使用最新主题，既有页面和分享关系保持原值。 |
| AC-U10 | 页面包含多个 Widget | 顾客打开页面 | 同一时刻仅展示一个 Widget；可通过导航或演示模式按钮切换。 |
| AC-U11 | 模板包含多个或重复 Widget 引用 | 使用模板生成页面 | 页面复制完整 Widget 列表、顺序及各自展示规格，不复制切换控件配置。 |
| AC-U12 | 基于自由模板新建页面 | 添加、重复添加、排序 Widget 并选择展示规格后保存 | 页面保存各独立 Widget 实例、顺序及各自展示规格。 |
| AC-U13 | A端查看 Widget、模板或页面配置 | 检查可配置项 | Widget 元数据只读展示支持规格；模板和自由模板页面可在支持集合中选择；不出现导航样式或演示模式按钮配置。 |
| AC-U14 | 页面内新增 Widget 已停用或配置不完整 | 保存页面 | 阻止保存并定位到对应 Widget；最近一次有效页面内容保持不变。 |
| AC-U15 | B端复制多 Widget 页面 | 第一次保存成功 | 完整 Widget 列表、顺序、展示规格、内容与素材引用被复制，新页面生成新的固定链接。 |
| AC-U16 | 页面包含不同展示规格的多个 Widget | 顾客通过导航或演示模式切换 | 同一时刻仅显示一个 Widget，并按当前 Widget 保存的规格渲染。 |

## 9. 文档同步与执行顺序

1. 本说明文档作为统一修改入口。
2. A端正式 PRD 与原型同步维护并执行一致性检查。
3. B端依据第 5.3 节补充页面新建、编辑、复制、排序、展示规格及跨端切换设计。
4. C端重构期间不修改旧文档或原型；重构方案完成后按第 3.7 节验收。
5. A、B端同步完成后先执行多 Widget 页面专项验收；C端完成重构后再执行完整跨端验收。

## 10. 本次保持不变的现有边界

- Widget 能力定义的版本策略继续按 Widget PRD 执行，不兼容变化使用新的 Widget 标识。
- 页面只维护当前有效内容；定时生效或灰度控制需要独立需求后再扩展。
- 页面编辑器负责维护 Widget 实例、顺序及素材引用，素材正文继续由素材管理入口维护。
- 模板、页面和素材继续沿用各自现有权限归属。

## 11. 待后续端内设计收口事项

| 决策项 | 当前边界 | 责任方 | 截止点 |
|---|---|---|---|
| 顾客首次进入页面时默认展示哪个 Widget | A端只输出有序 Widget 列表，不配置默认选中项。 | B/C端产品与设计 | B端修订、C端重构方案评审前 |
| 导航与演示模式按钮的具体形态、切换动效和异常状态 | 已确认必须支持两类切换入口；具体交互不由 A端定义。 | B/C端产品与设计 | C端重构交互定稿前 |
| 微、小、中、大在独占窗口中的视觉差异、响应式适配和降级方式 | A/B端只选择、保存和传递规格；规格不决定同屏数量。 | C端产品、设计与 Widget 负责人 | C端重构视觉规则定稿前 |
| 素材在目标语言下缺少有效内容时的回退规则 | 页面动态引用素材，不在页面侧生成翻译副本。 | 素材、C端产品负责人 | 跨端验收前 |

## 12. 供 Codex 使用的执行说明

- 后续文档统一使用“页面只维护当前有效内容”的模型。
- 任何模板变化均不得回写或覆盖既有页面。
- 页面结构是有序 Widget 实例列表；允许多个实例与重复引用。
- 每个 Widget 独占顾客端内容窗口，但这不等于一个页面只能包含一个 Widget。
- A端维护 Widget 组成、内容、顺序和展示规格，不提供导航或演示模式按钮配置。
- “页面已启用”不得解释为“固定链接当前可访问”；顾客访问必须经过 B端固定链接规则。
- 项目主题不属于来源模板；页面始终读取所属项目当前有效主题。
