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

79 lines
6.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.
# 变更审计记录:助教看板和客户看板懒加载(分页加载)
| 字段 | 值 |
|------|-----|
| 日期 | 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` 中新增 `total``page``page_size` 三个字段,与客户看板 `CustomerBoardResponse` 保持一致的分页响应结构。同时本次 diff 包含了之前的 AreaFilterEnum 重建7→9 项、OverviewPanel 现金流字段 Optional 化、RevenuePanel/CashflowPanel 环比字段扩展等财务看板改动
- 修改结果:助教看板响应现在携带分页信息,前端可据此判断 hasMore 状态
### `apps/backend/app/routers/xcx_board.py`
- 变更类型:修改
- 原始原因:路由层需要接收前端传入的分页参数
- 思路分析:`get_coach_board` 路由新增 `page`(默认 1≥1`page_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-text`24rpx 灰色)、`.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可接受