81 lines
4.4 KiB
Markdown
81 lines
4.4 KiB
Markdown
# 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 为分割点)
|