feat: PC端列表模式点击基金名称查看详情

This commit is contained in:
hzm
2026-03-08 18:59:17 +08:00
parent e97de8744a
commit 7f3dfb31cf
4 changed files with 122 additions and 16 deletions

View File

@@ -319,6 +319,7 @@ export default function HomePage() {
const tabsRef = useRef(null);
const [fundDeleteConfirm, setFundDeleteConfirm] = useState(null); // { code, name }
const fundDetailDrawerCloseRef = useRef(null); // 由 MobileFundTable 注入,用于确认删除时关闭基金详情 Drawer
const fundDetailDialogCloseRef = useRef(null); // 由 PcFundTable 注入,用于确认删除时关闭基金详情 Dialog
const todayStr = formatDate();
@@ -2445,6 +2446,8 @@ export default function HomePage() {
if (hasHolding) {
setFundDeleteConfirm({ code: fund.code, name: fund.name });
} else {
fundDetailDrawerCloseRef.current?.();
fundDetailDialogCloseRef.current?.();
removeFund(fund.code);
}
};
@@ -4021,6 +4024,39 @@ export default function HomePage() {
setPercentModes(prev => ({ ...prev, [row.code]: !prev[row.code] }));
}}
onCustomSettingsChange={triggerCustomSettingsSync}
closeDialogRef={fundDetailDialogCloseRef}
blockDialogClose={!!fundDeleteConfirm}
getFundCardProps={(row) => {
const fund = row?.rawFund || (row ? { code: row.code, name: row.fundName } : null);
if (!fund) return {};
return {
fund,
todayStr,
currentTab,
favorites,
dcaPlans,
holdings,
percentModes,
valuationSeries,
collapsedCodes,
collapsedTrends,
transactions,
theme,
isTradingDay,
refreshing,
getHoldingProfit,
onRemoveFromGroup: removeFundFromCurrentGroup,
onToggleFavorite: toggleFavorite,
onRemoveFund: requestRemoveFund,
onHoldingClick: (f) => setHoldingModal({ open: true, fund: f }),
onActionClick: (f) => setActionModal({ open: true, fund: f }),
onPercentModeToggle: (code) =>
setPercentModes((prev) => ({ ...prev, [code]: !prev[code] })),
onToggleCollapse: toggleCollapse,
onToggleTrendCollapse: toggleTrendCollapse,
layoutMode: 'drawer',
};
}}
/>
</div>
</div>
@@ -4156,6 +4192,7 @@ export default function HomePage() {
confirmText="确定删除"
onConfirm={() => {
fundDetailDrawerCloseRef.current?.();
fundDetailDialogCloseRef.current?.();
removeFund(fundDeleteConfirm.code);
setFundDeleteConfirm(null);
}}