# historyRecord.ts **路径**:`src/api/historyRecord.ts` ## 功能用途 历史记录接口,用于 Wallet 页「History」Tab。**Wallet 使用 GET /hr/getHistoryRecordListClient**(需鉴权、按当前用户分页);另提供 GET /hr/getHistoryRecordPublic(不需要鉴权)备用。 ## 核心能力 - `getHistoryRecordListClient`:客户端分页获取历史记录(需鉴权,传 userId、page、pageSize) - `getHistoryRecordPublic`:分页获取历史记录(无需鉴权) - `getHistoryRecordList`:从响应 data 中解析 list 并映射为 `HistoryDisplayItem[]`,同时返回 total - `mapHistoryRecordToDisplayItem`:单条 `HistoryRecordItem` → 钱包展示项(与 Wallet.vue HistoryItem 一致) ## GET /hr/getHistoryRecordListClient(Wallet 使用) 需鉴权:x-token、x-user-id。 ### 请求参数(Query) | 参数 | 类型 | 说明 | |------|------|------| | page | number | 页码 | | pageSize | number | 每页条数 | | userId | number | 用户 ID | | keyword | string | 关键字 | | slug | string | 标识 | | title | string | 标题 | | name | string | 名称 | | bio | string | 简介 | | createdAtRange | string[] | 创建时间范围 | ### 响应 `{ code, data, msg }`,`data` 为 `PageResult`(list、page、pageSize、total)。 ## GET /hr/getHistoryRecordPublic ### 请求参数(Query,可选) | 参数 | 类型 | 说明 | |------|------|------| | page | number | 页码 | | pageSize | number | 每页条数 | | keyword | string | 关键字 | | slug | string | 标识 | | title | string | 标题 | | name | string | 名称 | | bio | string | 简介 | | createdAtRange | string[] | 创建时间范围 | ### 响应 `{ code, data, msg }`。`data` 可能为 `PageResult`(list、page、pageSize、total)或 `HistoryRecordItem[]`。 ### HistoryRecordItem(与 doc.json polymarket.HistoryRecord 对齐) | 字段 | 类型 | 说明 | |------|------|------| | ID | number | 主键 | | title | string | 标题(如「充值资金」) | | type | string | 类型(如 recharge) | | **usdcSize** | number | **金额(USDC)**,用于充值等 | | **icon** | string | **图标路径**(如 uploads/file/btc.png),会转为完整 URL 展示 | | **UpdatedAt** | string | **更新时间**,用于 timeAgo 展示 | | price | number | 价格 | | size | number | 大小 | | outcome | string | 结果 | | timestamp | number | 时间戳(秒或毫秒) | | 其他 | - | asset, bio, conditionId, slug, transactionHash 等 | ## 使用方式 ```typescript import { getHistoryRecordPublic, getHistoryRecordList } from '@/api/historyRecord' const res = await getHistoryRecordPublic({ page: 1, pageSize: 10 }) const { list, total } = getHistoryRecordList(res.data) // list 为 HistoryDisplayItem[],可直接用于 Wallet 历史列表 ``` ## 扩展方式 - 若后端固定返回分页结构,可收紧 `HistoryRecordPublicResponse['data']` 类型为 `PageResult` - 展示字段(market、activity、value、timeAgo 等)可在 `mapHistoryRecordToDisplayItem` 中按实际接口字段再调整