export enum MetricId { RISE = 'rise', FALL = 'fall', RISE_SPEED = 'riseSpeed', FALL_SPEED = 'fallSpeed', TURN_OVER = 'turnOver', INCRE_POSIT = 'increPosit', } export enum PeriodId { ONE_MIN = '1min', FIVE_MIN = '5min', TEN_MIN = '10min', FIFTEEN_MIN = '15min', } export enum SortOrder { ASC = '0', DESC = '1', } // ============ 视图数据类型(合并接口 + 行情后,供 View 消费) ============ // 保留原始字段,不在数据层预先格式化/预先判断涨跌色;HTTP 占位行允许行情字段暂缺。 export interface RankItem { code: string; market: string; name: string; price?: number; // 涨跌幅(%数值,如 3.21 表示 +3.21%)。行情推送里固定字段,任何 Tab 下都存在, // 用于「最新价」列的取色,也是 涨幅/跌幅 Tab 第三列的数据来源。 price_chg?: number; // 涨速/跌速(%数值)。仅 riseSpeed/fallSpeed Tab 下有值。 chg_speed?: number; // 成交额(原始数值,未换算单位)。仅 turnOver Tab 下有值。 turnover?: number; // 日增仓(原始数值,未换算单位)。仅 increPosit Tab 下有值。 incre_posit?: number; } // 当前市场排名卡片的完整展示数据;网络/行情更新后整体替换以触发 UI 刷新。 export interface CardData { tableList: RankItem[]; } export interface TabMetric { id: MetricId; label: ResourceStr; api: string; // HTTP 接口 quote_type 参数用 hqId: number; // 行情订阅 sortid 用 sortOrder: string; // 行情排序方向 '0' 升序 '1' 降序 hasChildren: boolean; // Vue 用 children 数组本身判断,这里简化为布尔标记 } export interface PeriodRange { id: PeriodId; label: ResourceStr; api: string; hqId: number; } // ============ 后端接口原始响应类型(recommend_futures) ============ // 对应 docs/cards/interfaces.md「一、HTTP 接口 - 1. 市场排名列表」 export interface RecommendFuturesItem { contract_code: string; contract_name: string; market: string; } export interface RecommendFuturesResponse { code: number; data: RecommendFuturesItem[]; }