Files
Neo 6f8f12314f feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更:
- backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔
- admin-web: ETL 状态页、任务管理、调度配置、登录优化
- miniprogram: 看板页面、聊天集成、UI 组件、导航更新
- etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强
- tenant-admin: 项目初始化
- db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8)
- packages/shared: 枚举和工具函数更新
- tools: 数据库工具、报表生成、健康检查
- docs: PRD/架构/部署/合约文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 00:03:48 +08:00

61 lines
2.7 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.
# P9→NS1/RNS1 缺失项 #8最亲密助教的展示规范
## 简要结论
- 状态:⚠️ 部分解决
- 风险等级:🟠 中
- 最亲密助教卡片已实现emoji + 姓名 + 关系指数 + 统计指标),但缺少 P9 定义的"关系指数可视化"(如仪表盘/环形图)和"课时统计图表"。
## 详细审查
### 审查范围
- `apps/backend/app/schemas/xcx_customers.py``FavoriteCoach` schema
- `apps/backend/app/services/customer_service.py``_build_favorite_coaches()` 实现
- `apps/miniprogram/miniprogram/pages/customer-detail/customer-detail.wxml` — 最亲密助教区域
- `apps/miniprogram/miniprogram/pages/customer-detail/customer-detail.wxss` — 最亲密助教样式
### 发现
1. **后端:数据已完整实现**
- `FavoriteCoach` schema 含:`emoji``name``relation_index``index_color``bg_class``stats`
- `_build_favorite_coaches()` 从关系指数表查询,四级 emoji 映射(💖🧡💛💙)
- 统计指标:基础课时收入、激励课时收入、上课次数、总时长
2. **前端:卡片展示已实现**
- emoji + 姓名 + 关系指数数值(带颜色)
- "近60天"时间范围标签
- 4 个统计指标卡片
- 卡片背景色根据关系等级区分(`fav-card-pink`/`fav-card-amber`
3. **缺失的可视化元素**
- **无关系指数可视化**P9 定义了关系指数的可视化展示(如仪表盘、环形进度条),当前仅展示数值
- **无课时统计图表**P9 定义了课时统计的图表展示(如柱状图/折线图),当前仅展示数值列表
### 证据
前端最亲密助教卡片(纯数值展示,无图表):
```html
<view class="fav-coach-card {{item.bgClass}}" wx:for="{{favoriteCoaches}}" wx:key="index">
<view class="fav-coach-top">
<view class="fav-coach-name">
<text class="fav-emoji">{{item.emoji}}</text>
<text class="fav-name">{{item.name}}</text>
</view>
<view class="fav-index">
<text class="fav-index-label">关系指数</text>
<text class="fav-index-value text-{{item.indexColor}}">{{fmt.safe(item.relationIndex)}}</text>
</view>
</view>
<view class="fav-stats">
<view class="fav-stat" wx:for="{{item.stats}}" wx:for-item="s" wx:key="label">
<text class="fav-stat-label">{{s.label}}</text>
<text class="fav-stat-value">{{s.value}}</text>
</view>
</view>
</view>
```
### 建议(如未完全解决)
1. **关系指数可视化**:可用 CSS 环形进度条或 `wx-canvas` 绘制仪表盘,展示 0-10 刻度上的当前位置
2. **课时统计图表**:如需图表,可引入 `wx-charts` 或用 CSS 柱状图展示近期课时趋势
3. **优先级评估**:当前数值展示已满足基本信息需求,图表可作为后续优化项