包含多个会话的累积代码变更: - 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>
3.4 KiB
3.4 KiB
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(进度条组件)
发现
-
后端 Schema 无进度百分比字段
CoachBoardItem中与升档相关的字段:perf_hours: float— 当前定档业绩小时数perf_gap: str | None— 文本描述(如"距升档 13.8h")perf_reached: bool— 是否已达标
- 缺少:
perf_pct(进度百分比)、perf_target(目标小时数)、perf_tier(当前档位)等可视化所需字段
-
perf-progress-bar 组件已开发,功能完整
- 组件支持:
filledPct(填充百分比)、clampedSparkPct(火星位置)、currentTier(当前档位 0~5)、ticks(刻度数组) - 支持高光动画和火花动画
- 已在
task-list和coach-detail页面中使用
- 组件支持:
-
看板页面未引用进度条组件
board-coach.json的usingComponents中无perf-progress-barboard-coach.wxml中升档信息仅以文字展示:- 未达标:
<text class="bottom-right bottom-right--warning">{{item.perfGap}}</text> - 已达标:
<text class="bottom-right bottom-right--success">✅ 已达标</text>
- 未达标:
证据
# 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 等
<!-- 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>
// 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
}
}
建议
- 后端:在
CoachBoardItem中增加进度可视化字段:perf_pct: float— 当前业绩占目标的百分比(0~100)perf_target: float— 当前档位目标小时数current_tier: int— 当前档位(0~5)ticks: list[dict]— 档位刻度数组(复用perf-progress-bar组件的 ticks 格式)
- 前端:在
board-coach.json中引入perf-progress-bar组件,在卡片的 perf 维度区域渲染进度条 - 可参考
coach-detail页面中perf-progress-bar的使用方式