import { useEffect, useState } from 'react' import { useNavigate, useSearchParams } from 'react-router-dom' import { Card, Form, Input, Button, message, Typography, Space } from 'antd' import { ArrowLeftOutlined } from '@ant-design/icons' import { useAccountStore } from '../store/accountStore' import { useMediaQuery } from 'react-responsive' const { Title } = Typography const AccountEdit: React.FC = () => { const navigate = useNavigate() const [searchParams] = useSearchParams() const isMobile = useMediaQuery({ maxWidth: 768 }) const accountId = searchParams.get('id') const { fetchAccountDetail, updateAccount, loading } = useAccountStore() const [form] = Form.useForm() const [account, setAccount] = useState(null) const [loadingDetail, setLoadingDetail] = useState(true) useEffect(() => { if (accountId) { loadAccountDetail() } else { message.error('账户ID不能为空') navigate('/accounts') } }, [accountId]) const loadAccountDetail = async () => { if (!accountId) return setLoadingDetail(true) try { const accountData = await fetchAccountDetail(Number(accountId)) setAccount(accountData) // 设置表单初始值 form.setFieldsValue({ accountName: accountData.accountName || '' }) } catch (error: any) { message.error(error.message || '获取账户详情失败') navigate('/accounts') } finally { setLoadingDetail(false) } } const handleSubmit = async (values: any) => { if (!accountId) return try { // 构建更新请求 const updateData: any = { accountId: Number(accountId), accountName: values.accountName || undefined } await updateAccount(updateData) message.success('更新账户成功') navigate(`/accounts/detail?id=${accountId}`) } catch (error: any) { message.error(error.message || '更新账户失败') } } if (loadingDetail) { return (
加载中...
) } if (!account) { return null } return (
编辑账户
) } export default AccountEdit