feat(media): 为媒体素材库添加分页加载功能

- 新增 PaginatedResult 泛型类型统一分页返回数据结构
- 重构后端媒体素材列表接口,支持分页参数并返回完整分页信息
- 前端媒体素材页面添加分页控件,适配分页加载逻辑
- 上传素材后自动重置页码至第一页并重新加载列表
- 更新接口文档和用户文档,补充分页API使用规范
- 新增对应测试用例覆盖分页接口与前端调用逻辑
This commit is contained in:
duanshuwen
2026-08-27 15:45:46 +08:00
parent 68d2b88c04
commit c381eb8b38
9 changed files with 132 additions and 14 deletions

View File

@@ -75,9 +75,11 @@
| `PATCH` | `/api/admin/home/wild-archives/reorder` | 排序首页极境视界 |
| `GET` | `/api/admin/leads` | 线索列表 |
| `PATCH` | `/api/admin/leads/{id}/status` | 更新线索状态 |
| `GET` | `/api/admin/media-assets` | 素材列表 |
| `GET` | `/api/admin/media-assets` | 分页查询素材列表 |
| `POST` | `/api/admin/media-assets/upload` | 上传图片 |
`GET /api/admin/media-assets?pageNum=1&pageSize=20` 按创建时间倒序分页返回素材,`pageSize` 最大为 `200`,响应为 `data: { items, total, pageNum, pageSize }`。管理端翻页时必须重新请求接口,不在前端截取固定数量的素材。
媒体上传成功响应中的 `data.url` 是可直接用于图片回显的 HTTP(S) URL。OSS 私有读场景下,该 URL 会包含短时 GET 签名;管理端应直接使用返回值,后续 Admin/Public API 响应会重新生成签名。该接口只写入素材库,不会自动绑定首页配置;绑定首页轮播或用车卡片后,仍需提交对应的站点配置保存接口。
## 站点模块

View File

@@ -84,6 +84,7 @@ yarn dev:mp-weixin
- 管理端界面图标统一由 `@element-plus/icons-vue` 提供;菜单返回的图标名经 `LayoutIcon` 白名单映射,未知值显示默认图标。顾问服务详情中的 `icon` 字段仍按业务内容数据处理。
- 变更角色、菜单或用户关联后,权限缓存失效时要重新登录或重新加载菜单,确认侧栏、路由和按钮权限同步变化。
- 站点模块、玩法、详情、管家、线索和媒体接口按当前契约返回。
- “媒体素材”页面通过 `GET /api/admin/media-assets?pageNum=1&pageSize=20` 分页加载,翻页和切换每页条数都应重新请求后端,确认列表总数与服务端一致。
- 新增、更新、删除和排序成功后,页面使用接口返回的数据更新状态,不自行生成 ID 或排序结果。
MiniAPP 重点检查: