feat(MarketDataView): K线图优化 - 按需刷新 + 黑金主题
- useMarketData: 新增 refreshTradeData,切换时间范围只刷新K线数据 - chartOptions: 新增黑金主题配置函数 - 优化 useEffect,避免切换周期时全量刷新
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user