feat(MarketDataView): K线图优化 - 按需刷新 + 黑金主题

- useMarketData: 新增 refreshTradeData,切换时间范围只刷新K线数据
 - chartOptions: 新增黑金主题配置函数
 - 优化 useEffect,避免切换周期时全量刷新
This commit is contained in:
zdl
2025-12-16 16:12:39 +08:00
parent 00f2937a34
commit 67340e9b82
3 changed files with 44 additions and 21 deletions

View File

@@ -13,7 +13,6 @@ import {
useDisclosure,
} from '@chakra-ui/react';
import {
ChevronUp,
Unlock,
ArrowUp,
Star,
@@ -97,9 +96,8 @@ const MarketDataView: React.FC<MarketDataViewProps> = ({ stockCode: propStockCod
[analysisMap, theme, onOpen]
);
// Tab 配置 - 使用通用 SubTabContainer
// Tab 配置 - 使用通用 SubTabContainer(不含交易数据,交易数据单独显示在上方)
const tabConfigs: SubTabConfig[] = [
{ key: 'trade', name: '交易数据', icon: ChevronUp, component: TradeDataPanel },
{ key: 'funding', name: '融资融券', icon: Unlock, component: FundingPanel },
{ key: 'bigDeal', name: '大宗交易', icon: ArrowUp, component: BigDealPanel },
{ key: 'unusual', name: '龙虎榜', icon: Star, component: UnusualPanel },
@@ -142,11 +140,26 @@ const MarketDataView: React.FC<MarketDataViewProps> = ({ stockCode: propStockCod
return (
<Box bg={'#1A202C'} minH="100vh" color={theme.textPrimary}>
<Container maxW="container.xl" py={6}>
<VStack align="stretch">
<VStack align="stretch" spacing={6}>
{/* 股票概览 */}
{summary && <StockSummaryCard summary={summary} theme={theme} />}
{/* 主要内容区域 */}
{/* 交易数据 - 日K/分钟K线独立显示在 Tab 上方) */}
{!loading && (
<TradeDataPanel
theme={theme}
tradeData={tradeData}
minuteData={minuteData}
minuteLoading={minuteLoading}
analysisMap={analysisMap}
onLoadMinuteData={loadMinuteData}
onChartClick={handleChartClick}
selectedPeriod={selectedPeriod}
onPeriodChange={setSelectedPeriod}
/>
)}
{/* 主要内容区域 - Tab */}
{loading ? (
<ThemedCard theme={theme}>
<CardBody>