这些审计记录原本堆积在 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>
36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
# 审计记录:审核弹窗头像展示 + 排版优化
|
||
|
||
- 日期: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 恢复原布局
|
||
|
||
## 验证
|
||
- 租户管理后台打开审核弹窗,确认头像 + 信息卡片布局正确
|
||
- 有头像的用户显示真实头像,无头像的显示灰色图标
|
||
- 信息项(昵称、手机号、球房编号、申请角色、员工编号)分行展示
|