﻿# 03-标签权限模板

## 1. 模块定位

本模块定义 VISTA 顾客标签对应权限模板的配置、编辑与权限实时计算闭环。

### 本模块负责

- 标签与权限模板的绑定关系定义。
- 权限模板内容管理。
- 按模板结果触发的权限实时计算规则。
- 标签列表中模板操作入口与模板编辑页之间的前端联动。

### 本模块不负责

- 标签本体的新增、编辑、删除等操作（见 `02-顾客标签管理.md`）。
- `customer_status` 同名标签配置边界和三方映射页本期不开发说明（见 `bak-04-第三方字段映射与权限判定.md`）。
- 同步触发、日志与失败处理（见 `04-统一顾客联动同步流程.md`、`07-同步日志与追溯.md`）。

## 2. 标签权限模板管理

| 项目 | 内容 |
| --- | --- |
| 用例名称 | 为 VISTA 标签配置访问权限模板 |
| 操作者 | B 端管理员 |
| 页面范围 | 左侧导航 - 标签管理页中的权限模板操作、标签权限模板设定页 |

### 需求细节

1. 每个 VISTA 标签最多配置一个权限模板。
2. 标签允许未配置模板。
3. 标签列表中需集中展示该标签对应的模板名称；未配置模板时展示 `未設定`。
4. 标签列表中只提供该标签模板的 `权限编辑` 操作入口，不提供模板停用 / 恢复或删除模板入口。
5. 点击 `权限编辑` 后进入标签权限模板设定页，并默认选中当前标签。
6. 标签权限模板设定页顶部需展示并允许切换编辑对象标签，便于连续编辑多个标签的模板。
7. 模板编辑页页头需展示模板名、该标签使用中顾客数、已选择内容数、最终更新等必要信息。
8. 模板内容区沿用 VISTA 既有顾客权限内容选择模式；原型首屏仅需展示代表性的 VISTA 内容选择区域，不要求完整展开所有既有权限内容。
9. 模板覆盖 VISTA 客户权限设置页支持的可访问内容对象（如户型图、样板间、外景、资料集、导航菜单）。
10. 模板名称必填，长度上限 30 字符。
11. 模板至少选择一项可访问内容。
12. 模板保存前进行表单校验，不通过则阻断保存。
13. 模板保存时必须提示管理员：该模板变更会立即影响已打该标签的顾客访问权限，并展示影响顾客数。
14. 标签权限模板设定页不提供模板停用 / 恢复开关，也不提供删除模板按钮。
15. 删除标签本体时，其对应模板随标签一并删除，规则见 `02-顾客标签管理.md`。

### 2.1 管理员共享权限审定限制

标签权限模板是向顾客批量授予访问权限的能力，不能绕过管理员已完成的内容共享权限审定。

1. 模板内容选择区的可选范围，必须等于管理员当前审定为“可分享”的内容范围；管理员设置为不可分享的内容不得出现在可选项中，或须以不可选禁用态展示并标明“管理员设为不可分享”。
2. 模板保存时须再次校验每一个已选内容仍为可分享；发现不可分享内容时阻断保存，并提示管理员先在共享权限审定中恢复该内容可分享状态，或从模板中移除该内容。
3. 若管理员后续将已被某标签模板选中的内容改为不可分享，该内容必须立即停止参与该模板及所有相关顾客的最终权限计算，不得因模板历史配置继续对顾客开放。
4. 模板编辑页再次打开时，已失去可分享资格的历史选项不得作为有效勾选保留；管理员保存模板时须移除该选项。若移除后模板不再包含任何可分享内容，则按“模板至少选择一项可访问内容”的校验阻断保存。

## 3. 访问权限计算

1. 客户可拥有多标签。
2. 访问权限基于该客户拥有标签对应的已配置模板进行并集计算。
3. 同一个模板集合之外的权限不在本模块覆盖范围。
4. 标签无模板时不通过该标签新增模板权限。
5. 标签和模板关系发生变化时，最终权限需保留个人权限追加规则：
   - 最终权限 = 模板并集 + 个人权限追加。
   - 本期不支持在顾客权限页单独删除标签模板已经赋予的权限。
6. 标签存在且已配置模板时，该模板中仍通过管理员共享权限审定、处于可分享状态的内容参与权限计算；未配置模板的标签不新增模板权限。
7. 模板新增或编辑后，权限接口按最新模板配置实时计算结果，不需要管理员另行执行批量应用任务。

## 4. 模板保存即时生效

1. 管理员修改/新增模板并确认保存后，该模板配置立即作为后续权限接口计算依据。
2. 页面保存前展示影响顾客数，用于提醒影响范围，不生成单独任务。
3. 模板保存不改变顾客标签关系。
4. 不提供额外应用按钮、任务或批量应用记录。
5. C 端顾客访问权限接口如何使用标签模板并集返回可访问内容，见 `09-C端顾客访问权限接口.md`。

## 5. 验收标准

- 每个标签最多只有一个模板；列表中可看到模板名称，未配置时展示未設定。
- 标签列表中可通过 `权限编辑` 进入模板作成 / 编辑，不展示模板停用 / 恢复或删除模板操作。
- 模板名称必填。
- 模板至少包含一项可访问内容。
- 管理员设置为不可分享的内容不得被标签权限模板选择，也不得通过历史模板配置继续向顾客开放。
- 多标签并集生效，模板变更保存后对现有顾客的权限接口实时生效。
- 标签权限模板设定页不提供模板停用 / 恢复开关，不提供删除模板按钮，不提供额外批量应用任务。

## 6. 用户用例

### 用例 1：从标签列表创建模板
- 前置：标签列表中存在未配置模板的标签。
- 操作：在该标签行点击 `权限编辑`。
- 预期：进入标签权限模板设定页，默认选中该标签；输入模板名并选择至少一个 VISTA 内容后可保存，保存前提示影响顾客数；确认保存后权限接口立即按新模板计算。

### 用例 2：编辑既有模板
- 前置：标签已配置权限模板。
- 操作：在标签列表点击该标签行内的 `权限编辑`。
- 预期：进入标签权限模板设定页并带出当前模板配置；修改后保存成功，并提示该标签使用中顾客的影响范围；确认保存后权限接口立即按新模板计算。

### 用例 3：切换编辑对象标签
- 前置：管理员位于标签权限模板设定页。
- 操作：在页头的标签下拉中切换到另一个标签。
- 预期：页面带出新标签的模板配置；若该标签未配置模板，则展示默认模板编辑状态。

### 用例 4：保存模板影响既有顾客
- 前置：标签已被部分顾客使用。
- 操作：编辑并保存该标签权限模板。
- 预期：保存确认弹窗展示影响顾客数；确认后不再要求管理员执行额外批量应用，相关顾客的最终访问权限由权限接口按最新模板实时计算。

### 用例 5：模板操作入口收口
- 前置：管理员进入标签管理页或标签权限模板设定页。
- 操作：查看标签行内权限模板操作，以及模板编辑页操作区。
- 预期：标签行内仅通过 `权限编辑` 进入模板设置；不展示模板停用 / 恢复、删除模板按钮。模板编辑页不展示启用 / 停用开关，也不展示删除模板按钮。

### 用例 6：不可分享内容不能进入标签模板
- 前置：管理员已在共享权限审定中将内容 A 设置为不可分享。
- 操作：管理员创建或编辑标签权限模板，尝试选择内容 A。
- 预期：内容 A 不可选择，并显示其不可分享原因；保存接口也会校验并拒绝包含内容 A 的提交。

### 用例 7：已选模板内容被收回分享资格
- 前置：标签 A 的权限模板已选择内容 B，且该标签已用于多个顾客。
- 操作：管理员在共享权限审定中将内容 B 改为不可分享。
- 预期：内容 B 立即不再参与标签 A 及其关联顾客的最终访问权限计算；再次编辑模板时，内容 B 不作为有效勾选保留，保存时须移除。

## 7. 修订记录

| 日期 | 修订内容 |
| --- | --- |
| 2026-07-13 | 增加管理员共享权限审定限制：标签权限模板只能选择当前审定为可分享的内容；不可分享内容不得选择或通过历史模板继续开放。模板保存需二次校验，管理员后续收回内容分享资格时，该内容立即退出相关模板及顾客的最终权限计算。 |
