feat: add preset avatar picker

This commit is contained in:
Codex
2026-06-30 17:53:53 +08:00
parent c7ad3450fd
commit 727e65b554
14 changed files with 215 additions and 15 deletions

View File

@@ -1129,6 +1129,8 @@ GET /api/tenant-content/assets/security-scan-events?assetId=<assetId>&limit=100
学生端不支持用户上传头像。系统只提供男女两种默认头像预设,避免头像上传带来的存储、内容安全、隐私和审核复杂度。前端不要展示文件选择器,不要调用对象存储上传链路,也不要把微信/QQ 返回的头像 URL 写入学生资料。后端登录链路和 PocketBase 导入脚本会丢弃第三方头像字段;租户后台学生创建、更新、批量导入和批量分班也会拒绝 `avatarUrl/avatar_url/avatar/headimgurl/figureurl` 等字段,学生展示头像必须来自 `avatarPreset`
当前 Taro 学生个人中心已在 `apps/taro/src/pages/student/profile/index.tsx` 接入男女预设头像二选一 UI保存时只调用 `PATCH /api/profile/me``avatarPreset` 字段。Taro 构建会把 `apps/taro/src/assets/avatars` 复制到 H5 产物的 `assets/avatars`,与后端返回的默认路径保持一致。
当前 Taro service 使用:
```text
@@ -1159,7 +1161,7 @@ updateProfile({ avatarPreset: 'male' | 'female' })
- `PATCH /api/profile/me``avatarUrl` 会返回 `PROFILE_AVATAR_URL_DIRECT_UPDATE_REJECTED`,前端不应提供该输入。
- `avatarPreset` 只能是 `male``female`;其它值会返回 `INVALID_AVATAR_PRESET`
- `PUT /api/tenant-admin/students``POST /api/tenant-admin/students/bulk-upsert``POST /api/tenant-admin/classes/members/bulk-assign` 针对学生数据传头像字段会返回或逐行记录 `STUDENT_AVATAR_URL_UNSUPPORTED`;传 `primaryRole/primary_role` 会返回或逐行记录 `STUDENT_PRIMARY_ROLE_UNSUPPORTED`
- 默认头像资源由前端静态资产或 CDN 提供,路径保持 `/assets/avatars/default-male.svg``/assets/avatars/default-female.svg`
- 默认头像资源由前端静态资产或 CDN 提供,路径保持 `/assets/avatars/default-male.svg``/assets/avatars/default-female.svg`;当前仓库内置资源位于 `apps/taro/src/assets/avatars`
签到入口调用: