PRD:开单结账2.0 v2.0-draft
(散客开单 · 会员开单 · 快捷开单 · 商户端)
v2.0 主链路(C1/D1/E1/F1):首页 → 选择顾客(取挂单右对齐;选中 #EFF0FF;行展开单/快捷开单)→ 开单对齐 demo(分类「全部」默认平铺;「+」红圆步进器居中;行下展 + 员工槽位;员工 sheet 普通底部弹出最高约 55% 可盖展开区;加购橙→红飞入)→ 结算文档流(优惠券行 + 备注卡)。全页粉白淡色顾客卡;会员权益默认收起+chevron;无「更换顾客」;头像/姓名进 s4。详见 Markdown。
| 字段 | 内容 |
|---|---|
| 文档版本 | v2.0-draft |
| 日期 | 2026-09-15 |
| 交互原型(唯一可视依据) | 同目录 index.html |
| 画布 | 390 × 844 |
| 目的 | 供前端 / 后端 / 测试及 AI 工具落地「开单结账2.0」;只需本文 + 交互原型 |
—怎么读这份 PRD
正文按模块编排。不用通读全文,按角色跳章即可。
| # | 模块 | 前端 | 后端 | 测试 | 说明 |
|---|---|---|---|---|---|
| 1 | 背景 / 目标 / 范围 / 能力映射 | ✓ | ✓ | ✓ | 本期变更叙事、防范围蔓延 |
| 2 | 用户场景与成功标准 | ✓ | 了解 | ✓ | 测「业务对不对」 |
| 3 | 信息架构与页面清单 | ✓ | 了解 | ✓ | 做哪些页、哪些层 |
| 4 | 状态机 | ✓ | 必看 | 必看 | 顾客身份、性别、会员卡展开、购物车、快捷开单明细 |
| 5 | 交互细则 / 异常流 | ✓ | 了解 | ✓ | 输入规则、校验、toast |
| 6 | 功能规格 | ✓ | 了解 | ✓ | 逐屏字段与跳转 |
| 7 | 数据模型与接口约定 | ✓ | 必看 | ✓ | 沿用线上接口;新增字段【待联调确认】 |
| 8 | 业务规则 | ✓ | 必看 | ✓ | 金额口径、改价、范围边界 |
| 9 | 文案清单与权限 | ✓ | 部分 | ✓ | 文案;店员/店长/店主 |
| 10 | 验收 P0 + 造数场景 | 了解 | 了解 | 必看 | Given→When→Then,含输入边界 |
| 11 | 非功能(极简) | ✓ | ✓ | ✓ | |
| 12 | 交付物 | ✓ | — | ✓ | 仅 PRD + 原型 |
先读这几条(贯穿全文)
- 本期是基于 RTB 线上开单结账 的 优化改版,不改变其他未涉及的功能逻辑。凡本文未单独描述的交互、文案、接口,均沿用线上现有实现。
- 页面顶部顾客卡片:默认态为单默认头像 +「散客」(未选择顾客时);从顾客列表选择「男散客 / 女散客」后仅显示对应的一个性别头像 + 文案「男散客 / 女散客」;点击头像或姓名均进入顾客列表(s4),性别切换仅通过 s4,不再点头像切男女;「选择顾客」进入顾客列表,列表仍保留「男散客 / 女散客」选项,列表内 VIP 标签样式做了微调。默认态产生的订单顾客记为「散客」,头像为默认头像。
- 从顾客列表选择 会员 后,开单结账页顶部卡片切换为 会员样式。原会员信息卡默认 折叠 会员所持权益,本期改为 保持展开、展示全部持有权益且不可折叠收起;字段显示规则维持现有规则。会员姓名右侧的 VIP 标签只是原型展示用的临时资源,开发时保持该位置现有 VIP 标签逻辑不变。
- 添加项目 / 产品时的 UI UX 是本期最大的修改:参照博卡小店通的 sheet 弹窗样式,按现有逻辑做了适配;弹窗内展示 数量 + 应付(元)(应付带笔形编辑图标),并在弹窗内 内嵌「选择员工」翻转选择 UI(点击卡片翻转成按钮进行点客/散客 → 小工/中工/大工选择)。购物车有项后,点击「下一步」进入 开单结算页(s6);购物车为空时,s1/s5 底部主按钮显示为「快捷开单」(橙底 #FF8956 + 闪电图标),点击进入快捷开单流程(s2)。当会员持有的权益使项目/产品产生划线价(原价灰色划线 + 红色优惠价)时,弹窗「应付」默认即为该优惠价。
- 「快捷开单」功能(原「快捷开单」全局更名):无需常规流程的繁琐操作,只需输入金额即可完成开单结算,并 可选填 服务员工信息和开单内容。结算第二步为 快捷开单结算页(s7),金额按原价计算,不做身份折扣。快捷开单与小程序「自助买单」的纯金额支付不是同一种功能、互不相关。开单页 Tab 上方的「快捷开单」入口行已移除,入口改由底部空车主按钮承载。
- 补充展示页面:门店流水(s8,快捷开单在流水中的展示)、选择退款项目(s9,快捷开单退款)、业绩设置(s10,劳动业绩含「快捷开单」分类)、提成方案(s11,劳动提成含「快捷开单」分类)。入口为原型左侧导航直达,不承载业务链路;对应业务逻辑以线上为准。其中「经营分析 → 门店经营报表」的项目 TOP5 排行不包含「快捷开单」(经营分析属另一产品线,此处仅记录本侧规则)。
- 该模块的 其他功能保持现有状态(支付、会员卡业务等均以线上为准)。挂单限制:快捷开单不可挂单;购物车未添加任何物品时不可挂单(按钮置灰,点击 toast 提示原因)。本期已移除会员信息卡上的「办卡」按钮,会员卡仅保留「更换顾客」。开单结账页(s1/s5)原有的搜索栏本期已删除,原型与文案均不再包含;搜索能力如线上另有入口,以线上现有版本为准。
- 开单结算 s6 / 快捷开单结算 s7 的交互效果与各类弹窗(员工面板、权益选择 sheet、备注 sheet、小计编辑、toast 等)以当前在线版本为准,原型中的仅为评审演示,原型细节不作为开发验收约束;本 PRD 已明确写出的本期业务规则(会员划线价、快捷开单权益、点客/散客、应付默认优惠价、挂单限制、单号交互、默认散客卡、无产品隐藏 tab 等)仍为开发约束。
- 输入与联动口径(原型已同步):金额格式 整数≤6位、小数≤2位、上限 999999.99;快捷开单 空金额不可「去收款」;开单内容 ≤50 字;应付/小计 可手动编辑(对焦即清空,失焦为空时还原),改价后该明细不可使用权益(改价判定以「应付/小计 ≠ 单价/权益优惠价 × 数量」为准)。
- 单号(s6/s7):左侧标签为「单号」;右侧默认展示灰色文案「结账后自动生成」;点击右侧可进入手动输入自定义单号(同行变为可编辑输入框)。结账时若未手动填写,由系统自动生成单号。
- 价目表无产品时:若门店价目表未录入产品(产品为空),开单页(s1/s5)Tab 不显示「产品」,仅显示「项目」,且「项目」在 Tab 区域居中。本规则为产品约束;当前原型演示数据含产品,原型可不切换演示该态。
交互行为与文案以 index.html 当前表现(含本版同步后的口径)为准。
1背景 / 目标 / 范围 / 能力映射
1.1 背景
RTB 线上开单结账经过一段时间运营,线下调研反馈:
- 常规开单需先选顾客、选项目、配员工、填备注,流程较长,存在「只想快速收一笔钱」的场景;
- 顾客卡片与顾客列表在性别表达、头像素材上体验欠佳;
- 会员所持权益信息默认折叠,收银员核对权益时需要额外操作;
- 添加项目/产品时的信息组织与操作路径不符合当前门店操作习惯;
- 快捷开单缺少结算第二步、流水展示、退款与业绩/提成配置等闭环展示。
本期在不改变其他功能逻辑的前提下,对开单结账做定点优化,并为快捷开单补齐逻辑补充页面。
1.2 目标
| 目标 | 说明 |
|---|---|
| 快捷开单 | 仅输入金额即可开单结算,选填员工与开单内容;空车时从 s1/s5 底部「快捷开单」按钮进入 |
| 顾客卡片优化 | 默认单头像+「散客」;选男/女散客后仅显示对应单头像;点击头像/姓名/选择顾客进入顾客列表 |
| 顾客列表优化 | 新增「男散客 / 女散客」散客选项;VIP 标签样式微调 |
| 会员权益可见 | 会员卡保持展开、展示全部权益,不可折叠;移除「办卡」按钮 |
| 会员权益价 | 会员持有的折扣权益在价目卡片上产生划线价(原价划线 + 红色优惠价),添加 sheet 应付默认=优惠价 |
| 添加体验升级 | 参照博卡小店通 sheet 弹窗样式,数量 + 应付(可编辑)+ 内嵌翻转选员工 |
| 开单结算页 | 购物车明细在结算页 s6 完整展示(明细卡/权益/小计/应付/挂单/结账) |
| 快捷开单结算 | 快捷开单结算第二步 s7(明细/权益/小计/应付/结账),金额按原价;不可挂单 |
| 快捷开单权益 | s7 默认不选权益;可选用会员卡储值金额、全场项目适用的计次/折扣、全场项目或产品可用的优惠券、满足金额门槛的代金券 |
| 单号 | s6/s7:「单号」+ 默认「结账后自动生成」,点击可手动输入 |
| 挂单限制 | 快捷开单不可挂单;空购物车不可挂单 |
| 无产品 Tab | 价目表无产品时,开单页仅显示「项目」且居中 |
| 逻辑补充页面 | 门店流水 s8、选择退款项目 s9、业绩设置 s10、提成方案 s11 |
| 快捷开单边界 | 明确快捷开单与小程序「自助买单」的纯金额支付不是同一种功能(见 8) |
| 经营分析关联 | 快捷开单不计入「经营分析 → 门店经营报表」项目 TOP5 排行(见 8) |
| 回归可控 | 其余功能沿用线上,避免范围蔓延 |
1.3 本期做(In)
- 顶部顾客卡片:默认态单默认头像 +「散客」;从 s4 选男/女散客后仅显示对应单头像 + 文案;选会员进会员卡;点击头像、姓名或「选择顾客」均进入顾客列表(s4);性别切换仅通过 s4
- 顾客列表:新增「男散客」「女散客」选项;会员 VIP 标签样式微调(原型为渐变 ◆VIP)
- 会员卡:从默认折叠改为 保持展开展示全部权益、不可折叠;移除「办卡」按钮(仅保留「更换顾客」);VIP 标签展示沿用线上逻辑
- 添加项目/产品 sheet 弹窗:标题(项目名+价格)、数量(步进 1~999)、应付(元)(带笔形编辑图标,对焦清空、失焦还原)、服务员工(产品为销售人员)、确定;会员持有折扣权益时应付默认=优惠价
- 选择员工:卡片翻转两步选择(点客/散客 → 小工/中工/大工),多选,保留已选
- 快捷开单:金额键盘直接开单 + 选填员工/开单内容(≤50 字)+ 去收款;Tab 上方入口行已删除
- 会员权益价:价目卡片展示划线原价 + 红色优惠价(散客无权益不划线)
- 开单结算 s6:购物车明细结算页(单号、明细卡、权益自动匹配/选择、小计编辑、应付、挂单、结账)
- 快捷开单结算 s7:快捷开单结算第二步(单号、红色闪电快捷开单明细、权益、小计编辑、应付、结账;金额按原价;不可挂单)
- 逻辑补充页面(原型左侧导航直达):s8 门店流水(快捷开单展示)、s9 选择退款项目、s10 业绩设置、s11 提成方案
- 底部主按钮:购物车为空 → 「快捷开单」(橙底)进 s2;购物车有项 → 「下一步」进 s6
- 挂单限制:快捷开单不可挂单;空购物车不可挂单(置灰 + toast)
- 单号:s6/s7 默认「结账后自动生成」,点击可手动输入
- 无产品价目:仅显示「项目」Tab 且居中(规则约束;原型可不演示)
1.4 本期不做(Out)
- 支付 / 收款 / 收银流水(沿用线上;原型仅以「结账」toast 示意,支付流程不实现)
- 挂单、储值/计次卡核销、会员卡业务(办卡/开卡入口不在本期范围,原型已移除会员卡「办卡」按钮,业务逻辑沿用线上)(沿用线上,原型 toast 示意);但本期明确:快捷开单与空购物车不可挂单
- ~~线上自有购物车明细 sheet~~(本期已按 Figma 重做「已选商品」Sheet;s6 内明细展示与删除仍保留)
- 顾客列表搜索 / 新增顾客 / 编辑顾客(沿用线上)
- s8-s11 的业务链路(流水详情、退款审批、业绩/提成保存与生效)以线上为准,原型仅展示页面与交互示意
- 多门店、权限体系改造(沿用线上现有实现,本期不改造)
1.5 旧 → 新能力映射
| 旧体系能力(语义) | 新体系如何表现 |
|---|---|
| 散客卡默认双头像「男散客」 | 默认态:单默认头像 +「散客」;选男/女散客后仅显示对应单头像;点头像/文字进 s4 |
| 选择顾客仅会员列表 | 列表顶部新增「男散客」「女散客」散客选项 |
| 会员卡默认折叠权益 | 保持展开、全部权益可见、不可折叠 |
| 添加项目/产品信息组织分散 | sheet 弹窗:标题 + 数量/应付 + 内嵌选员工 + 确定 |
| 无快速路径 / Tab 上方快捷入口 | 删除 Tab 上方入口行;空车时底部主按钮为「快捷开单」进入 s2 |
| 常规开单无结算明细页 | 购物车有项 → 下一步 → s6 开单结算页(明细/权益/小计/应付/挂单/结账) |
| 快捷开单直接收款 | 金额 → 去收款(s3)→ 快捷开单结算第二步(s7)→ 结账 |
| 快捷开单无闭环展示 | 门店流水 s8(流水展示)、选择退款项目 s9(退款)、业绩设置 s10 / 提成方案 s11(业绩提成配置) |
| 应付金额静态数字 | 应付/小计可编辑(笔形图标、对焦清空、失焦还原),改价后权益锁定 |
| 价目仅展示原价 | 会员持有的折扣权益 → 卡片原价灰色划线 + 红色优惠价;添加 sheet 应付默认=优惠价(默认优惠价不算改价) |
| 快捷开单 9 折(会员) | 快捷开单默认按原价,不做身份折扣;权益默认不选,可手动选择(四类权益,见 8) |
| 快捷开单与自助买单同源 | 明确区分:快捷开单是门店收银侧开单能力,与小程序「自助买单」纯金额支付无关(见 8) |
| 进入结算即自动生成手工单号 | 单号默认「结账后自动生成」,点击可手动输入;未填写则结账后系统生成 |
| 空车仍可挂单 / 快捷开单可挂单 | 空车不可挂单;快捷开单(含 s7)不可挂单 |
| 无产品时仍显示产品 Tab | 价目无产品时仅显示「项目」且居中 |
映射不足时以原型字段与行为为准。
2用户场景与成功标准
2.1 角色
| 角色 | 说明 |
|---|---|
| 店员 | 日常收银开单 |
| 店长 | 日常收银开单、门店管理 |
| 店主 | 门店最高权限 |
本期 仅列角色,不定义角色间权限差异;操作权限沿用线上现有规则。
2.2 核心场景
| 场景 | 用户期望 | 成功标准 |
|---|---|---|
| 散客开单 | 新客不建档案直接开单 | 默认散客卡;空车点「快捷开单」或加购后「下一步」进结算 |
| 会员开单 | 老客识别身份、查看权益 | 选择会员后卡片切换为会员样式;权益全部展开可见 |
| 快捷开单 | 只需输入金额即可收银 | 输入金额 + 选填员工/开单内容 → 去收款 → 快捷开单结算 s7 |
| 更换顾客 | 开单中换人 | 顶部卡片、身份状态同步切换 |
| 添加项目 | 加购服务并指定员工、调整应付 | sheet 弹窗数量/应付联动正确;员工可多选;应付可编辑 |
| 结算明细 | 结账前核对明细、权益 | s6/s7 明细完整展示;改价项权益锁定;小计可编辑 |
| 流水查看 | 查看快捷开单在流水中的展示 | s8 中快捷开单以「⚡快捷开单」项展示,含金额/服务人/支付方式 |
| 退款 | 对快捷开单发起退款 | s9 全选/部分选择联动;退回方式按选择范围约束 |
| 业绩/提成配置 | 配置快捷开单的业绩与提成比例 | s10/s11 中「快捷开单」分类固定置顶,比例可配置 |
3信息架构与页面清单
开单结账
├─ s1 散客开单
│ ├─ 顶部散客卡(默认:单头像·「散客」;选性别后:对应单头像·男/女散客)
│ ├─ 项目/产品 Tab(无产品时仅「项目」居中)
│ ├─ 左侧分类(选中白底)+ 项目/产品卡片(圆形加号)
│ └─ 底部 bottom-bar(购物车/金额/挂单/空车「快捷开单」或有货「下一步」)
├─ s2 快捷开单
│ ├─ 顶部身份卡(散客/会员 按身份切换)
│ ├─ 开单内容 / 收款金额 / 员工
│ └─ 数字键盘 + 去收款
├─ s3 快捷开单去收款
│ ├─ 顶部身份卡(同上)
│ ├─ 开单内容 / 收款金额(只读显示,键盘可改)/ 员工
│ └─ 数字键盘 + 去收款(→ s7)
├─ s4 选择顾客
│ ├─ 搜索栏 + 取消
│ ├─ 散客(男散客 / 女散客)
│ ├─ 会员列表(姓名 / VIP 标签 / 编号 / 最近消费)
│ └─ 字母索引 A-Z#
├─ s5 会员开单
│ ├─ 顶部会员卡(权益全部展开)
│ ├─ 项目/产品 Tab(无产品时仅「项目」居中)
│ ├─ 左侧分类 + 项目/产品卡片(圆形加号)
│ └─ 底部 bottom-bar(购物车/金额/挂单/空车「快捷开单」或有货「下一步」)
├─ s6 开单结算(购物车明细结算)
│ ├─ 顶部身份卡(散客/会员)
│ ├─ 单号(默认「结账后自动生成」,可点输入)+ 明细卡列表
│ └─ 底部 co-bar(应付 + 挂单/结账;空车挂单禁用)
├─ s7 快捷开单结算(快捷开单第二步)
│ ├─ 顶部身份卡(散客/会员)
│ ├─ 单号(同上)+ 快捷开单明细卡(员工/权益/小计/应付)
│ └─ 底部 co-bar(应付 + 挂单禁用/结账)
├─ s8 门店流水(逻辑补充)
│ ├─ 尾款单 / 筛选
│ ├─ Tab:全部/项目/产品/会员卡/作废
│ └─ 流水卡(顾客/商品/服务人/支付方式/实付/开单时间)
├─ s9 选择退款项目(逻辑补充)
│ ├─ 提示条(退回方式约束)
│ ├─ 退款项目列表(勾选)
│ └─ 底部 rf-bar(全选 + 确认退款)
├─ s10 业绩设置(逻辑补充)
│ ├─ 高级设置 / Tab(劳动业绩/销售业绩)
│ ├─ 左侧分类(快捷开单置顶 + 洗吹)
│ └─ 业绩表(点客/散客 × 大工/中工/小工)
├─ s11 提成方案(逻辑补充)
│ ├─ 方案名称卡 + 更多
│ ├─ Tab(劳动提成/销售提成)
│ ├─ 左侧分类(快捷开单置顶 + 洗吹)
│ └─ 提成表(点客/散客)
└─ 弹层
├─ addsheet 添加项目/产品(数量 + 应付 + 员工 + 确定)
├─ benefit-sheet 选择权益(会员卡/优惠券)
├─ staff-sheet 选择员工(网格 + 两步翻转 + 完成)
└─ remark-sheet 备注(开单内容 50 字 + 完成)
3.0 页面流(示意)
| 页面/层 | 导航标题(原型) | 说明 |
|---|---|---|
| 散客开单 s1 | 开单结账 | 散客卡 + 项目/产品选品 + 底部工具栏 |
| 快捷开单 s2 | 开单结账 | 金额键盘 + 选填员工/开单内容 + 去收款 |
| 快捷开单去收款 s3 | 开单结账 | 金额显示(键盘可改)+ 员工/开单内容 + 去收款 → s7 |
| 选择顾客 s4 | — | 搜索栏 + 散客/会员列表 + 字母索引 |
| 会员开单 s5 | 开单结账 | 会员卡(权益展开)+ 项目/产品选品 + 底部工具栏 |
| 开单结算 s6 | 开单结账 | 购物车明细结算(单号/明细卡/权益/小计/应付/挂单/结账) |
| 快捷开单结算 s7 | 开单结账 | 快捷开单第二步(单号/快捷开单明细/权益/小计/应付/挂单禁用/结账) |
| 门店流水 s8 | 门店流水 | 快捷开单流水展示(全部/项目/产品/会员卡/作废 Tab) |
| 选择退款项目 s9 | 选择退款项目 | 退款项目勾选 + 全选联动 + 确认退款 |
| 业绩设置 s10 | 业绩设置 | 劳动业绩含置顶「快捷开单」分类;销售业绩暂无设计 |
| 提成方案 s11 | 提成方案 | 劳动提成含置顶「快捷开单」分类;销售提成暂无设计 |
| 添加项目/产品 | — | sheet 弹窗(标题/数量/应付/员工/确定) |
| 选择权益 | 选择权益 | 会员卡/优惠券列表,单选,已选可取消 |
| 选择员工 | 选择员工 | 员工网格 + 两步翻转选择 + 完成 |
| 备注 | 备注 | 文本框(50 字)+ 完成 |
4状态机
4.1 顾客身份 currentCust
| 状态 | 含义 | 顶部卡片 |
|---|---|---|
guest | 散客 | 深色散客卡(默认:单头像·「散客」;选性别后:对应单头像·男/女散客 · 选择顾客) |
member | 会员 | 会员卡(头像/姓名/VIP/上次到店/更换顾客 + 权益展开) |
- 默认
guest。 - s2 / s3 / s6 / s7 顶部卡片按该状态切换;后续元素随卡片高度下移。
- 从 s4 选会员:回到来源页;s2/s3 返回原页,s1 进入则跳 s5,s6/s7 进入则更新身份并返回原页。
- 从 s4 选男/女散客:回到来源页(从 s5 进入则回 s1,s6/s7 进入则更新身份并返回原页)。
- 散客卡头像 / 姓名:点击均进入顾客列表(s4)。默认态文案为「散客」;性别态为「男散客 / 女散客」且仅显示对应一个头像。不再支持点击头像切换性别,性别切换仅通过 s4。
4.2 散客性别 data-g
| 状态 | 卡片文案 | 头像表现 |
|---|---|---|
male(默认) | 男散客 | 男头像彩色,女头像灰阶 |
female | 女散客 | 女头像彩色,男头像灰阶 |
- 点击顶部卡片头像可切换性别;切换仅影响展示,不改变身份(仍为散客)。
- 点击头像 /「男散客 / 女散客」文字 /「选择顾客」 → 均进入顾客列表(s4)。
- s4 散客列表选择「男散客 / 女散客」同样更新。
4.3 会员卡权益展开
- 保持展开、展示全部持有权益,不可折叠收起(区别于线上默认折叠)。
- 字段显示规则维持现有规则不变(如:计次卡「余N次」、储值卡「余额xx元」、折扣卡「x.x折」)。
4.4 购物车明细 cartItems(s6 数据源)
- 添加 sheet 点「确定」写入一条明细(散客页面加购计入 s1,会员页面加购计入 s5)。
- 明细字段:名称 / 单价 / 数量 / 应付 / 类型(项目/产品)/ 分类 / 缩略图 / 员工 / 权益 / 改价标记。
- 加购后 s1/s5 应付金额累加、对应左侧分类角标 +1;角标在 s6 删除对应明细时 -1。
- s6 结账成功 → 清空明细与角标,回到 s1。
- 购物车明细 / 线上自有移除沿用线上(bottom-bar 购物车图标展开 sheet)。
4.5 快捷开单明细 qcoItem(s7 数据源)
- s3 点「去收款」时按当前金额生成快捷开单明细(金额 = 原价,不做身份折扣),并进入 s7。
- 明细字段:名称「快捷开单」/ 金额 / 应付 / 员工 / 开单内容 / 权益 / 改价标记。
- 员工 / 开单内容与 s2/s3 共享同一状态;在 s7 修改后同步回 s2/s3。
- 权益:默认不选(「无卡权益」);点击权益行进入选择 sheet,可选用权益类型见 5.5;选择权益后应付按权益规则重算(见 5.5),取消权益恢复原价。
- s7 删除明细 → 返回 s2 并清空;s7 结账成功 → 清空全部并回到 s1。
4.6 添加弹窗字段联动
| 字段 | 输入 | 联动 |
|---|---|---|
| 数量 | 步进 1~999 | 应付 = 单价 × 数量 |
| 应付(元) | 手动可改(带笔形图标) | 判定改价(与单价/权益优惠价 × 数量不等);改价明细在 s6 不可用权益 |
| 权益优惠价 | 会员持有折扣权益时生效 | 卡片原价划线 + 红色优惠价;弹窗「应付」默认 = 优惠价 × 数量(默认优惠价不算改价,权益仍可用) |
4.7 退款勾选(s9)
- 单项勾选 / 取消;全选按钮与列表勾选状态 双向联动(全部勾选时「全选」点亮,取消任一项则熄灭)。
5交互细则 / 异常流
5.1 金额输入规则(快捷开单金额 + 应付/小计统一)
| 规则 | 说明 |
|---|---|
| 整数位 | ≤ 6 位 |
| 小数位 | ≤ 2 位 |
| 上限 | 999999.99 |
| 下限 | 0(不可为负) |
| 小数点 | 最多 1 个;禁止以「.」开头 |
| 前导 0 | 自动剔除(输入 0 后再输数字视为替换,如 05 → 5) |
| 空值 | 不可提交;快捷开单空金额点「去收款」toast「请先输入金额」 |
5.2 应付 / 小计编辑
- 金额右侧有 笔形图标,表示该金额可编辑。
- 对焦即清空原值,随后输入的内容即为当前金额;失焦时若为空则还原原值。
- 金额输入过程规范化:超上限封顶 999999.99,小数第 3 位起截断,负数归零。
- 修改后的应付/小计 与「单价 / 权益优惠价」× 数量不等 即视为 改价;改价明细在 s6/s7 中权益锁定(行文案「改价商品不可用权益」,点击 toast 同文案)。会员权益优惠价作为默认值不判定为改价。
5.3 员工 / 开单内容(选填)
- 员工:非必填;快捷开单与添加弹窗各自维护选择状态,互不影响;s2/s3/s7 共享同一状态。
- 开单内容:非必填;≤ 50 字,实时计数
n/50;空 / 全空格视为未填,未填时 s6/s7 明细显示「未输入」。
5.4 校验失败 / 交互反馈(toast)
| 条件 | 提示 |
|---|---|
| 快捷开单空金额点「去收款」 | 请先输入金额 |
| 快捷开单(空车主按钮) | 进入 s2(无 toast) |
| 挂单(空车 / 快捷开单) | 置灰;toast「请先添加项目或产品」或「快捷开单不可挂单」 |
| 下一步(购物车有项) | 直接进入 s6(无 toast) |
| s3 去收款 | 直接进入 s7(无 toast) |
| 挂单 | 已挂单 |
| 底部「+」按钮 | 请选择项目 |
| 底部「+」按钮(s5 触发) | 选择项目或快捷开单 |
| s6/s7 结账(无明细) | 暂无结算项目 |
| s6/s7 结账成功 | 结账成功 |
| s7 删除快捷开单明细 | 已删除 |
| 改价明细点权益 | 改价商品不可用权益 |
| s8「尾款单」 | 尾款单 |
| s8「筛选」 | 筛选 |
| s9「确认退款」 | 确认退款 |
| s10「高级设置」 | 高级设置 |
| s10「销售业绩」Tab | 销售业绩暂无设计 |
| s11「更多」 | 更多 |
| s11「销售提成」Tab | 销售提成暂无设计 |
5.5 弹层交互
- 遮罩点击关闭;员工选择关闭(点遮罩/完成)保留已选状态,重进不重置。
- 添加弹窗遮罩关闭不写入购物车;「确定」后写入并 toast「已加入 · 应付 ¥x.xx」。
- 权益选择:单选;再次点击已选权益可取消(恢复「无卡权益」)。
- 权益自动匹配(s6):明细在 未改价且未手动清除权益 时,进入 s6 自动匹配——会员匹配其持有的全场最优折扣权益(演示数据为超值折扣卡 8.0 折,与价目划线价同源)、散客匹配首张优惠券;用户手动取消后不再覆盖。
- 快捷开单权益(s7):默认不选权益。点击权益行可选用以下四类权益:
- 会员卡内的储值金额(如九折储值卡:按卡折扣 9 折计价);
- 全场项目可适用的计次或折扣(如水光三次卡计次核销不抵扣金额;超值折扣卡按 8 折计价);
- 全部项目或全部产品可用的优惠券(如新人8折券:满 58 减 10);
- 快捷开单金额符合使用门槛的代金券(如满200减30券:金额 ≥200 才可选,减 30)。
- 金额不满足门槛的代金券在列表中置灰不可选;选择权益后应付 = 原金额按规则折算,取消权益恢复原价;权益选择不算改价(可继续改小计)。
6功能规格
下列字段、按钮、跳转均须与原型一致;视觉以原型为准(品牌色 #F32F41 等)。
6.1 顶部顾客卡片 本期变更
散客卡(深色卡)
- 默认态(未选择顾客):单默认头像 + 文案「散客」;默认头像为 透明底 SVG 圆形剪影(无二次圆角裁切,边缘光滑);点击头像/姓名/「选择顾客」均进入 s4。
- 性别态(从 s4 选男/女散客后):仅显示被选中的那一个性别头像 + 文案「男散客 / 女散客」;点击头像或姓名进入 s4(不在卡片上切换性别)。
- 右侧「选择顾客」按钮 → s4。
- 默认态产生的订单顾客记为「散客」,头像为默认头像。
- s1 / s2 / s3 / s6 / s7 共用同一散客卡状态(默认「散客」)。
会员卡(会员身份)
- 头像 / 姓名 / VIP 标签 / 上次到店 / 「更换顾客」(「办卡」按钮已移除)。
- 权益区保持展开、展示全部持有权益、不可折叠。
- 权益行:标签(计次卡/储值卡/折扣卡)+ 名称 + 值(余N次 / 余额xx元 / x.x折)。
- VIP 标签为原型临时展示资源,开发保持现有 VIP 标签逻辑不变。
6.2 项目 / 产品 Tab 与左侧分类 本期变更
- 项目 Tab 分类:洗吹 / 洗剪吹 / 剪发 / 造型 / 干洗 / 接发 / 烫染发 / 护理 / 其他。
- 产品 Tab 分类:洗护 / 染烫 / 其他。
- 价目表无产品时:不显示「产品」Tab,仅显示「项目」且居中(规则约束;当前原型演示数据含产品,可不切换演示该态)。
- 分类选中态:选中白底,未选灰底;点击后右侧内容平滑滚动到对应分类标题;默认选中首个分类。
- 分类右侧红色数字角标:显示该分类已加购数量(初始隐藏,加购后累加,上限显示 99+)。
6.3 项目 / 产品卡片
- 卡片:缩略图 + 名称 + 价格(¥ 前置)+ 圆形加号。
- 会员身份(且持有全场适用的折扣权益,如超值折扣卡 8.0 折)时:价格区显示 原价(灰色划线)+ 红色优惠价;散客无权益不划线。
- 点加号 → 打开添加 sheet(
addCart/addCartM)。 - 数据为演示数据;开发接入线上价目表实时数据。
6.4 搜索栏(本期已删除)
开单结账页(s1/s5)原有的搜索栏 本期已删除,原型不再展示;搜索能力如线上另有入口,以线上现有版本为准。
6.5 快捷开单入口(原 Tab 上方胶囊已删除) 本期变更
原 s1/s5 Tab 上方「⚡ 快捷开单」胶囊 已删除;空购物车时由底部主按钮「快捷开单」(橙底 #FF8956 + 闪电图标)进入 s2。Tab / 侧栏 / 价目整体上移贴紧顾客卡。
6.6 快捷开单 s2(新功能)本期变更
- 顶部身份卡:散客(默认)或会员(从 s4 选会员进入时)。
- 字段顺序(自上而下):开单内容 → 收款金额 → 员工。
- 开单内容:选填;≤50 字;placeholder「请输入开单内容(50字以内)」。
- 收款金额:数字键盘输入;placeholder「请输入金额」;格式见 5.1;空金额「去收款」拦截。
- 员工:选填;点击 → 内嵌展开选择员工面板;回填格式「姓名·点客·大工」(多人顿号连接);未选显示空(不显示「选填」)。
- 数字键盘:1-9 / 0 / . / ⌫;「去收款」→ s3。
6.7 快捷开单去收款 s3 本期变更
- 结构同 s2(字段顺序同为 开单内容 → 收款金额 → 员工);金额初始取 s2 输入值,键盘可改;员工/开单内容与 s2 共享同一状态。
- 「去收款」→ 进入 s7 快捷开单结算。
6.8 选择顾客 s4 本期变更
- 搜索栏:placeholder「输入顾客姓名/手机号/编号/备注」+「取消」。
- 散客组:新增「男散客」「女散客」两个选项;选择后返回来源页(从 s5 进入则回 s1;s6/s7 进入则更新身份并返回),并更新散客卡性别与身份。
- 会员组:按姓氏分组(A-Z# 索引);行含姓名 / VIP 标签(微调为渐变 ◆VIP) / 手机号 / 最近消费;点选会员 → 会员身份 + 返回来源页(s2/s3 返回原页,s1 进入则跳 s5,s6/s7 进入则更新身份并返回)。
6.9 添加项目 / 产品 sheet 本期变更
- 标题区:项目名 + 价格(红色,两行左对齐);会员持折扣权益时价格显示 划线原价 + 红色优惠价。
- 数量:步进器(默认 1,1~999);步进后应付 = 单价 × 数量。
- 应付(元):数字输入(会员持折扣权益时默认 = 优惠价 × 数量,否则 = 单价 × 数量);右侧 笔形编辑图标;对焦清空、失焦为空还原(见 5.2);金额格式见 5.1。
- 员工行:标签为「服务员工」(项目)/「销售人员」(产品);点击 → 内嵌展开选择员工面板;未选显示「请选择」。
- 确定:写入购物车(应付总额累加、分类角标 +1),toast「已加入 · 应付 ¥x.xx」;关闭弹层。
6.10 选择权益 sheet 本期变更
- 标题「选择权益」;列表:会员卡 / 优惠券(演示数据,如 九折储值卡、水光三次卡、超值折扣卡、新人8折券、满200减30券)。
- 单选;选中带勾选角标;再次点击取消(恢复「无卡权益」)。
- s7 快捷开单场景:列表展示上述全部权益;金额不满足门槛的代金券置灰不可选(如金额 <200 时「满200减30券」置灰)。
- 改价明细不可进入本 sheet(见 5.2)。
6.11 选择员工 本期变更
- 员工网格(演示 14 人,含头像/姓名/职位),可内嵌于添加 sheet / 快捷开单页 / s6 / s7,也可独立面板。
- 两步翻转选择:点卡片 → 卡片翻转显示「点客 / 散客」按钮 → 选择后翻转显示「小工 / 中工 / 大工」按钮 → 完成该员工选择。
- 多选;已选员工卡片带勾选角标;保留已选状态(重进不重置)。
- 已选员工在添加 sheet / 快捷开单页 / s6 / s7 回填。
- 员工详情行:角色 · 姓名 + 「点客 / 散客」切换按钮。
6.12 底部工具栏 本期变更
- bottom-bar:购物车图标 / 金额(仅 ¥数字,无「应付」文案) / 挂单 / 主按钮(s1、s5)。金额贴购物车图标右侧垂直居中。
- 左侧热区:购物车图标 + 角标 +「¥金额」整块可点;空车 toast「请先选择项目」。
- 已选商品 Sheet:从 bottom-bar 后一层升起;标题「已选商品」/ 清空(二次确认)/ 关闭;行含名称、员工摘要、单件价、±数量;与 s6 共用 cartItems;同项应付或员工不同须拆行。
- 主按钮切换:购物车为空 → 「快捷开单」(橙底 #FF8956 + 闪电图标)→ 进入 s2;购物车有项 → 「下一步」(红底)→ 进入 s6。
- 挂单:购物车为空时置灰,点击 toast「请先添加项目或产品」;有货时可挂单(toast「已挂单」)。
- 已删除:Tab 上方「快捷开单」入口行;Tab / 侧栏 / 价目整体上移贴紧顾客卡。
6.13 开单结算 s6 本期变更
交互效果与各类弹窗(员工面板、权益选择 sheet、备注 sheet、小计编辑、toast 等)以当前在线版本为准,原型仅为评审演示;本节约定的业务规则(权益、改价、点客/散客等)为开发约束。
- 顶部:身份卡(散客/会员,随进入时的身份),含「选择顾客 / 更换顾客」→ s4。散客默认态为单头像+「散客」。
- 单号:左侧「单号」;右侧默认灰色「结账后自动生成」;点击右侧进入手动输入(同行变为输入框);未填写则结账后由系统生成。
- 明细卡(一条已加购项目/产品一张):
- 首行:缩略图(无图时以「项」/「产」占位)+ 类型小标签(项目「项」/产品「产」)+ 名称 + 单价(¥;会员持折扣权益的明细单价为划线原价,应付为优惠价)+ 垃圾桶(删除该明细,同步扣减对应分类角标与应付)。
- 选择员工行:展示已选员工(默认自动填充首位员工);点击内嵌展开选择员工面板。
- 员工详情:角色 · 姓名 + 「点客 / 散客」切换。
- 权益行:默认自动匹配权益(未改价时,见 5.5);点击 → 选择权益 sheet;改价项锁定「改价商品不可用权益」。
- 开单内容行:显示已输入内容或「未输入」;点击 → 备注 sheet。
- 小计:可编辑(笔形图标,对焦清空、失焦还原);改价后权益锁定。
- 应付:只读,= 小计。
- 底部 co-bar:应付 ¥{合计} + 挂单(空车置灰 toast「请先添加项目或产品」;有货 toast「已挂单」)+ 结账(无明细 toast「暂无结算项目」;有明细 → 清空购物车/角标 → 回 s1 默认散客卡 → toast「结账成功」)。
6.14 快捷开单结算 s7(新功能)本期变更
交互效果与各类弹窗(员工面板、权益选择 sheet、备注 sheet、小计编辑、toast 等)以当前在线版本为准,原型仅为评审演示;本节约定的业务规则(快捷开单权益四类、改价、点客/散客等)为开发约束。
- 顶部:身份卡(散客/会员),含「选择顾客 / 更换顾客」→ s4;在 s7 换人后金额仍按 原价 计算,不做身份折扣。散客默认态为单头像+「散客」。
- 单号:同 6.13(默认「结账后自动生成」,点击可手动输入)。
- 快捷开单明细卡:
- 首行:闪电缩略图 + 红色闪电小标签 + 名称「快捷开单」+ 金额(¥)+ 垃圾桶(删除 → 回 s2,toast「已删除」)。
- 选择员工行 / 员工详情(同 6.13)。
- 权益行:默认「无卡权益」(快捷开单默认不选权益);点击 → 选择权益 sheet(可选四类权益,见 5.5,门槛不满足置灰);改价后锁定。
- 开单内容行:显示内容或「未输入」;点击 → 备注 sheet。
- 小计:可编辑(笔形图标);权益生效时小计=权益折后价(改小计与权益价一致不算改价);改价后权益锁定。
- 应付:只读,= 小计。
- 底部 co-bar:应付 ¥{合计} + 挂单(始终置灰,点击 toast「快捷开单不可挂单」) + 结账(清空 s2/s3/s7 状态 → 回 s1 默认散客卡 → toast「结账成功」)。
6.15 门店流水 s8(逻辑补充)本期变更
- 入口:原型左侧导航直达(不承载业务链路)。
- 顶部:返回 + 标题「门店流水」+ 「尾款单」(¥ 角标)与「筛选」(图标)按钮(点击 toast 示意)。
- Tab:全部(1) / 项目(1) / 产品(1) / 会员卡 / 作废;带计数角标;点击切换选中态。
- 流水卡:顾客头像 + 姓名 + 状态(已完成)|商品行(闪电缩略图 + 红色闪电标签 + 「快捷开单」+ 金额)|服务人 | 姓名|支付方式(微信图标 + 微信)|扣款(-¥金额)|实付总额:¥金额|开单时间。
6.16 选择退款项目 s9(逻辑补充)本期变更
- 入口:原型左侧导航直达。
- 提示条:全选项目进行退款可以选择原路退回与指定退回,选择部分项目或已有退款项目则只可指定退回。
- 退款项目列表:闪电缩略图 + 红色闪电标签 + 「快捷开单」+ 原价 / 实付 + 勾选圆点(点击勾选/取消)。
- 底部 rf-bar:全选(与列表勾选双向联动)+ 确认退款(toast 示意)。
6.17 业绩设置 s10(逻辑补充)本期变更
- 入口:原型左侧导航直达。
- 顶部:返回 + 标题「业绩设置」+「高级设置」按钮(toast 示意)。
- Tab:劳动业绩(默认)/ 销售业绩(toast「销售业绩暂无设计」)。
- 提示条:注意此处修改业绩,而不是提成!
- 左侧分类:「快捷开单」(置顶选中)+「洗吹」(toast 示意);「快捷开单」为固定分类,对应快捷开单项目的业绩配置。
- 业绩表:点客 / 散客 × 大工 / 中工 / 小工,默认 100.00%。
- 未配置时的默认值:若用户未单独为「快捷开单」配置业绩设置,则沿用当前线上系统的默认业绩规则(本侧不另定数值;原型以 100.00% 示意)。
6.18 提成方案 s11(逻辑补充)本期变更
- 入口:原型左侧导航直达。
- 顶部:返回 + 标题「提成方案」。
- 方案名称卡:方案名称 + 说明「更改多人分配规则请前往业绩设置中的高级设置」+「更多」按钮(toast 示意)。
- Tab:劳动提成(默认)/ 销售提成(toast「销售提成暂无设计」)。
- 左侧分类:「快捷开单」(置顶选中)+「洗吹」(toast 示意);「快捷开单」为固定分类。
- 提成表:点客 / 散客,默认 100.00%。
- 未配置时的默认值:若用户未单独为「快捷开单」配置提成方案,则沿用当前线上系统的默认提成规则(本侧不另定数值;原型以 100.00% 示意)。
7数据模型与接口约定
原则:凡本文未列出的接口、字段均沿用线上现有开单结账实现。
7.1 沿用线上(不新增)
| 数据 | 来源 |
|---|---|
| 顾客列表(会员 + 手机号 + 最近消费) | 线上现有顾客接口 |
| 会员权益(计次/储值/折扣卡) | 线上现有会员卡接口 |
| 价目(项目/产品/分类/价格) | 线上现有价目表接口 |
| 员工 / 工位 / 点客·散客 | 线上现有员工接口 |
| 购物车 / 支付 / 收银流水 | 线上现有开单结算流程 |
7.2 新增 / 调整(【待联调确认】)
| 字段 | 说明 |
|---|---|
散客性别 gender | 顶部卡片 / 快捷开单提交时随单记录 |
| 快捷开单金额 | 直接作为账单金额提交(原价),无需关联项目 |
| 快捷开单员工 | 选填,可多选,含点客/散客/工位语义 |
| 快捷开单开单内容 | 选填,≤50 字 |
| 快捷开单结账单 | 快捷开单结算 s7 生成,含明细/权益/小计/应付,结账后进入收款(线上) |
| 订单流水展示 | s8 中快捷开单以「快捷开单」项展示(闪电标识/原价/支付方式/实付/开单时间) |
| 退款(s9) | 全选项目可原路退回与指定退回;部分选择或已有退款项目只可指定退回 |
| 业绩 / 提成配置(s10/s11) | 「快捷开单」作为固定分类,配置点客/散客 × 工位的业绩比例与提成比例;未单独配置时沿用线上系统默认规则 |
7.3 能力清单(路径【待联调确认】)
| 能力 | 说明 |
|---|---|
| 快捷开单开单 | 金额(原价)+ 选填员工/开单内容 + 散客性别 → 快捷开单结账单 |
| 散客性别选择 | 仅通过顾客列表选择写入;卡片头像点击进 s4 |
| 会员卡权益展开 | 返回全部权益(不再折叠) |
| 权益自动匹配 / 选择 | s6 明细未改价时自动匹配(会员=最优折扣权益)或手动选择;s7 快捷开单默认不选、按四类权益可选;改价项锁定 |
| 应付 / 小计编辑 | 对焦清空、失焦还原、改价标记;改价判定以单价/权益优惠价 × 数量为基准 |
| 员工多选回填 | 「姓名·点客·大工」格式 |
| 会员权益价 | 会员持折扣权益 → 价目卡片划线原价+优惠价,添加 sheet 应付默认=优惠价 |
| 开单结算明细 | 购物车明细在 s6 完整展示、删除、重算 |
| 快捷开单结账 | s7 结账后清空并回到开单页(收款以线上为准) |
| 流水展示 / 退款 / 业绩提成 | s8-s11 页面展示与交互示意,业务链路以线上为准 |
7.4 时序(示意)
收银员选择散客性别/会员 → 顶部卡片刷新(身份 + 权益) 收银员输入快捷开单金额(选填员工/开单内容) → 点「去收款」→ 校验金额非空(否则 toast「请先输入金额」) → s3 快捷开单去收款(键盘可改) → 点「去收款」→ s7 快捷开单结算(金额按原价;改价后权益锁定) → 点「结账」→ 清空 → 回 s1 → toast「结账成功」(收款以线上为准) 收银员添加项目/产品 → 添加 sheet(数量 ↔ 应付联动;内嵌选员工) → 确定 → 应付累加 + 分类角标 +1 → 下一步 → s6 开单结算(明细/权益/小计编辑/挂单/结账) → 结账 → 清空购物车 → 回 s1 → toast「结账成功」 s8-s11(门店流水 / 退款 / 业绩 / 提成):原型左侧导航直达展示
8业务规则
- 身份切换:默认散客(文案「散客」、单默认头像);选会员 → 会员;选男/女散客 → 散客性别态(对应单头像)。s2/s3/s6/s7 顶部卡片随身份切换,后续元素随卡片高度下移。
- 散客默认态:未选择顾客时为单默认头像 +「散客」;订单记为「散客」。从列表选男/女散客后仅显示对应单头像 + 文案;点击头像/姓名进 s4;性别切换仅通过 s4。
- 会员卡权益:保持展开、全部可见、不可折叠;字段显示规则维持现有。
- VIP 标签:原型为临时展示资源;开发保持该位置现有 VIP 标签逻辑不变。
- 金额格式:整数≤6 位、小数≤2 位、上限 999999.99、禁「.」开头、前导 0 剔除、不可为负。
- 快捷开单:空金额不可「去收款」(toast「请先输入金额」);员工/开单内容选填;金额按原价计算,不做身份折扣;不可挂单;与小程序「自助买单」的纯金额支付不是同一种功能,互不相关。
- 挂单限制:购物车未添加任何物品时不可挂单;快捷开单流程(含 s7)不可挂单。按钮置灰,点击 toast 提示原因。
- 单号:s6/s7 左侧「单号」,右侧默认「结账后自动生成」;点击可手动输入;未填写则结账后系统生成。
- 无产品 Tab:价目表未录入产品时,开单页仅显示「项目」且居中。
- 应付/小计编辑:带笔形编辑图标;对焦即清空、失焦为空还原;改价后 s6/s7 该明细权益锁定(toast「改价商品不可用权益」);改价判定以「单价 / 权益优惠价」× 数量为基准。
- 权益自动匹配(s6):明细未改价且未手动清除时,会员自动匹配其持有的全场最优折扣权益(演示为超值折扣卡 8 折,与价目划线价同源)、散客自动匹配首张优惠券;手动取消后不再自动覆盖。
- 数量:步进 1~999。
- 员工选择:两步翻转(点客/散客 → 小工/中工/大工);多选;重进保留已选;回填「姓名·点客·大工」。
- 快捷开单权益(s7):默认不选;可选类型=会员卡储值金额、全场项目适用的计次或折扣、全部项目或全部产品可用的优惠券、满足金额门槛的代金券;门槛不满足的代金券置灰不可选;选权益后应付按规则折算(储值/折扣按比例、满减券减额、计次不抵扣金额),取消恢复原价;权益选择不算改价。
- 会员权益价(划线价):会员持有的折扣权益使价目项目/产品产生划线价(原价灰色划线 + 红色优惠价);添加 sheet「应付」默认 = 优惠价 × 数量(默认优惠价不算改价);散客无权益不划线。
- 散客卡头像 / 文字:点击头像或「散客 / 男散客 / 女散客」文字均进入顾客列表(s4);不再支持卡片上点头像切换性别。
- 经营分析关联:快捷开单不计入「经营分析 → 门店经营报表」的项目 TOP5 排行(经营分析属另一产品线,本侧记录该规则)。
- 开单内容:≤50 字;空/全空格视为未填。
- 购物车:加购后应付累加、分类角标 +1;s6 删除明细同步扣减角标与应付;结账成功清空。
- 下一步:购物车有项 → 进入 s6 开单结算;无项 → toast「请先选择项目」。
- s6/s7 结账:无明细 toast「暂无结算项目」;有明细 → 清空并回 s1,toast「结账成功」。
- s7 删除:删除快捷开单明细 → 回 s2,toast「已删除」。
- 退款(s9):全选项目可原路退回与指定退回;部分选择或已有退款项目只可指定退回。
- 快捷开单业绩/提成默认值:若用户未单独为「快捷开单」进行业绩设置或提成方案配置,则沿用当前线上系统的默认规则赋予默认值(本侧不另定数值)。
- 逻辑补充页面(s8-s11):入口为原型左侧导航;页面交互与 toast 仅为示意,业务链路以线上为准。
- s6/s7 交互与弹窗:开单结算 s6 / 快捷开单结算 s7 的交互效果与各类弹窗(员工面板、权益选择 sheet、备注 sheet、小计编辑、toast 等)以当前在线版本为准,原型仅为评审演示;本 PRD 已明确写出的业务规则仍为开发约束。
- 搜索栏:开单结账页(s1/s5)原有搜索栏本期已删除,原型不再展示;搜索能力如线上另有入口,以线上现有版本为准。
- 范围边界:其余功能(挂单、支付、会员卡业务等)均沿用线上现有逻辑;会员信息卡「办卡」按钮已移除(业务入口以线上为准)。
- 角色权限:店员 / 店长 / 店主,仅列角色,权限沿用线上。
9文案清单与权限
9.1 文案清单(须与原型一致)
导航/按钮:开单结账、项目、产品、快捷开单、选择顾客、更换顾客、挂单、下一步、去收款、完成、确定、取消、男散客、女散客、散客、选择员工、选择权益、开单内容、服务员工、销售人员、请选择、数量、应付(元)、小计、应付、结账、单号、门店流水、尾款单、筛选、全部、会员卡、作废、全选、确认退款、原价、实付、业绩设置、高级设置、劳动业绩、销售业绩、注意此处修改业绩,而不是提成!、方案名称、劳动提成、销售提成、更多、更改多人分配规则请前往业绩设置中的高级设置、服务人、微信、实付总额、开单时间、点客、散客、大工、中工、小工。
占位符:请输入金额、请输入开单内容(50字以内)、请输入单号、输入顾客姓名/手机号/编号/备注。
Toast:请先输入金额、请先选择项目、已挂单、请选择项目、选择项目或快捷开单、暂无结算项目、结账成功、已删除、改价商品不可用权益、已加入 · 应付 ¥{金额}、尾款单、筛选、确认退款、高级设置、销售业绩暂无设计、销售提成暂无设计、更多。
权益行:计次卡 / 储值卡 / 折扣卡 + 名称 + 值(余N次 / 余额xx.xx元 / x.x折);未匹配时「无卡权益」。
提示条:具体金额以结算为准。
分类:项目=洗吹/洗剪吹/剪发/造型/干洗/接发/烫染发/护理/其他;产品=洗护/染烫/其他;业绩/提成=快捷开单(置顶)/洗吹。
演示数据(开发接入真实数据):项目=高级设计师洗吹+造型 ¥58.9、资深设计师|精剪+洗吹造型(不满意免单)¥98、首席设计师洗剪吹一口价 ¥138、资深设计师|人气洗剪造型 ¥216.09;产品=卡诗黑钻钥源洗发水 ¥268、欧莱雅臻萃染发膏 ¥198、资生堂fino发膜 ¥158、施华蔻羊绒脂护发素 ¥88。
员工演示数据(14 人):顾清扬(店主)、林屿森(美容师)、何苏叶(店长)、阿Ken(美容师)、Lisa(美甲师)、张明(美发师)、李华(美发师)、王芳(美甲师)、陈强(美发师)、赵敏(前台)、周杰(美发师)、吴婷(美睫师)、小陈(学徒)、阿宁(学徒)。
权益演示数据:会员卡=九折储值卡(余额2049.00元,储值金额可用)、水光三次卡(余3次,全场项目计次)、超值折扣卡(8.0折,全场项目折扣);优惠券=新人8折券(满58减10,全部项目/产品可用)、满200减30券(满200减30,满足门槛代金券)。
流水演示数据(s8):顾客 陈女士、状态 已完成、快捷开单 ¥491.00、服务人 刘敏、支付 微信、实付总额 ¥491.00、开单时间 2026.08.20 15:55。
9.2 权限
| 角色 | 开单结账 |
|---|---|
| 店员 | 按线上现有权限 |
| 店长 | 按线上现有权限 |
| 店主 | 按线上现有权限 |
本期不新增权限差异;原型按默认角色路径演示。
10验收 P0 + 造数场景
10.1 造数
| 场景 | 说明 |
|---|---|
| 散客 | 男散客 / 女散客 两条散客身份 |
| 会员 | 至少 1 名持多张卡的会员(计次+储值+折扣) |
| 员工 | 覆盖点客/散客与三种工位的员工 |
| 项目/产品 | 至少覆盖 2 个分类 |
| 快捷开单 | 空金额 / 正常金额 两条路径 |
| 权益 | 会员卡 + 优惠券两类权益 |
| 流水 / 退款 / 业绩提成 | s8-s11 演示数据(快捷开单项) |
正式环境自备等价数据;演示数据不进产品。
10.2 Given → When → Then(P0)
顾客卡片 / 顾客列表
- Given 进入 s1 且未选择顾客,When 查看顶部散客卡,Then 显示单默认头像 + 文案「散客」;以此状态结账的订单顾客记为「散客」。
- Given 默认散客卡,When 从 s4 选「女散客」,Then 仅显示女头像 + 文案「女散客」;点击该头像或文字进入 s4。
- Given 散客开单页,When 点击「选择顾客」或姓名「散客」,Then 进入顾客列表,顶部有「男散客」「女散客」选项。
- Given 顾客列表,When 选「女散客」,Then 返回来源页,散客卡更新为女散客。
- Given 顾客列表,When 选会员(如陈女士),Then 顶部切换为会员卡;从 s1 进入时跳 s5。
- Given 会员身份,When 点「更换顾客」选男散客,Then 切回散客卡(从 s5 进入则回 s1)。
- Given 会员列表,When 查看 VIP 标签,Then 微调后的渐变 ◆VIP 样式正确;文案/逻辑以线上现有 VIP 标签为准。
底部主按钮 / 挂单 / 单号
- Given s1/s5 购物车为空,When 查看底部主按钮,Then 显示橙底「快捷开单」(含闪电图标);点击进入 s2。
- Given s1/s5 购物车有项,When 查看底部主按钮,Then 显示红底「下一步」;点击进入 s6。
- Given s1/s5 购物车为空,When 点「挂单」,Then 按钮为置灰态,toast「请先添加项目或产品」。
- Given s7,When 点「挂单」,Then 按钮置灰,toast「快捷开单不可挂单」。
- Given 开单页,When 查看 Tab 上方,Then 无「快捷开单」入口行;Tab/价目上移贴紧顾客卡。
- Given s6/s7,When 查看单号行,Then 左侧「单号」,右侧灰色「结账后自动生成」,不自动填入序号。
- Given 单号行,When 点击右侧文案,Then 同行变为可编辑输入框,可输入自定义单号。
- Given 价目表未录入任何产品(规则约束;原型可不演示),When 进入 s1/s5,Then Tab 仅显示「项目」且居中。
会员卡权益展开
- Given 会员卡,When 查看权益区,Then 全部权益展开显示(计次/储值/折扣),无折叠入口。
- Given 会员卡,When 重复进入,Then 权益始终展开、不可折叠收起。
- Given 会员卡,When 查看字段,Then 显示规则维持现有(余N次 / 余额xx元 / x.x折);无「办卡」按钮(已移除,仅「更换顾客」)。
添加项目/产品 sheet
- Given 项目卡片,When 点圆形加号,Then 打开添加 sheet,标题为项目名 + 红色价格,默认数量 1、应付 = 单价。
- Given 添加 sheet,When 步进数量,Then 应付 = 单价 × 数量。
- Given 添加 sheet,When 对焦应付输入框,Then 原值清空;输入即当前金额;失焦为空时还原原值。
- Given 添加 sheet,When 手动改应付(≠ 单价×数量),Then 判定改价;确定后 s6 该明细权益锁定。
- Given 添加 sheet(项目),When 查看员工行,Then 标签「服务员工」,未选显示「请选择」。
- Given 添加 sheet(产品),When 查看员工行,Then 标签「销售人员」。
- Given 添加 sheet,When 点确定,Then 应付总额累加应付金额、分类角标 +1、toast「已加入 · 应付 ¥x.xx」、弹层关闭。
- Given 添加 sheet,When 点遮罩关闭,Then 不写入购物车。
- Given 会员持折扣权益,When 查看价目卡片 / 打开添加 sheet,Then 卡片显示划线原价(灰色)+ 红色优惠价;添加 sheet「应付」默认 = 优惠价 × 数量;默认优惠价不算改价。
选择员工
- Given 选择员工,When 点员工卡片,Then 卡片翻转显示「点客 / 散客」。
- Given 已选「点客」,When 进入下一步,Then 翻转显示「小工 / 中工 / 大工」。
- Given 员工完成选择,When 查看,Then 卡片带勾选角标;添加 sheet / 快捷开单 / s6 / s7 回填「姓名·点客·大工」。
- Given 员工面板,When 多选多位员工后完成,Then 全部回填,顿号连接。
- Given 员工面板关闭后再次打开,When 查看,Then 已选员工保留勾选状态不重置。
- Given 员工面板,When 未选员工直接完成,Then 允许关闭,回填区显示「请选择」(快捷开单页为空)。
快捷开单
- Given 快捷开单页,When 不输入金额点「去收款」,Then toast「请先输入金额」,不跳转。
- Given 快捷开单页,When 输入金额后点「去收款」,Then 进入去收款页 s3 并显示该金额。
- Given 快捷开单页,When 点「员工」行,Then 内嵌展开选择员工面板,选填。
- Given 快捷开单页,When 输入开单内容,Then 可输入 ≤50 字,超长被截断。
- Given 去收款页,When 修改金额,Then 键盘可改,员工/开单内容与快捷开单页共享同步。
- Given 去收款页 s3,When 点「去收款」,Then 进入 s7 快捷开单结算,显示快捷开单明细。
- Given s7,When 会员身份下查看金额,Then 应付 = 原价(不做身份折扣)。
- Given 快捷开单,When 从 s4 选会员后进入,Then 顶部显示会员卡;选散客后显示散客卡。
- Given s7,When 查看权益行,Then 默认「无卡权益」(默认不选权益);点权益行打开选择权益 sheet,可选四类:会员卡内储值金额、全场项目适用的计次或折扣、全部项目或全部产品可用的优惠券、金额满足使用门槛的代金券;金额不足门槛的代金券置灰不可选;选中后应付按规则折算、取消恢复原价,权益选择不算改价。
开单结算 s6 / 快捷开单结算 s7
本区块仅校验本期已明确的业务规则;交互效果与各类弹窗样式以当前在线版本为准(原型仅为评审演示)。
- Given s1/s5 购物车有项,When 点「下一步」,Then 进入 s6,单号显示「结账后自动生成」,明细卡展示(类型标签/名称/单价/垃圾桶)。
- Given s6 明细未改价,When 查看权益行,Then 自动匹配权益(会员=其持有的全场最优折扣权益,演示为超值折扣卡 8 折,与价目划线价同源;散客=首张优惠券)。
- Given s6/s7 明细,When 编辑小计使金额 ≠ 基准(单价 / 权益优惠价 × 数量),Then 判定改价,权益行变为「改价商品不可用权益」,点击 toast 同文案。
- Given s6/s7 明细未改价,When 点权益行,Then 打开选择权益 sheet,单选;再次点击可取消。
- Given s6,When 点垃圾桶删除明细,Then 该明细移除,应付重算,对应分类角标 -1。
- Given s7,When 点垃圾桶,Then 回 s2,toast「已删除」。
- Given s6/s7,When 点「挂单」,Then toast「已挂单」。
- Given s6/s7 有明细,When 点「结账」,Then 清空购物车/角标、回 s1、toast「结账成功」。
- Given s6/s7 无明细,When 点「结账」,Then toast「暂无结算项目」。
- Given s6 会员折扣明细,When 查看明细,Then 单价位置显示划线原价(灰)+ 红色优惠价,应付 = 优惠价 × 数量;编辑小计改回优惠价不算改价。
门店流水 s8
- Given s8,When 查看 Tab,Then 全部/项目/产品/会员卡/作废 横向排列,带计数角标,点击切换选中态。
- Given s8,When 查看流水卡,Then 快捷开单以闪电缩略图 + 红色闪电标签 +「快捷开单」展示,含金额/服务人/微信/实付总额/开单时间。
选择退款项目 s9
- Given s9,When 点项目勾选,Then 勾选态切换;全部勾选时「全选」点亮。
- Given s9,When 点「全选」,Then 全部项目勾选;再次点击取消全部。
- Given s9,When 取消任一勾选,Then 「全选」熄灭。
- Given s9,When 全选项目,Then 退款可选原路退回与指定退回;部分选择或已有退款项目只可指定退回(提示条文案一致)。
业绩设置 s10 / 提成方案 s11
- Given s10,When 查看,Then 劳动业绩 Tab 默认选中,「快捷开单」分类置顶选中,业绩表 点客/散客 × 大工/中工/小工 = 100.00%。
- Given s10,When 点「销售业绩」,Then toast「销售业绩暂无设计」。
- Given s11,When 查看,Then 劳动提成 Tab 默认选中,「快捷开单」分类置顶选中,提成表 点客/散客 = 100.00%。
- Given s11,When 点「销售提成」,Then toast「销售提成暂无设计」。
- Given 用户未单独为「快捷开单」配置业绩或提成,When 系统结算该笔快捷开单,Then 业绩/提成按当前线上系统默认规则赋予默认值(本侧不另定数值)。
金额格式边界
- Given 金额键盘,When 输入
.5,Then 以「.」开头被拒绝,不进入。 - Given 金额键盘,When 输入
0123,Then 前导 0 剔除,结果为123。 - Given 金额键盘,When 输入
999999.999,Then 小数第 3 位被拒;总值不超过 999999.99。 - Given 金额键盘,When 输入
9999999,Then 超上限被拒。 - Given 金额键盘,When 输入
58.95,Then 合法显示;再输数字被拒(小数已 2 位)。 - Given 添加 sheet 应付/s6 小计,When 输入超过 999999.99 或 2 位以上小数,Then 自动截断/封顶。
下一步 / 底部
- Given 购物车为空,When 点「下一步」,Then toast「请先选择项目」。
- Given 购物车有项,When 点「下一步」,Then 直接进入 s6。
- Given 购物车有项,When 点底部左侧热区,Then 已选商品 Sheet 从 bar 后升起;员工不同或应付不同的同项拆成多行。
- Given 任意页,When 点「挂单」,Then toast「已挂单」(线上按现有逻辑)。
经营分析关联
- Given 经营分析 → 门店经营报表,When 查看项目 TOP5 排行,Then 不显示「快捷开单」(快捷开单不计入 TOP5;经营分析属另一产品线,本侧记录该规则)。
搜索栏 / 范围
- Given 开单结账页 s1/s5,When 查看顶部区域,Then 不包含搜索栏(本期已删除)。
- Given s6/s7 各类弹窗(员工面板/权益选择/备注/小计编辑等),When 对照线上验收,Then 交互效果与弹窗样式以当前在线版本为准,原型细节不作为验收约束。
快捷开单页布局
- Given s2/s3,When 查看字段卡片,Then 自上而下顺序为「开单内容 → 收款金额 → 员工」。
11非功能(极简)
- 画布与动效对齐原型 390 × 844。
- 原型为静态单页,所有状态为内存模拟;刷新重置。
- 埋点:无专表;若现网统一规范另案。
- 员工/价目数据为演示资源;正式接入真实数据源。
- s8-s11 为逻辑补充页面,业务链路(流水详情/退款/业绩提成保存)以线上为准。
- 本期仅单店(与线上一致)。
12交付物
| 交付 | 说明 |
|---|---|
本文 PRD-开单结账.md | 开发与测试准稿 |
交互原型 index.html | 唯一可视依据 |
PRD-开单结账.html | PRD 自包含 HTML 预览版 |
开发与测试只需 PRD + 原型。冲突时以原型界面为准修正 PRD。