import React, { useState, useEffect } from 'react'; import { Modal, Button, Form, Input, InputNumber, message, List } from 'antd'; import { useUserInfo } from '@/store/userStore'; import { ICustomer } from '@/models/types'; import axios from 'axios'; interface RechargeProps { visible: boolean; onCancel: () => void; customer: ICustomer | null; onRechargeSuccess: () => void; // 充值成功后的回调 } const Recharge: React.FC = ({ visible, onCancel, customer, onRechargeSuccess }) => { const [loading, setLoading] = useState(false); const [balance, setBalance] = useState(null); const [transactions, setTransactions] = useState([]); // 存储交易记录 const [form] = Form.useForm(); const { 团队 } = useUserInfo(); useEffect(() => { const fetchBalanceAndTransactions = async () => { if (customer?._id) { try { // 重置状态 setBalance(null); setTransactions([]); form.resetFields(); // 获取客户余额 const balanceResponse = await axios.get(`/api/backstage/balance/${customer._id}`); if (balanceResponse.status === 200) { setBalance(balanceResponse.data.balance ?? 0); // 默认值为 0 } else { setBalance(0); // 无法获取余额时设为 0 } // 获取客户交易记录 const transactionsResponse = await axios.get(`/api/backstage/transactions/${customer._id}`); if (transactionsResponse.status === 200) { setTransactions(transactionsResponse.data.transactions); } else { message.error('无法获取交易记录'); } } catch (error) { console.error('获取数据时出错:', error); setBalance(0); // 错误情况下设为 0 message.error('无余额交易记录'); } } }; if (visible) { fetchBalanceAndTransactions(); } }, [customer, visible]); const handleRecharge = async () => { if (!customer?._id) { message.error('请先选择客户'); return; } try { setLoading(true); const values = await form.validateFields(); const { 金额, 描述 } = values; const response = await axios.post('/api/backstage/transactions', { 团队: 团队?._id, 客户: customer?._id, 类型: '充值', 金额, 描述, }); if (response.status === 200) { message.success('充值成功'); onRechargeSuccess(); onCancel(); } else { message.error('充值失败,请重试'); } } catch (error) { message.error('充值失败,请检查输入并重试'); } finally { setLoading(false); } }; return ( 客户充值} onCancel={onCancel} footer={[ , , ]} > {balance !== null && balance !== undefined ? (

当前余额: ¥ {balance.toFixed(2)}

) : (
当前余额: ¥ 0
)}

余额交易记录

( )} />
); }; export default Recharge;