Files
Neo-ZQYY/docs/prd/specs/P7-miniapp-fe-performance.md

81 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P7小程序前端 — 绩效模块 — miniapp-fe-performance
> 优先级P7依赖 P2 + P3
> 预估工作量:中等
---
## 需求Requirements
### 用户故事
1. 作为助教,我在绩效页面能看到当月收入、业绩档位、工资预估。
2. 作为助教,我能看到本月/上月的服务记录明细,按天归总。(营业日以 08:00 为分割点,如"本月"= 当月1日 08:00 ~ 次月1日 08:00
3. 作为助教,我能看到"我的新客"(首次服务且 2 月内服务 ≤2 次的客户)和"我的常客"2 月内服务次数最多的客户)。
4. 作为助教,我在业绩明细页能看到每条服务的详情,包括定档折算惩罚展示。
### 验收标准
- AC1收入与业绩档位数据从 `dws_assistant_salary_calc` 正确读取
- AC2服务记录按天归总展示支持本月/上月切换(营业日以 08:00 为分割点)
- AC3"我的新客"筛选逻辑正确(该助教首次服务 + 2 月内 + 服务次数 ≤2
- AC4"我的常客"按服务次数降序,展示次数、小时数、工资合计
- AC5业绩明细每条展示结账时间、课程类型、台桌/房间、会员昵称、开始/结束时间、业绩分钟
- AC6有定档折算惩罚时展示"120分钟定档折算30分钟"格式
- AC7当月数据显示"预估"标记
---
## 页面清单
### performance我的绩效
- 收入与业绩档位卡片
- 服务记录明细(按天归总,本月/上月切换;营业日以 08:00 为分割点)
- 我的新客列表(按最后服务时间排列)
- 我的常客列表(按服务次数降序)
- 服务明细:按天/月归总整合数据
### performance-records业绩明细
- 口径选择(本月/上月/本周/上周等;营业日以 08:00 为分割点,如"本月"= 当月1日 08:00 ~ 次月1日 08:00
- 业绩列表(每条含:结账时间、课程类型、台桌/房间、会员昵称、开始/结束时间、业绩分钟+折算展示)
- 按天/月归总整合
---
## 后端 API 需求
| API | 说明 | 数据源 |
|-----|------|--------|
| `GET /api/performance/summary` | 当月绩效汇总 | `fdw_etl.dws_assistant_salary_calc` |
| `GET /api/performance/service-records` | 服务记录明细(分页) | `fdw_etl.dwd_assistant_service_log` |
| `GET /api/performance/my-new-customers` | 我的新客列表 | `fdw_etl.dws_assistant_customer_stats` |
| `GET /api/performance/my-regulars` | 我的常客列表 | `fdw_etl.dws_assistant_customer_stats` |
| `GET /api/performance/records` | 业绩明细(按口径) | `fdw_etl.dwd_assistant_service_log` + `fdw_etl.dws_assistant_daily_detail` |
---
## 小程序前端开发强制规范
> 以下规范适用于本 SPEC 中所有小程序页面实现,具有强制约束力。
1. **原型图是唯一视觉真相**`docs/h5_ui/pages/*.html` 中的结构、层次、元素、配色、间距、交互行为是小程序页面实现的唯一参考标准。任何偏离原型图的实现都需要明确的产品确认。
2. **WXML ≠ HTML**:严禁在小程序中使用 HTML 标签div/span/p/a/img 等必须使用小程序原生标签view/text/image/navigator 等)。
3. **WXSS ≠ CSS**:使用 rpx 单位、仅支持有限选择器、无 DOM/BOM API、样式隔离机制不同。Tailwind CSS 类名必须手动转换为 WXSS。
4. **TDesign 优先**:凡 TDesign 组件库能覆盖的 UI 元素,必须使用 TDesign 组件;自定义实现仅限 TDesign 无法覆盖的场景。
5. **Power 文档优先**:实现前必须加载 `wechat-miniprogram` Power 的相关 steering 文件(`view-layer.md``tdesign.md``builtin-components.md`),确保语法和组件用法正确。
6. **项目踩坑指南必读**:实现前必须阅读 `docs/prd/MIGRATION-PLAYBOOK.md` 第六章,该文档是基于本项目实际转换经验的避坑手册,涵盖 WXML/WXSS 差异、事件系统、TDesign 用法、rpx 换算规则及新页面开发 Checklist。
---
## 任务清单
- [ ] T1实现绩效汇总 API含定档、工资、档位
- [ ] T2实现服务记录明细 API按天归总 + 分页)
- [ ] T3实现我的新客/常客 API
- [ ] T4实现业绩明细 API含定档折算惩罚字段
- [ ] T5实现 performance 小程序页面
- [ ] T6实现 performance-records 小程序页面
- [ ] T7实现"预估"标记组件(当月/本周数据自动标记;营业日以 08:00 为分割点)