diff --git a/app/components/AddFundToGroupModal.jsx b/app/components/AddFundToGroupModal.jsx index 87dfb8f..260575d 100644 --- a/app/components/AddFundToGroupModal.jsx +++ b/app/components/AddFundToGroupModal.jsx @@ -1,14 +1,26 @@ 'use client'; import { useState } from 'react'; -import { motion } from 'framer-motion'; import { CloseIcon, PlusIcon } from './Icons'; +import { + Dialog, + DialogContent, + DialogTitle, +} from '@/components/ui/dialog'; -export default function AddFundToGroupModal({ allFunds, currentGroupCodes, onClose, onAdd }) { +export default function AddFundToGroupModal({ allFunds, currentGroupCodes, holdings = {}, onClose, onAdd }) { const [selected, setSelected] = useState(new Set()); const availableFunds = (allFunds || []).filter(f => !(currentGroupCodes || []).includes(f.code)); + const getHoldingAmount = (fund) => { + const holding = holdings[fund?.code]; + if (!holding || !holding.share || holding.share <= 0) return null; + const nav = Number(fund?.dwjz) || Number(fund?.gsz) || Number(fund?.estGsz) || 0; + if (!nav) return null; + return holding.share * nav; + }; + const toggleSelect = (code) => { setSelected(prev => { const next = new Set(prev); @@ -18,24 +30,21 @@ export default function AddFundToGroupModal({ allFunds, currentGroupCodes, onClo }); }; + const handleOpenChange = (open) => { + if (!open) { + onClose?.(); + } + }; + return ( - - + e.stopPropagation()} + overlayClassName="modal-overlay" + style={{ maxWidth: '500px', width: '90vw', zIndex: 99 }} > + 添加基金到分组
@@ -63,9 +72,14 @@ export default function AddFundToGroupModal({ allFunds, currentGroupCodes, onClo
{selected.has(fund.code) &&
}
-
+
{fund.name}
#{fund.code}
+ {getHoldingAmount(fund) != null && ( +
+ 持仓金额:¥{getHoldingAmount(fund).toFixed(2)} +
+ )}
))} @@ -84,7 +98,7 @@ export default function AddFundToGroupModal({ allFunds, currentGroupCodes, onClo 确定 ({selected.size})
- - + + ); } diff --git a/app/page.jsx b/app/page.jsx index 3a1304d..52551b1 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -4300,6 +4300,7 @@ export default function HomePage() { g.id === currentTab)?.codes || []} + holdings={holdings} onClose={() => setAddFundToGroupOpen(false)} onAdd={handleAddFundsToGroup} />