import React,{useEffect,useState,useMemo} from 'react'; import { Form, Button, Input, Row, Col, Table, DatePicker, Upload,message,Image,Modal } from 'antd'; import { DeleteOutlined,FileWordOutlined,FilePdfOutlined,FileZipOutlined,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 "./index.less" import moment from 'moment'; import { createCrudService } from '../../../../components/crud/_'; const {RangePicker} = DatePicker const url = "http://223.75.53.141:9100/gs-tsg" const ModalForm = ({ mode, record,onEdit,onSave,onSimilarSave }) => { console.log("record", record); const columns = [ { title: "序号", dataIndex: "index", width: 60, render: (text, record, index) => { index + 1} }, { title: '姓名', key: 'name', dataIndex: 'name', width: 200 }, { title: '性别', key: 'sex', dataIndex: 'sex', width: 60, render: (text, record) => { record.sex === "M" ? "男" : "女"} }, { title: '年龄', key: 'age', dataIndex: 'age', width: 60, }, { title: '工作单位', key: 'workUnit', dataIndex: 'workUnit', width: 150 }, { title: '职务', key: 'duty', dataIndex: 'duty', width: 150 }, { title: '联系方式', key: 'phone', dataIndex: 'phone', width: 150 }, ] const [form] = Form.useForm(); const [fileList, setFileList] = useState([]) //上传文件列表 const [iframeSrc, setIframeSrc] = useState('') const [pdfViewOPen, setPdfViewOPen] = useState(false) const [details, setDetails] = useState([]) const [serviceObjs, setServiceObjs] = useState([]) const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]); /** * @description 获取查看时文件 * @param {*} type * @returns */ const getFileInfo = (params) => { createCrudService(apiurl.fxzb.qsdw.zq.getFile).delGet({ teamId: params.teamId }).then(res => { if (res.code === 200) { let fileArr = res.data?.files.map(item => { return { name: item.fileName, response: { data: { filePath: item.filePath, fileId:item.fileId } }, } }) setFileList(fileArr) setDetails(res.data?.details) setServiceObjs(res.data?.serviceObjs) } }) } /** * @description 文件下载 * @param {String} params 文件fileId */ const download = (params) => { let downloadLink = document.createElement("a"); downloadLink.href = `http://223.75.53.141:83/gunshiApp/xfflood/rescue/team/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") && record.teamId ) { getFileInfo(record) } }, [record, mode]) useEffect(() => { let serviceObj let dateSo = [ moment(record.validStartDate), moment(record.validEndDate) ] if (serviceObjs?.length > 0) { serviceObj = serviceObjs.map(item => item.name).join() } form.setFieldsValue({...record,dateSo,serviceObjs:serviceObj}) }, [record,serviceObjs]) return ( <>