﻿# C-2.11\_B-1.27\_后台-1.39\_样板间权限升级\_方案B

# PRD：C-2.11 / B-1.27 / 后台-1.39 样板间权限升级（方案 C）

20260531：在原来的方案B上，增加了最后一节的补充需求，形成方案C。



## 1. 需求背景

当前 HOME VISTA 的共享内容数据权限设定中，户型内容会受到共享状态和户型图售罄状态约束，住户内容会受到售罄状态约束：

*   若销售人员未将某个户型共享给顾客，顾客在户型图、各阶平面图、住户表中均无法看到该户型信息。
    
*   若某个户型图已被设定为售罄，顾客在 C 端无法看到该户型及该户型对应住户信息，即使 B 端已设定共享给用户也不可见。
    
*   若某个住户已售罄，顾客在户型图、各阶平面图、住户表中均无法看到该住户信息。
    

当前样板间功能中添加的户型样板间或住户样板间 VR，没有受到户型、住户访问权限规则，以及户型图售罄规则和住户售罄规则的联动限制。部分房企希望样板间列表页中不再展示当前访问场景下无权访问、已售罄户型或已售罄住户关联的样板间。

方案 B 以最小改动为原则：保留运营后台开关；B 端不强制改造为方案 A 的全量只读置灰模式，仅调整共享设置中的样板间选择交互；C 端仅调整样板间列表页接口，在开关开启后增加户型、住户的共享限制与访问过滤，以及户型图售罄、住户售罄过滤。

## 2. 方案 A 与方案 B 对比

| 对比项 | 方案 A | 方案 B |
| --- | --- | --- |
| 运营后台开关 | 新增样板间权限联动开关 | 与方案 A 相同 |
| B 端样板间勾选 | 联动模式下样板间不可独立勾选，置灰只读 | 继承并使用历史保存态；户型未勾选时关联样板间置灰不可操作，户型已勾选后关联样板间开放操作 |
| B 端历史数据处理 | 联动模式下不读取独立模式保存态作为页面结果 | 独立模式历史分享数据切换为联动模式后保持不变，并被联动模式继承使用 |
| C 端导航入口配置 | 联动模式下按联动有效状态计算，不读取保存态 | 保持现有 C 端导航入口配置逻辑；修改样板间勾选时按现有规则联动 C 端导航入口配置 |
| C 端改造范围 | 按联动表计算样板间数据与导航状态 | 仅修改样板间列表页接口，增加户型、住户的共享限制与访问过滤，以及售罄过滤 |
| 实现复杂度 | 高，需要 B 端、C 端多处权限计算重构 | 低，保留现有共享配置模型，仅补充选择交互联动与列表过滤 |
| 对历史配置影响 | 联动模式下历史样板间配置不生效 | 历史样板间配置继续回显并生效；后续操作按户型到样板间的单向联动规则执行 |

结论：方案 B 可以作为更小改动方案。它不追求彻底重构样板间共享权限模型，而是在保留现有独立共享配置的基础上，增加 B 端选择交互联动和 C 端样板间列表页访问与售罄过滤，降低实现成本与历史项目影响。

## 3. 需求目标

| 目标 | 说明 |
| --- | --- |
| 保留现有业务兼容性 | 开关默认关闭，关闭时样板间展示与配置规则均与历史版本保持一致 |
| 降低 B 端改造成本 | 联动模式下继承历史保存态，不重构保存模型 |
| 优化 B 端选择交互 | 联动模式下按户型图勾选状态控制关联样板间是否可操作，并提供单向联动勾选 |
| 增加 C 端访问与售罄过滤 | 开关开启后，样板间列表页不展示当前访问场景下无权访问、已售罄户型或已售罄住户关联的样板间 |
| 保持 C 端 UI 稳定 | C 端 UI 不调整，仅升级样板间列表页接口返回内容 |

## 4. 适用范围

| 项目 | 说明 |
| --- | --- |
| 版本 | C-2.11 / B-1.27 / 后台-1.39 |
| 端 | 运营后台 / B 端 / C 端 |
| 涉及对象 | 样板间、户型样板间、住户样板间 VR、户型/住户访问权限、户型图售罄状态、住户售罄状态、样板间共享配置 |
| 涉及 B 端配置 | 管理员共享设定、站点公开访问内容设定、顾客共享设定 |
| 涉及 C 端页面 | 样板间列表页 |
| 不涉及 | C 端 UI 改版、样板间 VR 内容制作流程改造、户型图与住户既有共享规则改造、样板间共享配置模型重构 |

## 5. 术语定义

| 术语 | 定义 |
| --- | --- |
| 样板间 | HOME VISTA 中用于展示户型或住户相关 VR / WALK 内容的功能模块 |
| 户型样板间 | 样板间数据中填写户型字段、未填写住户字段的样板间内容 |
| 住户样板间 | 样板间数据中同时填写户型字段和住户字段的样板间内容 |
| 样板间房间字段 | 样板间中户型字段必填，住户字段非必填；不存在仅填写住户字段、不填写户型字段的样板间房间 |
| 独立模式 | 运营后台开关关闭时的模式；样板间配置与展示规则与历史版本保持一致 |
| 联动辅助模式 | 运营后台开关开启时的方案 B 模式；B 端继承并使用保存态，按户型图勾选状态控制关联样板间可操作性，并提供户型图到样板间的单向联动；C 端样板间列表页增加户型/住户访问与售罄过滤 |
| 户型/住户访问权限 | 当前访问场景下，顾客是否有权查看对应户型或住户；住户访问权限按既有户型与住户绑定访问规则判断，不新增住户独立共享状态 |
| 保存态 | 数据库中已保存的户型、样板间、C 端导航入口共享配置 |
| 单向联动 | 户型图勾选状态可以影响关联样板间；样板间勾选状态变化不反向影响户型图 |

## 6. 用户用例

### 用例 1：运营后台配置样板间权限联动开关

| 项目 | 内容 |
| --- | --- |
| 用户 | 运营后台管理员 |
| 场景 | 客户项目希望样板间列表页过滤无权访问、已售罄户型或住户关联的样板间 |
| 前置条件 | 当前项目使用新增版本能力 |
| 用户目标 | 通过开关控制样板间是否启用方案 B 联动辅助、访问过滤与售罄过滤 |
| 操作路径 | 进入运营后台基本信息设定 -> 找到样板间权限联动开关 -> 开启或关闭 -> 保存配置 |
| 结果 | 开关关闭时保持历史版本规则；开关开启时启用方案 B 规则 |

### 用例 2：B 端管理员设定销售人员允许共享给顾客的内容范围

| 项目 | 内容 |
| --- | --- |
| 用户 | B 端管理员 |
| 场景 | 管理员设定销售人员允许共享给顾客的内容范围 |
| 前置条件 | 管理员进入共享内容范围设定页面 |
| 用户目标 | 在现有共享设置页面中继续编辑户型与样板间共享内容 |
| 结果 | 页面继续读取保存态；开关开启后，样板间是否可操作由关联户型图勾选状态控制 |

### 用例 3：B 端管理员设定项目公开时可以访问的内容范围

| 项目 | 内容 |
| --- | --- |
| 用户 | B 端管理员 |
| 场景 | 管理员设定项目公开访问时可以查看的内容范围 |
| 前置条件 | 管理员进入站点公开访问内容设定页面 |
| 用户目标 | 控制公开访问状态下可访问的户型与样板间内容 |
| 结果 | 页面继续读取保存态；开关开启后，样板间是否可操作由关联户型图勾选状态控制 |

### 用例 4：B 端销售人员设定共享给顾客的内容范围

| 项目 | 内容 |
| --- | --- |
| 用户 | B 端销售人员 |
| 场景 | 销售人员为具体顾客设定可访问内容范围 |
| 前置条件 | 销售人员进入顾客共享设定页面 |
| 用户目标 | 在管理员限定范围内设置顾客可访问的户型与样板间内容 |
| 结果 | 页面继续读取保存态；开关开启后，样板间是否可操作由关联户型图勾选状态控制 |

### 用例 5：C 端顾客查看样板间列表页

| 项目 | 内容 |
| --- | --- |
| 用户 | C 端顾客 |
| 场景 | 顾客从样板间导航入口进入样板间列表页 |
| 前置条件 | 当前访问场景下样板间列表页可访问 |
| 用户目标 | 不看到无权访问、已售罄户型或已售罄住户关联的样板间 |
| 结果 | 开关开启后，样板间列表页接口过滤无权访问、已售罄户型、已售罄住户关联的样板间 |

## 7. 核心规则总览

| 运营后台开关 | B 端配置页面 | B 端选择交互 | C 端样板间列表页 |
| --- | --- | --- | --- |
| 关闭 | 与历史版本保持一致 | 与历史版本保持一致 | 与历史版本保持一致 |
| 开启 | 继承并使用保存态 | 户型图到样板间单向联动，样板间可在户型图已勾选时独立开关 | 在保存态基础上增加户型/住户访问过滤、户型图售罄、住户售罄过滤 |

## 8. 运营后台配置规则

1.  添加页面：运营后台**基本信息设定**。
    
2.  开关名称：**样板间权限联动**。
    
3.  开关类型：switch，与外景、计算器开关相同。
    
4.  添加位置：**计算器模式开关下方**。
    
5.  默认状态：关闭。
    
6.  显示条件：仅 C 端版本为 2.11 及以上的项目显示；低于 C 端 2.11 的项目不显示。
    
7.  开关关闭时，样板间配置与展示规则与历史版本保持一致。
    
8.  开关开启时，启用方案 B 的 B 端选择交互联动与 C 端样板间列表页访问及售罄过滤。
    
9.  开关状态保存后，B 端配置页面与 C 端样板间列表页接口按最新开关状态执行。
    

## 9. B 端配置规则

本章节适用于 B 端三个设置共享内容的场景：

*   管理员设定销售人员允许共享给顾客的内容范围
    
*   管理员设定项目公开时可以访问的内容范围
    
*   销售人员设定共享给顾客的内容范围
    

### 9.1 页面回显与保存态规则

1.  开关关闭时，B 端页面回显与历史版本保持一致。
    
2.  独立模式下已保存的户型图、样板间、C 端导航入口共享配置，在切换为联动模式后保持不变。
    
3.  开关开启时，B 端页面继承并使用数据库中已保存的户型图、样板间、C 端导航入口共享配置。
    
4.  开关开启时，页面打开后需基于保存态回显勾选结果，并同时按第 9.2 节规则计算样板间选框、样板间全选按钮的可操作状态。
    
5.  开关开启时，不因进入页面或切换开关而清空、迁移、重算数据库中已保存的样板间独立共享配置。
    

### 9.2 样板间单项勾选规则

1.  开关开启时，样板间是否可操作由其关联户型图是否勾选决定。
    
2.  若某个户型图未勾选，则关联该户型图的样板间选框置灰不可操作。
    
3.  用户点击置灰不可操作的样板间选框时，系统提示 toast：**先勾选户型图才能共享样板间**。
    
    1.  国际化key：HOMEVISTA\_B.pub.optionRejected
    
4.  当用户将某个户型图从未勾选改为勾选时，系统自动勾选关联该户型图的样板间，并打开关联样板间选框，允许用户继续操作。
    
5.  户型图到样板间为单向联动逻辑；样板间勾选状态变化不反向影响户型图勾选状态。
    
6.  在关联户型图已勾选的前提下，允许用户手动取消勾选样板间。
    
7.  用户手动取消勾选样板间时，不反向取消勾选关联户型图。
    
8.  一个户型图可以关联多个样板间；用户将该户型图从未勾选改为勾选时，关联的多个样板间均自动勾选并开放操作。
    
9.  页面打开时若已存在“户型图已勾选、关联样板间未勾选”的历史保存态，则样板间保持未勾选但开放操作，不在页面加载阶段强制勾选。
    
10.  页面打开时若已存在“户型图未勾选、关联样板间已勾选”的历史保存态，则样板间按保存态回显，但选框置灰不可操作；用户需先勾选户型图后才能操作该样板间。

11.  B 端样板间选择交互不判断户型/住户访问权限、户型售罄、住户售罄；上述条件仅影响 C 端样板间列表页接口过滤。

12.  销售人员设定共享给顾客的内容范围时，仍只能在管理员限定的可共享范围内勾选户型图。


### 9.3 样板间全选规则

1.  开关开启时，样板间全选按钮受户型图勾选状态影响。
    
2.  当当前配置页中没有任何户型图被勾选时，样板间全选按钮置灰不可点击。
    
3.  当当前配置页中至少存在一个已勾选户型图，且其关联样板间已开放操作时，样板间全选按钮可操作。
    
4.  样板间全选按钮仅对已开放操作权限的样板间生效，不操作因关联户型图未勾选而置灰的样板间。
    
5.  已开放操作权限的样板间中，部分样板间打开共享时，样板间全选按钮展示为半选态。
    
6.  已开放操作权限的样板间全部打开共享时，样板间全选按钮展示为全选态。
    
7.  已开放操作权限的样板间全部未打开共享时，样板间全选按钮展示为未选态。
    

### 9.4 C 端导航入口配置规则

1.  开关关闭时，C 端导航入口配置规则与历史版本保持一致。
    
2.  开关开启时，B 端配置页面中的 C 端导航入口配置继续读取保存态并允许按现有页面规则展示。
    
3.  开关开启时，C 端导航入口配置继承原有联动模式：至少一个样板间被选中后，C 端导航入口联动选中；没有样板间被选中时，C 端导航入口不可保持选中。
    
4.  C 端导航入口配置的联动依据为 B 端页面中的样板间勾选态，不按 C 端样板间列表页接口过滤后的结果反向计算。
    
5.  方案 B 不新增 C 端导航入口配置置灰只读规则。
    

### 9.5 B 端单向联动组合规则

| 户型图勾选状态 | 关联样板间保存态 | 页面可操作状态 | 用户操作后规则 |
| --- | --- | --- | --- |
| 0 | 0 | 样板间未勾选，置灰不可操作 | 点击提示“先勾选户型图才能共享样板间” |
| 0 | 1 | 样板间按保存态回显为勾选，置灰不可操作 | 点击提示“先勾选户型图才能共享样板间”；勾选户型图后开放操作 |
| 1 | 0 | 样板间保持未勾选，开放操作 | 用户可手动勾选样板间；若是用户本次将户型图从 0 改为 1，则样板间自动勾选 |
| 1 | 1 | 样板间保持勾选，开放操作 | 用户可手动取消样板间，不影响户型图 |

## 10. C 端展示规则

### 10.1 样板间列表页接口过滤规则

1.  开关关闭时，C 端样板间列表页展示规则与历史版本保持一致。
    
2.  开关开启时，C 端仅升级样板间列表页接口。
    
3.  开关开启时，样板间列表页接口按以下公式判断样板间是否展示：
    

```text
样板间列表页展示结果 =
样板间已共享
AND 户型可访问
AND 户型未售罄
AND (未关联住户 OR (住户可访问 AND 住户未售罄))
```

| 条件 | 说明 |
| --- | --- |
| 样板间已共享 | 当前访问场景下，样板间保存态共享配置为已勾选 |
| 户型可访问 | 当前访问场景下，顾客可访问该样板间关联户型 |
| 户型未售罄 | 样板间关联户型未被设定为售罄 |
| 未关联住户 | 样板间未关联具体住户；为 1 时不判断住户可访问与住户未售罄 |
| 住户可访问 | 当前访问场景下，顾客可访问该样板间关联住户；不新增住户独立共享状态 |
| 住户未售罄 | 样板间关联住户未售罄，状态来源与住户表一致 |

### 10.2 C 端不变规则

1.  C 端 UI 不调整。
    
2.  C 端导航入口是否展示与历史版本保持一致。
    
3.  样板间列表页空状态沿用历史版本；本需求不新增空状态文案。
    
4.  除样板间列表页接口外，其他 C 端页面或接口不在方案 B 改造范围内。
    

## 11. 验收标准

### 11.1 运营后台验收标准

1.  运营后台基本信息设定页面在计算器模式开关下方展示**样板间权限联动**开关。
    
2.  开关类型为 switch，默认关闭。
    
3.  仅 C 端版本为 2.11 及以上的项目展示该开关；低于 C 端 2.11 的项目不展示。
    
4.  开关关闭时，样板间配置与展示规则与历史版本保持一致。
    
5.  开关开启时，B 端启用选择交互联动，C 端样板间列表页接口启用访问及售罄过滤。
    

### 11.2 B 端验收标准

1.  开关关闭时，B 端样板间共享配置与历史版本保持一致。
    
2.  开关开启时，B 端三个共享内容设定场景均继续读取已保存的户型、样板间、C 端导航入口共享配置。
    
3.  开关开启时，页面加载阶段不清空、不迁移、不重算数据库中已保存的样板间独立共享配置。
    
4.  开关开启时，若样板间关联户型图未勾选，则样板间选框置灰不可操作；点击时提示 toast：**先勾选户型图才能共享样板间**。
    
5.  开关开启时，若样板间关联户型图已勾选，则样板间选框开放操作，用户可以手动勾选或取消勾选样板间。
    
6.  用户将户型图从未勾选改为勾选时，关联样板间自动勾选并开放操作；一个户型关联多个样板间时，多个样板间均执行该规则。
    
7.  用户手动取消勾选样板间时，不反向取消勾选关联户型图。
    
8.  样板间全选按钮只操作已开放操作权限的样板间；没有任何户型图被勾选时，全选按钮置灰不可点击。
    
9.  已开放操作权限的样板间部分勾选时，全选按钮展示半选态；全部勾选时展示全选态；全部未勾选时展示未选态。
    
10.  C 端导航入口配置继承现有联动规则：至少一个样板间被选中后，C 端导航入口联动选中；没有样板间被选中时，C 端导航入口不可保持选中；该联动不按 C 端样板间列表页接口过滤后的结果反向计算。

11.  B 端选择交互不判断户型/住户访问权限、户型售罄、住户售罄；上述条件仅影响 C 端样板间列表页接口过滤。

12.  销售人员设定共享给顾客的内容范围时，只能在管理员限定的可共享范围内勾选户型图。


### 11.3 C 端验收标准

1.  C 端 UI 无变化。
    
2.  开关关闭时，C 端样板间列表页展示规则与历史版本保持一致。
    
3.  开关开启时，样板间列表页接口不返回当前访问场景下不可访问的户型关联样板间。
    
4.  开关开启时，样板间列表页接口不返回已售罄户型关联的样板间。
    
5.  开关开启时，住户样板间关联住户在当前访问场景下不可访问时，样板间列表页接口不返回该样板间。
    
6.  开关开启时，住户样板间关联住户已售罄时，样板间列表页接口不返回该样板间。
    
7.  开关开启时，户型样板间未关联具体住户时，不判断住户访问权限与住户售罄状态。
    
8.  开关开启时，样板间列表页接口仍需先遵守当前访问场景下已保存的样板间共享配置；未共享的样板间不返回。
    
9.  C 端导航入口是否展示与历史版本保持一致。
    

## 12. 方案边界

1.  方案 B 不将样板间共享权限改造为完全跟随户型共享权限。
    
2.  方案 B 不强制清洗历史配置数据，联动模式继承并使用历史保存态。
    
3.  方案 B 不新增方案 A 的全量样板间只读态，仅在关联户型图未勾选时限制对应样板间选框操作。
    
4.  方案 B 不调整 C 端样板间导航入口展示规则。
    
5.  方案 B 仅明确改造样板间列表页接口；若其他 C 端入口复用该接口，则自然生效；若其他入口使用独立接口，则不在本方案范围内。
    

## 13. 追加独立模式需求（来自大和现场会）

1.  希望已销售结束的样板间也能查看
    
2.  当前版本实际情况，没有独立/联动模式的开关，但两个模式的逻辑存在于不同页面
    
    1.  户型图，联动模式逻辑
        
    2.  各阶平面图，联动模式逻辑
        
    3.  住户表，联动模式逻辑
        
    4.  样板间，独立模式逻辑
    
3.  修改范围：户型图、各阶平面图、住户表，三个页面的后端接口（在之前的需求中原定不更改）
    
4.  样板间模式开关修改
    
    1.  老版本项目，默认值为0，控为独立模式
        
    2.  新版本项目，默认值为1，控为联动模式
    
5.  户型图修改
    
    1.  联动模式：保持当前逻辑，不做任何修改
        
    2.  独立模式：取消被动售罄不显示户型图逻辑，只有主动售罄及不分享时才不显示对应户型图。
    
6.  各阶平面图修改
    
    1.  联动模式：保持当前逻辑，不做任何修改
        
    2.  独立模式：修改逻辑，允许售罄的住户热点显示，并点击打开弹窗查看户型图和样板间
        
        1.  前端需要修改业务逻辑，开放点击弹窗，和未售罄住户一样
            
        2.  后端需要修改接口逻辑，可以返回已经售罄的住户的户型、内览、外景数据
        
    3.  外景点位受控于外景联动规则，不与住户表开关关联
    
7.  住户表修改
    
    1.  联动模式：保持当前逻辑，不做任何修改
        
    2.  独立模式：
        
        1.  售罄的住户，表现形式不变，但是可以点击打开弹窗显示住户信息
            
        2.  后端需要修改接口逻辑，可以返回已经售罄的住户的户型、内览、外景数据
        
    3.  外景点位受控与外景联动规则，独立则显示，联动则不显示
    
8.  样板间修改
    
    1.  联动模式：按照方案B模式修改
        
    2.  独立模式：保持当前逻辑，不走任何吸怪