import { getAssets } from '@/actions/asset'; import { getTransactions } from '@/actions/transaction'; import { AddTransactionDialog } from '@/components/transactions/add-transaction-dialog'; import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; export default async function TransactionsPage() { const [assets, transactions] = await Promise.all([ getAssets(), getTransactions(), ]); const typeLabels: Record = { BUY: '买入', SELL: '卖出', DIVIDEND: '分红', AIRDROP: '空投', FEE: '手续费', }; const assetMap = new Map(assets.map((a) => [a.id, a.symbol])); return (

交易流水

共 {transactions.length} 条交易记录 标的 类型 数量 价格 手续费 币种 执行时间 {transactions.length === 0 ? ( 暂无流水,点击"添加流水"按钮录入第一笔交易 ) : ( transactions.map((tx) => { const symbol = assetMap.get(tx.assetId) || tx.assetId; return ( {symbol} {typeLabels[tx.txType] || tx.txType} {tx.quantity} {tx.price} {tx.fee} {tx.txCurrency} {tx.executedAt ? new Date(tx.executedAt).toLocaleString('zh-CN') : '-'} ); }) )}
); }