# 审计记录：审核弹窗头像展示 + 排版优化

- 日期：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 恢复原布局

## 验证
- 租户管理后台打开审核弹窗，确认头像 + 信息卡片布局正确
- 有头像的用户显示真实头像，无头像的显示灰色图标
- 信息项（昵称、手机号、球房编号、申请角色、员工编号）分行展示
