# P7→NS1/RNS1 缺失项 #7：服务记录按天归总的展示格式

## 简要结论
- 状态：⚠️ 部分解决
- 风险等级：🟠 中
- 后端 DateGroup 结构完整，日期标签格式为 `M月D日`（如"3月15日"），但缺少星期信息（P7 定义的"3月15日 周五"格式）；前端直接透传后端 `date` 字段（`YYYY-MM-DD` 格式），未做二次格式化。

## 详细审查

### 审查范围
- `apps/backend/app/schemas/xcx_performance.py` — DateGroup / DateGroupRecord 模型
- `apps/backend/app/services/performance_service.py` — `group_records_by_date()`、`_format_date_label()`
- `apps/miniprogram/miniprogram/pages/performance-records/performance-records.wxml` — 日期标签渲染
- `apps/miniprogram/miniprogram/pages/performance/performance.wxml` — 日期标签渲染
- `docs/miniprogram-dev/design-system/DATETIME-DISPLAY-STANDARD.md` — 日期展示规范

### 发现

1. **后端 DateGroup 结构已定义且完整**：`DateGroup` 包含 `date`、`total_hours`、`total_income`、`records` 四个字段，`DateGroupRecord` 包含客户名、时间范围、课时、课程类型、地点、收入等完整字段。

2. **后端 `_format_date_label()` 格式为 `M月D日`**：该函数输出如 `3月15日`，但不包含星期信息。然而实际上 `group_records_by_date()` 中 `date` 字段使用的是 `YYYY-MM-DD` 格式的 `date_key`，并未调用 `_format_date_label()`。

3. **`_format_date_label()` 未被 `group_records_by_date()` 使用**：`group_records_by_date()` 直接将 `date_key`（`YYYY-MM-DD`）赋值给 `date` 字段，`_format_date_label()` 函数虽然存在但未在 DateGroup 构建中被调用。

4. **前端直接渲染后端返回的 `date` 字段**：WXML 中 `{{item.date}}` 直接展示，未做格式化。因此用户看到的是 `2026-03-15` 而非 `3月15日 周五`。

5. **设计规范文档 DATETIME-DISPLAY-STANDARD.md 定义的是相对时间规范**（刚刚/N分钟前/N天前/日期），不涉及"M月D日 周X"这种绝对日期+星期的格式。

### 证据

后端 `group_records_by_date()` 中日期赋值（performance_service.py:130）：
```python
result.append({
    "date": date_key,  # date_key = settle_time.strftime("%Y-%m-%d")
    "total_hours": f"{total_hours:g}",
    "total_income": f"{total_income:.2f}",
    "records": recs,
})
```

后端 `_format_date_label()` 存在但未被 DateGroup 使用（performance_service.py:188）：
```python
def _format_date_label(dt) -> str:
    """格式化日期为 "M月D日" 格式。"""
    if hasattr(dt, "strftime"):
        return f"{dt.month}月{dt.day}日"
```

前端直接渲染（performance-records.wxml）：
```xml
<text decode class="dd-date">{{item.date}}&nbsp;&nbsp;—</text>
```

### 建议

1. **后端**：在 `group_records_by_date()` 中将 `date` 字段改为调用 `_format_date_label()` 并追加星期信息，格式为 `M月D日 周X`（如"3月15日 周五"）。或新增 `date_label` 字段保留格式化后的展示文本，`date` 保留 `YYYY-MM-DD` 用于排序。
2. **前端**：如果后端不改，前端可在 WXS 中增加日期格式化函数，将 `YYYY-MM-DD` 转为 `M月D日 周X`。
3. **设计规范**：在 DATETIME-DISPLAY-STANDARD.md 中补充"按天归总场景"的日期标签格式规范（`M月D日 周X`）。
