import React,{useEffect,useState,useMemo} from 'react'; import { Form, Button, Input, Row, Col, DatePicker, Upload,message,Image,Modal } from 'antd'; import { DeleteOutlined,FileWordOutlined,FilePdfOutlined,FileZipOutlined,FilePptOutlined,FileExcelOutlined } from '@ant-design/icons'; import { formItemLayout, btnItemLayout } from '../../../../components/crud/FormLayoutProps'; import { getDictService } from '../../../../service/SelectValue' import { validlgtd , validlttd } from '../../../../utils/validators'; import apiurl from '../../../../service/apiurl'; import {mobile} from '../../../../utils/validators' import AdcdTreeSelect from '../../../../components/Form/AdcdTreeSelect' import NormalSelect from '../../../../components/Form/NormalSelect'; import { config } from '../../../../config'; import moment from 'moment'; import { createCrudService } from '../../../../components/crud/_'; const { Dragger } = Upload; const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => { const goodsOptions = [ { label: "抢险物资", value: 1, }, { label: "救生器材", value: 2, } ] const unitOptions = [ { label: "个", value: 1, }, { label: "件", value: 2, }, { label: "米", value: 3, }, { label: "把", value: 4, }, { label: "台", value: 5, }, { label: "套", value: 6, }, { label: "副", value: 7, }, { label: "箱", value: 8, }, { label: "卷", value: 9, }, { label: "立方米", value: 10, }, { label: "平方米", value: 11, } ] console.log("record",record); 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 = (values) => { if (mode === 'edit') { let oldFiles = fileList.map(item => item.response?.data?.fileId ) values.fileIds = oldFiles; values.goodsId = record.goodsId; // values.fileIds = fileIds onEdit(apiurl.fxzb.qswl.zq.edit,values) } if (mode === 'save') { values.fileIds = fileIds // debugger onSave(apiurl.fxzb.qswl.zq.save,values) } if (mode === "similarSave") { let oldFiles = fileList.map(item => item.response?.data?.fileId ) values.fileIds = oldFiles; onSave(apiurl.fxzb.qswl.zq.save,values) } } /** * @description 删除上传的图片 * @param {string} id 删除的id */ const deleteFile = (fileId) => { console.log(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) } /** * @description 获取查看时文件 * @param {*} type * @returns */ const getFileInfo = (params) => { createCrudService(apiurl.fxzb.qswl.zq.getFile).delGet({ goodsId: params.goodsId }).then(res => { if (res.code === 200) { let fileArr = res.data.map(item => { return { name: item.fileName, response: { data: { filePath: item.filePath, fileId:item.fileId } }, } }) setFileList(fileArr) } }) } /** * @description 文件下载 * @param {String} params 文件fileId */ const download = (params) => { let downloadLink = document.createElement("a"); downloadLink.href = `http://local.gunshiiot.com:18083/gunshiApp/xyt/rescue/goods/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) => { setIframeSrc(params) setPdfViewOPen(true) } useEffect(()=>{ if ((mode === "view" || mode === "edit" || mode === "similarSave") && record.goodsId) { getFileInfo(record) } }, [record, mode]) return ( <>