import React, { useEffect, useState } from 'react' import { Form, Button, Input, message, Row, Col, DatePicker, Upload, Image, Modal } from 'antd' import { DeleteOutlined, FileWordOutlined, FilePdfOutlined, FileZipOutlined, FileExcelOutlined, FilePptOutlined } from '@ant-design/icons' import { formItemLayout, btnItemLayout } from '../../../../components/crud/FormLayoutProps' import { createCrudService } from '../../../../components/crud/_' import apiurl from '../../../../service/apiurl' import moment from 'moment' import NormalSelect from '../../../../components/Form/NormalSelect' import EditText from '../../../../components/EditText' const { Dragger } = Upload const { RangePicker } = DatePicker const url = 'http://223.75.53.141:9102/test.by-lyf.tmp' const ModalForm = ({ mode, record, onEdit, onSave, onCrudSuccess }) => { if (record.startDate) { record.startDate = moment(record.startDate) } console.log('record', record) const meetingType = [ { label: "视频会议", value: "0" }, { label: '现场会议', value: '1' }, { label: '电话会议', value: '2' }, { label: '网络会议', value: '3' } ] const [form] = Form.useForm() const [fileList, setFileList] = useState([]) //上传文件列表 const [fileIds, setFileIds] = useState([]) const [flag, setFlag] = useState(true) const [iframeSrc, setIframeSrc] = useState('') const [pdfViewOPen, setPdfViewOPen] = useState(false) const [editorText, setEditorText] = useState('') const [loading, setLoading] = useState(false) const onFinish = async values => { // if(values.startDate){values.startDate = moment(values.startDate).format('YYYY-MM-DD HH:mm:ss')} values.adcd = record.adcd values.year = record.year values.hmId = record.hmId values.startDate = moment(values.dateRange[0]).format('YYYY-MM-DD HH:mm') values.endDate = moment(values.dateRange[1]).format('YYYY-MM-DD HH:mm') delete values.dateRange if (mode === 'edit') { let oldFiles = fileList.map(item => item.response?.data?.fileId) values.fileIds = oldFiles values.content = editorText onEdit(apiurl.fxzb.sxfd.fbzrh.edit, values) } if (mode === 'save') { values.fileIds = fileIds values.content = editorText onSave(apiurl.fxzb.sxfd.fbzrh.save,values) } } const onchange = html => { setEditorText(html) } /** * @description 删除上传的图片 * @param {string} id 删除的id */ const deleteFile = fileId => { let filterFile = fileList.filter( item => item.response?.data?.fileId !== fileId ) setFileList(filterFile) } /** * @description 上传图片 * @param {string} file 上传的文件 */ const fileChange = info => { if (info.file.status === "done") { setLoading(false); } if (info.file.status === "uploading") { setLoading(true); } if (info.file.status === "error") { message.error("文件上传失败") setLoading(false); } let fileIds = info.fileList.map(file => { return file.response?.data?.fileId }) setFileIds(fileIds) setFileList(info.fileList) setFlag(false) } /** * @description 文件下载 * @param {String} params 文件fileId */ const download = params => { let downloadLink = document.createElement('a') downloadLink.href = `http://local.gunshiiot.com:18083/gunshiApp/xfflood/xfIdeoHmB/file/download/${params}` downloadLink.download = `${params.fileName}` downloadLink.style.display = 'none' // 将链接添加到页面中 document.body.appendChild(downloadLink) // 模拟点击事件,开始下载 downloadLink.click() } /** * @description pdf文件预览 * @param {String} params 文件预览url */ const viewPdf = params => { if (params) { setIframeSrc(params) setPdfViewOPen(true) } } useEffect(() => { console.log(record.fileList) if (record.fileList) { setFileList(record.fileList) } if (mode == 'edit') { form.setFieldsValue({ ...record, dateRange: [moment(record.startDate), moment(record.endDate)] }) } }, [record]) return ( <>
{/* */} {mode !== 'view' && ( { console.log(info.dataTransfer.files) }} fileList={fileList} disabled={loading} // onSuccess={handleSuccess} >

点击或拖拽文件到此区域上传

支持扩展名:.rar .zip .doc .docx .pdf .jpg .png .ppt

)} { 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}
deleteFile(file.response?.data?.fileId) } >
) })}
{mode === 'view' ? null : ( <> )}
{ setPdfViewOPen(false) }} >