diff --git a/web/src/App.tsx b/web/src/App.tsx index 740d1c1c..3a7df202 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -98,6 +98,7 @@ function App() { const [currentPage, setCurrentPage] = useState(getInitialPage()) const [selectedTraderId, setSelectedTraderId] = useState() const [lastUpdate, setLastUpdate] = useState('--:--:--') + const [decisionsLimit, setDecisionsLimit] = useState(5) // 监听URL变化,同步页面状态 useEffect(() => { @@ -209,9 +210,9 @@ function App() { const { data: decisions } = useSWR( currentPage === 'trader' && selectedTraderId - ? `decisions/latest-${selectedTraderId}` + ? `decisions/latest-${selectedTraderId}-${decisionsLimit}` : null, - () => api.getLatestDecisions(selectedTraderId), + () => api.getLatestDecisions(selectedTraderId, decisionsLimit), { refreshInterval: 30000, // 30秒刷新(决策更新频率较低) revalidateOnFocus: false, @@ -477,6 +478,8 @@ function App() { account={account} positions={positions} decisions={decisions} + decisionsLimit={decisionsLimit} + onDecisionsLimitChange={setDecisionsLimit} stats={stats} lastUpdate={lastUpdate} language={language} @@ -601,6 +604,8 @@ function TraderDetailsPage({ account, positions, decisions, + decisionsLimit, + onDecisionsLimitChange, lastUpdate, language, traders, @@ -620,6 +625,8 @@ function TraderDetailsPage({ account?: AccountInfo positions?: Position[] decisions?: DecisionRecord[] + decisionsLimit: number + onDecisionsLimitChange: (limit: number) => void stats?: Statistics lastUpdate: string language: Language @@ -1164,7 +1171,7 @@ function TraderDetailsPage({ > 🧠 -
+

{t('recentDecisions', language)}

@@ -1174,6 +1181,23 @@ function TraderDetailsPage({
)}
+ {/* 数量选择器 */} + {/* 决策列表 - 可滚动 */}