diff --git a/frontend/src/pages/AccountList.tsx b/frontend/src/pages/AccountList.tsx index 3314493..4066038 100644 --- a/frontend/src/pages/AccountList.tsx +++ b/frontend/src/pages/AccountList.tsx @@ -26,18 +26,18 @@ const AccountList: React.FC = () => { const [editLoading, setEditLoading] = useState(false) const [accountImportModalVisible, setAccountImportModalVisible] = useState(false) const [accountImportForm] = Form.useForm() - + useEffect(() => { fetchAccounts() }, [fetchAccounts]) - + const handleAccountImportSuccess = async () => { message.success(t('accountImport.importSuccess')) setAccountImportModalVisible(false) accountImportForm.resetFields() fetchAccounts() } - + // 加载所有账户的余额 useEffect(() => { const loadBalances = async () => { @@ -46,8 +46,8 @@ const AccountList: React.FC = () => { setBalanceLoading(prev => ({ ...prev, [account.id]: true })) try { const balanceData = await fetchAccountBalance(account.id) - setBalanceMap(prev => ({ - ...prev, + setBalanceMap(prev => ({ + ...prev, [account.id]: { total: balanceData.totalBalance || '0', available: balanceData.availableBalance || '0', @@ -56,8 +56,8 @@ const AccountList: React.FC = () => { })) } catch (error) { console.error(`获取账户 ${account.id} 余额失败:`, error) - setBalanceMap(prev => ({ - ...prev, + setBalanceMap(prev => ({ + ...prev, [account.id]: { total: '-', available: '-', position: '-' } })) } finally { @@ -66,12 +66,12 @@ const AccountList: React.FC = () => { } } } - + if (accounts.length > 0) { loadBalances() } }, [accounts]) - + const handleDelete = async (account: Account) => { try { await deleteAccount(account.id) @@ -80,13 +80,13 @@ const AccountList: React.FC = () => { message.error(error.message || t('accountList.deleteFailed')) } } - + const handleCopy = (text: string) => { if (!text) { message.warning(t('accountList.copyFailed') || '复制失败:地址为空') return } - + if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(text).then(() => { message.success({ @@ -103,7 +103,7 @@ const AccountList: React.FC = () => { fallbackCopyTextToClipboard(text) } } - + const fallbackCopyTextToClipboard = (text: string) => { const textArea = document.createElement('textarea') textArea.value = text @@ -113,7 +113,7 @@ const AccountList: React.FC = () => { document.body.appendChild(textArea) textArea.focus() textArea.select() - + try { const successful = document.execCommand('copy') if (successful) { @@ -131,19 +131,19 @@ const AccountList: React.FC = () => { document.body.removeChild(textArea) } } - + const handleShowDetail = async (account: Account) => { try { setDetailModalVisible(true) setDetailAccount(account) setDetailBalance(null) setDetailBalanceLoading(false) - + // 加载详情和余额 try { const accountDetail = await fetchAccountDetail(account.id) setDetailAccount(accountDetail) - + // 加载余额 setDetailBalanceLoading(true) try { @@ -173,10 +173,10 @@ const AccountList: React.FC = () => { setDetailAccount(null) } } - + const handleRefreshDetailBalance = async () => { if (!detailAccount) return - + setDetailBalanceLoading(true) try { const balanceData = await fetchAccountBalance(detailAccount.id) @@ -193,16 +193,16 @@ const AccountList: React.FC = () => { setDetailBalanceLoading(false) } } - + const handleShowEdit = async (account: Account) => { try { setEditModalVisible(true) setEditAccount(account) - + // 加载账户详情并设置表单初始值 const accountDetail = await fetchAccountDetail(account.id) setEditAccount(accountDetail) - + editForm.setFieldsValue({ accountName: accountDetail.accountName || '', apiKey: '', // 不显示实际值,留空表示不修改 @@ -216,10 +216,10 @@ const AccountList: React.FC = () => { setEditAccount(null) } } - + const handleEditSubmit = async (values: any) => { if (!editAccount) return - + setEditLoading(true) try { // 构建更新请求,只支持编辑账户名称 @@ -227,17 +227,17 @@ const AccountList: React.FC = () => { accountId: editAccount.id, accountName: values.accountName || undefined } - + await updateAccount(updateData) - + message.success(t('accountList.updateSuccess')) setEditModalVisible(false) setEditAccount(null) editForm.resetFields() - + // 刷新账户列表 await fetchAccounts() - + // 如果详情 Modal 打开着,也刷新详情 if (detailModalVisible && detailAccount && detailAccount.id === editAccount.id) { const accountDetail = await fetchAccountDetail(editAccount.id) @@ -249,7 +249,7 @@ const AccountList: React.FC = () => { setEditLoading(false) } } - + const columns = [ { title: t('accountList.accountName'), @@ -339,7 +339,7 @@ const AccountList: React.FC = () => { { ) } ] - + const mobileColumns = [ { title: t('accountList.accountName'), @@ -364,16 +364,16 @@ const AccountList: React.FC = () => { render: (_: any, record: Account) => { return (
-
{record.accountName || `${t('accountList.accountName')} ${record.id}`}
-
{ />
-
{ )}
{balanceMap[record.id] && balanceMap[record.id].available !== '-' && ( -
{ { cancelText={t('common.cancel')} okButtonProps={{ danger: true }} > -
- - @@ -544,7 +544,7 @@ const AccountList: React.FC = () => { /> )} - + {/* 账户详情 Modal */} { setDetailBalance(null) }} footer={[ - , - , -