import React,{useEffect,useState,useRef} from 'react'; import { Form, Button, Input, Row, Col,Upload,DatePicker,Modal,message,Image } from 'antd'; import {PaperClipOutlined,DeleteOutlined,FileWordOutlined,FilePdfOutlined,FilePptOutlined,FileZipOutlined,FileExcelOutlined} from '@ant-design/icons'; import { formItemLayout, btnItemLayout } from '../../../components/crud/FormLayoutProps'; import apiurl from '../../../service/apiurl'; import { httpget2 } from '../../../utils/request'; import moment from 'moment'; import "./index.less"; const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const ModalForm = ({ mode, record,onEdit,onSave,onCrudSuccess }) => { const [form] = Form.useForm(); const [fileList, setFileList] = useState([]) //上传文件列表 const [loading, setLoading] = useState(false) const [iframeId, setIframeId] = useState('') const [perviewOpen, setPerviewOpen] = useState(false) const fileChange = (info) => { console.log("file",info); if (info.file.status === "done") { setLoading(false); setFileList(info.fileList) } if (info.file.status === "uploading") { setLoading(true); } if (info.file.status === "error") { message.error("文件上传失败") setLoading(false); } if (fileList.length > 0) { return } setFileList(info.fileList) } const deleteFile = (fileId) => { let filterFile = fileList.filter(item => item.response?.data?.fileId !== fileId); setFileList(filterFile) } const onFinish = async (values) => { if (fileList.length <= 0) { message.error("请上传预案文件") return } let oldFiles = fileList.map(item => ({ fileId: item.response?.data?.fileId })) values.resCode = "42120250085" values.type = 2 values.files = oldFiles; values.prepTime = moment(values.prepTime).format("YYYY-MM-DD 00:00:00") values.apprTime = moment(values.apprTime).format("YYYY-MM-DD 00:00:00") if (mode === 'edit') { values.id = record?.id; onEdit(apiurl.fxya.update,values) } if (mode === 'save') { onSave(apiurl.fxya.save,values) } } const viewPdf = (params) => { setIframeId(params) setPerviewOpen(true) } const beforeUpload = () => { if (fileList.length > 0) { message.error("只能上传一个附件"); return false; } } const getFileInfo = async(id) => { try { const res = await httpget2(`${apiurl.dataResourcesCenter.projectAndWater.fxya.getFile}/${id}`) let obj ={ name: res.data.fileName, response: { data: { filePath: res.data.filePath, fileId:res.data.fileId } }, } setFileList([obj]) } catch (error) { console.log(error); } } const download = (params) => { let downloadLink = document.createElement("a"); downloadLink.href = `http://local.gunshiiot.com:18083/gunshiApp/xyt/resPlanB/file/download/${params}`; downloadLink.download = `${params.fileName}`; downloadLink.style.display = "none"; // 将链接添加到页面中 document.body.appendChild(downloadLink); // 模拟点击事件,开始下载 downloadLink.click(); } useEffect(() => { if (record && mode != "save") { getFileInfo(record?.files[0]?.fileId) } }, [record,mode]) return ( <>
dateString} getValueProps={value => ({ value: value ? moment(value) : undefined })} rules={[{ required: true }]} > dateString} getValueProps={value => ({ value: value ? moment(value) : undefined })} rules={[{ required: true }]} > {mode == "view" ? null :
上传PDF文件 (支持扩展名:.xls .xlsx .doc .docx .pdf .jpg .png)
}
{ loading ? 文件正在上传中,请等待 : fileList.length > 0 && fileList.map(file => { return (
{file.name.indexOf('.docx') > -1 ?
{ download(file.response?.data?.fileId) }} style={{ cursor: 'pointer' }} >
: file.name.indexOf('.pdf') > -1 ?
{ viewPdf(file.response?.data?.fileId) }} style={{ cursor: 'pointer' }} >
: file.name.indexOf('.zip') > -1 ?
{ download(file.response?.data?.fileId) }} style={{ cursor: 'pointer' }} >
: file.name.indexOf('.ppt') > -1 ?
{ download(file.response?.data?.fileId) }} style={{ cursor: 'pointer' }} >
: file.name.indexOf('.xlsx') > -1 ?
{ download(file.response?.data?.fileId) }} style={{ cursor: 'pointer' }} >
: } {file.name}
{mode !== "view" &&
deleteFile(file.response?.data?.fileId)} >
}
) }) }
{ mode==='view'?null:( <> ) }
{ setPerviewOpen(false) }} >