﻿# 05D-新增顾客

## 1. 文档定位

本文定义从顾客列表页 `新規追加` 进入的 VISTA 新增顾客页面，包括基础资料录入、顾客标签选择和保存边界。

顾客页面需求拆分为：

- `05A-顾客列表页.md`：列表展示、导入/导出、新增入口、全量同步检查入口。
- `05B-顾客详情页.md`：顾客基础信息、本地编辑/删除、KASIKA 绑定顾客邮箱只读、标签和权限摘要。
- `05C-顾客权限页.md`：既有顾客标签、标签权限模板合成结果、个人权限追加、最终权限。
- `05D-新增顾客.md`：新增 VISTA 顾客时录入基础资料并选择初始标签。

新增顾客不定义 KASIKA -> VISTA 同步规则。KASIKA 同步、绑定、创建、字段快照和访问字段回写按 `04-统一顾客联动同步流程.md` 与 `08-KASIKA入口页与VISTA首次访问开户.md`。

## 2. 页面目标

- 保留 HOME VISTA 既有新增顾客入口和基础资料录入习惯。
- 在新增顾客时支持选择 VISTA 标签，避免新增完成后再进入详情页补标签。
- 在现有 HOME VISTA 新增顾客页面基础上，仅在“顾客情报”模块下方增加标签选择栏，其他页面模块和交互保持不变。
- 新增保存只创建 VISTA 本地顾客，不向 KASIKA 创建或更新顾客。
- 新增完成后，顾客访问权限按所选标签对应的权限模板实时计算。

## 3. 入口与页面形态

1. 入口来自 `05A-顾客列表页.md` 的 `新規追加` 按钮。
2. 点击后进入独立的新建顾客页面，不使用右侧弹层。
3. 新建页面沿用现有 HOME VISTA 新增顾客页面 UI。
4. 仅在“顾客情报”模块下方新增标签选择栏。
5. 共享链接有效期限、密码设置访问、间取り类型选择、内容选择等既有模块不因本期标签需求调整。
6. 新增页面不展示 KASIKA customer_id、KASIKA 绑定状态、最近同步结果、同步日志等既有顾客才有的信息。

## 4. 页面内容

### 4.1 基础资料区

至少包含：

- 顾客名；
- 邮箱；
- 担当スタッフ；
- 其他 HOME VISTA 既有新增顾客字段，如电话、备注、公司名等，以现有系统为准。

字段校验：

1. 顾客名为必填。
2. 邮箱按现有 HOME VISTA 邮箱格式校验；是否必填沿用既有规则。
3. 担当スタッフ按现有项目员工列表选择。
4. 校验失败时在字段附近展示错误，不提交新增。

### 4.2 标签选择模块

1. 新增顾客页面必须提供 VISTA 标签选择栏。
2. 标签选择栏放在“顾客情报”模块下方、共享链接有效期限模块上方。
3. 可选择多个 VISTA 标签。
4. 标签不区分手动标签、自动标签或 `customer_status` 自动配置来源。
5. 新增页面不展示标签来源、自动配置来源或同步来源。

## 5. 行为规则

1. 点击保存后，系统创建 VISTA 本地顾客，并保存所选标签。
2. 保存后，该顾客访问权限按当前标签和标签权限模板实时生效。
3. 保存新增顾客不调用 KASIKA API。
4. 保存新增顾客不向 KASIKA 创建顾客。
5. 保存新增顾客不向 KASIKA 覆盖姓名、邮箱、电话、担当等主资料。
6. 保存新增顾客不写入 KASIKA 访问 URL、访问密码，不调用 KASIKA 自动回复邮件 API，也不反向维护 KASIKA 顾客标签。
7. 若后续 KASIKA -> VISTA 同步或 KASIKA入口页流程匹配到该顾客，再按 `04` 和 `08` 的规则进行绑定、字段快照、`customer_status` 标签配置和权限判定。
8. 新增保存成功后，可返回顾客列表，也可进入该顾客详情页；具体跳转按现有 HOME VISTA 交互习惯确定。

## 6. 联动异常边界

1. KASIKA API KEY 不完整或连接异常时，新增顾客功能仍可使用。
2. 标签选择是 VISTA 本地能力，不依赖 KASIKA API。
3. 新增 VISTA 顾客不调用 KASIKA API，不受 KASIKA API 可用状态影响。
4. 新增顾客不展示 KASIKA 同步失败、待处理、绑定异常等信息。

## 7. 验收标准

1. 顾客列表页点击 `新規追加` 可进入独立的新建顾客页面。
2. 新增页面可录入顾客基础资料并完成必填校验。
3. 新增页面在“顾客情报”模块下方展示标签选择栏。
4. 可选择多个 VISTA 标签。
5. 共享链接有效期限、密码设置访问、间取り类型选择等既有模块保持现有页面 UI 和交互。
6. 保存后创建 VISTA 本地顾客，并保存所选标签。
7. 保存后该顾客权限按标签权限模板实时生效。
8. 新增保存不调用 KASIKA API，不向 KASIKA 创建、更新或删除顾客。
9. KASIKA API KEY 不完整或连接异常时，新增顾客和标签选择仍可用。
10. 新增页面不展示 KASIKA customer_id、绑定状态、最近同步结果或 KASIKA 绑定操作入口。

## 8. 用户用例

### 用例 1：新增顾客并选择标签
- 前置：用户位于顾客列表页，项目已有 VISTA 标签。
- 操作：点击 `新規追加`，录入顾客名、邮箱、担当スタッフ，并选择一个或多个标签后保存。
- 预期：
  - 系统创建 VISTA 本地顾客。
  - 新顾客拥有所选标签。
  - 访问权限按所选标签命中的权限模板实时生效。
  - 不调用 KASIKA API。

### 用例 2：新增时选择多个标签
- 前置：用户位于新增顾客页面，项目已有多个 VISTA 标签。
- 操作：在“顾客情报”模块下方的标签选择栏勾选或取消标签。
- 预期：
  - 页面保留当前新增顾客表单内容。
  - 用户可选择多个 VISTA 标签。
  - 页面不展示标签来源或 `customer_status` 自动配置来源。
  - 共享链接有效期限、密码设置访问、间取り类型选择等既有模块不变化。

### 用例 3：联动不可用时新增 VISTA 顾客
- 前置：KASIKA API KEY 不完整或 KASIKA 连接异常。
- 操作：用户新增 VISTA 顾客并选择标签后保存。
- 预期：
  - 新增顾客保存成功。
  - 标签正常保存。
  - 页面不调用 KASIKA API，也不展示 KASIKA 同步错误。

### 用例 5：新增顾客校验失败
- 前置：用户打开新增顾客页面。
- 操作：未填写顾客名或填写格式不正确的邮箱后点击保存。
- 预期：
  - 页面在字段附近展示校验错误。
  - 不创建顾客。
  - 不调用 KASIKA API。
