import React,{useEffect,useState,useMemo,useRef} from 'react'; import { Form, Button, Input, Row,Upload, Col, Table, DatePicker, InputNumber,message,Image,Modal,Typography ,Popconfirm } from 'antd'; import { DeleteOutlined,VideoCameraOutlined } from '@ant-design/icons'; import { formItemLayout, btnItemLayout } from '../../../components/crud/FormLayoutProps'; import apiurl from '../../../service/apiurl'; import NormalSelect from '../../../components/Form/NormalSelect'; import "./index.less" import moment from 'moment'; const { RangePicker } = DatePicker const { Dragger } = Upload; const url = "http://223.75.53.141:9100/gs-tsg" const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { const types = [ {label:"溢洪道淸障",value:1}, {label:"除草除杂",value:2}, {label:"设备养护",value:3}, {label:"环境清洁",value:4}, {label:"危险提示",value:5}, {label:"其他",value:6}, ] const [form] = Form.useForm(); const [imgloading, setImgLoading] = useState(false) const [imgfileList, setImgFileList] = useState([]) //上传文件列表 const [videoFileList, setVideoFileList] = useState([]) //上传文件列表 const [videoLoading, setVideoLoading] = useState(false) const [videoOpen, setVideoOpen] = useState(false) const [videoParams, setVideoParams] = useState({}) const videoDeleteFile = (fileId) => { let filterFile = videoFileList.filter(item => item.response?.data?.fileId !== fileId); setVideoFileList(filterFile) } const videoBeforeUpload = (file) => { if (videoFileList.length == 1) { message.warning('只能上传一个视频!'); return false; } const isJpgOrPng = file.type === 'video/mp4' || file.type === 'video/avi'; if (!isJpgOrPng) { message.error('请上传视频格式的文件!'); } const isLt2M = file.size / 1024 / 1024 < 50; if (!isLt2M) { message.error('视频大小需小于50M!'); } return isJpgOrPng && isLt2M ? true : Upload.LIST_IGNORE; }; const videoFileChange = (info) => { if (info.file.status === "done") { setVideoLoading(false); setVideoFileList(info.fileList) } if (info.file.status === "uploading") { setVideoLoading(true); } if (info.file.status === "error") { message.error("文件上传失败") setVideoLoading(false); } setVideoFileList(info.fileList) } const onfinish = (values) => { const userId = localStorage.getItem('userId') values.reportTime = values.reportTime?moment(values.reportTime).format("YYYY-MM-DD 00:00:00"):'' let imgFiles = imgfileList.map(item => ({fileId:item.response?.data?.fileId}) ) let videoFiles = videoFileList.map(item => ({ fileId: item.response?.data?.fileId })) values.pics = imgFiles; values.videos = videoFiles; values.userId = userId if (mode === 'edit') { values.id = record.id; onEdit(apiurl.rcgl.wxyh.edit,values) } if (mode === 'save') { onSave(apiurl.rcgl.wxyh.save,values) } } const imgbeforeUpload = (file) => { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png'; if (!isJpgOrPng) { message.error('请上传图片格式的文件!'); } const isLt2M = file.size / 1024 / 1024 < 5; if (!isLt2M) { message.error('图片大小需小于5M!'); } return isJpgOrPng && isLt2M ? true : Upload.LIST_IGNORE; }; const imgdeleteFile = (fileId) => { let filterFile = imgfileList.filter(item => item.response?.data?.fileId !== fileId); setImgFileList(filterFile) } const imgfileChange = (info) => { console.log("info",info); if (info.file.status === "done") { setImgLoading(false); } if (info.file.status === "uploading") { setImgLoading(true); } if (info.file.status === "error") { message.error("文件上传失败") setImgLoading(false); } setImgFileList(info.fileList) } useEffect(() => { if (mode != 'save') { const imgFile = record?.pics?.map(o => ({ name: o.fileName, response: { data: { filePath: o.filePath, fileId:o.fileId } }, })) const videoFile = record?.videos?.map(o => ({ name: o.fileName, response: { data: { filePath: o.filePath, fileId:o.fileId } }, })) setImgFileList(imgFile) setVideoFileList(videoFile) } }, [record, mode]) useEffect(() => { const name = localStorage.getItem('userName') form.setFieldValue("reportUserName", name) }, []) return ( <>