import React, { useState, useEffect } from 'react'; import { Card, Form, Input, Button, DatePicker, Select, Space, Typography, App, Divider, Row, Col, Tag } from 'antd'; import { ArrowLeftOutlined, UserOutlined, CalendarOutlined, TeamOutlined, FileTextOutlined, PlusOutlined, UploadOutlined, SaveOutlined, VideoCameraAddOutlined, TagOutlined } from '@ant-design/icons'; import { useNavigate } from 'react-router-dom'; import dayjs from 'dayjs'; import apiClient from '../utils/apiClient'; import { buildApiUrl, API_ENDPOINTS } from '../config/api'; const { Title, Text } = Typography; const { TextArea } = Input; const CreateMeeting = ({ user }) => { const navigate = useNavigate(); const { message } = App.useApp(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [users, setUsers] = useState([]); const [prompts, setPrompts] = useState([]); useEffect(() => { fetchUsers(); fetchPrompts(); }, []); const fetchUsers = async () => { try { const res = await apiClient.get(buildApiUrl(API_ENDPOINTS.USERS.LIST)); setUsers(res.data.users || []); } catch (e) {} }; const fetchPrompts = async () => { try { const res = await apiClient.get(buildApiUrl(API_ENDPOINTS.PROMPTS.ACTIVE('MEETING_TASK'))); setPrompts(res.data.prompts || []); } catch (e) {} }; const onFinish = async (values) => { setLoading(true); try { const payload = { ...values, meeting_time: values.meeting_time.format('YYYY-MM-DD HH:mm:ss'), attendees: values.attendees.join(','), creator_id: user.user_id }; const res = await apiClient.post(buildApiUrl(API_ENDPOINTS.MEETINGS.CREATE), payload); if (res.code === '200') { message.success('会议创建成功'); navigate(`/meetings/${res.data.meeting_id}`); } } catch (error) { message.error(error.response?.data?.message || '创建失败'); } finally { setLoading(false); } }; return (
} placeholder="请输入会议主题..." />