# 宠主端（客户版）预约体验优化 — 产品说明

> 目标：围绕「想给宠物做洗护/美容」的真实动机，缩短**从打开小程序到提交预约**的路径，降低决策与操作成本。  
> 现状对齐：宠主角色首页为「服务预约」列表 + 状态 Tab + **右下角「+」** 进入 `CustAppointmentCreate`（门店、宠物、类型、服务、时段、备注）。

---

## 1. 典型进入场景（先对齐人怎么来）

| 场景 | 用户心智 | 当前易卡点 | 优化方向（产品层） |
|------|----------|------------|-------------------|
| **A. 主动搜小程序** | 记得店名/品牌，想约服务 | 首屏是列表，**「+」在角落**，新用户未必第一眼发现 | 首屏强化**主行动**：大按钮「预约服务」与 FAB 二选一或主次分明 |
| **B. 微信聊天里点小程序卡片/分享** | 被朋友或店员推荐 | 若落在首页，路径同 A；若**无登录态**需先登录 | 明确**分享落地页**：能否直达「新建预约」或带**默认门店** |
| **C. 扫门店码 / 桌贴** | 人在店附近或已到店 | 期望**默认就是本店**，少选一步 | **扫码参数带 storeId** → 预约页预填门店且可折叠展示「本店」 |
| **D. 看完服务报告 / 海报再来** | 信任已建立，想复购 | 从报告链路过来的**深链**若只到首页，打断情绪 | 报告页 CTA：**「为 TA 再约一次」** → 带宠物名/门店进预约（字段能预填则预填） |
| **E. 老客复约** | 同宠、同店、同类服务 | 每次重填信息易烦 | **默认选中上次门店+宠物档案+常用服务**；一键改时间即可提交 |

**结论**：优化不是单页微调，而是 **入口（怎么进）+ 首屏（第一眼干什么）+ 表单（填什么、默认什么）** 三条线一起收紧。

---

## 2. 首屏信息架构（宠主首页）

**问题**：列表 + Tab 偏「管理已有订单」，新用户动机是**先下单**，容易感到「还没约就要先看列表」。

**角色边界：数据卡片（重要）**

- **宠主端（customer）不建议展示「门店经营视角」的四格看板**（如今日到店数、全店进行中、本周完成单量等）。这类指标本质是 **B 端/店长工作台** 信息，容易让宠主感到「进了后台」，且与「我要约我家宠物」的心智不一致。
- **若需在首屏给宠主一点「状态感」**，应用 **「与我相关」** 的轻量摘要即可，例如：「你有 1 个待开始预约」或一行状态 + 入口「查看」，而不是多格 KPI。
- **门店/老板/员工端**保留或强化该类看板，与宠主端**信息架构分离**（同一 `Home` 内按 `role` 分支即可，产品规则上写清）。

**建议**

1. **分区**：上区 **「我要预约」主按钮**（或保留 FAB 但配一句固定文案「点这里新建预约」首次引导）；下区才是「我的预约」与 Tab。  
2. **文案**：副标题从纯说明型改为**价值型**一句，统一为「在线选时段，到店更省心」（容量模型只保证系统不超卖，不等同排队/叫号与准点履约，因此仍不写「到店不排队」）。
3. **空列表**：空态时 **主按钮置顶**，避免「空白 + 小加号」的冷启动挫败。

---

## 3. 新建预约表单（`CustAppointmentCreate`）— 减少步数与记忆负担

**字段逻辑（保持业务真实）**：门店、宠物、类型、服务、时段为核心；备注可选。

**优化建议**

| 方向 | 说明 |
|------|------|
| **门店** | 若仅一家合作店或扫码带店：**默认选中且可折叠**（「预约门店：××店 [更换]」），减少首屏高度。多店时保留选择器。 |
| **宠物** | 已有「我的宠物」时：**默认最近使用的一只**；单宠自动填名。无档案时仍手动输入，但可提示「保存后可下次一键选」。 |
| **服务类型** | **常用服务前置**（根据上次预约或门店热门 Top3），其余进「更多」。 |
| **时段** | 保持日期 + 时段联动；**无可用时段**时明确文案（「当日已满，试试明天」）+ 快捷切日，避免空白不知所措。 |
| **提交** | 主按钮固定底部或表单末；**防重复提交**与 loading 已有则保持；成功页 **一行确认**（时间、店名、宠物）+ 「查看预约」+ 「再约一单」可选。 |

---

## 4. 登录与身份（体验关键）

> **本期冻结策略（P0）**：**提交时登录 + guest 草稿恢复**。未登录可浏览首页与填写预约表单，提交时再调起登录，登录成功后回到预约页并保留草稿。草稿 key 不依赖 `userInfo.id`，避免出现 `userId: undefined`。

- **冻结策略**：未登录允许浏览首页/极简介绍，**点击「预约」可进入表单填写**；提交时若仍为未登录，则跳转登录页（带 `redirect` 回预约页），登录成功后**回到预约页并保留已填内容**（避免白填）。
- 草稿存储：未登录时写入 guest 草稿 key（`petstore_appt_draft_guest`）；登录后优先读 guest 草稿并恢复，恢复成功后删除 guest 草稿；登录态用户可继续使用按 `userId` 维度的草稿 key。
- 预约时段：按所选服务预计时长检查其覆盖的全部半小时容量桶；线上预约与到店占用共同消耗门店并发接待数，暂停预约关闭全部容量。对外文案统一「在线选时段，到店更省心」，不承诺排队/叫号能力。
- 若业务未来强制「进入预约页即登录」，则需在 README 与本节同步更新冻结策略，并保留草稿恢复逻辑。

---

## 5. 与 Tab /「我的」的关系

- **首页 Tab**（待开始/服务中/已完成）：适合老客查进度；新客可弱化认知成本，用文案「下面可查看已提交的预约」。  
- **我的**：宠物档案、历史报告（若已开放）与预约形成闭环；产品上可规划 **「从档案一键预约」**，减少重复录入。

---

## 6. 分期建议（便于研发排期）

| 阶段 | 内容 | 价值 |
|------|------|------|
| **P0** | 首屏主按钮 + 空列表强引导；扫码/参数 **storeId** 预填门店（含小程序码 `scene` 解码）；登录策略冻结为「提交时登录 + guest 草稿恢复」 | 最快降低「找不到入口」和「多店选错」 |
| **P1** | 默认最近宠物/最近服务；时段不可用时的引导 | 提升复购与填单效率 |
| **P2** | 报告/海报深链「再约一次」；常用服务排序 | 与增长、留资主线联动 |

---

## 7. 验收关注点（非功能清单）

- **新用户**：首次打开 → 能在 **2 次有效点击内**到达可提交的预约表单（含必要登录）。  
- **老用户**：复约场景下，**门店+宠物**默认正确率主观可用（可后续用数据验证）。  
- **异常**：无时段、未登录、网络失败均有**可理解提示**，不出现静默失败。

---

## 8. 相关文档

- 《产品设计文档》§5.2 预约、第二章闭环。  
- 《产品改进建议》「宠主端缺失」「自助预约 + 门店确认」中长期方向。  
- 实现以当前 `Home.vue` / `CustAppointmentCreate.vue` 为基线迭代，**具体路由与参数名由研发定**。

---

## 9. 界面气质评审（为何「不够优雅」）

> 基于宠主首页典型稿：**主标题区 +「预约服务」+ 四格数据 + Tab + 列表/空态「立即预约」+ 右下角「+」**。

**这不是「产品文档里唯一理想稿」**，而是「主行动显性化」方向下的一种实现；**优雅感**更多取决于层级是否干净，当前稿常见问题在于：

| 问题 | 说明 | 优雅化方向 |
|------|------|------------|
| **预约入口重复** | 同屏出现「预约服务」「立即预约」「+」**三条路径**，用户要下意识选一条，认知负担上升 | **只保留一个主 CTA**（推荐：首屏大按钮或空态主按钮二选一）；FAB 与顶栏按钮**不要并存**，或 FAB 降级为老用户习惯入口并弱化样式 |
| **四格统计偏「店内看板」** | 「今日到店 / 进行中 / 待开始 / 本周完成」对**店长**友好，对**宠主**容易像后台；且占首屏纵向空间 | **宠主端原则上不展示该区块**（见 §2「角色边界」）；仅 B 端保留。若宠主端要状态感，用**与我相关**的一行摘要替代 |
| **Tab + 空态再一按钮** | 逻辑正确但层级多：先理解 Tab，再读空态，再点「立即预约」 | 空态时**弱化 Tab 视觉权重**（或默认选中「待开始」并一句话说明），**只强调一个「去预约」** |
| **副文案与标签** | 「开剪前」等偏业内说法，宠主可读性一般 | **全局措辞**：对外统一「未开始服务」「到店前」等（与《产品改进建议》措辞同步原则一致） |

**更「优雅」的宠主首页通常长这样（原则，非唯一稿）**：  
**一眼一件事**——「约服务」；**数字是配角**；**列表是结果**，不抢第一步。

---

*本文为产品侧交互与信息架构建议，定稿后与研发评审可行性（尤其小程序分享落地、扫码参数、登录态）。*
