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,35 @@
# 审计记录:审核弹窗头像展示 + 排版优化
- 日期2026-03-24
- Prompt租户管理后台审核弹窗展示申请人微信昵称、头像排版优化
- 直接原因:审核弹窗信息区纯文本平铺,无头像展示,排版拥挤
## 改动方案
1. 后端 `list_applications` SQL 新增 `u.avatar_url` 字段查询
2. 后端 `ApplicationListItem` Schema 新增 `avatar_url` 可选字段
3. 前端 `ApplicationItem` 接口新增 `avatarUrl` 字段
4. 前端 `ReviewModal` 信息区从纯文本 `<Space>` 改为 `Avatar` + `Descriptions` 卡片布局
5. 头像通过 `/api/xcx/avatar/{userId}` 获取(与小程序共用同一后端)
6. 无头像时显示灰色 `UserOutlined` 图标
## 文件清单
| 文件 | 变更 |
|------|------|
| `apps/backend/app/schemas/tenant_users.py` | `ApplicationListItem` 新增 `avatar_url` 字段 |
| `apps/backend/app/routers/tenant_users.py` | `list_applications` SQL 新增 `u.avatar_url`,构造新增 `avatar_url=r[9]` |
| `apps/tenant-admin/src/pages/UserApproval/index.tsx` | `ApplicationItem` 新增 `avatarUrl``ReviewModal` 信息区改为 Avatar+Descriptions 布局;新增 `Avatar, Descriptions, UserOutlined` 导入 |
## 风险评估
- 低风险:纯展示层改动,不影响审核逻辑
- `avatar_url` 为可选字段(`str | None`),无头像时 fallback 为灰色图标
## 回滚
- 后端:移除 `avatar_url` 字段和 SQL 列,不影响审核功能
- 前端git revert 恢复原布局
## 验证
- 租户管理后台打开审核弹窗,确认头像 + 信息卡片布局正确
- 有头像的用户显示真实头像,无头像的显示灰色图标
- 信息项(昵称、手机号、球房编号、申请角色、员工编号)分行展示