petstore-docs/P0-研发落地清单.md
2026-04-19 14:26:25 +08:00

7.5 KiB
Raw Blame History

宠小它 — P0 研发落地清单

用途:发给研发拆任务与验收;仅含 P0(本期质量与主线闭环必需,不含 P1/P2 增强)。
依据:《产品全方位优化说明 v1》《本期主线》《宠主端预约体验优化》《产品设计文档》及当前仓库实现粗对齐。
更新2026-04-19

关联 产品全方位优化说明-v1 · 本期主线-下一步产品优化点 · 宠主端预约体验优化-产品说明


优先级说明

  • P0:本迭代必须交付;阻塞对外口碑、数据脏读、合规提示缺失、或主线(传播/成片/留资)不可用。
  • 已部分实现的项:仍保留,以下方「验收标准」为准做 gap 关闭。

A. 后端Spring Boot

ID 需求 验收标准 备注
A1 预约状态机校验PUT /appointment/status(及任意改状态入口)禁止非法迁移 仅允许:new→doingnew→canceldoing→done(若报告提交会改 done 则接口侧与之一致)、doing→cancel(若产品允许,需与前端一致;若产品规定仅 new 可取消doing→cancel 返回 CANCEL_NOT_ALLOWED 当前 AppointmentService.updateStatus / startService 偏「直接赋值」,需按《产品设计文档》矩阵校验;非法迁移返回 4xx + 明确业务码(如 INVALID_STATUS
A2 开始服务仅当 status=new startServicenew 时拒绝,勿静默改库 与「谁点谁服务」一致
A3 取消预约(若独立接口)校验:仅允许目标状态为 cancel 且前置状态符合产品规则 与 A1 同一套状态机;前端取消按钮仅 new 时展示则后端仍要防篡改 防恶意请求
A4 (可选 P0若本期上留资留资去重:同一 report_token + 同一手机号 二次提交返回成功态或「已提交」语义,不重复插库 口径见《本期主线》C

B. 小程序 — 门店端(老板/员工)

ID 需求 验收标准 备注
B1 「已完成」Tab 列表默认不含已取消 Tab「已完成」下默认仅展示 status===donecancel 通过 次级筛选(如「包含已取消」开关)或 单独子 Tab「已取消」 二选一实现 当前 Home.vuecurrentStatus==='done' 时含 cancel,需改
B2 发送报告成功页:同屏 报告链接 + 二维码 + 两条可复制话术 话术支持变量:{宠物名}{服务类型}{门店名}{链接};一键复制单条话术;二维码与链接不拆多页 对齐《本期主线》A「员工动作成本」
B3 报告提交锁死提示 填写报告页底部或提交前弹窗固定文案:「提交后不可修改,请确认照片与备注无误」(与产品 v1 锁死策略一致) 若已有则核对文案
B4 「我的」老板端分组标题 至少两组:店铺与经营 / 团队与账号(或等价命名),高频在上;使用现有 .module-title 降低入口迷失见《产品全方位优化说明》§2.2

C. 小程序 — 宠主端customer

ID 需求 验收标准 备注
C1 单一主预约路径 首屏仅保留 一个主级「预约服务」入口;不再同屏强并存「大按钮 + 空态大按钮 + FAB +」等效重复(保留 FAB 则须显著弱于主按钮或仅老用户) 见《宠主端预约体验优化》§9需对照当前 Home.vue 是否仍重复
C2 扫码 / 分享落地 storeId CustAppointmentCreate 支持 onLoadstoreId(已有则做 全入口 回归:普通二维码、小程序码 scene、分享 path/query 预填门店且可「更换门店」
C3 登录时机与草稿 业务规则二选一落地并写 README(1) 未登录可填单,提交时再登录,返回后 草稿恢复(2) 进入预约页即要求登录。推荐 (1) uni.storage 或状态恢复;避免白填
C4 异常可理解 无可用时段、网络失败、未登录:均有 toast / 空态 / 重试,禁止静默失败 专文 §7

D. H5 报告页(report-view / 独立 H5

ID 需求 验收标准 备注
D1 隐私提示(短期策略) 首屏或固定条:「本页含宠物服务影像,请勿公开转发或发群」(文案可微调,须合规友好) 对齐《本期主线》A token 风险
D2 短片三态与文案对齐小程序 processing / failed / successReportHighlightBlock 一致;失败展示 归类中文,不暴露堆栈;成功展示可变时长说明 H5 与小程序报告页行为一致
D3 弱网 / 失败重试 报告主接口失败:按钮「重新加载」;超时阈值产品建议 810s 后出失败态 与《产品全方位优化说明》§3.3

E. 传播与埋点P0 最小集)

ID 需求 验收标准 备注
E1 分享卡片元信息规则 小程序 onShareAppMessage:标题 宠物名 + 服务 + 门店;封面优先级 成片封面 > 服务后首图 > Logo(与 reportShare.js 逻辑对齐) frontend/src/utils/reportShare.js
E2 埋点:报告打开 至少上报:report_token 或匿名 hash、首次/再次(可用本地 storage 记首次)、时间戳;落地页 H5 亦要能报(像素/接口二选一,研发定方案) 不要求看板,要求 可统计《本期主线》

F. 视觉与规范(工程债)

ID 需求 验收标准 备注
F1 禁止业务页硬编码主色 主色/品牌浅底统一 var(--c-brand)var(--c-brand-light) 等;全局 grep #16a34a#2db96d(除 global.css / 极少量渐变定义)业务 vue 内为 0 《前端 UI 规范》已对齐 --c-*
F2 空态禁用 emoji 作主视觉(若违反现有 UI 禁止项) 宠主空态等用 AppIcon 或插图占位,不用 📋 等作为主视觉 Home.vue 空态 slot

G. 文案与对外承诺(配置级)

ID 需求 验收标准 备注
G1 无容量模型不写「排队」 全局检索「排队」「不排队」;宠主副标题等改为不承诺排队能力的表述(如「在线选时段」) 与《产品全方位优化说明》D2 一致
G2 对内录单表述(可选) 门店端新建预约入口文案是否改为「代客预约」由产品拍板;若改则全局统一 降低「预约」歧义

建议排期顺序(供研发参考)

  1. A1A3(后端状态机)— 防脏数据,优先合。
  2. B1(已完成 Tab— 前端小改、用户感知强。
  3. B2、D1、D2、E1(传播与报告体验)— 主线门面。
  4. C1C4(宠主)— 与登录/路由并行可排。
  5. E2、F1、F2、G1 — 可并行或插空。

不在 P0勿与本清单混排

  • 会员卡 / 储值 / 次卡
  • 报告 token 作废重发(中期,见 D3 决策)
  • 多技师分成、排班深度联动
  • 复杂数据看板、漏斗大屏
  • 分包优化(可 P1

评审后可将本页 ID 勾进看板;与专文冲突以迭代评审为准。