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

81 lines
3.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.
# P8→NS1/RNS1 缺失项 #4助教看板的"距升档"进度条
## 简要结论
- 状态:⚠️ 部分解决
- 风险等级:🔴 高
- 后端仅返回 `perfGap` 文本字段(如"距升档 13.8h"),无进度百分比数据;`perf-progress-bar` 组件已开发但未在看板页面中使用,看板仅以文字形式展示距升档信息。
## 详细审查
### 审查范围
- `apps/backend/app/schemas/xcx_board.py`CoachBoardItem schema
- `apps/backend/app/services/board_service.py`get_coach_board 服务)
- `apps/miniprogram/miniprogram/pages/board-coach/board-coach.wxml`(看板模板)
- `apps/miniprogram/miniprogram/pages/board-coach/board-coach.ts`(看板逻辑)
- `apps/miniprogram/miniprogram/pages/board-coach/board-coach.json`(组件引用)
- `apps/miniprogram/miniprogram/components/perf-progress-bar/perf-progress-bar.ts`(进度条组件)
### 发现
1. **后端 Schema 无进度百分比字段**
- `CoachBoardItem` 中与升档相关的字段:
- `perf_hours: float` — 当前定档业绩小时数
- `perf_gap: str | None` — 文本描述(如"距升档 13.8h"
- `perf_reached: bool` — 是否已达标
- 缺少:`perf_pct`(进度百分比)、`perf_target`(目标小时数)、`perf_tier`(当前档位)等可视化所需字段
2. **perf-progress-bar 组件已开发,功能完整**
- 组件支持:`filledPct`(填充百分比)、`clampedSparkPct`(火星位置)、`currentTier`(当前档位 0~5`ticks`(刻度数组)
- 支持高光动画和火花动画
- 已在 `task-list``coach-detail` 页面中使用
3. **看板页面未引用进度条组件**
- `board-coach.json``usingComponents` 中无 `perf-progress-bar`
- `board-coach.wxml` 中升档信息仅以文字展示:
- 未达标:`<text class="bottom-right bottom-right--warning">{{item.perfGap}}</text>`
- 已达标:`<text class="bottom-right bottom-right--success">✅ 已达标</text>`
### 证据
```python
# CoachBoardItem — 仅有文本字段,无百分比
class CoachBoardItem(CamelModel):
perf_hours: float = 0.0
perf_hours_before: float | None = None
perf_gap: str | None = None # "距升档 13.8h" 或 None
perf_reached: bool = False
# 缺少: perf_pct, perf_target, current_tier, ticks 等
```
```html
<!-- board-coach.wxml — 仅文字展示,无进度条 -->
<text class="bottom-right bottom-right--warning"
wx:if="{{dimType === 'perf' && !item.perfReached}}">
{{item.perfGap}}
</text>
<text class="bottom-right bottom-right--success"
wx:elif="{{dimType === 'perf' && item.perfReached}}">
✅ 已达标
</text>
```
```json
// board-coach.json — 未引用 perf-progress-bar
{
"usingComponents": {
"coach-level-tag": "/components/coach-level-tag/coach-level-tag",
"filter-dropdown": "/components/filter-dropdown/filter-dropdown",
// ... 无 perf-progress-bar
}
}
```
### 建议
1. **后端**:在 `CoachBoardItem` 中增加进度可视化字段:
- `perf_pct: float` — 当前业绩占目标的百分比0~100
- `perf_target: float` — 当前档位目标小时数
- `current_tier: int` — 当前档位0~5
- `ticks: list[dict]` — 档位刻度数组(复用 `perf-progress-bar` 组件的 ticks 格式)
2. **前端**:在 `board-coach.json` 中引入 `perf-progress-bar` 组件,在卡片的 perf 维度区域渲染进度条
3. 可参考 `coach-detail` 页面中 `perf-progress-bar` 的使用方式