import React, { useState, useEffect } from 'react'; import { Form, Input, Select, DatePicker, InputNumber, Button, Card, message, Row, Col, Upload, Spin } from 'antd'; import { UploadOutlined } from '@ant-design/icons'; import { useNavigate, useParams } from 'react-router-dom'; import { activityAPI } from '../../services/api'; import dayjs from 'dayjs'; import './ActivityCreate.css'; const { Option } = Select; const { TextArea } = Input; const ActivityEdit = () => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [pageLoading, setPageLoading] = useState(true); const navigate = useNavigate(); const { id } = useParams(); const [currentActivity, setCurrentActivity] = useState(null); // 获取活动详情 const fetchActivityDetail = async () => { try { setPageLoading(true); const response = await activityAPI.getActivityById(id); if (response.code === 0) { const activity = response.data; setCurrentActivity(activity); // 分类映射(从name到value) const categoryValueMap = { '党的建设': '1', '经济发展': '2', '平安法治': '3', '民生服务': '4', '失信违法': '5' }; form.setFieldsValue({ ...activity, category: categoryValueMap[activity.categoryDesc] || activity.category, // 映射分类值 maxParticipants: activity.maxParticipants || activity.maxVolunteers, // 兼容字段名 startTime: dayjs(activity.startTime), endTime: dayjs(activity.endTime), deadline: dayjs(activity.deadline), }); } else { message.error('获取活动详情失败'); navigate('/activities'); } } catch (error) { console.error('获取活动详情失败:', error); message.error('获取活动详情失败'); navigate('/activities'); } finally { setPageLoading(false); } }; useEffect(() => { if (id) { fetchActivityDetail(); } }, [id]); const onFinish = async (values) => { try { setLoading(true); // 活动分类映射 const categoryMap = { '1': '党的建设', '2': '经济发展', '3': '平安法治', '4': '民生服务', '5': '失信违法' }; const activityData = { ...currentActivity, ...values, categoryDesc: categoryMap[values.category] || values.category, // 添加categoryDesc字段 startTime: values.startTime.toISOString(), endTime: values.endTime.toISOString(), deadline: values.deadline.toISOString(), }; const response = await activityAPI.saveActivity(activityData); if (response.code === 0) { message.success('活动更新成功!'); navigate('/activities'); } else { message.error('更新失败,请检查表单信息'); } } catch (error) { console.error('更新活动失败:', error); message.error('更新失败,请检查表单信息'); } finally { setLoading(false); } }; const handleCancel = () => { navigate('/activities'); }; if (pageLoading) { return (
修改活动信息,确保信息准确完整