import { useState, useEffect } from 'react' import { useNavigate, useSearchParams } from 'react-router-dom' import { Card, Form, Input, Button, Select, message, Typography, Space, Spin } from 'antd' import { ArrowLeftOutlined } from '@ant-design/icons' import { apiService } from '../services/api' import { useMediaQuery } from 'react-responsive' import { useTranslation } from 'react-i18next' import type { Leader } from '../types' const { Title } = Typography const { Option } = Select const LeaderEdit: React.FC = () => { const { t } = useTranslation() const navigate = useNavigate() const [searchParams] = useSearchParams() const isMobile = useMediaQuery({ maxWidth: 768 }) const [form] = Form.useForm() const [loading, setLoading] = useState(false) const [fetching, setFetching] = useState(true) const leaderId = searchParams.get('id') useEffect(() => { if (leaderId) { fetchLeaderDetail(parseInt(leaderId)) } else { message.error(t('leaderEdit.invalidId') || 'Leader ID 无效') navigate('/leaders') } }, [leaderId, navigate]) const fetchLeaderDetail = async (id: number) => { setFetching(true) try { const response = await apiService.leaders.detail({ leaderId: id }) if (response.data.code === 0 && response.data.data) { const leader: Leader = response.data.data form.setFieldsValue({ leaderName: leader.leaderName || '', remark: leader.remark || '', website: leader.website || '', category: leader.category || undefined }) } else { message.error(response.data.msg || t('leaderEdit.fetchFailed') || '获取 Leader 详情失败') navigate('/leaders') } } catch (error: any) { message.error(error.message || t('leaderEdit.fetchFailed') || '获取 Leader 详情失败') navigate('/leaders') } finally { setFetching(false) } } const handleSubmit = async (values: any) => { if (!leaderId) { message.error(t('leaderEdit.invalidId') || 'Leader ID 无效') return } setLoading(true) try { const response = await apiService.leaders.update({ leaderId: parseInt(leaderId), leaderName: values.leaderName?.trim() || undefined, remark: values.remark?.trim() || undefined, website: values.website?.trim() || undefined, category: values.category || undefined }) if (response.data.code === 0) { message.success(t('leaderEdit.saveSuccess') || '更新 Leader 成功') navigate('/leaders') } else { message.error(response.data.msg || t('leaderEdit.saveFailed') || '更新 Leader 失败') } } catch (error: any) { message.error(error.message || t('leaderEdit.saveFailed') || '更新 Leader 失败') } finally { setLoading(false) } } if (fetching) { return (