import React, { useState } from 'react'; import { Modal, Form, Spin, message } from 'antd'; import ExtendUpload from '@/utils/ExtendUpload'; import { saveSupplementFile } from '../../../services/bidev'; // 支持的文件格式 const SUPPORTED_FILE_TYPES = { 'zip': ['.zip'], 'rar': ['.rar'], 'pdf': ['.pdf'], 'word': ['.doc', '.docx'], 'excel': ['.xls', '.xlsx'] }; const ACCEPT_TYPES = '.zip,.rar,.pdf,.doc,.docx,.xls,.xlsx'; // 文件格式验证函数 const validateFileFormat = (file: File): boolean => { const fileName = file.name.toLowerCase(); const fileExtension = fileName.substring(fileName.lastIndexOf('.')); const supportedExtensions = Object.values(SUPPORTED_FILE_TYPES).flat(); return supportedExtensions.includes(fileExtension); }; interface SupplementFileUploadProps { modalVisible: boolean; onCancel: (fileId?: string) => void; onOk: (fileId: string) => void; fileId?: string; readOnly?: boolean; recordData?: any; } const layout = { labelCol: { span: 4 }, wrapperCol: { span: 20 }, }; const modalHeight = window.innerHeight * 96 / 100; /** * 补充评审文件上传组件 * @param props * @returns */ const SupplementFileUpload: React.FC = (props) => { const { modalVisible, onCancel, onOk, fileId, readOnly, recordData } = props; const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const handleOk = async () => { const annexId = form.getFieldValue('annexId'); const finalFileId = annexId || fileId || ''; if (!readOnly && !finalFileId) { message.warning('请先上传文件'); return; } setLoading(true); try { const params = { id: recordData?.id, supplementReviewFile: finalFileId, }; const res = await saveSupplementFile(params); if (res.code === 200 && res.success) { message.success('补充评审文件保存成功'); onOk(finalFileId); } else { message.error(res.message || '保存失败'); } } catch (error) { message.error('保存失败,请重试'); } finally { setLoading(false); } }; const handleCancel = () => { const annexId = form.getFieldValue('annexId'); onCancel(annexId); }; return (
); }; export default SupplementFileUpload;