feat(frontend): 自选分时请求带 prefer_local, 策略页行为不变

- klineMinuteBatch 加 preferLocal 参数, 响应类型补 full_minute_local
- 仅 Watchlist 分时轮询传 true (全量分钟健康时股票不走批量补拉);
  Screener 不传, 严格限定本轮只辐射自选场景
This commit is contained in:
shy3130
2026-08-31 17:10:09 +08:00
parent df5cae143e
commit bfcad563d3
2 changed files with 6 additions and 4 deletions
+3 -3
View File
@@ -2052,10 +2052,10 @@ export const api = {
method: 'POST', method: 'POST',
body: JSON.stringify({ symbols, days }), body: JSON.stringify({ symbols, days }),
}), }),
klineMinuteBatch: (symbols: string[], date?: string) => klineMinuteBatch: (symbols: string[], date?: string, preferLocal?: boolean) =>
request<{ data: Record<string, MinuteKlineRow[]> }>('/api/kline/minute-batch', { request<{ data: Record<string, MinuteKlineRow[]>; full_minute_local?: boolean }>('/api/kline/minute-batch', {
method: 'POST', method: 'POST',
body: JSON.stringify({ symbols, date }), body: JSON.stringify({ symbols, date, ...(preferLocal ? { prefer_local: true } : {}) }),
}), }),
instrumentSearch: (q: string, limit = 20, assetTypes?: string) => instrumentSearch: (q: string, limit = 20, assetTypes?: string) =>
request<{ results: { symbol: string; name: string; code: string; asset_type?: string }[] }>( request<{ results: { symbol: string; name: string; code: string; asset_type?: string }[] }>(
+3 -1
View File
@@ -880,7 +880,9 @@ export function Watchlist() {
const intradayRefreshInterval = prefsData?.minute_intraday_refresh_interval ?? 6 const intradayRefreshInterval = prefsData?.minute_intraday_refresh_interval ?? 6
const minuteBatch = useQuery({ const minuteBatch = useQuery({
queryKey: QK.minuteBatch(minuteSymbolsKey), queryKey: QK.minuteBatch(minuteSymbolsKey),
queryFn: () => api.klineMinuteBatch(minuteSymbols), // prefer_local: 全量分钟服务健康时股票缺口不再批量补拉 (本地分区由服务持续写入),
// 大自选(数百上千只)不再持续打批量分钟接口
queryFn: () => api.klineMinuteBatch(minuteSymbols, undefined, true),
enabled: intradayVisible && minuteSymbols.length > 0 && !groupCardsOpen, enabled: intradayVisible && minuteSymbols.length > 0 && !groupCardsOpen,
staleTime: 10_000, staleTime: 10_000,
refetchInterval: (intradayRefreshEnabled && realtimeRunning) ? intradayRefreshInterval * 1000 : false, refetchInterval: (intradayRefreshEnabled && realtimeRunning) ? intradayRefreshInterval * 1000 : false,