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>
This commit is contained in:
Neo
2026-04-20 06:35:42 +08:00
parent 80bda9b991
commit 14a12342b5
96 changed files with 9521 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
# 变更审计记录:助教看板和客户看板懒加载(分页加载)
| 字段 | 值 |
|------|-----|
| 日期 | 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可接受