diff --git a/src/views/LimitAnalyse/components/DataVisualizationComponents.js b/src/views/LimitAnalyse/components/DataVisualizationComponents.js
index 4549a148..4c02148f 100644
--- a/src/views/LimitAnalyse/components/DataVisualizationComponents.js
+++ b/src/views/LimitAnalyse/components/DataVisualizationComponents.js
@@ -38,6 +38,7 @@ import {
} from '@chakra-ui/react';
import { getFormattedTextProps } from '../../../utils/textUtils';
import { ExternalLinkIcon } from '@chakra-ui/icons';
+import RiskDisclaimer from '../../../components/RiskDisclaimer';
import './WordCloud.css';
import {
BarChart, Bar,
@@ -598,6 +599,9 @@ export const StockDetailModal = ({ isOpen, onClose, selectedStock }) => {
))}
+
+ {/* 风险提示 */}
+
diff --git a/src/views/LimitAnalyse/components/SectorDetails.js b/src/views/LimitAnalyse/components/SectorDetails.js
index e5cadadd..5c1406bf 100644
--- a/src/views/LimitAnalyse/components/SectorDetails.js
+++ b/src/views/LimitAnalyse/components/SectorDetails.js
@@ -29,7 +29,7 @@ import {
import { StarIcon, ViewIcon, TimeIcon, ChevronDownIcon, ChevronUpIcon } from '@chakra-ui/icons';
import { getFormattedTextProps } from '../../../utils/textUtils';
-const SectorDetails = ({ sortedSectors, totalStocks }) => {
+const SectorDetails = ({ sortedSectors, totalStocks, onStockClick }) => {
// 使用 useRef 来维持展开状态,避免重新渲染时重置
const expandedSectorsRef = useRef([]);
const [expandedSectors, setExpandedSectors] = useState([]);
@@ -194,6 +194,8 @@ const SectorDetails = ({ sortedSectors, totalStocks }) => {
bg: 'gray.50'
}}
transition="all 0.2s"
+ cursor="pointer"
+ onClick={() => onStockClick && onStockClick(stock)}
>
diff --git a/src/views/LimitAnalyse/index.js b/src/views/LimitAnalyse/index.js
index 18ca03f1..0be7d766 100755
--- a/src/views/LimitAnalyse/index.js
+++ b/src/views/LimitAnalyse/index.js
@@ -60,6 +60,8 @@ export default function LimitAnalyse() {
const [wordCloudData, setWordCloudData] = useState([]);
const [searchResults, setSearchResults] = useState(null);
const [isSearchOpen, setIsSearchOpen] = useState(false);
+ const [selectedStock, setSelectedStock] = useState(null);
+ const [isStockDetailOpen, setIsStockDetailOpen] = useState(false);
const toast = useToast();
@@ -243,6 +245,20 @@ export default function LimitAnalyse() {
}
};
+ // 处理股票点击
+ const handleStockClick = (stock) => {
+ setSelectedStock(stock);
+ setIsStockDetailOpen(true);
+ // 🎯 追踪股票详情查看
+ trackStockDetailViewed(stock.scode, stock.sname, 'sector_details');
+ };
+
+ // 关闭股票详情弹窗
+ const handleCloseStockDetail = () => {
+ setIsStockDetailOpen(false);
+ setSelectedStock(null);
+ };
+
// 处理板块数据排序
const getSortedSectorData = () => {
if (!dailyData?.sector_data) return [];
@@ -470,6 +486,7 @@ export default function LimitAnalyse() {
)}
@@ -496,6 +513,13 @@ export default function LimitAnalyse() {
onStockClick={() => {}}
/>
+ {/* 股票详情弹窗 */}
+
+
{/* 浮动按钮 */}