2026-02-14 18:59:36 +08:00

1.7 KiB
Raw Blame History

event.ts

路径src/api/event.ts

功能用途

Event预测市场事件相关接口与类型定义对接 XTrader API 的 /PmEvent/* 接口。提供事件列表、详情查询,以及将接口数据映射为首页卡片所需结构的工具函数。

核心能力

  • getPmEventPublic:分页获取公开事件列表(无需鉴权)
  • findPmEvent:按 id/slug 查询事件详情(需鉴权)
  • mapEventItemToCard:将 PmEventListItem 转为 EventCardItem(供 MarketCard 使用)
  • 内存缓存:getEventListCachesetEventListCacheclearEventListCache,用于列表切换页面时复用

类型说明

类型 说明
PmEventListItem 接口返回的事件项
PmEventMarketItem 市场项,含 outcomes、outcomePrices、clobTokenIds
EventCardItem 首页卡片所需结构,含 displayTypesingle/multi
EventCardOutcome 多选项卡片中单个选项
PageResult<T> 分页结果

使用方式

import {
  getPmEventPublic,
  findPmEvent,
  mapEventItemToCard,
  clearEventListCache,
} from '@/api/event'

// 获取列表
const res = await getPmEventPublic({ page: 1, pageSize: 10, tagSlug: 'crypto' })
const cards = res.data.list.map(mapEventItemToCard)

// 获取详情(需鉴权)
const detail = await findPmEvent({ id: 123 }, { headers: authHeaders })

// 下拉刷新时清空缓存
clearEventListCache()

扩展方式

  1. 新增筛选参数:在 GetPmEventListParams 中增加字段,并在 getPmEventPublic 的 query 中传入
  2. 缓存策略:可改为 sessionStorage 或带 TTL 的缓存
  3. 多选项展示mapEventItemToCard 已支持 multi 类型,可扩展 EventCardOutcome 字段