Files
Neo-ZQYY/docs/audit/changes/2026-03-29__board-lazy-loading-pagination.md
Neo 14a12342b5 chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。

按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。

涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
   召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
   DDL 基线合并 / Kiro 到 Claude Code 迁移

阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 06:35:42 +08:00

6.4 KiB
Raw Blame History

变更审计记录:助教看板和客户看板懒加载(分页加载)

字段
日期 2026-03-29 05:49:50
Prompt-ID P20260329-054800

操作摘要

为助教看板BOARD-1和客户看板BOARD-2添加懒加载分页加载功能。后端 get_coach_board 新增 page/page_size 参数和内存分页逻辑,CoachBoardResponse 新增 total/page/page_size 字段。前端两个看板页面新增分页状态管理(currentPage/pageSize/totalCount/hasMore/isLoadingMore)、onReachBottom 触底加载、筛选变更时重置分页,以及加载更多/已加载全部的 UI 提示。

改动注解

apps/backend/app/schemas/xcx_board.py

  • 变更类型:修改
  • 原始原因:后端需要返回分页元数据,前端才能判断是否还有更多数据
  • 思路分析:在 CoachBoardResponse 中新增 totalpagepage_size 三个字段,与客户看板 CustomerBoardResponse 保持一致的分页响应结构。同时本次 diff 包含了之前的 AreaFilterEnum 重建7→9 项、OverviewPanel 现金流字段 Optional 化、RevenuePanel/CashflowPanel 环比字段扩展等财务看板改动
  • 修改结果:助教看板响应现在携带分页信息,前端可据此判断 hasMore 状态

apps/backend/app/routers/xcx_board.py

  • 变更类型:修改
  • 原始原因:路由层需要接收前端传入的分页参数
  • 思路分析:get_coach_board 路由新增 page(默认 1≥1page_size(默认 201~100两个 Query 参数,透传给 service 层。同时添加了 @trace_service 装饰器用于链路追踪
  • 修改结果:助教看板 API 支持 ?page=1&page_size=20 分页查询

apps/backend/app/services/board_service.py

  • 变更类型:修改
  • 原始原因service 层需要实现分页逻辑,将全量数据切片返回
  • 思路分析:采用内存分页策略——先查询全部助教数据并排序,再根据 page/page_size 切片。这种方式适合助教数量不大(通常 <100的场景避免了 SQL 层分页的复杂性。同时本次 diff 包含大量其他改动:环比同期对比重构、档位距升档计算、项目标签映射、客户看板批量查询优化、财务看板区域日粒度重构等
  • 修改结果:get_coach_board 返回 {items, total, page, page_size, dim_type}items 为当前页数据

apps/miniprogram/miniprogram/services/api.ts

  • 变更类型:修改
  • 原始原因API 层需要支持分页参数传递,并返回完整响应(含 total而非仅 items
  • 思路分析:fetchBoardCoaches 新增 page/pageSize 参数,返回类型从 CoachCard[] 改为 { items, total, page, pageSize }(返回完整 data 而非 data.items)。fetchBoardCustomers 同样改为返回完整响应。这样前端页面可以从响应中获取 total 来计算 hasMore
  • 修改结果:两个看板 API 函数现在返回分页元数据,前端可实现无限滚动

apps/miniprogram/miniprogram/pages/board-coach/board-coach.ts

  • 变更类型:修改
  • 原始原因:助教看板页面需要实现触底加载更多的交互
  • 思路分析:新增分页状态字段(currentPage/pageSize/totalCount/hasMore/isLoadingMore)。loadData 改为 async 函数,首页显示 loading后续页显示底部加载指示器。新增 onReachBottom 生命周期函数实现触底加载。筛选变更sort/skill/time时重置分页状态并重新加载。同时将 Mock 数据替换为真实 API 调用
  • 修改结果:助教看板支持下拉刷新 + 触底加载更多,每页 20 条

apps/miniprogram/miniprogram/pages/board-coach/board-coach.wxml

  • 变更类型:修改
  • 原始原因:需要在列表底部显示加载状态提示
  • 思路分析:在列表末尾新增两个条件渲染块:isLoadingMore 时显示 loading 动画 + "加载中..."!hasMore && coaches.length > 0 时显示"已加载全部"。同时引入 WXS 格式化工具 fmt,将硬编码值替换为 fmt.safe() 调用
  • 修改结果:用户滚动到底部时有明确的加载反馈

apps/miniprogram/miniprogram/pages/board-coach/board-coach.wxss

  • 变更类型:修改
  • 原始原因:新增的加载更多 UI 需要样式支持
  • 思路分析:新增 .load-more 容器flex 居中、padding 36rpx.load-more-text24rpx 灰色)、.load-more-text--end(更浅灰色表示已加载全部)
  • 修改结果:加载更多区域视觉效果与整体页面风格一致

apps/miniprogram/miniprogram/pages/board-customer/board-customer.ts

  • 变更类型:修改
  • 原始原因:客户看板同样需要懒加载功能,移除硬编码的 pageSize:100
  • 思路分析与助教看板相同的分页模式——新增分页状态、async loadData、onReachBottom、筛选重置分页。将 Mock 数据替换为真实 API 调用新增头像颜色计算和项目标签映射。PROJECT_OPTIONS 的 value 从小写改为大写(与后端枚举一致)
  • 修改结果:客户看板支持触底加载更多,默认每页 20 条,不再硬编码 100 条限制

apps/miniprogram/miniprogram/pages/board-customer/board-customer.wxml

  • 变更类型:修改
  • 原始原因:移除"前100名"硬编码文案,新增加载更多 UI
  • 思路分析:删除列表头部的"· 前100名"文案totalCount 改用 fmt.safe() 格式化。列表末尾新增与助教看板相同的加载更多/已加载全部提示。同时新增客户项目标签skill-tag渲染
  • 修改结果:客户列表不再暗示 100 条限制,底部有加载状态反馈

apps/miniprogram/miniprogram/pages/board-customer/board-customer.wxss

  • 变更类型:修改
  • 原始原因:新增加载更多样式和项目标签样式
  • 思路分析:新增 .load-more 系列样式(与助教看板一致)。新增 .skill-tag 及 4 种项目颜色类chinese/snooker/mahjong/karaoke样式与助教看板 skill-tag 保持一致。调整 .card-grid--4 列宽比例为 1fr 0.6fr 0.5fr 0.6fr
  • 修改结果:加载更多和项目标签的视觉效果统一

风险评估

  • 影响范围:助教看板和客户看板的前后端全链路
  • 风险等级:中(接口契约变更,但向后兼容——新增字段不影响旧客户端)
  • 注意事项:助教看板采用内存分页(先全量查询再切片),当助教数量较大时可能有性能问题,但当前业务场景下助教数量通常 <100可接受