2.5 KiB
2.5 KiB
position.ts
路径:src/api/position.ts
功能用途
持仓相关 API:分页获取持仓列表,以及将 ClobPositionItem 映射为钱包展示项。PageResult 来自 @/api/types,使用 buildQuery 构建请求参数。接口定义以 Swagger doc.json 为准。
核心能力
getPositionList:分页获取持仓列表(需鉴权 x-token、x-user-id);返回项含market(内嵌市场 question、outcomes、outcomePrices、closed)mapPositionToDisplayItem:将接口项转为展示结构;market优先用market.question,否则用 marketID;avgNow有market.outcomePrices时展示「AVG → NOW」格式;iconChar/iconClass/imageUrl用于展示图标(market.image 优先);marketClosed 取自market.closed,用于钱包侧判断可结算/可领取
GET /clob/position/getPositionList
请求参数(Query)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | number | 否 | 页码 |
| pageSize | number | 否 | 每页数量 |
| startCreatedAt | string | 否 | 开始时间 |
| endCreatedAt | string | 否 | 结束时间 |
| marketID | string | 否 | 市场ID |
| tokenID | string | 否 | Token ID |
| userID | number | 否 | 用户ID |
响应
{ code, data, msg },data 为 PageResult<ClobPositionItem>。
ClobPositionItem(实际返回结构)
| 字段 | 类型 | 说明 |
|---|---|---|
| ID | number | 主键 |
| userID | number | 用户ID |
| marketID | number | string | 市场ID |
| tokenId | string | Token ID |
| size | string | 份额(6 位小数) |
| available | string | 可用份额 |
| lock | string | 锁单数量 |
| cost | string | 成本 |
| outcome | string | 方向 |
| version | number | 版本号 |
| market | ClobPositionMarket | 内嵌市场详情(question、outcomes、outcomePrices、closed 等) |
| createdAt | string | 创建时间 |
| updatedAt | string | 更新时间 |
ClobPositionMarket(market 字段)
| 字段 | 类型 | 说明 |
|---|---|---|
| ID | number | 市场ID |
| question | string | 市场问题 |
| slug | string | 市场 slug |
| image | string | 市场图片 URL |
| icon | string | 市场图标 URL |
| outcomes | string[] | 选项(如 ["Up", "Down"]) |
| outcomePrices | string[] | number[] | 各选项当前价格 |
| clobTokenIds | string[] | CLOB Token ID 列表 |
| closed | boolean | 市场是否已关闭,true 表示可结算/可领取 |
使用方式
import { getPositionList, mapPositionToDisplayItem } from '@/api/position'