refactor(hq): 抽离卡片行情订阅客户端

This commit is contained in:
clz
2026-07-24 13:58:22 +08:00
parent 63fcb9cbaa
commit 66151d78a0
11 changed files with 469 additions and 365 deletions
@@ -21,29 +21,32 @@ export interface CardData {
tableList: RankItem[];
}
// 4106 行情推送的原始分列数据。Vue 中实际为“字段 ID -> 数组”的字典,
// ArkTS 使用显式属性描述同一结构,数组中相同下标代表同一份合约行情。
// 字段 IDcode=4、market=36103、name=55、price=10、price_chg=34818、
// pre_price=6、open_price=7、pre_settle_price=66、turnover=19、incre_posit=34355、
// chg_speed_1min=34874、chg_speed_5min=34325、chg_speed_10min=34875、chg_speed_15min=34876。
export interface MarketRankingQuoteData {
code: string[];
market: string[];
name: string[];
price: number[];
price_chg: number[];
pre_price: number[];
open_price: number[];
pre_settle_price: number[];
turnover: number[];
incre_posit: number[];
chg_speed_1min: number[];
chg_speed_5min: number[];
chg_speed_10min: number[];
chg_speed_15min: number[];
export type MarketRankingHqValue = string | number;
// 对齐真实鸿蒙行情返回行:通过行情字段 ID 获取当前合约的值。
export class MarketRankingTableRow {
private values: Map<number, MarketRankingHqValue> =
new Map<number, MarketRankingHqValue>();
set(fieldId: number, value: MarketRankingHqValue): void {
this.values.set(fieldId, value);
}
get(fieldId: number): MarketRankingHqValue | undefined {
return this.values.get(fieldId);
}
}
export interface MarketRankingQuoteRequestParams {
// 对齐真实鸿蒙行情 TableData:每个 tableRows 元素代表一份合约行情。
export class MarketRankingTableData {
tableRows: MarketRankingTableRow[] = [];
addRow(row: MarketRankingTableRow): void {
this.tableRows.push(row);
}
}
export interface MarketRankingHqRequestParams {
protocolId: string;
pageId: string;
onlineId: string;
@@ -54,21 +57,16 @@ export interface MarketRankingQuoteRequestParams {
export interface TabMetric {
id: string;
label: ResourceStr;
stat: string; // 埋点
api: string; // HTTP 接口 quote_type 参数
hqId: string; // 行情订阅 sortid 用
hqName: string; // 推送字段映射用
index: number;
api: string; // HTTP 接口 quote_type 参数
hqId: number; // 行情订阅 sortid
hasChildren: boolean; // Vue 用 children 数组本身判断,这里简化为布尔标记
}
export interface PeriodRange {
id: string;
label: ResourceStr;
stat: string;
api: string;
hqId: string;
index: number;
hqId: number;
}
// ============ 后端接口原始响应类型(recommend_futures ============