diff --git a/frontend/src/components/StockDailyKChart.tsx b/frontend/src/components/StockDailyKChart.tsx index f456131..142a1a5 100644 --- a/frontend/src/components/StockDailyKChart.tsx +++ b/frontend/src/components/StockDailyKChart.tsx @@ -131,7 +131,6 @@ export function StockDailyKChart({ const dateRange = externalDateRange ?? getDefaultRange() // 查询配置统一来自 klineDailyQueryOptions, 与 StockPanel 信息条/邻近预取共享同一 cache key (只发一次请求) - // 上游新增的 refetchIntervalMs(个股对话框盘中实时刷新今日蜡烛) 补挂在工厂配置之上 const kline = useQuery({ ...klineDailyQueryOptions(symbol, dateRange, extColumns), enabled: !!symbol, refetchInterval: refetchIntervalMs }) const rows = useMemo(() => toOHLC(kline.data?.rows ?? []), [kline.data?.rows]) diff --git a/frontend/src/components/StockPanel.tsx b/frontend/src/components/StockPanel.tsx index 4e2e586..160b1e1 100644 --- a/frontend/src/components/StockPanel.tsx +++ b/frontend/src/components/StockPanel.tsx @@ -135,7 +135,8 @@ export function StockPanel({ } // 分时 tab 的多日分时 + 最新分时: 切股后分时图也免 loading (与日K并行预取) qc.prefetchQuery({ ...klineMinuteRangeQueryOptions(s, intradayDays), staleTime: 30_000 }) - qc.prefetchQuery({ ...klineMinuteQueryOptions(s), staleTime: 30_000 }) + // latest 当日分时同样 live=true: 预取与渲染同读实时源 (历史日期后端忽略 live) + qc.prefetchQuery({ ...klineMinuteQueryOptions(s, undefined, true), staleTime: 30_000 }) // 日K用 fetchQuery (返回数据) 以便级联预取分时; 邻股预取失败静默, 不影响切股。 void qc.fetchQuery({ ...klineDailyQueryOptions(s, dateRange, extColumns), staleTime: 30_000 }) .then((res) => { @@ -144,7 +145,7 @@ export function StockPanel({ const lastDate = res?.rows?.at(-1)?.date if (lastDate) { const d = String(lastDate).slice(0, 10) - // live=true: 若 d 为当日, 预取即命中实时源, 与实际渲染的 queryKey 同源 (历史日期后端忽略 live) + // 同上 live=true: 该日若为当日即命中实时源 (历史日期后端忽略 live) qc.prefetchQuery({ ...klineMinuteQueryOptions(s, d, true), staleTime: 30_000 }) } }) diff --git a/frontend/src/components/StockPreviewDialog.tsx b/frontend/src/components/StockPreviewDialog.tsx index bb48255..527d8ed 100644 --- a/frontend/src/components/StockPreviewDialog.tsx +++ b/frontend/src/components/StockPreviewDialog.tsx @@ -86,7 +86,6 @@ function loadIntradayDays(): number { ? saved : DEFAULT_INTRADAY_DAYS } -} function boardTag(symbol: string): { label: string; color: string } | null { if (/^(300|301)/.test(symbol)) return { label: '创', color: 'text-[#f97316] bg-[#f97316]/12 border-[#f97316]/25' } @@ -614,7 +613,7 @@ export function StockPreviewDialog({ symbol, name, onClose, triggerInfo, navList onPriceDoubleClick={openPriceAlert} refetchIntervalMs={intradayRefetchMs} prefetchSymbols={prefetchSymbols} - intradayDays={intradayDays} + intradayDays={effectiveIntradayDays} dailyKlineFlex="flex-[1.4]" /> ) : ( @@ -624,7 +623,7 @@ export function StockPreviewDialog({ symbol, name, onClose, triggerInfo, navList dateRange={dateRange} infoBarOnly prefetchSymbols={prefetchSymbols} - intradayDays={intradayDays} + intradayDays={effectiveIntradayDays} />