Files
Neo-ZQYY/docs/prd/Neo_Specs/review-audit/P8-NS1-04.md
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

3.4 KiB
Raw Blame History

P8→NS1/RNS1 缺失项 #4助教看板的"距升档"进度条

简要结论

  • 状态:⚠️ 部分解决
  • 风险等级:🔴
  • 后端仅返回 perfGap 文本字段(如"距升档 13.8h"),无进度百分比数据;perf-progress-bar 组件已开发但未在看板页面中使用,看板仅以文字形式展示距升档信息。

详细审查

审查范围

  • apps/backend/app/schemas/xcx_board.pyCoachBoardItem schema
  • apps/backend/app/services/board_service.pyget_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~5ticks(刻度数组)
    • 支持高光动画和火花动画
    • 已在 task-listcoach-detail 页面中使用
  3. 看板页面未引用进度条组件

    • board-coach.jsonusingComponents 中无 perf-progress-bar
    • board-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
  }
}

建议

  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 的使用方式