📦 单店预约系统
交付物快照 · 2026-09-10 03:05 · 整套 📌 只读
下载 PRD 下载测试用例 schema deliverable-v1
🌐 Web 端5
📄 其他7
类型: 0 条

服务列表 · 标注(11 条)

建模 · 图表

📊 技术架构

来源:组② · 自动生成(charts/技术架构.html)

📊 流程

来源:组② · 自动生成(charts/流程.html)

📊 时序

来源:组② · 自动生成(charts/时序.html)

📊 泳道

来源:组② · 自动生成(charts/泳道.html)

📊 实体关系

来源:组② · 自动生成(charts/实体关系.html)

📊 组① 体系结构图

来源:组① · 工作台导出(charts/组① 体系结构图.html)

📊 组① 页面跳转图

来源:组① · 工作台导出(charts/组① 页面跳转图.html)

📊 组① 状态机

来源:组① · 工作台导出(charts/组① 状态机.html)

单店预约系统 产品需求文档(PRD)

由 DSH 原型工作台基于原型自动生成 · 2026-09-10

1. 文档信息

字段内容
产品名称单店预约系统
文档类型产品需求文档(PRD)
页面数量12 个(含 1 张体系结构图 / 1 张页面跳转图)
用户端(手机端)、商家端(后台管理端)
生成时间2026-09-10T03:05

版本记录

版本日期修改内容
v1.02026-09-10基于原型自动生成的首版 PRD

2. 产品概述

产品定位:为单店单老板做一个「手机端预约 + 电脑端工作台」的轻量级预约系统,核心是"让客户快速约上 + 让老板一目了然管单",零支付、零评价、零会员。

目标用户:老板(也是发型师/服务提供者本人):用电脑管单、看档期、看客户偏好、回改约、普通客户:用手机预约、复约、收到短信提醒,到店付钱

用户角色

  • 用户端(手机端)用户,通过用户端完成日常操作与业务处理
  • 商家端(后台管理端)用户,通过商家端完成日常操作与业务处理

页面分布

  • 用户端(手机端):服务列表、选时段、确认预约、用户登录、我的预约
  • 商家端(后台管理端):今日预约看板、周日历视图、服务管理、商家登录、待确认、客户档案、老客户偏好
  • 业务模块:单店预约系统

3. 核心业务流程

状态流转(共 4 个状态 / 5 条迁移):

stateDiagram-v2
    s-pending: 待确认 [*]
    s-confirmed: 已确认
    s-done: 已完成 [*]
    s-cancelled: 已取消 [*]
    s-pending --> s-confirmed: 商家确认
    s-pending --> s-cancelled: 取消/拒单
    s-confirmed --> s-done: 到店签到
    s-confirmed --> s-cancelled: 客户取消
    s-confirmed --> s-pending: 改约重提

迁移明细(状态流转表:某状态下执行某动作后,状态如何变化):

当前状态触发动作条件(Guard)目标状态说明
待确认商家确认已确认无条件,直接流转
待确认取消/拒单已取消无条件,直接流转
已确认到店签到已完成无条件,直接流转
已确认客户取消已取消无条件,直接流转
已确认改约重提待确认无条件,直接流转
读法:「当前状态」下用户执行「触发动作」后,流转到「目标状态」。若「当前状态」与「目标状态」相同(自环),表示该动作不改变状态,仅更新对象内容(如「整理中」时补打卡)。终态(如回忆录已生成、已取消)为流程终点,不再流转。

4. 需求功能清单

按端分组。每个页面描述其核心用途与主要操作;需求细节见「§7 详细方案」。

用户端(手机端)

  • 服务列表,优先级 P1:页面围绕「你好,约个服务吧 👋」展开,主体是「全部服务」。 本页有 11 条需求标注(详见 §7.3)。
  • 选时段,优先级 P1:用于承载「选时段」相关功能。 本页有 12 条需求标注(详见 §7.4)。
  • 确认预约,优先级 P1:页面围绕「服务内容」展开,主体是「到店时间」「指定发型师(不指定也行)」「联系方式」「备注(可选)」;提供文本输入框「输入框」、文本输入框「输入框」、复选框、多行文本输入框。 本页有 14 条需求标注(详见 §7.5)。
  • 用户登录,优先级 P1:页面以「某某理发店」为核心;提供文本输入框「请输入手机号」、文本输入框「6 位数字」、「获取验证码」按钮、「登 录」按钮。 本页有 11 条需求标注(详见 §7.9)。
  • 我的预约,优先级 P1:提供「改约」按钮、「取消」按钮、「催确认」按钮、「取消」按钮 等操作。 本页有 13 条需求标注(详见 §7.10)。

商家端(后台管理端)

  • 今日预约看板,优先级 P1:页面围绕「今日看板」展开,主体是「今日预约」「今日提醒」「今日老客户」;提供「🔍」按钮、「🔔」按钮、「‹」按钮、「›」按钮 等操作。 本页有 14 条需求标注(详见 §7.6)。
  • 周日历视图,优先级 P1:页面以「本周预约」为核心;提供「‹」按钮、「›」按钮、「📥 导出」按钮、「📋 今日看板」按钮。 本页有 13 条需求标注(详见 §7.7)。
  • 服务管理,优先级 P1:页面以「服务管理」为核心;提供文本输入框「如:男士精剪 / 染发 / 头皮 SPA」、数字输入框、数字输入框、文本输入框「一句话说明,让客户更好选」 等操作。 本页有 13 条需求标注(详见 §7.8)。
  • 商家登录,优先级 P1:页面以「欢迎回来 👋」为核心;提供文本输入框「老板用户名 / 手机号」、「请输入密码」控件、复选框、「登 录」按钮。 本页有 10 条需求标注(详见 §7.11)。
  • 待确认,优先级 P1:页面以「待确认」为核心;提供「🔄 刷新」按钮、「📨 一键群发短信催确认」按钮、「查看详情」按钮、「📞 联系」按钮 等操作。 本页有 11 条需求标注(详见 §7.12)。
  • 客户档案,优先级 P1:页面以「客户档案」为核心;提供文本输入框「搜索姓名 / 手机号 / 备注」、「📥 导出」按钮、「+ 新增客户」按钮、「📞 联系」按钮 等操作。 本页有 13 条需求标注(详见 §7.13)。
  • 老客户偏好,优先级 P1:页面围绕「老客户偏好」展开,主体是「偏好标签 · 点击筛选客户」;提供复选框、复选框、复选框、复选框 等操作。 本页有 12 条需求标注(详见 §7.14)。

5. 体系结构(业务功能模块)

  • 单店预约系统:给单店老板用的轻量级预约系统:客户手机约,老板电脑管,到店付。零支付/零评价/零会员。

- 用户端:H5 移动端,扫码/微信内打开;客户选服务/选时段/复约。(关联页面:服务列表、选时段、确认预约、用户登录、我的预约)

- 客户登录:手机号+短信验证码;新用户自动建档,老客户命中手机号即识别偏好。(关联页面:用户登录)

- 登录页:手机号+验证码;老客户识别直接进入。(关联页面:用户登录)

- 预约下单:选服务→选日期/时段→选发型师→确认;含手机号预填与偏好提示。(关联页面:服务列表、选时段、确认预约)

- 服务列表:5 项服务卡+快捷复约条;到店付提示。(关联页面:服务列表)

- 选时段:8 天日期横滑+按早午晚分组时段格;已满/已有人约状态可视化。(关联页面:选时段)

- 确认预约:服务/时间/师傅/手机号/备注 5 段表单;老客户预填。(关联页面:确认预约)

- 我的预约:待服务/已完成/已取消三 Tab;改约/取消/再约;本次偏好自动保存。(关联页面:我的预约)

- 预约列表:待服务/已完成/已取消 3 Tab;改约/取消/再约。(关联页面:我的预约)

- 一键复约:老客户按上次服务+师傅+时段直接再约,跳过选服务流程。

- 快速复约条:服务列表顶部条+我的预约顶部条,按上次再约一次。(关联页面:服务列表、我的预约)

- 商家端:PC Web 后台,老板一人用;看板/管单/管客户/管服务。(关联页面:今日预约看板、周日历视图、服务管理、商家登录、待确认、客户档案、老客户偏好)

- 商家登录:老板账号+密码登录,7 天免登录;全店唯一账号。(关联页面:商家登录)

- 登录页:老板账号+密码,7 天免登录。(关联页面:商家登录)

- 预约看板:今日看板(12 单/已确认/待确认)+周历视图(按服务类型染色)。(关联页面:今日预约看板、周日历视图)

- 今日看板:概览 4 卡+今日预约+提醒+老客户列表。(关联页面:今日预约看板)

- 周日历:周一到周日×9 22 时段;事件按服务类型染色。(关联页面:周日历视图)

- 待确认:跨日全局待确认池;超时自动催;一键群发短信;拒单留痕。(关联页面:待确认)

- 待确认池:跨日待确认;超时红色提示;一键催确认。(关联页面:待确认)

- 客户档案:客户列表+详情;偏好标签、累计消费、预约历史;一键发短信/帮他约。(关联页面:客户档案)

- 客户列表:VIP/新客/30 天未到店筛选;搜索姓名/手机号。(关联页面:客户档案)

- 客户详情:偏好标签+累计消费+预约历史时间线。(关联页面:客户档案)

- 老客户偏好:按标签筛客户群;一键群发;针对 30 天未到店/VIP/本周可激活等群组。(关联页面:老客户偏好)

- 偏好客户群:标签云筛选+客户群卡片+一键群发。(关联页面:老客户偏好)

- 服务配置:服务项增/删/改/停用、时长、价格、图标;停用后客户端不再显示。(关联页面:服务管理)

- 服务管理:顶部快速新建表单+下方表格+启停用开关。(关联页面:服务管理)

数据关系

  • 预约下单 →(需登录后下单) 客户登录
  • 预约下单 →(提交订单) 待确认
  • 一键复约 →(复用历史) 我的预约
  • 一键复约 →(跳过选服务) 预约下单
  • 预约看板 →(汇总待确认) 待确认
  • 待确认 →(确认后入看板) 预约看板
  • 客户档案 →(偏好聚合) 老客户偏好
  • 老客户偏好 →(客户群来源) 客户档案
  • 客户档案 →(帮他约) 预约看板
  • 服务配置 →(发布服务项) 预约下单
  • 预约看板 →(读档案) 客户档案
  • 预约看板 →(读服务) 服务配置
  • 确认预约 →(提交待确认) 待确认
  • 服务列表 →(复约成功) 预约列表
  • 预约列表 →(复约来源) 服务列表
  • 快速复约条 →(直接下单) 确认预约
  • 今日看板 →(今日待办) 待确认池
  • 周日历 →(切回今日) 今日看板
  • 客户列表 →(看档案) 客户详情
  • 客户详情 →(进客户群) 偏好客户群
  • 偏好客户群 →(查档案) 客户详情
  • 待确认池 →(确认后入看板) 今日看板
  • 服务列表 →(进选时段) 选时段
  • 选时段 →(进确认) 确认预约
  • 今日看板 →(看周视图) 周日历
  • 周日历 →(看今日) 今日看板

6. 数据模型

客户(Customer)

字段类型必填说明
id主键 IDID
phonestring手机号(UK)
namestring姓名
genderstring性别
vipLevel数字VIP 等级 0/1/2
totalVisits数字累计到店次数
totalSpent数字累计消费(元)
lastVisitAt日期时间上次到店时间
remark长文本备注
createdAt日期时间注册时间

发型师/员工(Staff)

字段类型必填说明
id主键 IDID
namestring姓名
levelstring等级
years数字从业年数
enabled布尔(是/否)启用

服务项(Service)

字段类型必填说明
id主键 IDID
namestring名称
durationMin数字时长(分钟)
price数字价格(元)
iconstring图标 emoji
descriptionstring一句话描述
tagstring分类
sortOrder数字排序
enabled布尔(是/否)启用

预约单(Appointment)

字段类型必填说明
id主键 IDID
customerId关联「客户」客户
serviceId关联「服务项」服务项
staffId关联「发型师/员工」发型师
startAt日期时间开始时间
endAt日期时间结束时间
statusstring状态
sourcestring来源
remark长文本客户备注
createdAt日期时间提交时间
confirmedAt日期时间商家确认时间

预约状态日志(AppointmentStatusLog)

字段类型必填说明
id主键 IDID
appointmentId关联「预约单」预约单
fromStatusstring原状态
toStatusstring新状态
changedBystring操作人
reasonstring原因
changedAt日期时间变更时间

客户偏好标签(CustomerPreference)

字段类型必填说明
id主键 IDID
customerId关联「客户」客户
tagstring标签
sourcestring来源
updatedAt日期时间更新时间

短信发送记录(SmsLog)

字段类型必填说明
id主键 IDID
customerId关联「客户」收件人
templateCodestring短信模板编码
content长文本发送内容
statusstring发送状态
sentAt日期时间发送时间
cost数字费用(分)

店铺配置(Shop)

字段类型必填说明
id主键 IDID
namestring店名
ownerPhonestring老板手机号
openTimestring营业开始 HH:mm
closeTimestring营业结束 HH:mm

实体关系

erDiagram
    客户 {
        主键 id PK
        string phone
        string name
        string gender
        数字 vipLevel
        数字 totalVisits
        数字 totalSpent
        时间 lastVisitAt
        文本 remark
        时间 createdAt
    }
    发型师/员工 {
        主键 id PK
        string name
        string level
        数字 years
        布尔 enabled
    }
    服务项 {
        主键 id PK
        string name
        数字 durationMin
        数字 price
        string icon
        string description
        string tag
        数字 sortOrder
        布尔 enabled
    }
    预约单 {
        主键 id PK
        引用 customerId
        引用 serviceId
        引用 staffId
        时间 startAt
        时间 endAt
        string status
        string source
        文本 remark
        时间 createdAt
        时间 confirmedAt
    }
    预约状态日志 {
        主键 id PK
        引用 appointmentId
        string fromStatus
        string toStatus
        string changedBy
        string reason
        时间 changedAt
    }
    客户偏好标签 {
        主键 id PK
        引用 customerId
        string tag
        string source
        时间 updatedAt
    }
    短信发送记录 {
        主键 id PK
        引用 customerId
        string templateCode
        文本 content
        string status
        时间 sentAt
        数字 cost
    }
    店铺配置 {
        主键 id PK
        string name
        string ownerPhone
        string openTime
        string closeTime
    }
    预约单 ||--o{ 客户 : 属于
    预约单 ||--o{ 服务项 : 预约
    预约单 ||--o{ 发型师/员工 : 指派
    预约状态日志 ||--o{ 预约单 : 记录
    客户偏好标签 ||--o{ 客户 : 属于
    短信发送记录 ||--o{ 客户 : 发送给

7. 详细方案(逐页)

7.1 体系结构图

本页为体系结构图,展示业务功能模块的层级与数据关系(详见 §5 体系结构)。

7.2 页面跳转图

本页为页面跳转图,展示各页面之间的跳转关系(详见 §4 功能清单)。

7.3 服务列表

页面围绕「你好,约个服务吧 👋」展开,主体是「全部服务」。

该页面承载的业务模块:用户端(用户端)、预约下单(预约下单)、服务列表(服务列表)、快速复约条(快速复约条)

页面信息层级(标题结构):

  • 你好,约个服务吧 👋(主标题)
  • 全部服务(子区块)

页面跳转

  • 从本页可跳转到我的预约。
  • 从本页可跳转到确认预约。
  • 从本页可跳转到选时段。

需求标注(来自原型评审):

标注1 · 结构:店铺头部区:品牌、营业状态与个人中心入口:- 展示店铺名「某某理发店 · 预约」与问候语「你好,约个服务吧」;- 绿色状态点 + 「营业中」表示店铺当前在营业时间内;- 右上角「我的」按钮跳转个人中心(data-goto=pmtnrs3ycf506);游客态下应引导登录而非直接进入

标注2 · 指标:「今日还剩 6 个时段可约」剩余时段指标口径:- 口径:今日剩余可约时段数 = 今日总时段数 − 已被预约/锁定时段数;- 数据应来自商家端排班/预约系统,与「今日预约看板」同源实时计算;- 原型中「6」为静态示例值,需后端接口提供;- 待确认:时段数是否按服务时长动态折算(如染发 120 分钟占 2 个半小时时段)

标注3 · 结构:快捷再约卡片的数据依赖与跳转:- 展示最近一次预约摘要:「精剪 · 王师傅 · 周六 14:00」(服务 · 技师 · 时间);- 点击跳转选时段页(data-goto=pmtnr9ihq0uin);- 数据依赖:需读取用户最近一次有效预约记录;无历史预约时该卡片应隐藏或显示引导文案(原型未覆盖该空态)

标注4 · 结构:服务总数与服务列表数据来源:- 「全部服务 5 项」:5 为服务总数,应来自商家端「服务管理」中启用的服务列表;- 商家上下架/停用服务后数量动态变化;- 列表加载失败/为空时应有空态与重试(原型未覆盖)

标注5 · 规则:服务卡点击进入选时段流程:- 5 张服务卡均跳转同一选时段页(data-goto=pmtnr9ih2aznu),所选服务信息需随跳转传递;- 规则:选时段页须回显服务名/时长/价格;服务时长差异大(30~180 分钟),时段粒度与可约数应随时长自适应;- 精剪为「人气款」,其余 4 项无标签

标注6 · 口径:「¥ 88 起」起价的定价口径:- 「起」表示该服务存在多价位档(如按技师等级:普通/高级/首席),展示价为最低档起步价;- 实际价格在选择技师/服务档位时确定;- 染发 ¥380 起、烫发 ¥580 起同理;头皮 SPA ¥168、儿童剪发 ¥58 无「起」应为单一固定价;- 待确认:价位档规则(是否按技师等级加价、加价幅度)

标注7 · 指标:服务时长口径与排班占用:- 时长展示为「约」值:精剪 45 / 染发 120 / 头皮 SPA 60 / 烫发 180 / 儿童剪发 30 分钟;- 口径:用于排班与时段占用计算,宜为服务标准时长(精确到分钟);「约」为展示值;- 待确认:展示「约」与排班计算用精确时长是否同一字段,还是展示层取整

标注8 · 规则:到店付款与取消时限规则:- 支付方式为到店付款(预约无线上支付环节);- 取消规则:取消请提前 2 小时;- 待确认:取消时限 2 小时为全局固定值还是商家可配置;超时取消是否有惩罚/违约规则;需与「我的预约」页取消入口规则一致

标注9 · 差异:儿童剪发年龄限制写在服务名内:- 「儿童剪发(12 岁以下)」将适用人群限制直接写进服务名,而其余服务无适用人群说明;- 人群/年龄限制属于服务属性,应结构化(如适用人群字段)而非内嵌名称,否则影响搜索、筛选与展示一致性;→ 建议确认:是否新增「适用人群/年龄限制」服务字段,服务名只保留「儿童剪发」

标注10 · 差异:技师维度仅在快捷再约卡出现:- 「王师傅」技师只在快捷再约卡出现,服务列表与选时段流程未展示/选择技师维度;- 若技师可指定,选时段页应提供技师选择或筛选;若不可指定,快捷卡的技师展示易误导;→ 建议确认:用户端是否展示与选择技师,技师信息在哪些页面可见

标注11 · 暂缓:服务列表暂无搜索与分类筛选:- 当前仅 5 项服务,浏览无需搜索;服务条目增多后(>10)需要搜索框与分类筛选(如按男女/染烫/护理);- 标记为暂缓:服务数量增长后补充,预留列表接口的分页/筛选参数即可

7.4 选时段

用于承载「选时段」相关功能。

该页面承载的业务模块:用户端(用户端)、预约下单(预约下单)、选时段(选时段)

页面跳转

  • 从本页可跳转到服务列表。
  • 从本页可跳转到确认预约。

需求标注(来自原型评审):

标注1 · 结构:顶部导航:返回服务列表与标题:- 顶部固定导航:左侧返回箭头跳回服务列表(data-goto=pmtnr9ig78x1f),中间标题「选择时段」;- 右侧为占位空元素,无菜单/更多操作

标注2 · 结构:服务概要:回显所选服务/时长/技师与更换入口:- 回显上一页所选服务:「精剪发型」;- 副行展示「约 45 分钟 · 王师傅」(服务时长 · 技师);- 右侧「更换」入口跳回服务列表(data-goto=pmtnr9ig78x1f)重新选服务

标注3 · 口径:时长与技师信息回显口径:- 服务时长「约 45 分钟」与技师「王师傅」由服务列表所选服务带入并回显;- 技师在选时段页可见,与服务列表页快捷卡「王师傅」呼应,但本页无技师切换/选择入口;- 待确认:技师在用户端是否可选(若可选,应在此处或选时段时提供选择)

标注4 · 指标:日期横滑条:今天起 7 天可选:- 横向滑动展示 8 个日期:昨天(置灰不可选)、今天、明天(默认选中)、周三~周日;- 日期刻度由日期系统生成,可前后滑动切换;- 口径:默认展示从今天起的 7 天,昨天仅为示意过去日期不可约

标注5 · 规则:过去日期不可预约规则:- 「昨天」置灰(.date.disabled),不可选择过去日期预约;- 规则:过去日期不可预约;今天可约(是否限当前时间之后的时段由排班控制)

标注6 · 口径:默认选中「明天」与默认时段 14:15 的来源:- 默认选中「明天」且时段默认已选 14:15,底部按钮直接显示「下一步 · 明天 14:15」;- 待确认:默认选中值的来源(是上次预约的推荐值,还是当前时间自动推算的最早可约时段);- 若为默认推荐,需与快捷再约逻辑(服务列表页「按上次再约一次」)保持一致

标注7 · 规则:时段四种状态与可约规则:- 时段网格含四种状态:可约(白底) / 已满(灰底 .slot.full) / 已有人约(黄底 .slot.busy,显示剩余名额「剩 N」) / 已选(蓝底 .slot.selected);- 下方图例(.legend)说明前三态;- 规则:仅可约/已有人约状态可点击选中,已满与过去时段不可选

标注8 · 指标:「剩 1」名额口径与多名额时段规则:- 10:30 时段显示「已有人约 · 剩 1」,说明单个时段存在多个名额,已被约去部分;- 待确认:名额口径——按多名技师同时段各接一客,还是按服务人数/工位容量计算;- 名额数需与商家端排班(技师数/工位)数据同源,实时扣减

标注9 · 口径:已满时段不可选口径:- 09:45 置灰不可选,表示该时段名额已被约满(.slot.full);- 口径:已满 = 名额全部占用,与「剩 0」等价,展示层置灰禁点

标注10 · 差异::45 禁用状态:CSS 缺样式且原因未明:- 晚上 21:45 使用了 .disabled 类,但 CSS 中仅定义了 .date.disabled,未定义 .slot.disabled 样式,视觉上与可约态无区别,仅无法通过原型状态区分;- 且当前默认选「明天」,明天 21:45 被禁原因未在页面说明;→ 建议确认:21:45 禁用含义(今日已过时段?店铺打烊边界?)并补齐 .slot.disabled 视觉样式

标注11 · 规则:时段粒度随服务时长变化规则:- 时段间隔为 45 分钟(09:00 → 09:45 → 10:30 → 11:15),与服务时长「约 45 分钟」一致;- 规则:时段粒度 = 服务标准时长,不同服务(30~180 分钟)应生成对应粒度的时段;- 待确认:长时间服务(如染发 120 分钟)的时段如何折算/拼接,与剩余名额计算联动

标注12 · 规则:底部按钮:回显所选时段并进入确认预约:- 底部固定按钮回显已选「明天 14:15」,点击跳确认预约页(data-goto=pmtnr9ihq0uin);- 按钮文案随所选日期+时段实时更新;- 规则:未选任何时段时应置灰不可点(原型默认已选 14:15,未覆盖未选态)

7.5 确认预约

页面围绕「服务内容」展开,主体是「到店时间」「指定发型师(不指定也行)」「联系方式」「备注(可选)」;提供文本输入框「输入框」、文本输入框「输入框」、复选框、多行文本输入框。

该页面承载的业务模块:用户端(用户端)、预约下单(预约下单)、确认预约(确认预约)

页面信息层级(标题结构):

  • 服务内容(子区块)
  • 到店时间(子区块)
  • 指定发型师(不指定也行)(子区块)
  • 联系方式(子区块)
  • 备注(可选)(子区块)

页面包含的控件

  • 文本输入框「输入框」
  • 复选框
  • 多行文本输入框

页面跳转

  • 从本页可跳转到选时段。
  • 从本页可跳转到服务列表。

需求标注(来自原型评审):

标注1 · 结构:顶部导航:返回选时段与标题:- 顶部导航:左侧返回箭头跳回选时段页(data-goto=pmtnr9ih2aznu),中间标题「确认预约」;- 右侧为占位空元素

标注2 · 结构:预约三步流程指示(服务→选时段→确认):- 三步流程指示:服务(✓完成) → 选时段(✓完成) → 确认预约(当前第 3 步);- 已完成的步骤以绿色 ✓ 标识,当前步以主题色高亮;- 规则:步骤条不可回退点击,回退走各区块「修改」入口

标注3 · 结构:服务内容回显与修改入口:- 服务内容回显:精剪发型 · 约 45 分钟 · ¥ 88 起,图标与列表页一致;- 右上角「修改」跳回服务列表(data-goto=pmtnr9ig78x1f)重新选服务;- 规则:修改服务后,到店时间/发型师选择需重置或校验(原型未覆盖联动)

标注4 · 口径:「¥ 88 起」起价与发型师等级价格联动:- 价格显示「¥ 88 起」,与服务列表页一致,仍为起价而非最终价;- 结合本页发型师分级(高级/资深/普通),推断实际价格按发型师等级浮动;- 待确认:各等级加价规则(如高级+XX、资深+XX)与最终价格的计算与展示时机

标注5 · 结构:到店时间回显与星期标注:- 到店时间回显「明天(周三)14:15 - 15:00」(日期 · 起止时间),右上角「修改」跳选时段页;- 差异:选时段页日期刻度中「明天」=12 号、而「周三」=13 号,两者不是同一天,此处将「明天」与「周三」混标为同一天;→ 建议确认:到店时间的星期标注与日期数据的对应关系(以日期刻度为准)

标注6 · 差异:到店时间星期标注与日期刻度矛盾:- 到店时间展示「明天(周三)14:15 - 15:00」,其中 14:15-15:00 为 45 分钟=精剪服务时长,起止时间正确;- 差异:星期标注「(周三)」与选时段页日期刻度矛盾(明天=12 非周三=13);→ 建议确认:星期与日期的一致性

标注7 · 指标:「距现在还有约 22 小时」相对时间口径:- 「距现在还有约 22 小时」为相对时间提示,随当前时间动态计算;- 口径:以当前时间与到店时段起始时间的差值取整展示(小时级);- 倒计时仅作提示,不参与业务规则

标注8 · 规则:发型师选择:不指定/指定与等级分档:- 发型师选择:不指定(就近安排) / 王师傅(高级·12年) / 李师傅(资深·8年) / 张师傅(普通·3年);- 默认选中王师傅(.sty.正常),与服务列表页快捷再约「王师傅」一致;- 规则:- 不指定 = 商家就近安排,可选任一等级 - 指定后按等级影响价格档(高级/资深/普通);- 待确认:不指定时按什么策略排人、指定与价格档的联动规则

标注9 · 口径:默认选中上次技师王师傅:- 默认选中「王师傅(高级 · 12 年)」,与选时段页概要、服务列表页快捷再约一致;- 数据依赖:默认技师 = 上次预约技师;无历史时默认「不指定」;- 原型未覆盖无历史用户的默认态

标注10 · 结构:老客户识别与联系方式预填:- 老客户识别:右上角「✓ 老客户」标识;姓名预填「张小华」;手机号脱敏展示「138****6688」并标注「已识别」;- 数据依赖:识别依据为手机号/登录账号匹配客户档案,与商家端「客户档案」页数据同源;- 规则:游客/新客户不预填,需手动输入姓名+手机号(原型未覆盖非老客户态)

标注11 · 规则:老客户偏好回填与可修改规则:- 老客户偏好回填:「上次偏好:修短一点、鬓角修出形。下次来默认按这个安排,可备注修改」;- 规则:- 偏好来自客户档案/历史记录,与商家端「老客户偏好」页数据同源 - 默认带入且可在备注中修改 - 备注修改是否回写档案需确认;- 待确认:偏好字段是否结构化(发型偏好/染烫偏好等),还是自由文本

标注12 · 规则:预约协议:按时到店/取消 2 小时/短信确认:- 预约协议勾选:「预约即同意按时到店,如需取消请提前 2 小时,将通过短信发送确认」,默认已勾选;- 取消时限 2 小时 与服务列表页底部规则一致;- 规则:未勾选时提交按钮应置灰不可点(原型默认勾选,未覆盖未勾选态)

标注13 · 规则:确认预约提交与短信提醒:- 底部主按钮「确认预约」+ 提示「预约成功后立刻发短信提醒」;- 规则:- 点击提交预约,成功后向用户手机发短信确认 - 原型无提交反馈态(成功/失败/重复提交防抖);- 待确认:提交后跳转「我的预约」还是预约成功页;短信模板内容

标注14 · 暂缓:备注为自由文本,后续可结构化沉淀偏好:- 备注为自由文本输入(placeholder 示例:刘海修薄/染深棕色/头皮敏感等),字段为可选;- 暂缓:当前自由文本可满足需求;后续可将常见备注(染烫偏好/过敏史)结构化沉淀为客户偏好,与「老客户偏好」联动

7.6 今日预约看板

页面围绕「今日看板」展开,主体是「今日预约」「今日提醒」「今日老客户」;提供「🔍」按钮、「🔔」按钮、「‹」按钮、「›」按钮 等操作。

该页面承载的业务模块:商家端(商家端)、预约看板(预约看板)、今日看板(今日看板)

页面信息层级(标题结构):

  • 今日看板(主标题)
  • 今日预约(子区块)
  • 今日提醒(子区块)
  • 今日老客户(子区块)

页面包含的控件

  • 「🔍」按钮
  • 「🔔」按钮
  • 「‹」按钮
  • 「›」按钮
  • 「📥 导出」按钮
  • 「📅 看周视图」按钮
  • 「改约」按钮
  • 「签到」按钮
  • 「短信催」按钮
  • 「确认」按钮

页面跳转

  • 从本页可跳转到今日预约看板。
  • 从本页可跳转到周日历视图。
  • 从本页可跳转到待确认。
  • 从本页可跳转到客户档案。
  • 从本页可跳转到老客户偏好。
  • 从本页可跳转到服务管理。

需求标注(来自原型评审):

标注1 · 结构:商家端侧边栏导航与分组:- 商家端侧边栏:logo「某某理发店 · 工作台」+ 三组导航;- 预约:今日看板(正常) / 周日历 / 待确认(红点角标 7);- 客户:客户档案 / 老客户偏好;- 配置:服务管理;- 各入口 data-goto 对应页面:周日历 pmtnr9iixv1zx、待确认 pmtnrs3zmr0pt、客户档案 pmtnrs40bsd46、老客户偏好 pmtnrs40vpf2s、服务管理 pmtnr9ijf15bn

标注2 · 口径:待确认角标 7 与今日待确认 3 口径不同:- 侧边栏「待确认」角标显示 7,而本页概览「待确认」为 3、今日预约 Tab「待确认 3」;- 口径差异:侧边栏角标应为全量(跨日期)待确认数,概览/Tab 为今日待确认数;- 待确认:角标口径(全部待确认 vs 今日待确认)需在侧边栏明确,避免与今日看板混淆

标注3 · 结构:顶栏:搜索/通知/当前用户:- 顶栏:面包屑「预约 / 今日看板」+ 右侧搜索🔍、通知🔔(带红点未读标识)、用户「王老板」;- 通知红点表示存在未读提醒,点击应展示通知列表(原型未覆盖)

标注4 · 指标:页头:日期与单量概览:- 页头:「今日看板 · 周三 · 9 月 11 日 · 共 12 单」+ 日期切换器「2024-09-11 · 周三」+ 导出📥 + 看周视图📅(data-goto=pmtnr9iixv1zx);- 左侧 ‹ › 可切换查看其他日期看板;- 口径:共 12 单 = 今日全部预约(含待确认+已确认)

标注5 · 差异:看板日期 9/11 周三与选时段页日期刻度矛盾:- 本页日期为 2024-09-11 · 周三(真实日历正确),而选时段页日期刻度「昨天 10 / 今天 11 / 明天 12 / 周三 13」中把 13 号标为周三;- 若 9/11 为周三,则 9/13 应为周五,选时段页刻度整体错位 2 天;→ 建议确认:以 2024-09-11 周三为准,修正选时段/确认预约/我的预约页的日期-星期标注

标注6 · 指标:概览统计:今日 12 / 已确认 9 / 待确认 3 / 明日余 6:- 四张概览卡:今日预约 12(↑比昨天+3)/ 已确认 9(3 单待客户回复)/ 待确认 3(已超时 0 单)/ 明日剩余时段 6(建议主动外呼);- 口径:- 今日预约=待确认+已确认(3+9=12) - 已确认 9 中 3 单「待客户回复」= 已发短信待客户回执 - 明日剩余时段 6 与用户端「今日还剩 6 个时段可约」数字相同但所指日期不同(用户端今日 vs 商家端明日),需核对该指标口径

标注7 · 差异:「已超时 0 单」与「3 单超 2 小时未确认」矛盾:- 内部矛盾:概览卡「待确认 · 已超时 0 单」与右侧今日提醒「3 单超过 2 小时未确认」直接冲突;- 若 3 单已超 2 小时未确认,则已超时数应为 3 而非 0;→ 建议确认:超时口径(2 小时未确认即超时?)与「已超时」统计的计算时机,修正两处数据一致性

标注8 · 规则:今日预约行结构与操作规则:- 今日预约列表行:时间(含服务时长) + 客户头像 + 姓名(VIP·第N次/新客) + 服务·技师 + 脱敏手机号 + 偏好/备注 + 状态徽标 + 操作按钮;- 规则:- 已确认 → 操作【改约 / 签到】 - 待确认 → 操作【短信催 / 确认】;- 签到=客户到店核销,触发预约转已完成

标注9 · 规则:预约状态徽标与今日列表口径:- 预约卡状态徽标:已确认(绿 .confirmed) / 待确认(蓝 .待审核),与用户端「我的预约」状态机一致;- 已确认行可签到、待确认行可短信催/确认;无已取消/已完成态展示(今日列表仅待服务类);- 口径:看板默认展示今日全部待服务预约,按时间排序

标注10 · 指标:张小华偏好回显与跨页数据一致:- 张小华(09:30 · VIP·第 8 次 · 精剪·王师傅)偏好回显「上次偏好:修短一点、鬓角修出形」;- 跨页一致性:- 第 8 次与用户端「我的预约」已到店 8 次一致 - 偏好与确认预约页 .pref、我的预约「偏好已保存」一致 - 脱敏手机号 138****6688 一致;- 商家端看板直接展示客户偏好,供服务前参考

标注11 · 规则:今日提醒:超时自动短信/发送统计/外呼建议:- 今日提醒三则(3 项):;1. 3 单超过 2 小时未确认(陈芳、刘强、孙先生 · 已自动发短信提醒 1 次);2. 今日共发送 18 条预约确认短信(成功 17 · 失败 1 号码错误);3. 明日仅剩 6 个时段,建议主动外呼(系统选出 5 位近 30 天未到店老客户);- 规则:- 预约超 2 小时未确认 → 系统自动向客户发短信提醒(每单 1 次?频率待确认) - 时段不足触发外呼建议并圈选流失风险客户

标注12 · 口径:短信发送统计与失败处理:- 短信发送统计:今日 18 条、成功 17、失败 1(号码错误);- 规则:- 发送失败需记录失败原因并提供重发/修正号码入口(原型未覆盖) - 失败计入发送统计口径,与用户端短信确认衔接;- 待确认:短信通道(第三方短信服务商)、模板与失败重试策略

标注13 · 规则:今日老客户列表:偏好/常约/距上次:- 今日老客户列表(5 位,展示 4 位):张小华/陈芳/王芳/孙先生,含偏好 / 常约技师 / 距上次到店;- 规则:- 老客户 = 有历史到店记录客户,数据与「客户档案」「老客户偏好」页同源 - 「距上次」用于流失风险判断,配合外呼建议 - 点击应可查看完整档案(原型未覆盖跳转)

标注14 · 差异:改约/短信催/确认/签到按钮无动作:- 预约行操作按钮(改约 / 短信催 / 确认 / 签到)均无 data-goto 与点击动作(纯样式占位);→ 建议确认:- 签到=核销到店并转已完成 - 确认=商家确认预约(与用户端待确认联动) - 短信催=向客户重发确认短信 - 改约=调整该预约时段,需二次确认与短信通知

7.7 周日历视图

页面以「本周预约」为核心;提供「‹」按钮、「›」按钮、「📥 导出」按钮、「📋 今日看板」按钮。

该页面承载的业务模块:商家端(商家端)、预约看板(预约看板)、周日历(周日历)

页面信息层级(标题结构):

  • 本周预约(主标题)

页面包含的控件

  • 「‹」按钮
  • 「›」按钮
  • 「📥 导出」按钮
  • 「📋 今日看板」按钮

页面跳转

  • 从本页可跳转到今日预约看板。
  • 从本页可跳转到周日历视图。
  • 从本页可跳转到待确认。
  • 从本页可跳转到客户档案。
  • 从本页可跳转到老客户偏好。
  • 从本页可跳转到服务管理。

需求标注(来自原型评审):

标注1 · 结构:商家端侧边栏导航(与看板一致):- 商家端侧边栏(与今日看板同布局):logo + 预约(今日看板/周日历 正常/待确认角标 7) + 客户(客户档案/老客户偏好) + 配置(服务管理);- 各入口 data-goto 与看板页一致

标注2 · 指标:页头:本周 9/9-9/15 共 38 单:- 页头:「本周预约 · 9 月 9 日 - 9 月 15 日 · 共 38 单」+ 日期切换器「2024-09-09 ~ 09-15」;- 右侧「📥 导出」(占位)+「📋 今日看板」按钮跳看板页(data-goto=pmtnr9iicfp9q);- 口径:38 单 = 本周全部预约(已确认 31 + 待确认 7)

标注3 · 差异:周刻度 9/11 周三与选时段页错位矛盾:- 周历表头刻度:周一 9/9 · 周二 9/10 · 周三 9/11(今天) · 周四 9/12 · 周五 9/13 · 周六 9/14 · 周日 9/15;- 与看板页「2024-09-11 周三」、真实日历一致(9/11=周三);- 差异:选时段页日期刻度「今天 11 / 明天 12 / 周三 13…」把 9/13 标为周三,与本节(9/13=周五)错位 2 天;→ 建议确认:统一以本节/看板刻度(9/11 周三)为准修正用户端各页日期星期

标注4 · 口径:周合计 38 = 已确认 31 + 待确认 7 与角标口径:- 底部合计:本周合计 38 单 = 已确认 31 + 待确认 7(与页头 38 一致);- 侧边栏「待确认」角标 7 与本节待确认 7 一致 → 角标口径 = 本周待确认(非今日);- 与今日看板「今日待确认 3」区分:3=今日、7=本周;- 待确认:侧边栏角标是本周待确认还是全量(跨周)待确认,需明确定义

标注5 · 结构:服务类型图例色标:- 服务类型色标图例:精剪(蓝 cut) / 染发(粉 dye) / 头皮 SPA(绿 spa) / 烫发(紫 perm);- 事件块颜色与图例一一对应,与服务管理页服务类型一致

标注6 · 结构:周表头与今天高亮:- 周表头:7 天列(周一到周日)+ 左侧时间列;今天(周三 9/11)以主题色高亮;- 表头展示星期 + 日期,便于快速定位当前日期

标注7 · 结构:时间网格:09:00-20:00 小时行:- 时间网格:09:00-20:00 共 12 小时行 × 7 天列,单元格可放置预约事件块;- 事件块 .ev 绝对定位在对应小时行内,含开始时间;- 规则:网格只读展示,点击事件应可查看/操作预约(原型未覆盖点击行为)

标注8 · 规则:预约事件块:时间+客户+服务·技师:- 事件块信息:开始时间 + 客户姓名(.t)+ 服务类型 · 技师(.n),按服务类型着色(cut/dye/spa/perm);- 规则:- 同一客户一天可有多个预约 - 事件按开始时间落在对应小时行 - 点击事件应查看详情(原型未覆盖);- 事件未区分已确认/待确认状态(全部同色展示)

标注9 · 指标:周三列与今日看板数据一致:- 周三(今天)列与今日看板数据完全吻合:张小华 09:30 精剪·王 / 李雷 10:30 精剪·不指定 / 陈芳 11:30 SPA·李 / 王芳 13:30 染发·王 / 刘强 15:30 精剪·张 / 赵敏 16:30 精剪·王 / 孙先生 18:00 烫发·王;- 口径:周历与今日看板同源,看板=今日视角、周历=周视角,数据实时同步

标注10 · 差异:「王芳」高频重复疑为演示数据:- 「王芳」在周历中高频重复(如 13:00 行同一小时出现 3 次、全天 20+ 次,且同日既有精剪又有染发/SPA),同一客户一周多时段大量堆叠不合常理;- 差异:疑为演示数据复制占位,非真实预约分布;→ 建议确认:替换为真实分布演示数据,或说明多人同名场景(若属同名需区分客户)

标注11 · 差异:周历 20:00 截止与用户端 21:45 可约矛盾:- 周历营业时段为 09:00-20:00(12 小时行),而用户端选时段页可约时段覆盖 09:00-21:45(含晚上 19:30/20:15/21:00/21:45);- 差异:两端营业/可约时段边界不一致(20:00 vs 21:45);→ 建议确认:店铺营业时间口径(营业结束时间),商家端周历与用户端可约时段统一

标注12 · 规则:低占用日主动营销老客户建议:- 底部提示「💡 周四、周六比较空,建议给老客户发短信」;- 规则:- 系统识别低占用日并给出主动营销建议 - 触发外呼/短信营销老客户,与看板「明日剩余 6 时段建议外呼」策略一致;- 待确认:低占用判定阈值、营销短信模板与老客户圈选规则

标注13 · 暂缓:导出功能占位待实现:- 「📥 导出」按钮为占位,无导出动作与格式定义;- 暂缓:导出(周报/预约清单 Excel/CSV)本期可不实现,预留导出接口即可

7.8 服务管理

页面以「服务管理」为核心;提供文本输入框「如:男士精剪 / 染发 / 头皮 SPA」、数字输入框、数字输入框、文本输入框「一句话说明,让客户更好选」 等操作。

该页面承载的业务模块:商家端(商家端)、服务配置(服务配置)、服务管理(服务管理)

页面信息层级(标题结构):

  • 服务管理(主标题)

页面包含的控件

  • 文本输入框「如:男士精剪 / 染发 / 头皮 SPA」
  • 数字输入框
  • 文本输入框「一句话说明,让客户更好选」
  • 文本输入框「搜索服务名…」
  • 「📥 导入」按钮
  • 「+ 新建服务」按钮
  • 「保存」按钮
  • 「编辑」按钮
  • 「复制」按钮
  • 「停用」按钮

页面跳转

  • 从本页可跳转到今日预约看板。
  • 从本页可跳转到周日历视图。
  • 从本页可跳转到待确认。
  • 从本页可跳转到客户档案。
  • 从本页可跳转到老客户偏好。
  • 从本页可跳转到服务管理。

需求标注(来自原型评审):

标注1 · 结构:商家端侧边栏(服务管理当前):- 商家端侧边栏(与看板/周历同布局):预约(今日看板/周日历/待确认角标 7) + 客户(客户档案/老客户偏好) + 配置(服务管理 正常);- 各入口 data-goto 与看板页一致

标注2 · 结构:页头:服务管理说明与新建/导入入口:- 页头:「服务管理」+ 副标题「维护店里可预约的服务项目 · 停用后客户端不再显示」;- 右侧按钮:📥 导入(占位)+ ➕ 新建服务;- 规则:服务启停直接影响用户端「服务列表」展示(5 项服务与用户端一致)

标注3 · 结构:新建服务表单字段与图标选择:- 新建服务表单字段:服务名称 / 时长(分钟)/ 价格 / 图标 / 描述(可选) + 保存按钮;- 图标选择器 6 个:✂🎨💆💇👶⭐(与现有 5 服务图标一致,⭐ 为新增可选);- 规则:表单常驻顶部;保存后新增/更新服务并同步到用户端服务列表

标注4 · 差异:表单预填精剪数据:新建/编辑模式未明:- 表单预填:时长 45、价格 88、图标 ✂(正常),与服务「精剪发型」数据一致;- 差异:表单顶部有「+ 新建服务」按钮但表单又常驻预填精剪数据,新建/编辑模式关系不明(新建应清空默认、编辑应回填所选服务);→ 建议确认:表单是新建模式(预填为默认值)还是当前选中服务的编辑态

标注5 · 差异:表单缺起价/分类/适用人群字段与列表口径不对应:- 列表价格展示为「¥ 88 起 / ¥ 380 起 / ¥ 580 起」(起价)与「¥ 168 / ¥ 58」(固定价),但新建表单价格字段为单一数值,无「是否起价」或价位档配置;- 列表分类标签(人气款/常规/推荐)在表单中无分类字段;「儿童剪发(12 岁以下)」的适用人群也无字段;→ 建议确认:服务数据模型补充价格档(起价)/ 分类 / 适用人群字段,与列表展示口径对齐

标注6 · 结构:搜索/筛选/排序工具条:- 工具条:搜索框🔍 + 状态筛选(全部 5 / 启用 5 / 停用 0)+ 排序说明「按更新时间倒序」;- 规则:- 搜索按服务名过滤 - 筛选按启停状态过滤 - 列表默认按更新时间倒序(2天前→2周前,符合)

标注7 · 指标:服务计数:全部 5 = 启用 5 + 停用 0:- 筛选计数:全部 5 = 启用 5 + 停用 0,与服务列表行数一致;- 口径:服务总数 = 启用 + 停用;停用 0 说明当前全部在架;- 与用户端服务列表「全部服务 5 项」一致

标注8 · 结构:服务表格与用户端服务列表数据一致:- 服务表格列:服务 / 分类 / 时长 / 价格 / 本周预约 / 状态 / 更新于 / 操作;- 5 行服务数据与用户端服务列表完全一致:精剪发型(45分/¥88起) / 染发(120分/¥380起) / 头皮SPA(60分/¥168) / 烫发(180分/¥580起) / 儿童剪发(30分/¥58);- 分类标签:人气款(精剪) / 推荐(SPA) / 常规(染发·烫发·儿童)

标注9 · 指标:本周预约按服务统计合计 38 与周历一致:- 本周预约列:精剪 18 / 染发 7 / SPA 5 / 烫发 4 / 儿童 4,合计 18+7+5+4+4 = 38;- 与周日历页「本周合计 38 单」完全吻合;- 口径:本周预约 = 该服务本周(周一至周日)全部预约数,按服务维度统计

标注10 · 规则:启停开关:停用下架不影响历史:- 状态列为启停开关(.switch.on 为启用),5 项全部启用;- 规则:- 关闭开关/点「停用」→ 服务从客户端下架,用户端服务列表不再显示 - 停用不影响历史预约数据(hint 明确) - 停用后本周预约数仍保留展示

标注11 · 差异:编辑/复制/停用无动作且缺删除入口:- 操作列按钮:编辑 / 复制 / 停用,均无 data-goto 与点击动作(纯样式占位);- 底部提示提及「想要彻底删除请先确认没有关联订单」,但操作列无删除按钮(仅停用);→ 建议确认:- 删除入口与二次确认流程 - 编辑/复制的交互(复制=复制生成新服务草稿?) - 有历史订单服务的删除限制校验

标注12 · 口径:停用 vs 彻底删除规则:- 底部提示:「停用只是从客户端下架,不影响历史预约数据;想要彻底删除请先确认没有关联订单」;- 规则:- 停用 = 软下架(保留数据) - 删除 = 硬删除(需无关联订单);- 待确认:删除的关联订单检测逻辑、删除后历史数据如何处理

标注13 · 差异:儿童剪发年龄限制内嵌服务名:- 「儿童剪发(12 岁以下)」将年龄限制写进服务名(#005),而其他服务无适用人群标识;- 与服务列表页同问题:适用人群应结构化(如适用人群字段)而非内嵌名称;→ 建议确认:新增「适用人群/年龄限制」服务字段(表单同步补充)

7.9 用户登录

页面以「某某理发店」为核心;提供文本输入框「请输入手机号」、文本输入框「6 位数字」、「获取验证码」按钮、「登 录」按钮。

该页面承载的业务模块:用户端(用户端)、客户登录(客户登录)、登录页(登录页)

页面信息层级(标题结构):

  • 某某理发店(主标题)

页面包含的控件

  • 文本输入框「请输入手机号」
  • 文本输入框「6 位数字」
  • 「获取验证码」按钮
  • 「登 录」按钮

页面跳转

  • 从本页可跳转到服务列表。

需求标注(来自原型评审):

标注1 · 结构:品牌区:logo、店名与登录价值主张:- 品牌区:沙龙渐变 logo(💈)+ 店名「某某理发店」+ 价值主张「登录后可一键复约 · 自动记住偏好」;- 与服务列表页顶部同套沙龙霓虹视觉(紫→品红→金橙);- 登录动机:一键复约与偏好记忆是用户端登录的核心卖点

标注2 · 结构:手机号输入与格式校验:- 手机号输入框,预填演示号「13888886688」(原型示例数据,非真实用户);- 规则:手机号为中国大陆 11 位手机号,需格式校验(原型未覆盖校验/错误提示态);- 待确认:手机号格式校验规则与错误提示文案

标注3 · 规则:短信验证码输入与获取按钮:- 短信验证码输入框(placeholder「6 位数字」)+ 右侧「获取验证码」按钮;- 规则:- 验证码为 6 位数字 - 点击获取后应发送短信并开始倒计时重发(原型未覆盖);- 待确认:验证码有效期(如 5 分钟)、发送频率限制(防刷)与错误次数上限

标注4 · 口径:获取验证码:发送逻辑与防刷机制待实现:- 「获取验证码」按钮:原型仅有样式(.code-btn:disabled 已定义置灰态),无发送逻辑、倒计时与重发机制;- 待确认:- 发送成功后按钮置灰倒计时(如 60 秒) - 同一手机号发送频率上限(防短信轰炸) - 验证码校验失败处理

标注5 · 规则:新用户自动建档与老客户快捷再约规则:- 提示文案:「新用户用手机号直接登录,系统自动建档;老客户登录后会看到『按上次再约一次』」;- 规则:- 新用户(手机号未建档)登录即自动创建客户档案,无需注册 - 老客户登录后服务列表页展示快捷再约卡(与服务列表页 .quick 联动);- 数据依赖:建档写入商家端「客户档案」;老客户判定基于手机号匹配

标注6 · 规则:登录提交与登录态规则:- 主按钮「登 录」,点击跳服务列表页(data-goto=pmtnr9ig78x1f);- 规则:- 登录成功进入服务列表 - 手机号+验证码校验通过才可提交(原型未覆盖未通过态) - 游客态可浏览服务列表但无快捷再约/偏好回填(与确认预约页老客户识别联动);- 待确认:登录态保持(token 有效期)、退出登录入口位置

标注7 · 结构:微信/支付宝第三方登录占位:- 第三方登录占位:微信登录(💬)与支付宝登录(支)两个圆形图标按钮;- 规则:第三方登录需对接微信/支付宝开放平台授权回调(原型仅占位,无跳转与回调处理);- 待确认:第三方登录是否本期上线;授权后与手机号建档的账号打通策略

标注8 · 差异:第三方登录图标形式不统一:- 微信图标用 emoji「💬」、支付宝图标用文字「支」,图标形式不统一(emoji vs 文字);- 且微信官方图标通常为绿色气泡 Logo,💬 为普通对话气泡,易被误解;→ 建议确认:统一替换为微信/支付宝品牌 SVG 图标(风格与整套 UI 一致)

标注9 · 规则:登录即同意协议:条款链接未落地:- 「登录即同意《用户协议》与《隐私政策》」,为登录的前置协议条款;- 两个链接 `` 均无 href,协议内容未落地;→ 建议确认:补齐《用户协议》《隐私政策》页面/链接;是否需在注册建档时单独确认

标注10 · 差异:用户协议/隐私政策链接为空:- 协议链接「《用户协议》」「《隐私政策》」为无 href 的空链接,点击无响应;→ 建议确认:协议内容页与埋点(同意行为是否留痕)

标注11 · 口径:页脚:到店付款与取消规则全站一致:- 页脚「某某理发店 · 到店付款 · 取消提前 2 小时」;- 到店付款与取消提前 2 小时规则全站一致(与服务列表页、确认预约页协议相同);- 口径:取消时限 2 小时为全局规则,需商家端可配置时统一从配置读取

7.10 我的预约

提供「改约」按钮、「取消」按钮、「催确认」按钮、「取消」按钮 等操作。

该页面承载的业务模块:用户端(用户端)、我的预约(我的预约)、预约列表(预约列表)、快速复约条(快速复约条)

页面包含的控件

  • 「改约」按钮
  • 「取消」按钮
  • 「催确认」按钮
  • 「再约一次」按钮

页面跳转

  • 从本页可跳转到服务列表。
  • 从本页可跳转到确认预约。

需求标注(来自原型评审):

标注1 · 结构:顶部导航:返回服务列表与标题:- 顶部导航:左侧返回箭头跳回服务列表(data-goto=pmtnr9ig78x1f),中间标题「我的预约」;- 右侧为占位空元素

标注2 · 结构:用户信息条:姓名/手机号/VIP 徽标:- 用户信息条:头像「张」+ 姓名「张小华」+ 脱敏手机号「138**6688」+ 右上角「⭐ VIP」徽标;- 与确认预约页老客户识别(张小华/138**6688)数据一致;- 规则:未登录/游客态进入时应跳转用户登录页(原型未覆盖)

标注3 · 指标:已到店 8 次 · VIP 客户等级口径:- 「已到店 8 次 · VIP 客户」:到店次数为累计完成预约数,VIP 等级由到店次数/消费额判定;- 口径:VIP 判定阈值未定义(8 次即 VIP?);等级数据与商家端「客户档案」「老客户偏好」同源;- 待确认:VIP 等级规则(次数/金额阈值、权益内容)

标注4 · 指标:预约统计:待服务/已完成/已取消:- 统计栏:待服务 2 / 已完成 8 / 已取消 0,与下方 Tab 数量一致;- 口径:- 待服务 = 已确认+待确认的未到期预约 - 已完成 = 到店完成 - 已取消 = 取消的预约;- 数据随预约状态变更实时更新

标注5 · 结构:快捷复约:按上次记录一键复约:- 快捷复约条「按上次再约一次 · 精剪 · 王师傅 · 通常周六下午」,点击跳确认预约页(data-goto=pmtnr9ihq0uin);- 规则:一键复约跳过选时段,直接进入确认页并预填上次服务/技师/时段;- 与服务列表页快捷再约卡(.quick)逻辑一致

标注6 · 规则:预约列表三 Tab 与数量角标:- 三个 Tab:待服务(2) / 已完成(8) / 已取消(0),默认选中待服务;- 数字角标与统计栏一致,为对应状态预约数;- 规则:Tab 切换过滤下方预约列表;原型仅展示待服务列表内容

标注7 · 结构:待服务已确认预约卡:精剪发型:- 待服务·已确认预约卡:精剪发型(王师傅)· 明天 12 周三 · 14:15-15:00 · 45 分钟 · 状态「已确认」;- 底部信息行「📍 某某理发店 · 已发短信提醒」,操作按钮改约 / 取消;- 短信提醒与确认预约页「预约成功后立刻发短信」衔接

标注8 · 差异:「明天 12 周三」星期标注与日期刻度矛盾:- 预约卡日期「明天 12 周三」:明天=12 号,而选时段页日期刻度中周三=13 号,两者矛盾(12 应为周二);- 与确认预约页「明天(周三)」标注错误同源;→ 建议确认:日期-星期对应数据以选时段页日期刻度(今天 11 / 明天 12 / 周三 13)为准统一修正

标注9 · 规则:预约状态四态与状态机:- 预约状态四态:待确认(蓝 .upcoming) / 已确认(绿 .confirmed) / 已完成(灰 .done) / 已取消(红 .已取消);- 原型中出现待确认、已确认、已完成三态,已取消态样式已定义但无示例;- 口径:状态机 = 待确认 → 已确认 → 已完成(或 取消);与商家端「待确认」页联动

标注10 · 差异:同为待服务:已确认与待确认并存,确认规则未明:- 同为「待服务」预约:精剪(明天)已确认,头皮 SPA(9/22)仍待确认(可「催确认」),确认规则不明确;- 已确认者已发短信提醒、待确认者显示「商家会尽快回复」;→ 建议确认:预约确认机制——是商家逐单确认,还是到临近时间自动确认/按技师自动确认;「催确认」是否触发商家端提醒

标注11 · 差异:改约/取消/催确认按钮无动作:- 预约卡操作按钮:改约 / 取消(已确认卡)、催确认 / 取消(待确认卡);- 原型中改约、取消、催确认按钮均无 data-goto 与点击动作(纯样式占位);→ 建议确认:- 取消需满足「提前 2 小时」规则与二次确认弹窗 - 改约流程(复用选时段页还是直接调整时段) - 催确认的触发与商家端提醒机制

标注12 · 口径:完成预约沉淀偏好:鬓角修出形/深棕色:- 已完成预约(精剪 8/28)信息行「💡 本次偏好已保存:鬓角修出形」;- 染发(7/15)「本次偏好已保存:深棕色」;- 规则:- 每次完成后沉淀本次消费偏好(发型/色号等) - 偏好供下次预约回填(确认预约页 .pref)并沉淀至商家端「老客户偏好」

标注13 · 规则:再约一次:跳过选时段直接确认:- 「再约一次」按钮(已完成预约卡)跳确认预约页(data-goto=pmtnr9ihq0uin),跳过选时段直接预填上次服务/技师/时段;- 规则:一键复约默认沿用上次组合;若默认时段已满需回退选时段页重新选择(原型未覆盖回退态)

7.11 商家登录

页面以「欢迎回来 👋」为核心;提供文本输入框「老板用户名 / 手机号」、「请输入密码」控件、复选框、「登 录」按钮。

该页面承载的业务模块:商家端(商家端)、商家登录(商家登录)、登录页(登录页)

页面信息层级(标题结构):

  • 欢迎回来 👋(子区块)

页面包含的控件

  • 文本输入框「老板用户名 / 手机号」
  • 「请输入密码」控件
  • 复选框
  • 「登 录」按钮

页面跳转

  • 从本页可跳转到今日预约看板。

需求标注(来自原型评审):

标注1 · 结构:品牌区:工作台标识与产品定位:- 品牌区:渐变图标 ✂ + 「某某理发店 · 工作台」+ 副标「SHOP ADMIN」;- 深色渐变背景 + 霓虹光晕装饰,与用户端移动页视觉区分(桌面端登录);- 产品定位:单店商家工作台入口

标注2 · 结构:账号输入:用户名/手机号,预填 wangboss:- 账号输入框,预填演示账号「wangboss」(placeholder:老板用户名 / 手机号);- 与商家端顶栏用户「王老板」呼应;- 规则:支持用户名或手机号登录;账号预填为演示数据

标注3 · 结构:密码输入与校验规则:- 密码输入框(type=password),预填「••••••••」为演示占位;- 规则:密码为老板账号密码;原型未覆盖错误提示/输错次数限制/找回流程

标注4 · 规则:天自动登录与忘记密码入口:- 登录辅助行:7 天内自动登录(checkbox 默认勾选)+「忘记密码?」链接(无 href);- 规则:- 勾选后 7 天内免登录(token 有效期 7 天) - 忘记密码跳找回流程(原型未覆盖);- 待确认:自动登录安全边界(管理端是否建议关闭)

标注5 · 规则:登录提交跳今日看板:- 主按钮「登 录」,点击跳今日预约看板(data-goto=pmtnr9iicfp9q);- 规则:- 登录成功进入商家端工作台首页 - 校验通过才可提交(原型未覆盖未通过态);- 与看板顶栏「王老板」身份一致,登录态贯穿商家端

标注6 · 口径:老板专用账号与员工免登录权限模型:- 提示:「这是老板专用账号,全店只有一个。员工无需登录。如忘记密码请用注册手机号找回」;- 权限模型:- 单店单老板账号,无员工账号体系 - 员工无需登录(店内共用看板?);- 待确认:员工是否真的无需账号(多员工场景如何区分操作人/技师排班)

标注7 · 差异:找回密码手机号与客户张小华手机号相同:- 找回密码手机号为 1386688,与用户端客户「张小华」脱敏手机号完全相同(确认预约页/我的预约页均为 138****6688);- 差异:商家老板账号绑定手机号与客户张小华手机号重合,若为真实数据存在账号归属冲突;→ 建议确认:商家账号绑定手机号与客户手机号是否应隔离(演示数据巧合需替换)

标注8 · 差异:商家端密码登录 vs 用户端验证码登录:- 认证体系对比:商家端 = 账号 + 密码;用户端(用户登录页)= 手机号 + 短信验证码;- 两端认证方式不同:用户端免密短信登录(自动建档),商家端密码登录(固定账号);- 规则:两端账号体系独立管理;商家账号在用户端不可见;- 待确认:是否需要统一账号体系(如商家也可用手机号+验证码)

标注9 · 差异:忘记密码链接未落地:- 「忘记密码?」链接为无 href 空链接,点击无响应;→ 建议确认:找回密码流程(用注册手机号 138****6688 短信重置?),与用户端验证码通道是否复用

标注10 · 暂缓:产品署名:单店预约系统:- 页脚「© 某某理发店 · 由 单店预约系统 提供」;- 产品署名:单店预约系统(SaaS 单店版);- 口径:当前原型为单店场景,多店/连锁支持不在本期范围

7.12 待确认

页面以「待确认」为核心;提供「🔄 刷新」按钮、「📨 一键群发短信催确认」按钮、「查看详情」按钮、「📞 联系」按钮 等操作。

该页面承载的业务模块:商家端(商家端)、待确认(待确认)、待确认池(待确认池)

页面信息层级(标题结构):

  • 待确认(主标题)

页面包含的控件

  • 「🔄 刷新」按钮
  • 「📨 一键群发短信催确认」按钮
  • 「查看详情」按钮
  • 「📞 联系」按钮
  • 「✓ 确认」按钮
  • 「拒」按钮

页面跳转

  • 从本页可跳转到今日预约看板。
  • 从本页可跳转到周日历视图。
  • 从本页可跳转到待确认。
  • 从本页可跳转到客户档案。
  • 从本页可跳转到老客户偏好。
  • 从本页可跳转到服务管理。

需求标注(来自原型评审):

标注1 · 结构:商家端侧边栏(待确认 正常):- 商家端侧边栏(与看板/周历/服务管理同布局):预约(今日看板/周日历/待确认 正常 角标 7) + 客户(客户档案/老客户偏好) + 配置(服务管理);- 角标 7 与页头「7 单等待中」、周历待确认 7 一致(本周待确认口径)

标注2 · 指标:页头:7 单等待中 · 已超时 1 单:- 页头:「待确认 · 需要你回复的预约请求 · 7 单等待中 · 已超时 1 单」;- 右侧按钮:🔄 刷新 + 📨 一键群发短信催确认(warn 橙色);- 口径:7 = 待确认总数(今日 5 + 明日 2),与侧边栏角标一致

标注3 · 指标:待确认统计:总数 7 / 2小时内 4 / 今日 5 / 明日 2:- 四张统计卡:待确认总数 7(比昨天+2)/ 2 小时内需回复 4(含 1 单超时)/ 今日时段 5(均可确认)/ 明日时段 2(需抢位);- 口径:- 7 = 今日 5 + 明日 2 - 「2 小时内需回复 4」的圈选规则未说明(按等待时长?按距服务时间?);- 待确认:「2 小时内需回复」与「今日时段/明日时段」的统计口径与圈选逻辑

标注4 · 口径:「2 小时内需回复 4」口径与超时判定:- 「2 小时内需回复 4(含 1 单超时)」:4 单的圈选对象不明(7 单中哪 4 单?);- 若按等待时长 >2 小时即超时,则陈芳(3h24m)与刘强(2h12m)均已超 2 小时,超时应为 2 而非 1;→ 建议确认:超时判定口径(提交后 2 小时未回复?)与「2 小时内需回复」的筛选逻辑,保证统计自洽

标注5 · 差异:超时判定不一致:刘强 2h12m 未标超时:- 等待时长徽标:黄色「已等 Xh Xm」(.wait)与红色「⚠ 已等 Xh Xm」(.wait.over 超时);- 差异:陈芳 3h24m 标红(over),刘强 2h12m 未标红——按「超 2 小时」口径刘强同样超时;→ 建议确认:超时阈值(2 小时)与 .over 触发条件一致,修正刘强等待徽标

标注6 · 结构:待确认卡结构与排序:- 待确认卡结构:左侧(日期 + 时间 + 时长 + 等待徽标)+ 头像 + 客户名(VIP·第N次) + 服务·技师·脱敏手机号 + 偏好/备注 + 操作按钮;- 7 张卡按提交时间倒序排列(3h24m → 5m);- 陈芳/刘强/孙先生/王芳 与今日看板待确认数据一致(服务/技师/手机号吻合)

标注7 · 规则:确认/拒绝/联系/详情操作:- 操作按钮:查看详情 / 📞 联系 / ✓ 确认(绿)/ 拒(红);- 规则:- 确认 = 通过预约并通知客户(与用户端待确认→已确认联动) - 拒 = 拒绝预约(需理由?未覆盖) - 联系 = 电话/短信联系客户 - 查看详情 = 完整预约信息;- 原型中 4 个按钮均无点击动作(占位)

标注8 · 差异:赵敏时段/状态与今日看板不一致:- 赵敏在此页为今天 19:30 待确认(精剪·王师傅),而今日看板页赵敏为 16:30 已确认(精剪·王师傅);- 同一客户同一服务,两页时间与状态不一致(若为两单需区分;若为同一单则矛盾);→ 建议确认:赵敏预约的真实时段与状态,修正跨页数据一致性

标注9 · 规则:超时催确认规则:2 小时发短信 / 4 小时再提醒:- 底部规则:「超过 2 小时未回复的预约,系统已自动发送 1 次催确认短信;超过 4 小时系统会再次提醒你」;- 规则:- 超 2 小时 → 自动发催确认短信 1 次(对客户?对商家?) - 超 4 小时 → 系统再次提醒商家;- 待确认:短信对象(催客户确认还是提醒商家处理)、提醒次数与渠道;与看板「3 单超 2 小时未确认已自动发短信 1 次」衔接

标注10 · 规则:一键群发短信催确认:- 「📨 一键群发短信催确认」:批量给全部待确认客户发催确认短信;- 规则:- 群发对象 = 当前筛选/全部待确认单 - 群发前应有确认弹窗(原型未覆盖);- 待确认:群发频率限制(防骚扰)、与单条催确认(看板短信催)的关系

标注11 · 口径:偏好与备注回显口径:- 待确认卡偏好/备注回显:陈芳「力道偏重、不聊天」、孙先生「冷烫」、王芳「染深棕色、头皮敏感」(偏好)与刘强「第一次来,希望短一点」、赵敏「剪刘海」(备注);- 口径:偏好来自客户档案沉淀,备注来自预约时填写;两字段同源展示,供商家确认前参考

7.13 客户档案

页面以「客户档案」为核心;提供文本输入框「搜索姓名 / 手机号 / 备注」、「📥 导出」按钮、「+ 新增客户」按钮、「📞 联系」按钮 等操作。

该页面承载的业务模块:商家端(商家端)、客户档案(客户档案)、客户列表(客户列表)、客户详情(客户详情)

页面信息层级(标题结构):

  • 客户档案(主标题)

页面包含的控件

  • 文本输入框「搜索姓名 / 手机号 / 备注」
  • 「📥 导出」按钮
  • 「+ 新增客户」按钮
  • 「📞 联系」按钮
  • 「📨 发短信」按钮
  • 「📅 帮他约」按钮

页面跳转

  • 从本页可跳转到今日预约看板。
  • 从本页可跳转到周日历视图。
  • 从本页可跳转到待确认。
  • 从本页可跳转到客户档案。
  • 从本页可跳转到老客户偏好。
  • 从本页可跳转到服务管理。

需求标注(来自原型评审):

标注1 · 结构:商家端侧边栏(客户档案 正常):- 商家端侧边栏(同布局):预约(今日看板/周日历/待确认角标 7) + 客户(客户档案 正常/老客户偏好) + 配置(服务管理);- 客户组两个入口:客户档案(全部客户)与老客户偏好(偏好分析)

标注2 · 指标:客户总数统计:186 / VIP 23 / 新增 14:- 页头:「客户档案 · 共 186 位客户 · VIP 23 位 · 近 30 天新增 14 位」;- 右侧按钮:📥 导出(占位)+ ➕ 新增客户;- 口径:186 = 全部客户(含 VIP 23 + 新客 14,非互斥);与左侧分组计数一致

标注3 · 结构:左右分栏:客户列表 + 详情联动:- 主区左右分栏:左侧客户列表(380px)+ 右侧客户详情(自适应);- 左侧选中客户(.cu.正常)联动右侧详情展示;- 规则:点击列表客户切换右侧详情;原型默认选中张小华

标注4 · 结构:客户搜索:姓名/手机号/备注:- 搜索框🔍:支持按姓名 / 手机号 / 备注搜索客户;- 规则:搜索过滤左侧列表;原型未覆盖空结果态与模糊匹配规则

标注5 · 指标:客户分组:全部/VIP/新客/30天未到:- 客户分组:全部 186 / VIP 23 / 新客 14 / 30 天未到 38;- 口径:- VIP = 达到等级阈值的客户 - 新客 = 近 30 天新增 - 30 天未到 = 距上次到店超 30 天(流失风险客群);- 与看板「近 30 天未到店老客户 5 位」为同一口径的子集

标注6 · 结构:客户列表行结构与偏好摘要:- 客户列表行:头像 + 姓名(VIP 徽标) + 脱敏手机号 + 到店次数 + 偏好摘要(💡偏好 / 📅预约状态 / 📝备注);- 展示 8 位客户(186 位的子集示例):张小华/陈芳/王芳/李雷/孙先生/刘强/赵敏/周丽;- 规则:列表行偏好摘要取客户档案首条偏好;有近期预约时显示预约状态(如李雷「今天 10:30 已确认」)

标注7 · 指标:客户列表数据与全站各页一致:- 张小华列表数据跨页一致:第 8 次到店(我的预约页 8 次 ✓)、138****6688(确认预约/看板 ✓)、偏好「修短一点、鬓角修出形」(确认预约 .pref ✓);- 李雷「今天 10:30 已确认」(看板 ✓)、周丽「明天 16:30 待确认」(待确认页 ✓)、孙先生「冷烫」(待确认页 ✓);- 口径:客户档案为全站客户数据源,各页数据同源

标注8 · 结构:客户详情头:档案信息与消费:- 客户详情头:大号头像 + 姓名「张小华」+ ⭐VIP·第 8 次到店徽标 + 元信息(📞手机号 / 🎂1988 年·女 / 📅注册于 2023-03-15 / 💰累计消费 ¥1,860);- 口径:- 客户性别/生日为可选档案信息 - 注册日期 = 用户端手机号登录自动建档时间;- 待确认:性别/生日等隐私字段的采集与展示合规

标注9 · 规则:联系/发短信/帮他约(代客预约):- 详情操作:📞 联系 / 📨 发短信 / 📅 帮他约(primary);- 规则:- 联系 = 拨打电话 - 发短信 = 发送短信(营销/通知) - 帮他约 = 商家代客预约(新能力,跳预约流程并预填该客户);- 原型中 3 个按钮均无点击动作(占位)

标注10 · 指标:客户 KPI:到店/消费/距上次/确认率:- 客户 KPI 四格:到店次数 8 / 累计消费 ¥1,860 / 距上次 28 天 / 确认率 96%;- 距上次 28 天与看板「今日老客户 · 张小华 距上次 28 天」一致 ✓;- 待确认:- 确认率 96% 口径(8 次到店中 96%?含取消单分母) - 累计消费 ¥1,860 与历史明细(精剪×6 ¥528 + SPA×2 ¥336 + 染发 ¥380 ≈ ¥1,244)对账差异

标注11 · 差异:Tab 切换未生效:偏好与历史同时展示:- 详情 Tab 四个:偏好&备注(正常)/ 预约历史 / 短信记录 / 联系信息;- 差异:偏好&备注 Tab 激活时,下方「预约历史」区块(.hist)仍同时展示,Tab 切换逻辑未生效(短信记录/联系信息无对应内容);→ 建议确认:Tab 切换时仅展示对应区块内容,补齐短信记录/联系信息面板

标注12 · 结构:结构化偏好字段体系:- 结构化偏好字段:常做服务(精剪 6 次·SPA 2 次)/ 偏好师傅(王师傅 7/8 次选他)/ 习惯时段(周三/周六下午)/ 造型偏好 / 敏感事项(无)/ 沟通风格(喜欢简短、不爱聊天)/ 备注(本月活动想推头皮 SPA,已发过 1 次短信);- 口径:偏好为结构化字段沉淀(非自由文本),与「老客户偏好」页同源;备注含营销记录;- 规则:每次完成预约后自动更新统计(常做服务/偏好师傅次数)

标注13 · 口径:预约历史时间线与偏好沉淀:- 预约历史时间线(5 条):8/28 精剪¥88(新增偏好:鬓角修出形)/ 7/15 染发¥380(新增偏好:深棕色)/ 6/20 精剪¥88 / 5/12 精剪¥88 / 4/10 头皮SPA¥168,均已完成;- 规则:- 时间线仅展示最近 5 条(到店 8 次 > 5 条,需分页/展开) - 每次完成沉淀「新增偏好」标签;- 口径:历史明细含服务/技师/时长/金额/新增偏好

7.14 老客户偏好

页面围绕「老客户偏好」展开,主体是「偏好标签 · 点击筛选客户」;提供复选框、复选框、复选框、复选框 等操作。

该页面承载的业务模块:商家端(商家端)、老客户偏好(老客户偏好)、偏好客户群(偏好客户群)

页面信息层级(标题结构):

  • 老客户偏好(主标题)
  • 偏好标签 · 点击筛选客户(子区块)

页面包含的控件

  • 复选框
  • 「📊 偏好报表」按钮
  • 「+ 新建客户群」按钮
  • 「📨 群发」按钮
  • 「📨 给选中发短信」按钮

需求标注(来自原型评审):

标注1 · 差异:侧边栏与其他商家端页不一致:- 商家端侧边栏:预约(今日看板/周日历/待确认 7) + 客户(客户档案/老客户偏好 正常) + 配置(服务管理 / 营业时间 / 短信设置);- 差异:本页侧边栏与其他商家端页面不一致:- 图标用 emoji(📋📅⏳👥⭐🛠🕒📨)而非「•」 - 所有项无 data-goto(不可跳转) - 配置组多出「营业时间」「短信设置」两项;→ 建议确认:侧边栏统一样式与跳转,营业时间/短信设置是否本期页面

标注2 · 指标:页头:标签筛选客群 + 一键群发:- 页头:「老客户偏好 · 按偏好 / 行为标签筛选客户群,支持一键群发短信」;- 右侧按钮:📊 偏好报表 + ➕ 新建客户群(均占位);- 定位:客户营销中心,以标签为入口圈选客群并触达

标注3 · 指标:概览:老客户 163 / 未到 38 / VIP 23 / 可激活 17:- 概览四卡:老客户总数 163 / 30 天未到店 38 / VIP 客户 23 / 本月可激活 17;- 30 天未到 38、VIP 23 与客户档案页分组一致 ✓;- 口径:- 老客户 = 有历史到店记录的客户 - 本月可激活 = 7-30 天未到店且高复购可能(对应第 4 张群卡 17 位)

标注4 · 口径:老客户 163 与客户档案 186 口径关系:- 老客户总数 163 与客户档案页客户总数 186 的关系待明确(186 − 163 = 23 = VIP 数,疑为巧合);- 若 老客户 = 总客户 − 新客(14),应为 172;若 186 − 163 = 23 为其他口径需说明;→ 建议确认:老客户定义(首次到店 vs 有历史记录)与 186/163 的口径差异

标注5 · 结构:偏好标签云:标签+计数+筛选:- 偏好标签云:12 个标签(修短一点 42 / 刘海 38 / 深棕色 24 / 冷烫 19 / 力道偏重 15 / 不聊天 22 / 头皮敏感 11 / 鬓角修出形 17 / 周六 26 / 周三 31 / 王师傅 68 / 李师傅 42),已选 2(修短一点+刘海 正常);- 规则:- 标签来自客户档案「造型偏好/沟通风格/习惯时段/偏好师傅」结构化沉淀 - 标签计数 = 命中客户数 - 点击标签筛选客户群

标注6 · 规则:标签筛选:已选修短+刘海:- 标签筛选规则:已选「修短一点 + 刘海」两个标签(.ct.正常);- 规则:- 标签筛选为 AND(同时命中)逻辑 - 选中标签后联动下方群组卡(如第 2 张卡「偏好修短+刘海」) - 「已选 2」随选择实时更新;- 待确认:多标签组合的 AND/OR 规则与排除逻辑

标注7 · 结构:群组卡:30 天未到店·可能流失:- 群组卡 1「30 天未到店 · 可能流失」(38 位):张小华 VIP(28 天) / 陈芳 VIP(35 天) / 王芳 VIP(42 天) / 孙先生(62 天) / 李雷(31 天),未勾选孙先生;- 口径:30 天未到 = 距上次到店超 30 天,含 VIP(流失高成本);- 与看板「明日剩余时段建议外呼」「系统选出 5 位近 30 天未到店老客户」为同一客群口径

标注8 · 规则:群发/给选中发短信操作:- 群组卡操作:卡头「📨 群发」按钮 + 客户行 checkbox 多选 + 底部「📨 给选中发短信」;- 规则:- 勾选客户后底部显示已选数与费用 - 群发 = 向卡内全部客户发送,给选中发短信 = 仅已勾选;- 原型中按钮均无点击动作(占位)

标注9 · 指标:群发短信费用预估 ¥0.45:- 群组卡 1 底部:「已选 3 位 · 预估发送 ¥ 0.45」;- 口径:短信费用预估 = 已选人数 × 单价(3 条 × ¥0.15/条 = ¥0.45);- 待确认:短信单价 ¥0.15/条的计费来源(短信服务商价格)与费用扣减账户;与看板「短信发送统计」衔接

标注10 · 结构:客户行:偏好+未到店天数+勾选:- 客户行:checkbox + 头像 + 姓名(VIP 徽标) + 偏好摘要 + 右侧「未到店 X 天 / X 天前来过 / 新客」;- 口径:- 未到店天数 = 距上次到店 - 行为标签(未到/前来过/新客)驱动群组分类;- 跨卡复用:张小华同现于「30 天未到」「修短+刘海」「VIP」三张群卡(不同筛选维度命中同一客户属正常)

标注11 · 差异:群组口径重叠与非互斥关系:- 4 张群组卡:30 天未到店 38 位 / 偏好「修短+刘海」14 位 / VIP(10 次以上) 23 位 / 本月可激活(7-30 天) 17 位;- 差异:群组间口径存在重叠(张小华命中多组、李雷同时出现在第 1/2 组),群组非互斥;→ 建议确认:群组是否允许重叠(营销上重叠可接受,需明确不重复发短信的去重规则)

标注12 · 暂缓:营业时间/短信设置页未建(暂缓):- 配置组出现「🕒 营业时间」「📨 短信设置」两个新侧边栏项,对应设置页面未在原型建立;- 营业时间应支撑选时段可约时段、看板营业时段口径(当前两端 20:00/21:45 不一致待其配置化);- 暂缓:营业时间/短信设置为后续配置页,本期以原型占位呈现

8. 异常与边界处理

以下异常与边界情况来自原型评审中标记的「差异」与「暂缓」项,需在产品实现前确认处理方案:
  • 服务列表页(服务列表)· 标注9:儿童剪发年龄限制写在服务名内:- 「儿童剪发(12 岁以下)」将适用人群限制直接写进服务名,而其余服务无适用人群说明;- 人群/年龄限制属于服务属性,应结构化(如适用人群字段)而非内嵌名称,否则影响搜索、筛选与展示一致性;→ 建议确认:是否新增「适用人群/年龄限制」服务字段,服务名只保留「儿童剪发」
  • 服务列表页(服务列表)· 标注10:技师维度仅在快捷再约卡出现:- 「王师傅」技师只在快捷再约卡出现,服务列表与选时段流程未展示/选择技师维度;- 若技师可指定,选时段页应提供技师选择或筛选;若不可指定,快捷卡的技师展示易误导;→ 建议确认:用户端是否展示与选择技师,技师信息在哪些页面可见
  • 服务列表页(服务列表)· 标注11:服务列表暂无搜索与分类筛选:- 当前仅 5 项服务,浏览无需搜索;服务条目增多后(>10)需要搜索框与分类筛选(如按男女/染烫/护理);- 标记为暂缓:服务数量增长后补充,预留列表接口的分页/筛选参数即可
  • 选时段页(选时段)· 标注10::45 禁用状态:CSS 缺样式且原因未明:- 晚上 21:45 使用了 .disabled 类,但 CSS 中仅定义了 .date.disabled,未定义 .slot.disabled 样式,视觉上与可约态无区别,仅无法通过原型状态区分;- 且当前默认选「明天」,明天 21:45 被禁原因未在页面说明;→ 建议确认:21:45 禁用含义(今日已过时段?店铺打烊边界?)并补齐 .slot.disabled 视觉样式
  • 确认预约页(确认预约)· 标注6:到店时间星期标注与日期刻度矛盾:- 到店时间展示「明天(周三)14:15 - 15:00」,其中 14:15-15:00 为 45 分钟=精剪服务时长,起止时间正确;- 差异:星期标注「(周三)」与选时段页日期刻度矛盾(明天=12 非周三=13);→ 建议确认:星期与日期的一致性
  • 确认预约页(确认预约)· 标注14:备注为自由文本,后续可结构化沉淀偏好:- 备注为自由文本输入(placeholder 示例:刘海修薄/染深棕色/头皮敏感等),字段为可选;- 暂缓:当前自由文本可满足需求;后续可将常见备注(染烫偏好/过敏史)结构化沉淀为客户偏好,与「老客户偏好」联动
  • 今日预约看板页(今日预约看板)· 标注5:看板日期 9/11 周三与选时段页日期刻度矛盾:- 本页日期为 2024-09-11 · 周三(真实日历正确),而选时段页日期刻度「昨天 10 / 今天 11 / 明天 12 / 周三 13」中把 13 号标为周三;- 若 9/11 为周三,则 9/13 应为周五,选时段页刻度整体错位 2 天;→ 建议确认:以 2024-09-11 周三为准,修正选时段/确认预约/我的预约页的日期-星期标注
  • 今日预约看板页(今日预约看板)· 标注7:「已超时 0 单」与「3 单超 2 小时未确认」矛盾:- 内部矛盾:概览卡「待确认 · 已超时 0 单」与右侧今日提醒「3 单超过 2 小时未确认」直接冲突;- 若 3 单已超 2 小时未确认,则已超时数应为 3 而非 0;→ 建议确认:超时口径(2 小时未确认即超时?)与「已超时」统计的计算时机,修正两处数据一致性
  • 今日预约看板页(今日预约看板)· 标注14:改约/短信催/确认/签到按钮无动作:- 预约行操作按钮(改约 / 短信催 / 确认 / 签到)均无 data-goto 与点击动作(纯样式占位);→ 建议确认:- 签到=核销到店并转已完成 - 确认=商家确认预约(与用户端待确认联动) - 短信催=向客户重发确认短信 - 改约=调整该预约时段,需二次确认与短信通知
  • 周日历视图页(周日历视图)· 标注3:周刻度 9/11 周三与选时段页错位矛盾:- 周历表头刻度:周一 9/9 · 周二 9/10 · 周三 9/11(今天) · 周四 9/12 · 周五 9/13 · 周六 9/14 · 周日 9/15;- 与看板页「2024-09-11 周三」、真实日历一致(9/11=周三);- 差异:选时段页日期刻度「今天 11 / 明天 12 / 周三 13…」把 9/13 标为周三,与本节(9/13=周五)错位 2 天;→ 建议确认:统一以本节/看板刻度(9/11 周三)为准修正用户端各页日期星期
  • 周日历视图页(周日历视图)· 标注10:「王芳」高频重复疑为演示数据:- 「王芳」在周历中高频重复(如 13:00 行同一小时出现 3 次、全天 20+ 次,且同日既有精剪又有染发/SPA),同一客户一周多时段大量堆叠不合常理;- 差异:疑为演示数据复制占位,非真实预约分布;→ 建议确认:替换为真实分布演示数据,或说明多人同名场景(若属同名需区分客户)
  • 周日历视图页(周日历视图)· 标注11:周历 20:00 截止与用户端 21:45 可约矛盾:- 周历营业时段为 09:00-20:00(12 小时行),而用户端选时段页可约时段覆盖 09:00-21:45(含晚上 19:30/20:15/21:00/21:45);- 差异:两端营业/可约时段边界不一致(20:00 vs 21:45);→ 建议确认:店铺营业时间口径(营业结束时间),商家端周历与用户端可约时段统一
  • 周日历视图页(周日历视图)· 标注13:导出功能占位待实现:- 「📥 导出」按钮为占位,无导出动作与格式定义;- 暂缓:导出(周报/预约清单 Excel/CSV)本期可不实现,预留导出接口即可
  • 服务管理页(服务管理)· 标注4:表单预填精剪数据:新建/编辑模式未明:- 表单预填:时长 45、价格 88、图标 ✂(正常),与服务「精剪发型」数据一致;- 差异:表单顶部有「+ 新建服务」按钮但表单又常驻预填精剪数据,新建/编辑模式关系不明(新建应清空默认、编辑应回填所选服务);→ 建议确认:表单是新建模式(预填为默认值)还是当前选中服务的编辑态
  • 服务管理页(服务管理)· 标注5:表单缺起价/分类/适用人群字段与列表口径不对应:- 列表价格展示为「¥ 88 起 / ¥ 380 起 / ¥ 580 起」(起价)与「¥ 168 / ¥ 58」(固定价),但新建表单价格字段为单一数值,无「是否起价」或价位档配置;- 列表分类标签(人气款/常规/推荐)在表单中无分类字段;「儿童剪发(12 岁以下)」的适用人群也无字段;→ 建议确认:服务数据模型补充价格档(起价)/ 分类 / 适用人群字段,与列表展示口径对齐
  • 服务管理页(服务管理)· 标注11:编辑/复制/停用无动作且缺删除入口:- 操作列按钮:编辑 / 复制 / 停用,均无 data-goto 与点击动作(纯样式占位);- 底部提示提及「想要彻底删除请先确认没有关联订单」,但操作列无删除按钮(仅停用);→ 建议确认:- 删除入口与二次确认流程 - 编辑/复制的交互(复制=复制生成新服务草稿?) - 有历史订单服务的删除限制校验
  • 服务管理页(服务管理)· 标注13:儿童剪发年龄限制内嵌服务名:- 「儿童剪发(12 岁以下)」将年龄限制写进服务名(#005),而其他服务无适用人群标识;- 与服务列表页同问题:适用人群应结构化(如适用人群字段)而非内嵌名称;→ 建议确认:新增「适用人群/年龄限制」服务字段(表单同步补充)
  • 用户登录页(用户登录)· 标注8:第三方登录图标形式不统一:- 微信图标用 emoji「💬」、支付宝图标用文字「支」,图标形式不统一(emoji vs 文字);- 且微信官方图标通常为绿色气泡 Logo,💬 为普通对话气泡,易被误解;→ 建议确认:统一替换为微信/支付宝品牌 SVG 图标(风格与整套 UI 一致)
  • 用户登录页(用户登录)· 标注10:用户协议/隐私政策链接为空:- 协议链接「《用户协议》」「《隐私政策》」为无 href 的空链接,点击无响应;→ 建议确认:协议内容页与埋点(同意行为是否留痕)
  • 我的预约页(我的预约)· 标注8:「明天 12 周三」星期标注与日期刻度矛盾:- 预约卡日期「明天 12 周三」:明天=12 号,而选时段页日期刻度中周三=13 号,两者矛盾(12 应为周二);- 与确认预约页「明天(周三)」标注错误同源;→ 建议确认:日期-星期对应数据以选时段页日期刻度(今天 11 / 明天 12 / 周三 13)为准统一修正
  • 我的预约页(我的预约)· 标注10:同为待服务:已确认与待确认并存,确认规则未明:- 同为「待服务」预约:精剪(明天)已确认,头皮 SPA(9/22)仍待确认(可「催确认」),确认规则不明确;- 已确认者已发短信提醒、待确认者显示「商家会尽快回复」;→ 建议确认:预约确认机制——是商家逐单确认,还是到临近时间自动确认/按技师自动确认;「催确认」是否触发商家端提醒
  • 我的预约页(我的预约)· 标注11:改约/取消/催确认按钮无动作:- 预约卡操作按钮:改约 / 取消(已确认卡)、催确认 / 取消(待确认卡);- 原型中改约、取消、催确认按钮均无 data-goto 与点击动作(纯样式占位);→ 建议确认:- 取消需满足「提前 2 小时」规则与二次确认弹窗 - 改约流程(复用选时段页还是直接调整时段) - 催确认的触发与商家端提醒机制
  • 商家登录页(商家登录)· 标注7:找回密码手机号与客户张小华手机号相同:- 找回密码手机号为 1386688,与用户端客户「张小华」脱敏手机号完全相同(确认预约页/我的预约页均为 138****6688);- 差异:商家老板账号绑定手机号与客户张小华手机号重合,若为真实数据存在账号归属冲突;→ 建议确认:商家账号绑定手机号与客户手机号是否应隔离(演示数据巧合需替换)
  • 商家登录页(商家登录)· 标注8:商家端密码登录 vs 用户端验证码登录:- 认证体系对比:商家端 = 账号 + 密码;用户端(用户登录页)= 手机号 + 短信验证码;- 两端认证方式不同:用户端免密短信登录(自动建档),商家端密码登录(固定账号);- 规则:两端账号体系独立管理;商家账号在用户端不可见;- 待确认:是否需要统一账号体系(如商家也可用手机号+验证码)
  • 商家登录页(商家登录)· 标注9:忘记密码链接未落地:- 「忘记密码?」链接为无 href 空链接,点击无响应;→ 建议确认:找回密码流程(用注册手机号 138****6688 短信重置?),与用户端验证码通道是否复用
  • 商家登录页(商家登录)· 标注10:产品署名:单店预约系统:- 页脚「© 某某理发店 · 由 单店预约系统 提供」;- 产品署名:单店预约系统(SaaS 单店版);- 口径:当前原型为单店场景,多店/连锁支持不在本期范围
  • 待确认页(待确认)· 标注5:超时判定不一致:刘强 2h12m 未标超时:- 等待时长徽标:黄色「已等 Xh Xm」(.wait)与红色「⚠ 已等 Xh Xm」(.wait.over 超时);- 差异:陈芳 3h24m 标红(over),刘强 2h12m 未标红——按「超 2 小时」口径刘强同样超时;→ 建议确认:超时阈值(2 小时)与 .over 触发条件一致,修正刘强等待徽标
  • 待确认页(待确认)· 标注8:赵敏时段/状态与今日看板不一致:- 赵敏在此页为今天 19:30 待确认(精剪·王师傅),而今日看板页赵敏为 16:30 已确认(精剪·王师傅);- 同一客户同一服务,两页时间与状态不一致(若为两单需区分;若为同一单则矛盾);→ 建议确认:赵敏预约的真实时段与状态,修正跨页数据一致性
  • 客户档案页(客户档案)· 标注11:Tab 切换未生效:偏好与历史同时展示:- 详情 Tab 四个:偏好&备注(正常)/ 预约历史 / 短信记录 / 联系信息;- 差异:偏好&备注 Tab 激活时,下方「预约历史」区块(.hist)仍同时展示,Tab 切换逻辑未生效(短信记录/联系信息无对应内容);→ 建议确认:Tab 切换时仅展示对应区块内容,补齐短信记录/联系信息面板
  • 老客户偏好页(老客户偏好)· 标注1:侧边栏与其他商家端页不一致:- 商家端侧边栏:预约(今日看板/周日历/待确认 7) + 客户(客户档案/老客户偏好 正常) + 配置(服务管理 / 营业时间 / 短信设置);- 差异:本页侧边栏与其他商家端页面不一致:- 图标用 emoji(📋📅⏳👥⭐🛠🕒📨)而非「•」 - 所有项无 data-goto(不可跳转) - 配置组多出「营业时间」「短信设置」两项;→ 建议确认:侧边栏统一样式与跳转,营业时间/短信设置是否本期页面
  • 老客户偏好页(老客户偏好)· 标注11:群组口径重叠与非互斥关系:- 4 张群组卡:30 天未到店 38 位 / 偏好「修短+刘海」14 位 / VIP(10 次以上) 23 位 / 本月可激活(7-30 天) 17 位;- 差异:群组间口径存在重叠(张小华命中多组、李雷同时出现在第 1/2 组),群组非互斥;→ 建议确认:群组是否允许重叠(营销上重叠可接受,需明确不重复发短信的去重规则)
  • 老客户偏好页(老客户偏好)· 标注12:营业时间/短信设置页未建(暂缓):- 配置组出现「🕒 营业时间」「📨 短信设置」两个新侧边栏项,对应设置页面未在原型建立;- 营业时间应支撑选时段可约时段、看板营业时段口径(当前两端 20:00/21:45 不一致待其配置化);- 暂缓:营业时间/短信设置为后续配置页,本期以原型占位呈现

9. 待确认事项

以下为原型评审遗留、需产品/开发在实现前确认的问题:
  • 服务列表页(服务列表)· 标注2:「今日还剩 6 个时段可约」剩余时段指标口径:- 口径:今日剩余可约时段数 = 今日总时段数 − 已被预约/锁定时段数;- 数据应来自商家端排班/预约系统,与「今日预约看板」同源实时计算;- 原型中「6」为静态示例值,需后端接口提供;- 待确认:时段数是否按服务时长动态折算(如染发 120 分钟占 2 个半小时时段)
  • 服务列表页(服务列表)· 标注6:「¥ 88 起」起价的定价口径:- 「起」表示该服务存在多价位档(如按技师等级:普通/高级/首席),展示价为最低档起步价;- 实际价格在选择技师/服务档位时确定;- 染发 ¥380 起、烫发 ¥580 起同理;头皮 SPA ¥168、儿童剪发 ¥58 无「起」应为单一固定价;- 待确认:价位档规则(是否按技师等级加价、加价幅度)
  • 服务列表页(服务列表)· 标注7:服务时长口径与排班占用:- 时长展示为「约」值:精剪 45 / 染发 120 / 头皮 SPA 60 / 烫发 180 / 儿童剪发 30 分钟;- 口径:用于排班与时段占用计算,宜为服务标准时长(精确到分钟);「约」为展示值;- 待确认:展示「约」与排班计算用精确时长是否同一字段,还是展示层取整
  • 服务列表页(服务列表)· 标注8:到店付款与取消时限规则:- 支付方式为到店付款(预约无线上支付环节);- 取消规则:取消请提前 2 小时;- 待确认:取消时限 2 小时为全局固定值还是商家可配置;超时取消是否有惩罚/违约规则;需与「我的预约」页取消入口规则一致
  • 服务列表页(服务列表)· 标注9:儿童剪发年龄限制写在服务名内:- 「儿童剪发(12 岁以下)」将适用人群限制直接写进服务名,而其余服务无适用人群说明;- 人群/年龄限制属于服务属性,应结构化(如适用人群字段)而非内嵌名称,否则影响搜索、筛选与展示一致性;→ 建议确认:是否新增「适用人群/年龄限制」服务字段,服务名只保留「儿童剪发」
  • 服务列表页(服务列表)· 标注10:技师维度仅在快捷再约卡出现:- 「王师傅」技师只在快捷再约卡出现,服务列表与选时段流程未展示/选择技师维度;- 若技师可指定,选时段页应提供技师选择或筛选;若不可指定,快捷卡的技师展示易误导;→ 建议确认:用户端是否展示与选择技师,技师信息在哪些页面可见
  • 选时段页(选时段)· 标注3:时长与技师信息回显口径:- 服务时长「约 45 分钟」与技师「王师傅」由服务列表所选服务带入并回显;- 技师在选时段页可见,与服务列表页快捷卡「王师傅」呼应,但本页无技师切换/选择入口;- 待确认:技师在用户端是否可选(若可选,应在此处或选时段时提供选择)
  • 选时段页(选时段)· 标注6:默认选中「明天」与默认时段 14:15 的来源:- 默认选中「明天」且时段默认已选 14:15,底部按钮直接显示「下一步 · 明天 14:15」;- 待确认:默认选中值的来源(是上次预约的推荐值,还是当前时间自动推算的最早可约时段);- 若为默认推荐,需与快捷再约逻辑(服务列表页「按上次再约一次」)保持一致
  • 选时段页(选时段)· 标注8:「剩 1」名额口径与多名额时段规则:- 10:30 时段显示「已有人约 · 剩 1」,说明单个时段存在多个名额,已被约去部分;- 待确认:名额口径——按多名技师同时段各接一客,还是按服务人数/工位容量计算;- 名额数需与商家端排班(技师数/工位)数据同源,实时扣减
  • 选时段页(选时段)· 标注10::45 禁用状态:CSS 缺样式且原因未明:- 晚上 21:45 使用了 .disabled 类,但 CSS 中仅定义了 .date.disabled,未定义 .slot.disabled 样式,视觉上与可约态无区别,仅无法通过原型状态区分;- 且当前默认选「明天」,明天 21:45 被禁原因未在页面说明;→ 建议确认:21:45 禁用含义(今日已过时段?店铺打烊边界?)并补齐 .slot.disabled 视觉样式
  • 选时段页(选时段)· 标注11:时段粒度随服务时长变化规则:- 时段间隔为 45 分钟(09:00 → 09:45 → 10:30 → 11:15),与服务时长「约 45 分钟」一致;- 规则:时段粒度 = 服务标准时长,不同服务(30~180 分钟)应生成对应粒度的时段;- 待确认:长时间服务(如染发 120 分钟)的时段如何折算/拼接,与剩余名额计算联动
  • 确认预约页(确认预约)· 标注4:「¥ 88 起」起价与发型师等级价格联动:- 价格显示「¥ 88 起」,与服务列表页一致,仍为起价而非最终价;- 结合本页发型师分级(高级/资深/普通),推断实际价格按发型师等级浮动;- 待确认:各等级加价规则(如高级+XX、资深+XX)与最终价格的计算与展示时机
  • 确认预约页(确认预约)· 标注5:到店时间回显与星期标注:- 到店时间回显「明天(周三)14:15 - 15:00」(日期 · 起止时间),右上角「修改」跳选时段页;- 差异:选时段页日期刻度中「明天」=12 号、而「周三」=13 号,两者不是同一天,此处将「明天」与「周三」混标为同一天;→ 建议确认:到店时间的星期标注与日期数据的对应关系(以日期刻度为准)
  • 确认预约页(确认预约)· 标注6:到店时间星期标注与日期刻度矛盾:- 到店时间展示「明天(周三)14:15 - 15:00」,其中 14:15-15:00 为 45 分钟=精剪服务时长,起止时间正确;- 差异:星期标注「(周三)」与选时段页日期刻度矛盾(明天=12 非周三=13);→ 建议确认:星期与日期的一致性
  • 确认预约页(确认预约)· 标注8:发型师选择:不指定/指定与等级分档:- 发型师选择:不指定(就近安排) / 王师傅(高级·12年) / 李师傅(资深·8年) / 张师傅(普通·3年);- 默认选中王师傅(.sty.正常),与服务列表页快捷再约「王师傅」一致;- 规则:- 不指定 = 商家就近安排,可选任一等级 - 指定后按等级影响价格档(高级/资深/普通);- 待确认:不指定时按什么策略排人、指定与价格档的联动规则
  • 确认预约页(确认预约)· 标注11:老客户偏好回填与可修改规则:- 老客户偏好回填:「上次偏好:修短一点、鬓角修出形。下次来默认按这个安排,可备注修改」;- 规则:- 偏好来自客户档案/历史记录,与商家端「老客户偏好」页数据同源 - 默认带入且可在备注中修改 - 备注修改是否回写档案需确认;- 待确认:偏好字段是否结构化(发型偏好/染烫偏好等),还是自由文本
  • 确认预约页(确认预约)· 标注13:确认预约提交与短信提醒:- 底部主按钮「确认预约」+ 提示「预约成功后立刻发短信提醒」;- 规则:- 点击提交预约,成功后向用户手机发短信确认 - 原型无提交反馈态(成功/失败/重复提交防抖);- 待确认:提交后跳转「我的预约」还是预约成功页;短信模板内容
  • 今日预约看板页(今日预约看板)· 标注1:商家端侧边栏导航与分组:- 商家端侧边栏:logo「某某理发店 · 工作台」+ 三组导航;- 预约:今日看板(正常) / 周日历 / 待确认(红点角标 7);- 客户:客户档案 / 老客户偏好;- 配置:服务管理;- 各入口 data-goto 对应页面:周日历 pmtnr9iixv1zx、待确认 pmtnrs3zmr0pt、客户档案 pmtnrs40bsd46、老客户偏好 pmtnrs40vpf2s、服务管理 pmtnr9ijf15bn
  • 今日预约看板页(今日预约看板)· 标注2:待确认角标 7 与今日待确认 3 口径不同:- 侧边栏「待确认」角标显示 7,而本页概览「待确认」为 3、今日预约 Tab「待确认 3」;- 口径差异:侧边栏角标应为全量(跨日期)待确认数,概览/Tab 为今日待确认数;- 待确认:角标口径(全部待确认 vs 今日待确认)需在侧边栏明确,避免与今日看板混淆
  • 今日预约看板页(今日预约看板)· 标注4:页头:日期与单量概览:- 页头:「今日看板 · 周三 · 9 月 11 日 · 共 12 单」+ 日期切换器「2024-09-11 · 周三」+ 导出📥 + 看周视图📅(data-goto=pmtnr9iixv1zx);- 左侧 ‹ › 可切换查看其他日期看板;- 口径:共 12 单 = 今日全部预约(含待确认+已确认)
  • 今日预约看板页(今日预约看板)· 标注5:看板日期 9/11 周三与选时段页日期刻度矛盾:- 本页日期为 2024-09-11 · 周三(真实日历正确),而选时段页日期刻度「昨天 10 / 今天 11 / 明天 12 / 周三 13」中把 13 号标为周三;- 若 9/11 为周三,则 9/13 应为周五,选时段页刻度整体错位 2 天;→ 建议确认:以 2024-09-11 周三为准,修正选时段/确认预约/我的预约页的日期-星期标注
  • 今日预约看板页(今日预约看板)· 标注6:概览统计:今日 12 / 已确认 9 / 待确认 3 / 明日余 6:- 四张概览卡:今日预约 12(↑比昨天+3)/ 已确认 9(3 单待客户回复)/ 待确认 3(已超时 0 单)/ 明日剩余时段 6(建议主动外呼);- 口径:- 今日预约=待确认+已确认(3+9=12) - 已确认 9 中 3 单「待客户回复」= 已发短信待客户回执 - 明日剩余时段 6 与用户端「今日还剩 6 个时段可约」数字相同但所指日期不同(用户端今日 vs 商家端明日),需核对该指标口径
  • 今日预约看板页(今日预约看板)· 标注7:「已超时 0 单」与「3 单超 2 小时未确认」矛盾:- 内部矛盾:概览卡「待确认 · 已超时 0 单」与右侧今日提醒「3 单超过 2 小时未确认」直接冲突;- 若 3 单已超 2 小时未确认,则已超时数应为 3 而非 0;→ 建议确认:超时口径(2 小时未确认即超时?)与「已超时」统计的计算时机,修正两处数据一致性
  • 今日预约看板页(今日预约看板)· 标注8:今日预约行结构与操作规则:- 今日预约列表行:时间(含服务时长) + 客户头像 + 姓名(VIP·第N次/新客) + 服务·技师 + 脱敏手机号 + 偏好/备注 + 状态徽标 + 操作按钮;- 规则:- 已确认 → 操作【改约 / 签到】 - 待确认 → 操作【短信催 / 确认】;- 签到=客户到店核销,触发预约转已完成
  • 今日预约看板页(今日预约看板)· 标注9:预约状态徽标与今日列表口径:- 预约卡状态徽标:已确认(绿 .confirmed) / 待确认(蓝 .待审核),与用户端「我的预约」状态机一致;- 已确认行可签到、待确认行可短信催/确认;无已取消/已完成态展示(今日列表仅待服务类);- 口径:看板默认展示今日全部待服务预约,按时间排序
  • 今日预约看板页(今日预约看板)· 标注11:今日提醒:超时自动短信/发送统计/外呼建议:- 今日提醒三则(3 项):;1. 3 单超过 2 小时未确认(陈芳、刘强、孙先生 · 已自动发短信提醒 1 次);2. 今日共发送 18 条预约确认短信(成功 17 · 失败 1 号码错误);3. 明日仅剩 6 个时段,建议主动外呼(系统选出 5 位近 30 天未到店老客户);- 规则:- 预约超 2 小时未确认 → 系统自动向客户发短信提醒(每单 1 次?频率待确认) - 时段不足触发外呼建议并圈选流失风险客户
  • 今日预约看板页(今日预约看板)· 标注12:短信发送统计与失败处理:- 短信发送统计:今日 18 条、成功 17、失败 1(号码错误);- 规则:- 发送失败需记录失败原因并提供重发/修正号码入口(原型未覆盖) - 失败计入发送统计口径,与用户端短信确认衔接;- 待确认:短信通道(第三方短信服务商)、模板与失败重试策略
  • 今日预约看板页(今日预约看板)· 标注14:改约/短信催/确认/签到按钮无动作:- 预约行操作按钮(改约 / 短信催 / 确认 / 签到)均无 data-goto 与点击动作(纯样式占位);→ 建议确认:- 签到=核销到店并转已完成 - 确认=商家确认预约(与用户端待确认联动) - 短信催=向客户重发确认短信 - 改约=调整该预约时段,需二次确认与短信通知
  • 周日历视图页(周日历视图)· 标注1:商家端侧边栏导航(与看板一致):- 商家端侧边栏(与今日看板同布局):logo + 预约(今日看板/周日历 正常/待确认角标 7) + 客户(客户档案/老客户偏好) + 配置(服务管理);- 各入口 data-goto 与看板页一致
  • 周日历视图页(周日历视图)· 标注2:页头:本周 9/9-9/15 共 38 单:- 页头:「本周预约 · 9 月 9 日 - 9 月 15 日 · 共 38 单」+ 日期切换器「2024-09-09 ~ 09-15」;- 右侧「📥 导出」(占位)+「📋 今日看板」按钮跳看板页(data-goto=pmtnr9iicfp9q);- 口径:38 单 = 本周全部预约(已确认 31 + 待确认 7)
  • 周日历视图页(周日历视图)· 标注3:周刻度 9/11 周三与选时段页错位矛盾:- 周历表头刻度:周一 9/9 · 周二 9/10 · 周三 9/11(今天) · 周四 9/12 · 周五 9/13 · 周六 9/14 · 周日 9/15;- 与看板页「2024-09-11 周三」、真实日历一致(9/11=周三);- 差异:选时段页日期刻度「今天 11 / 明天 12 / 周三 13…」把 9/13 标为周三,与本节(9/13=周五)错位 2 天;→ 建议确认:统一以本节/看板刻度(9/11 周三)为准修正用户端各页日期星期
  • 周日历视图页(周日历视图)· 标注4:周合计 38 = 已确认 31 + 待确认 7 与角标口径:- 底部合计:本周合计 38 单 = 已确认 31 + 待确认 7(与页头 38 一致);- 侧边栏「待确认」角标 7 与本节待确认 7 一致 → 角标口径 = 本周待确认(非今日);- 与今日看板「今日待确认 3」区分:3=今日、7=本周;- 待确认:侧边栏角标是本周待确认还是全量(跨周)待确认,需明确定义
  • 周日历视图页(周日历视图)· 标注8:预约事件块:时间+客户+服务·技师:- 事件块信息:开始时间 + 客户姓名(.t)+ 服务类型 · 技师(.n),按服务类型着色(cut/dye/spa/perm);- 规则:- 同一客户一天可有多个预约 - 事件按开始时间落在对应小时行 - 点击事件应查看详情(原型未覆盖);- 事件未区分已确认/待确认状态(全部同色展示)
  • 周日历视图页(周日历视图)· 标注10:「王芳」高频重复疑为演示数据:- 「王芳」在周历中高频重复(如 13:00 行同一小时出现 3 次、全天 20+ 次,且同日既有精剪又有染发/SPA),同一客户一周多时段大量堆叠不合常理;- 差异:疑为演示数据复制占位,非真实预约分布;→ 建议确认:替换为真实分布演示数据,或说明多人同名场景(若属同名需区分客户)
  • 周日历视图页(周日历视图)· 标注11:周历 20:00 截止与用户端 21:45 可约矛盾:- 周历营业时段为 09:00-20:00(12 小时行),而用户端选时段页可约时段覆盖 09:00-21:45(含晚上 19:30/20:15/21:00/21:45);- 差异:两端营业/可约时段边界不一致(20:00 vs 21:45);→ 建议确认:店铺营业时间口径(营业结束时间),商家端周历与用户端可约时段统一
  • 周日历视图页(周日历视图)· 标注12:低占用日主动营销老客户建议:- 底部提示「💡 周四、周六比较空,建议给老客户发短信」;- 规则:- 系统识别低占用日并给出主动营销建议 - 触发外呼/短信营销老客户,与看板「明日剩余 6 时段建议外呼」策略一致;- 待确认:低占用判定阈值、营销短信模板与老客户圈选规则
  • 服务管理页(服务管理)· 标注1:商家端侧边栏(服务管理当前):- 商家端侧边栏(与看板/周历同布局):预约(今日看板/周日历/待确认角标 7) + 客户(客户档案/老客户偏好) + 配置(服务管理 正常);- 各入口 data-goto 与看板页一致
  • 服务管理页(服务管理)· 标注4:表单预填精剪数据:新建/编辑模式未明:- 表单预填:时长 45、价格 88、图标 ✂(正常),与服务「精剪发型」数据一致;- 差异:表单顶部有「+ 新建服务」按钮但表单又常驻预填精剪数据,新建/编辑模式关系不明(新建应清空默认、编辑应回填所选服务);→ 建议确认:表单是新建模式(预填为默认值)还是当前选中服务的编辑态
  • 服务管理页(服务管理)· 标注5:表单缺起价/分类/适用人群字段与列表口径不对应:- 列表价格展示为「¥ 88 起 / ¥ 380 起 / ¥ 580 起」(起价)与「¥ 168 / ¥ 58」(固定价),但新建表单价格字段为单一数值,无「是否起价」或价位档配置;- 列表分类标签(人气款/常规/推荐)在表单中无分类字段;「儿童剪发(12 岁以下)」的适用人群也无字段;→ 建议确认:服务数据模型补充价格档(起价)/ 分类 / 适用人群字段,与列表展示口径对齐
  • 服务管理页(服务管理)· 标注11:编辑/复制/停用无动作且缺删除入口:- 操作列按钮:编辑 / 复制 / 停用,均无 data-goto 与点击动作(纯样式占位);- 底部提示提及「想要彻底删除请先确认没有关联订单」,但操作列无删除按钮(仅停用);→ 建议确认:- 删除入口与二次确认流程 - 编辑/复制的交互(复制=复制生成新服务草稿?) - 有历史订单服务的删除限制校验
  • 服务管理页(服务管理)· 标注12:停用 vs 彻底删除规则:- 底部提示:「停用只是从客户端下架,不影响历史预约数据;想要彻底删除请先确认没有关联订单」;- 规则:- 停用 = 软下架(保留数据) - 删除 = 硬删除(需无关联订单);- 待确认:删除的关联订单检测逻辑、删除后历史数据如何处理
  • 服务管理页(服务管理)· 标注13:儿童剪发年龄限制内嵌服务名:- 「儿童剪发(12 岁以下)」将年龄限制写进服务名(#005),而其他服务无适用人群标识;- 与服务列表页同问题:适用人群应结构化(如适用人群字段)而非内嵌名称;→ 建议确认:新增「适用人群/年龄限制」服务字段(表单同步补充)
  • 用户登录页(用户登录)· 标注2:手机号输入与格式校验:- 手机号输入框,预填演示号「13888886688」(原型示例数据,非真实用户);- 规则:手机号为中国大陆 11 位手机号,需格式校验(原型未覆盖校验/错误提示态);- 待确认:手机号格式校验规则与错误提示文案
  • 用户登录页(用户登录)· 标注3:短信验证码输入与获取按钮:- 短信验证码输入框(placeholder「6 位数字」)+ 右侧「获取验证码」按钮;- 规则:- 验证码为 6 位数字 - 点击获取后应发送短信并开始倒计时重发(原型未覆盖);- 待确认:验证码有效期(如 5 分钟)、发送频率限制(防刷)与错误次数上限
  • 用户登录页(用户登录)· 标注4:获取验证码:发送逻辑与防刷机制待实现:- 「获取验证码」按钮:原型仅有样式(.code-btn:disabled 已定义置灰态),无发送逻辑、倒计时与重发机制;- 待确认:- 发送成功后按钮置灰倒计时(如 60 秒) - 同一手机号发送频率上限(防短信轰炸) - 验证码校验失败处理
  • 用户登录页(用户登录)· 标注6:登录提交与登录态规则:- 主按钮「登 录」,点击跳服务列表页(data-goto=pmtnr9ig78x1f);- 规则:- 登录成功进入服务列表 - 手机号+验证码校验通过才可提交(原型未覆盖未通过态) - 游客态可浏览服务列表但无快捷再约/偏好回填(与确认预约页老客户识别联动);- 待确认:登录态保持(token 有效期)、退出登录入口位置
  • 用户登录页(用户登录)· 标注7:微信/支付宝第三方登录占位:- 第三方登录占位:微信登录(💬)与支付宝登录(支)两个圆形图标按钮;- 规则:第三方登录需对接微信/支付宝开放平台授权回调(原型仅占位,无跳转与回调处理);- 待确认:第三方登录是否本期上线;授权后与手机号建档的账号打通策略
  • 用户登录页(用户登录)· 标注8:第三方登录图标形式不统一:- 微信图标用 emoji「💬」、支付宝图标用文字「支」,图标形式不统一(emoji vs 文字);- 且微信官方图标通常为绿色气泡 Logo,💬 为普通对话气泡,易被误解;→ 建议确认:统一替换为微信/支付宝品牌 SVG 图标(风格与整套 UI 一致)
  • 用户登录页(用户登录)· 标注9:登录即同意协议:条款链接未落地:- 「登录即同意《用户协议》与《隐私政策》」,为登录的前置协议条款;- 两个链接 `` 均无 href,协议内容未落地;→ 建议确认:补齐《用户协议》《隐私政策》页面/链接;是否需在注册建档时单独确认
  • 用户登录页(用户登录)· 标注10:用户协议/隐私政策链接为空:- 协议链接「《用户协议》」「《隐私政策》」为无 href 的空链接,点击无响应;→ 建议确认:协议内容页与埋点(同意行为是否留痕)
  • 我的预约页(我的预约)· 标注3:已到店 8 次 · VIP 客户等级口径:- 「已到店 8 次 · VIP 客户」:到店次数为累计完成预约数,VIP 等级由到店次数/消费额判定;- 口径:VIP 判定阈值未定义(8 次即 VIP?);等级数据与商家端「客户档案」「老客户偏好」同源;- 待确认:VIP 等级规则(次数/金额阈值、权益内容)
  • 我的预约页(我的预约)· 标注4:预约统计:待服务/已完成/已取消:- 统计栏:待服务 2 / 已完成 8 / 已取消 0,与下方 Tab 数量一致;- 口径:- 待服务 = 已确认+待确认的未到期预约 - 已完成 = 到店完成 - 已取消 = 取消的预约;- 数据随预约状态变更实时更新
  • 我的预约页(我的预约)· 标注8:「明天 12 周三」星期标注与日期刻度矛盾:- 预约卡日期「明天 12 周三」:明天=12 号,而选时段页日期刻度中周三=13 号,两者矛盾(12 应为周二);- 与确认预约页「明天(周三)」标注错误同源;→ 建议确认:日期-星期对应数据以选时段页日期刻度(今天 11 / 明天 12 / 周三 13)为准统一修正
  • 我的预约页(我的预约)· 标注9:预约状态四态与状态机:- 预约状态四态:待确认(蓝 .upcoming) / 已确认(绿 .confirmed) / 已完成(灰 .done) / 已取消(红 .已取消);- 原型中出现待确认、已确认、已完成三态,已取消态样式已定义但无示例;- 口径:状态机 = 待确认 → 已确认 → 已完成(或 取消);与商家端「待确认」页联动
  • 我的预约页(我的预约)· 标注10:同为待服务:已确认与待确认并存,确认规则未明:- 同为「待服务」预约:精剪(明天)已确认,头皮 SPA(9/22)仍待确认(可「催确认」),确认规则不明确;- 已确认者已发短信提醒、待确认者显示「商家会尽快回复」;→ 建议确认:预约确认机制——是商家逐单确认,还是到临近时间自动确认/按技师自动确认;「催确认」是否触发商家端提醒
  • 我的预约页(我的预约)· 标注11:改约/取消/催确认按钮无动作:- 预约卡操作按钮:改约 / 取消(已确认卡)、催确认 / 取消(待确认卡);- 原型中改约、取消、催确认按钮均无 data-goto 与点击动作(纯样式占位);→ 建议确认:- 取消需满足「提前 2 小时」规则与二次确认弹窗 - 改约流程(复用选时段页还是直接调整时段) - 催确认的触发与商家端提醒机制
  • 商家登录页(商家登录)· 标注4:天自动登录与忘记密码入口:- 登录辅助行:7 天内自动登录(checkbox 默认勾选)+「忘记密码?」链接(无 href);- 规则:- 勾选后 7 天内免登录(token 有效期 7 天) - 忘记密码跳找回流程(原型未覆盖);- 待确认:自动登录安全边界(管理端是否建议关闭)
  • 商家登录页(商家登录)· 标注6:老板专用账号与员工免登录权限模型:- 提示:「这是老板专用账号,全店只有一个。员工无需登录。如忘记密码请用注册手机号找回」;- 权限模型:- 单店单老板账号,无员工账号体系 - 员工无需登录(店内共用看板?);- 待确认:员工是否真的无需账号(多员工场景如何区分操作人/技师排班)
  • 商家登录页(商家登录)· 标注7:找回密码手机号与客户张小华手机号相同:- 找回密码手机号为 1386688,与用户端客户「张小华」脱敏手机号完全相同(确认预约页/我的预约页均为 138****6688);- 差异:商家老板账号绑定手机号与客户张小华手机号重合,若为真实数据存在账号归属冲突;→ 建议确认:商家账号绑定手机号与客户手机号是否应隔离(演示数据巧合需替换)
  • 商家登录页(商家登录)· 标注8:商家端密码登录 vs 用户端验证码登录:- 认证体系对比:商家端 = 账号 + 密码;用户端(用户登录页)= 手机号 + 短信验证码;- 两端认证方式不同:用户端免密短信登录(自动建档),商家端密码登录(固定账号);- 规则:两端账号体系独立管理;商家账号在用户端不可见;- 待确认:是否需要统一账号体系(如商家也可用手机号+验证码)
  • 商家登录页(商家登录)· 标注9:忘记密码链接未落地:- 「忘记密码?」链接为无 href 空链接,点击无响应;→ 建议确认:找回密码流程(用注册手机号 138****6688 短信重置?),与用户端验证码通道是否复用
  • 待确认页(待确认)· 标注1:商家端侧边栏(待确认 正常):- 商家端侧边栏(与看板/周历/服务管理同布局):预约(今日看板/周日历/待确认 正常 角标 7) + 客户(客户档案/老客户偏好) + 配置(服务管理);- 角标 7 与页头「7 单等待中」、周历待确认 7 一致(本周待确认口径)
  • 待确认页(待确认)· 标注2:页头:7 单等待中 · 已超时 1 单:- 页头:「待确认 · 需要你回复的预约请求 · 7 单等待中 · 已超时 1 单」;- 右侧按钮:🔄 刷新 + 📨 一键群发短信催确认(warn 橙色);- 口径:7 = 待确认总数(今日 5 + 明日 2),与侧边栏角标一致
  • 待确认页(待确认)· 标注3:待确认统计:总数 7 / 2小时内 4 / 今日 5 / 明日 2:- 四张统计卡:待确认总数 7(比昨天+2)/ 2 小时内需回复 4(含 1 单超时)/ 今日时段 5(均可确认)/ 明日时段 2(需抢位);- 口径:- 7 = 今日 5 + 明日 2 - 「2 小时内需回复 4」的圈选规则未说明(按等待时长?按距服务时间?);- 待确认:「2 小时内需回复」与「今日时段/明日时段」的统计口径与圈选逻辑
  • 待确认页(待确认)· 标注4:「2 小时内需回复 4」口径与超时判定:- 「2 小时内需回复 4(含 1 单超时)」:4 单的圈选对象不明(7 单中哪 4 单?);- 若按等待时长 >2 小时即超时,则陈芳(3h24m)与刘强(2h12m)均已超 2 小时,超时应为 2 而非 1;→ 建议确认:超时判定口径(提交后 2 小时未回复?)与「2 小时内需回复」的筛选逻辑,保证统计自洽
  • 待确认页(待确认)· 标注5:超时判定不一致:刘强 2h12m 未标超时:- 等待时长徽标:黄色「已等 Xh Xm」(.wait)与红色「⚠ 已等 Xh Xm」(.wait.over 超时);- 差异:陈芳 3h24m 标红(over),刘强 2h12m 未标红——按「超 2 小时」口径刘强同样超时;→ 建议确认:超时阈值(2 小时)与 .over 触发条件一致,修正刘强等待徽标
  • 待确认页(待确认)· 标注6:待确认卡结构与排序:- 待确认卡结构:左侧(日期 + 时间 + 时长 + 等待徽标)+ 头像 + 客户名(VIP·第N次) + 服务·技师·脱敏手机号 + 偏好/备注 + 操作按钮;- 7 张卡按提交时间倒序排列(3h24m → 5m);- 陈芳/刘强/孙先生/王芳 与今日看板待确认数据一致(服务/技师/手机号吻合)
  • 待确认页(待确认)· 标注7:确认/拒绝/联系/详情操作:- 操作按钮:查看详情 / 📞 联系 / ✓ 确认(绿)/ 拒(红);- 规则:- 确认 = 通过预约并通知客户(与用户端待确认→已确认联动) - 拒 = 拒绝预约(需理由?未覆盖) - 联系 = 电话/短信联系客户 - 查看详情 = 完整预约信息;- 原型中 4 个按钮均无点击动作(占位)
  • 待确认页(待确认)· 标注8:赵敏时段/状态与今日看板不一致:- 赵敏在此页为今天 19:30 待确认(精剪·王师傅),而今日看板页赵敏为 16:30 已确认(精剪·王师傅);- 同一客户同一服务,两页时间与状态不一致(若为两单需区分;若为同一单则矛盾);→ 建议确认:赵敏预约的真实时段与状态,修正跨页数据一致性
  • 待确认页(待确认)· 标注9:超时催确认规则:2 小时发短信 / 4 小时再提醒:- 底部规则:「超过 2 小时未回复的预约,系统已自动发送 1 次催确认短信;超过 4 小时系统会再次提醒你」;- 规则:- 超 2 小时 → 自动发催确认短信 1 次(对客户?对商家?) - 超 4 小时 → 系统再次提醒商家;- 待确认:短信对象(催客户确认还是提醒商家处理)、提醒次数与渠道;与看板「3 单超 2 小时未确认已自动发短信 1 次」衔接
  • 待确认页(待确认)· 标注10:一键群发短信催确认:- 「📨 一键群发短信催确认」:批量给全部待确认客户发催确认短信;- 规则:- 群发对象 = 当前筛选/全部待确认单 - 群发前应有确认弹窗(原型未覆盖);- 待确认:群发频率限制(防骚扰)、与单条催确认(看板短信催)的关系
  • 待确认页(待确认)· 标注11:偏好与备注回显口径:- 待确认卡偏好/备注回显:陈芳「力道偏重、不聊天」、孙先生「冷烫」、王芳「染深棕色、头皮敏感」(偏好)与刘强「第一次来,希望短一点」、赵敏「剪刘海」(备注);- 口径:偏好来自客户档案沉淀,备注来自预约时填写;两字段同源展示,供商家确认前参考
  • 客户档案页(客户档案)· 标注1:商家端侧边栏(客户档案 正常):- 商家端侧边栏(同布局):预约(今日看板/周日历/待确认角标 7) + 客户(客户档案 正常/老客户偏好) + 配置(服务管理);- 客户组两个入口:客户档案(全部客户)与老客户偏好(偏好分析)
  • 客户档案页(客户档案)· 标注7:客户列表数据与全站各页一致:- 张小华列表数据跨页一致:第 8 次到店(我的预约页 8 次 ✓)、138****6688(确认预约/看板 ✓)、偏好「修短一点、鬓角修出形」(确认预约 .pref ✓);- 李雷「今天 10:30 已确认」(看板 ✓)、周丽「明天 16:30 待确认」(待确认页 ✓)、孙先生「冷烫」(待确认页 ✓);- 口径:客户档案为全站客户数据源,各页数据同源
  • 客户档案页(客户档案)· 标注8:客户详情头:档案信息与消费:- 客户详情头:大号头像 + 姓名「张小华」+ ⭐VIP·第 8 次到店徽标 + 元信息(📞手机号 / 🎂1988 年·女 / 📅注册于 2023-03-15 / 💰累计消费 ¥1,860);- 口径:- 客户性别/生日为可选档案信息 - 注册日期 = 用户端手机号登录自动建档时间;- 待确认:性别/生日等隐私字段的采集与展示合规
  • 客户档案页(客户档案)· 标注10:客户 KPI:到店/消费/距上次/确认率:- 客户 KPI 四格:到店次数 8 / 累计消费 ¥1,860 / 距上次 28 天 / 确认率 96%;- 距上次 28 天与看板「今日老客户 · 张小华 距上次 28 天」一致 ✓;- 待确认:- 确认率 96% 口径(8 次到店中 96%?含取消单分母) - 累计消费 ¥1,860 与历史明细(精剪×6 ¥528 + SPA×2 ¥336 + 染发 ¥380 ≈ ¥1,244)对账差异
  • 客户档案页(客户档案)· 标注11:Tab 切换未生效:偏好与历史同时展示:- 详情 Tab 四个:偏好&备注(正常)/ 预约历史 / 短信记录 / 联系信息;- 差异:偏好&备注 Tab 激活时,下方「预约历史」区块(.hist)仍同时展示,Tab 切换逻辑未生效(短信记录/联系信息无对应内容);→ 建议确认:Tab 切换时仅展示对应区块内容,补齐短信记录/联系信息面板
  • 老客户偏好页(老客户偏好)· 标注1:侧边栏与其他商家端页不一致:- 商家端侧边栏:预约(今日看板/周日历/待确认 7) + 客户(客户档案/老客户偏好 正常) + 配置(服务管理 / 营业时间 / 短信设置);- 差异:本页侧边栏与其他商家端页面不一致:- 图标用 emoji(📋📅⏳👥⭐🛠🕒📨)而非「•」 - 所有项无 data-goto(不可跳转) - 配置组多出「营业时间」「短信设置」两项;→ 建议确认:侧边栏统一样式与跳转,营业时间/短信设置是否本期页面
  • 老客户偏好页(老客户偏好)· 标注4:老客户 163 与客户档案 186 口径关系:- 老客户总数 163 与客户档案页客户总数 186 的关系待明确(186 − 163 = 23 = VIP 数,疑为巧合);- 若 老客户 = 总客户 − 新客(14),应为 172;若 186 − 163 = 23 为其他口径需说明;→ 建议确认:老客户定义(首次到店 vs 有历史记录)与 186/163 的口径差异
  • 老客户偏好页(老客户偏好)· 标注6:标签筛选:已选修短+刘海:- 标签筛选规则:已选「修短一点 + 刘海」两个标签(.ct.正常);- 规则:- 标签筛选为 AND(同时命中)逻辑 - 选中标签后联动下方群组卡(如第 2 张卡「偏好修短+刘海」) - 「已选 2」随选择实时更新;- 待确认:多标签组合的 AND/OR 规则与排除逻辑
  • 老客户偏好页(老客户偏好)· 标注9:群发短信费用预估 ¥0.45:- 群组卡 1 底部:「已选 3 位 · 预估发送 ¥ 0.45」;- 口径:短信费用预估 = 已选人数 × 单价(3 条 × ¥0.15/条 = ¥0.45);- 待确认:短信单价 ¥0.15/条的计费来源(短信服务商价格)与费用扣减账户;与看板「短信发送统计」衔接
  • 老客户偏好页(老客户偏好)· 标注11:群组口径重叠与非互斥关系:- 4 张群组卡:30 天未到店 38 位 / 偏好「修短+刘海」14 位 / VIP(10 次以上) 23 位 / 本月可激活(7-30 天) 17 位;- 差异:群组间口径存在重叠(张小华命中多组、李雷同时出现在第 1/2 组),群组非互斥;→ 建议确认:群组是否允许重叠(营销上重叠可接受,需明确不重复发短信的去重规则)

10. 决策依据

  • 邻里换物业务模式:同小区业主开放平台(谁都能发布)、全品类、交易方式当面/快递二选一(发布时必选)、私聊砍价、平台轻搭台不抽成。 —— 来自同分组项目「邻里换物」的决策参考:用户原话:「业务已确认:邻里换物(同小区业主开放平台、当面/快递自选、私聊砍价、全品类)」

11. 未来演进规划(Roadmap)

  • v1.0(当前交付):跑通核心流程(状态机 待确认→已确认→已完成→已取消 闭环)。
  • 后续版本:数据看板、消息推送、多端联动等增强(按业务优先级排期)。

*本 PRD 由原型工作台自动导出,业务口径请人工复核。*

测试用例

✓ 通过 0 ✗ 失败 0 ◌ 未执行 154
2. 页面功能用例36 条
### TC-001 填写表单并保存(确认预约)
P1 模块:-
步骤
  1. 在文本输入框「输入框」、文本输入框「输入框」、多行文本输入框中填写有效内容
  2. 点击保存/提交按钮
未执行
### TC-002 点击「获取验证码」按钮(用户登录)
P1 模块:-
步骤
  1. 点击页面中的「获取验证码」按钮
未执行
### TC-003 点击「登 录」按钮(用户登录)
P1 模块:-
步骤
  1. 点击页面中的「登 录」按钮
未执行
### TC-004 填写表单并保存(用户登录)
P1 模块:-
步骤
  1. 在文本输入框「请输入手机号」、文本输入框「6 位数字」中填写有效内容
  2. 点击保存/提交按钮
未执行
### TC-005 点击「改约」按钮(我的预约)
P1 模块:-
步骤
  1. 点击页面中的「改约」按钮
未执行
### TC-006 点击「取消」按钮(我的预约)
P1 模块:-
步骤
  1. 点击页面中的「取消」按钮
未执行
### TC-007 点击「催确认」按钮(我的预约)
P1 模块:-
步骤
  1. 点击页面中的「催确认」按钮
未执行
### TC-008 点击「取消」按钮(我的预约)
P1 模块:-
步骤
  1. 点击页面中的「取消」按钮
未执行
### TC-009 点击「🔍」按钮(今日预约看板)
P1 模块:-
步骤
  1. 点击页面中的「🔍」按钮
未执行
### TC-010 点击「🔔」按钮(今日预约看板)
P1 模块:-
步骤
  1. 点击页面中的「🔔」按钮
未执行
### TC-011 点击「‹」按钮(今日预约看板)
P1 模块:-
步骤
  1. 点击页面中的「‹」按钮
未执行
### TC-012 点击「›」按钮(今日预约看板)
P1 模块:-
步骤
  1. 点击页面中的「›」按钮
未执行
### TC-013 点击「‹」按钮(周日历视图)
P1 模块:-
步骤
  1. 点击页面中的「‹」按钮
未执行
### TC-014 点击「›」按钮(周日历视图)
P1 模块:-
步骤
  1. 点击页面中的「›」按钮
未执行
### TC-015 点击「📥 导出」按钮(周日历视图)
P1 模块:-
步骤
  1. 点击页面中的「📥 导出」按钮
未执行
### TC-016 点击「📋 今日看板」按钮(周日历视图)
P1 模块:-
步骤
  1. 点击页面中的「📋 今日看板」按钮
未执行
### TC-017 点击「📥 导入」按钮(服务管理)
P1 模块:-
步骤
  1. 点击页面中的「📥 导入」按钮
未执行
### TC-018 点击「+ 新建服务」按钮(服务管理)
P1 模块:-
步骤
  1. 点击页面中的「+ 新建服务」按钮
未执行
### TC-019 点击「保存」按钮(服务管理)
P1 模块:-
步骤
  1. 点击页面中的「保存」按钮
未执行
### TC-020 点击「编辑」按钮(服务管理)
P1 模块:-
步骤
  1. 点击页面中的「编辑」按钮
未执行
### TC-021 填写表单并保存(服务管理)
P1 模块:-
步骤
  1. 在文本输入框「如:男士精剪 / 染发 / 头皮 SPA」、文本输入框「一句话说明,让客户更好选」、文本输入框「搜索服务名…」中填写有效内容
  2. 点击保存/提交按钮
未执行
### TC-022 点击「登 录」按钮(商家登录)
P1 模块:-
步骤
  1. 点击页面中的「登 录」按钮
未执行
### TC-023 填写表单并保存(商家登录)
P1 模块:-
步骤
  1. 在文本输入框「老板用户名 / 手机号」中填写有效内容
  2. 点击保存/提交按钮
未执行
### TC-024 点击「🔄 刷新」按钮(待确认)
P1 模块:-
步骤
  1. 点击页面中的「🔄 刷新」按钮
未执行
### TC-025 点击「📨 一键群发短信催确认」按钮(待确认)
P1 模块:-
步骤
  1. 点击页面中的「📨 一键群发短信催确认」按钮
未执行
### TC-026 点击「查看详情」按钮(待确认)
P1 模块:-
步骤
  1. 点击页面中的「查看详情」按钮
未执行
### TC-027 点击「📞 联系」按钮(待确认)
P1 模块:-
步骤
  1. 点击页面中的「📞 联系」按钮
未执行
### TC-028 点击「📥 导出」按钮(客户档案)
P1 模块:-
步骤
  1. 点击页面中的「📥 导出」按钮
未执行
### TC-029 点击「+ 新增客户」按钮(客户档案)
P1 模块:-
步骤
  1. 点击页面中的「+ 新增客户」按钮
未执行
### TC-030 点击「📞 联系」按钮(客户档案)
P1 模块:-
步骤
  1. 点击页面中的「📞 联系」按钮
未执行
### TC-031 点击「📨 发短信」按钮(客户档案)
P1 模块:-
步骤
  1. 点击页面中的「📨 发短信」按钮
未执行
### TC-032 填写表单并保存(客户档案)
P1 模块:-
步骤
  1. 在文本输入框「搜索姓名 / 手机号 / 备注」中填写有效内容
  2. 点击保存/提交按钮
未执行
### TC-033 点击「📊 偏好报表」按钮(老客户偏好)
P1 模块:-
步骤
  1. 点击页面中的「📊 偏好报表」按钮
未执行
### TC-034 点击「+ 新建客户群」按钮(老客户偏好)
P1 模块:-
步骤
  1. 点击页面中的「+ 新建客户群」按钮
未执行
### TC-035 点击「📨 群发」按钮(老客户偏好)
P1 模块:-
步骤
  1. 点击页面中的「📨 群发」按钮
未执行
### TC-036 点击「📨 给选中发短信」按钮(老客户偏好)
P1 模块:-
步骤
  1. 点击页面中的「📨 给选中发短信」按钮
未执行
3. 状态机流转用例5 条
### TC-037 状态流转:待确认 → 已确认(触发:商家确认)
P1 模块:-
步骤
  1. 执行「商家确认」
未执行
### TC-038 状态流转:待确认 → 已取消(触发:取消/拒单)
P1 模块:-
步骤
  1. 执行「取消/拒单」
未执行
### TC-039 状态流转:已确认 → 已完成(触发:到店签到)
P1 模块:-
步骤
  1. 执行「到店签到」
未执行
### TC-040 状态流转:已确认 → 已取消(触发:客户取消)
P1 模块:-
步骤
  1. 执行「客户取消」
未执行
### TC-041 状态流转:已确认 → 待确认(触发:改约重提)
P1 模块:-
步骤
  1. 执行「改约重提」
未执行
4. 页面跳转用例41 条
### TC-042 从「服务列表」跳转到我的预约
P1 模块:-
步骤
  1. 点击跳转到我的预约的入口(按钮/链接)
未执行
### TC-043 从「服务列表」跳转到确认预约
P1 模块:-
步骤
  1. 点击跳转到确认预约的入口(按钮/链接)
未执行
### TC-044 从「服务列表」跳转到选时段
P1 模块:-
步骤
  1. 点击跳转到选时段的入口(按钮/链接)
未执行
### TC-045 从「选时段」跳转到服务列表
P1 模块:-
步骤
  1. 点击跳转到服务列表的入口(按钮/链接)
未执行
### TC-046 从「选时段」跳转到确认预约
P1 模块:-
步骤
  1. 点击跳转到确认预约的入口(按钮/链接)
未执行
### TC-047 从「确认预约」跳转到选时段
P1 模块:-
步骤
  1. 点击跳转到选时段的入口(按钮/链接)
未执行
### TC-048 从「确认预约」跳转到服务列表
P1 模块:-
步骤
  1. 点击跳转到服务列表的入口(按钮/链接)
未执行
### TC-049 从「今日预约看板」跳转到今日预约看板
P1 模块:-
步骤
  1. 点击跳转到今日预约看板的入口(按钮/链接)
未执行
### TC-050 从「今日预约看板」跳转到周日历视图
P1 模块:-
步骤
  1. 点击跳转到周日历视图的入口(按钮/链接)
未执行
### TC-051 从「今日预约看板」跳转到待确认
P1 模块:-
步骤
  1. 点击跳转到待确认的入口(按钮/链接)
未执行
### TC-052 从「今日预约看板」跳转到客户档案
P1 模块:-
步骤
  1. 点击跳转到客户档案的入口(按钮/链接)
未执行
### TC-053 从「今日预约看板」跳转到老客户偏好
P1 模块:-
步骤
  1. 点击跳转到老客户偏好的入口(按钮/链接)
未执行
### TC-054 从「今日预约看板」跳转到服务管理
P1 模块:-
步骤
  1. 点击跳转到服务管理的入口(按钮/链接)
未执行
### TC-055 从「周日历视图」跳转到今日预约看板
P1 模块:-
步骤
  1. 点击跳转到今日预约看板的入口(按钮/链接)
未执行
### TC-056 从「周日历视图」跳转到周日历视图
P1 模块:-
步骤
  1. 点击跳转到周日历视图的入口(按钮/链接)
未执行
### TC-057 从「周日历视图」跳转到待确认
P1 模块:-
步骤
  1. 点击跳转到待确认的入口(按钮/链接)
未执行
### TC-058 从「周日历视图」跳转到客户档案
P1 模块:-
步骤
  1. 点击跳转到客户档案的入口(按钮/链接)
未执行
### TC-059 从「周日历视图」跳转到老客户偏好
P1 模块:-
步骤
  1. 点击跳转到老客户偏好的入口(按钮/链接)
未执行
### TC-060 从「周日历视图」跳转到服务管理
P1 模块:-
步骤
  1. 点击跳转到服务管理的入口(按钮/链接)
未执行
### TC-061 从「服务管理」跳转到今日预约看板
P1 模块:-
步骤
  1. 点击跳转到今日预约看板的入口(按钮/链接)
未执行
### TC-062 从「服务管理」跳转到周日历视图
P1 模块:-
步骤
  1. 点击跳转到周日历视图的入口(按钮/链接)
未执行
### TC-063 从「服务管理」跳转到待确认
P1 模块:-
步骤
  1. 点击跳转到待确认的入口(按钮/链接)
未执行
### TC-064 从「服务管理」跳转到客户档案
P1 模块:-
步骤
  1. 点击跳转到客户档案的入口(按钮/链接)
未执行
### TC-065 从「服务管理」跳转到老客户偏好
P1 模块:-
步骤
  1. 点击跳转到老客户偏好的入口(按钮/链接)
未执行
### TC-066 从「服务管理」跳转到服务管理
P1 模块:-
步骤
  1. 点击跳转到服务管理的入口(按钮/链接)
未执行
### TC-067 从「用户登录」跳转到服务列表
P1 模块:-
步骤
  1. 点击跳转到服务列表的入口(按钮/链接)
未执行
### TC-068 从「我的预约」跳转到服务列表
P1 模块:-
步骤
  1. 点击跳转到服务列表的入口(按钮/链接)
未执行
### TC-069 从「我的预约」跳转到确认预约
P1 模块:-
步骤
  1. 点击跳转到确认预约的入口(按钮/链接)
未执行
### TC-070 从「商家登录」跳转到今日预约看板
P1 模块:-
步骤
  1. 点击跳转到今日预约看板的入口(按钮/链接)
未执行
### TC-071 从「待确认」跳转到今日预约看板
P1 模块:-
步骤
  1. 点击跳转到今日预约看板的入口(按钮/链接)
未执行
### TC-072 从「待确认」跳转到周日历视图
P1 模块:-
步骤
  1. 点击跳转到周日历视图的入口(按钮/链接)
未执行
### TC-073 从「待确认」跳转到待确认
P1 模块:-
步骤
  1. 点击跳转到待确认的入口(按钮/链接)
未执行
### TC-074 从「待确认」跳转到客户档案
P1 模块:-
步骤
  1. 点击跳转到客户档案的入口(按钮/链接)
未执行
### TC-075 从「待确认」跳转到老客户偏好
P1 模块:-
步骤
  1. 点击跳转到老客户偏好的入口(按钮/链接)
未执行
### TC-076 从「待确认」跳转到服务管理
P1 模块:-
步骤
  1. 点击跳转到服务管理的入口(按钮/链接)
未执行
### TC-077 从「客户档案」跳转到今日预约看板
P1 模块:-
步骤
  1. 点击跳转到今日预约看板的入口(按钮/链接)
未执行
### TC-078 从「客户档案」跳转到周日历视图
P1 模块:-
步骤
  1. 点击跳转到周日历视图的入口(按钮/链接)
未执行
### TC-079 从「客户档案」跳转到待确认
P1 模块:-
步骤
  1. 点击跳转到待确认的入口(按钮/链接)
未执行
### TC-080 从「客户档案」跳转到客户档案
P1 模块:-
步骤
  1. 点击跳转到客户档案的入口(按钮/链接)
未执行
### TC-081 从「客户档案」跳转到老客户偏好
P1 模块:-
步骤
  1. 点击跳转到老客户偏好的入口(按钮/链接)
未执行
### TC-082 从「客户档案」跳转到服务管理
P1 模块:-
步骤
  1. 点击跳转到服务管理的入口(按钮/链接)
未执行
5. 字段校验用例8 条
### TC-083 必填字段校验:客户
P1 模块:-
步骤
  1. 不填写必填字段:phone、createdAt
  2. 提交表单
未执行
### TC-084 必填字段校验:发型师/员工
P1 模块:-
步骤
  1. 不填写必填字段:name、enabled
  2. 提交表单
未执行
### TC-085 必填字段校验:服务项
P1 模块:-
步骤
  1. 不填写必填字段:name、durationMin、price、enabled
  2. 提交表单
未执行
### TC-086 必填字段校验:预约单
P1 模块:-
步骤
  1. 不填写必填字段:customerId、serviceId、startAt、endAt、status、createdAt
  2. 提交表单
未执行
### TC-087 必填字段校验:预约状态日志
P1 模块:-
步骤
  1. 不填写必填字段:appointmentId、toStatus、changedAt
  2. 提交表单
未执行
### TC-088 必填字段校验:客户偏好标签
P1 模块:-
步骤
  1. 不填写必填字段:customerId、tag、updatedAt
  2. 提交表单
未执行
### TC-089 必填字段校验:短信发送记录
P1 模块:-
步骤
  1. 不填写必填字段:customerId、content、status、sentAt
  2. 提交表单
未执行
### TC-090 必填字段校验:店铺配置
P1 模块:-
步骤
  1. 不填写必填字段:name、ownerPhone
  2. 提交表单
未执行
6. 业务规则用例32 条
### TC-091 业务规则验证(服务列表· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-092 业务规则验证(服务列表· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-093 业务规则验证(选时段· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-094 业务规则验证(选时段· 标注7)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-095 业务规则验证(选时段· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-096 业务规则验证(选时段· 标注12)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-097 业务规则验证(确认预约· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-098 业务规则验证(确认预约· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-099 业务规则验证(确认预约· 标注12)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-100 业务规则验证(确认预约· 标注13)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-101 业务规则验证(今日预约看板· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-102 业务规则验证(今日预约看板· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-103 业务规则验证(今日预约看板· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-104 业务规则验证(今日预约看板· 标注13)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-105 业务规则验证(周日历视图· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-106 业务规则验证(周日历视图· 标注12)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-107 业务规则验证(服务管理· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-108 业务规则验证(用户登录· 标注3)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-109 业务规则验证(用户登录· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-110 业务规则验证(用户登录· 标注6)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-111 业务规则验证(用户登录· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-112 业务规则验证(我的预约· 标注6)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-113 业务规则验证(我的预约· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-114 业务规则验证(我的预约· 标注13)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-115 业务规则验证(商家登录· 标注4)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-116 业务规则验证(商家登录· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-117 业务规则验证(待确认· 标注7)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-118 业务规则验证(待确认· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-119 业务规则验证(待确认· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-120 业务规则验证(客户档案· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-121 业务规则验证(老客户偏好· 标注6)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
### TC-122 业务规则验证(老客户偏好· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的操作路径
  2. 观察系统行为是否符合规则
未执行
7. 异常与边界用例32 条
### TC-123 异常/边界验证(服务列表· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-124 异常/边界验证(服务列表· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-125 异常/边界验证(服务列表· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-126 异常/边界验证(选时段· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-127 异常/边界验证(确认预约· 标注6)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-128 异常/边界验证(确认预约· 标注14)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-129 异常/边界验证(今日预约看板· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-130 异常/边界验证(今日预约看板· 标注7)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-131 异常/边界验证(今日预约看板· 标注14)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-132 异常/边界验证(周日历视图· 标注3)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-133 异常/边界验证(周日历视图· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-134 异常/边界验证(周日历视图· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-135 异常/边界验证(周日历视图· 标注13)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-136 异常/边界验证(服务管理· 标注4)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-137 异常/边界验证(服务管理· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-138 异常/边界验证(服务管理· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-139 异常/边界验证(服务管理· 标注13)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-140 异常/边界验证(用户登录· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-141 异常/边界验证(用户登录· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-142 异常/边界验证(我的预约· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-143 异常/边界验证(我的预约· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-144 异常/边界验证(我的预约· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-145 异常/边界验证(商家登录· 标注7)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-146 异常/边界验证(商家登录· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-147 异常/边界验证(商家登录· 标注9)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-148 异常/边界验证(商家登录· 标注10)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-149 异常/边界验证(待确认· 标注5)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-150 异常/边界验证(待确认· 标注8)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-151 异常/边界验证(客户档案· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-152 异常/边界验证(老客户偏好· 标注1)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-153 异常/边界验证(老客户偏好· 标注11)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行
### TC-154 异常/边界验证(老客户偏好· 标注12)
P1 模块:-
步骤
  1. 复现标注描述的边界或冲突操作
未执行