import React, { useState } from 'react'; import { Card, Form, Input, Button, Upload, message, Progress, Select, Row, Col } from 'antd'; import { InboxOutlined, AudioOutlined, UserAddOutlined } from '@ant-design/icons'; import { useNavigate } from 'react-router-dom'; import { api } from '../api'; import PageHeader from '../components/PageHeader/PageHeader'; const { Dragger } = Upload; const { Option } = Select; const MeetingLive: React.FC = () => { const [form] = Form.useForm(); const [uploading, setUploading] = useState(false); const [progress, setProgress] = useState(0); const navigate = useNavigate(); const handleCreate = async (values: any) => { try { const res = await api.createMeeting(values); message.success('会议创建成功'); navigate(`/meeting/history/${res.meeting_id}`); } catch (error) { console.error(error); message.error('创建失败'); } }; const handleUpload = async (file: File) => { setUploading(true); setProgress(0); try { // Mock progress since fetch doesn't support it easily without XHR const timer = setInterval(() => { setProgress((prev) => { if (prev >= 90) { clearInterval(timer); return 90; } return prev + 10; }); }, 500); const res = await api.uploadMeetingAudio(file); clearInterval(timer); setProgress(100); message.success('上传成功,开始转译'); // Assuming upload returns meeting_id or we navigate to list if (res && res.meeting_id) { navigate(`/meeting/history/${res.meeting_id}`); } else { navigate('/meeting/history'); } } catch (error) { console.error(error); message.error('上传失败'); setUploading(false); } return false; // Prevent default upload behavior }; return (
点击或拖拽文件到此区域上传
支持 MP3, WAV, M4A 等常见音频格式