import React,{useEffect,useState} from 'react'; import { Form, Button, Input, Row, Col, DatePicker, Upload,message,Image,Modal } from 'antd'; import { DeleteOutlined,FileWordOutlined,FilePdfOutlined,FilePptOutlined,FileZipOutlined,FileExcelOutlined } from '@ant-design/icons'; import { formItemLayout, btnItemLayout } from '../../../../components/crud/FormLayoutProps'; import apiurl from '../../../../service/apiurl'; import { createCrudService } from '../../../../components/crud/_'; import NormalSelect from '../../../../components/Form/NormalSelect'; import moment from 'moment'; import "../ytygc/index.less" const { Dragger } = Upload; const ModalForm = ({ mode, record, onEdit, onSave,onDeleteGet,onCrudSuccess }) => { // 检查结论选项 暂时写死 const checkConclusionOption = [ { value: '1', label: '无隐患' }, { value: '2', label: '需整改' } ] const url = "http://223.75.53.141:9100/gs-tsg" const [flag, setFlag] = useState(false) if (record.tmStart && record.tmEnd) { record.tmStart = moment(record.tmStart) record.tmEnd = moment(record.tmEnd) // record.meetDate = [moment(record.startDate), moment(record.endDate)] } if (!record.conclusion) { record.conclusion = '1' } const [form] = Form.useForm(); const [fileList, setFileList] = useState([]) //上传文件列表 const [fileIds, setFileIds] = useState([]) const [iframeSrc, setIframeSrc] = useState('') const [pdfViewOPen, setPdfViewOPen] = useState(false) const [loading, setLoading] = useState(false) const onFinish = async (values) => { if(values.meetDate){ values.startDate = moment(values.meetDate[0]).format('YYYY-MM-DD HH:mm:ss') values.endDate = moment(values.meetDate[1]).format('YYYY-MM-DD HH:mm:ss') delete values.meetDate } else { values.tmStart = moment(values.tmStart).format('YYYY-MM-DD 00:00:00') values.tmEnd =values.tmEnd ? moment(values.tmEnd).format('YYYY-MM-DD 00:00:00') :'' } if (record.adcd) { values.adcd = record.adcd } values.year = record.year values.relatedObjectId = record.relatedObjectId values.relatedObjectType = "bzProjectManipulationRecord2" if (mode === 'edit') { let oldFiles = fileList.map(item => ({ fileId: item.response?.data?.fileId })) values.attachList = oldFiles; values.id = record.id onEdit(apiurl.fxzb.gczx.ytygc.edit,values) } if (mode === 'save') { values.attachList = fileIds onSave(apiurl.fxzb.gczx.ytygc.save,values) } } /** * @description 表单重置 */ const onReset = () => { form.resetFields(); }; /** * @description 删除上传的图片 * @param {string} id 删除的id */ const deleteFile = (fileId) => { let filterFile = fileList.filter(item => item.response?.data?.fileId !== fileId); setFileList(filterFile) // if (mode === "edit"&& flag) { // createCrudService(apiurl.fxzb.gczx.ytygc.deleteFile + `/${record.id}/${fileId}`).delGet().then(res => { // if (res.code === 200 ) { // message.success("删除附件成功") // setFlag(false) // onCrudSuccess() // } // }) // } } /** * @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 {fileId: file.response?.data?.fileId} }) setFileIds(fileIds) setFileList(info.fileList) setFlag(false) } /** * @description 获取查看时文件 * @param {*} type * @returns */ // const getFileInfo = (params) => { // console.log(params); // let fileArr=[] // params?.attachList.forEach(item => { // createCrudService(apiurl.fxzb.gczx.ytygc.getFile + `/${item.fileId}`).delGet() // .then(res => { // if (res.code === 200) { // setFlag(true) // fileArr.push({ // name: res.data.fileName, // response: { // data: { // filePath: res.data.filePath, // fileId:res.data.fileId // } // }, // }) // } // }).catch(err => console.log(err)) // }); // setFileList(fileArr) // } const getFileInfo = (params) => { let fetchArr = params?.attachList.map(item => { return createCrudService(apiurl.fxzb.gczx.ytygc.getFile + `/${item.fileId}`) .delGet() } ); Promise.all(fetchArr).then(res => { let fileArr = res.map(item => { return { name: item.data.fileName, response: { data: { filePath: item.data.filePath, fileId:item.data.fileId } }, } }) setFlag(true) setFileList(fileArr) }).catch(err => console.log(err)) } /** * @description pdf文件预览 * @param {String} params 文件预览url */ const viewPdf = (params) => { setIframeSrc(params) setPdfViewOPen(true) } /** * @description 文件下载 * @param {String} params 文件fileId */ const download = (params) => { let downloadLink = document.createElement("a"); downloadLink.href = `http://local.gunshiiot.com:18083/gunshiApp/xfflood/bzProjectManipulationRecord/file/download/${params}`; downloadLink.download = `${params.fileName}`; downloadLink.style.display = "none"; // 将链接添加到页面中 document.body.appendChild(downloadLink); // 模拟点击事件,开始下载 downloadLink.click(); } useEffect(()=>{ if (mode === "view" || mode === "edit") { getFileInfo(record) form.setFieldsValue({ ...record, tmEnd: record.tmEnd ? moment(record.tmEnd) : null, tmStart: record.tmStart ? moment(record.tmStart) : null }) } },[mode,record]) return ( <>