diff --git a/src/api/baidu/mapQuote.ts b/src/api/baidu/mapQuote.ts index 3a22e0b..1e5339d 100644 --- a/src/api/baidu/mapQuote.ts +++ b/src/api/baidu/mapQuote.ts @@ -1,7 +1,12 @@ import type { IntradayPoint, QuoteData, TradeTick } from '../../types' -import { contractConfig } from '../../config/contract' import type { BaiduQuotationResult } from './types' +export type QuoteFallback = { + name: string + code: string + exchange: string +} + function toNum(value: string | number | undefined | null, fallback = 0): number { if (value == null || value === '' || value === '--') return fallback if (typeof value === 'number') return Number.isFinite(value) ? value : fallback @@ -75,7 +80,10 @@ function parseTrades(result: BaiduQuotationResult): TradeTick[] { })) } -export function mapBaiduQuotationToQuote(result: BaiduQuotationResult): QuoteData { +export function mapBaiduQuotationToQuote( + result: BaiduQuotationResult, + fallback: QuoteFallback, +): QuoteData { const op = result.pankouinfos?.origin_pankou const cur = result.cur const basic = result.basicinfos @@ -121,9 +129,9 @@ export function mapBaiduQuotationToQuote(result: BaiduQuotationResult): QuoteDat ) return { - name: basic?.name || contractConfig.name, - code: basic?.code || contractConfig.code, - exchange: basic?.exchange || contractConfig.exchange, + name: basic?.name || fallback.name, + code: basic?.code || fallback.code, + exchange: basic?.exchange || fallback.exchange, status: update?.stockStatus || '未知', last: toNum(cur?.price ?? op?.currentPrice), change: toNum(cur?.increase), diff --git a/src/api/baidu/ws.ts b/src/api/baidu/ws.ts index 74ceeb0..8e98b71 100644 --- a/src/api/baidu/ws.ts +++ b/src/api/baidu/ws.ts @@ -1,4 +1,4 @@ -import { contractConfig } from '../../config/contract' +import { useContractStore } from '../../stores/contract' import type { BaiduWsItem, BaiduWsMessage, BaiduWsOutbound } from './wsTypes' const PING_MS = 6_000 @@ -26,9 +26,10 @@ export type BaiduQuoteWsHandlers = { } function buildItem(): BaiduWsItem { + const c = useContractStore().current return { - code: contractConfig.code, - name: contractConfig.name, + code: c.code, + name: c.name, market: 'ab', financeType: 'futures', } diff --git a/src/components/header/AppHeader.vue b/src/components/header/AppHeader.vue index fb2dd72..0ba91ba 100644 --- a/src/components/header/AppHeader.vue +++ b/src/components/header/AppHeader.vue @@ -19,18 +19,39 @@ 更新 {{ quote.updatedAt }}