import React, { useState, useEffect } from 'react' import { Row, Col, Form, Input, DatePicker, Button, Upload, message, Modal } from "antd" import { PaperClipOutlined, DeleteOutlined } from '@ant-design/icons'; import NormalSelect from '../../../../../components/Form/NormalSelect'; import { formItemLayout } from '../../../../../components/crud/FormLayoutProps' import apiurl from '../../../../../service/apiurl'; import { httpget2, httppost2 } from '../../../../../utils/request'; import moment from 'moment' import "./index.less" export default function ProjectBasciInfo() { const [form] = Form.useForm(); const [data, setData] = useState() const [fileList, setFileList] = useState([]) //上传文件列表 const [fileIds, setFileIds] = useState([]) const [loading, setLoading] = useState(false) const [iframeId, setIframeId] = useState('') const [perviewOpen, setPerviewOpen] = useState(false) const [skdisabled, setSkDisabled] = useState(true) const optionsLevel = [ { label: "大 (1)型", value: "1" }, { label: "大 (2)型", value: "2" }, { label: "中型", value: "3" }, { label: "小 (1)型", value: "4" }, { label: "小 (2)型", value: "5" }, { label: "其他", value: "9" } ] const getData = async () => { try { const res = await httppost2(apiurl.dataResourcesCenter.projectAndWater.shuikuBasicinfo.detail) // debugger; if (res.code == 200) { form.setFieldsValue(res.data[0]) setData(res.data[0]) if (res.data[0].files.length > 0) { getFileInfo(res.data[0]?.files[0]?.fileId) } } } catch (error) { console.log(error); } } const beforeUpload = (file) => { const isPdf = file.type === 'application/pdf' if (!isPdf) { message.error("请上传pdf文件") } return isPdf } const fileChange = (info) => { let newFileList = [...info.fileList]; newFileList = newFileList.slice(-1); // 处理文件状态 newFileList = newFileList.map(file => { if (file.response) { return { ...file, status: 'done', // 确保状态正确 url: file.response.url, fileId: file.response.data?.fileId }; } return file; }); if (info.file.status === "done") { setLoading(false); message.success(`${info.file.name} 上传成功`); } if (info.file.status === "uploading") { setLoading(true); } if (info.file.status === "error") { message.error("文件上传失败") setLoading(false); } if (info?.file.type === "application/pdf") { let fileIds = info.fileList.map(file => { return file.response?.data?.fileId }) setFileIds(fileIds) setFileList(newFileList) } } const deleteFile = (fileId) => { let filterFile = fileList.filter(item => item.response?.data?.fileId !== fileId); setFileList(filterFile) } const onFinish = async (values) => { try { let oldFiles = fileList.map(item => ({ fileId: item.response?.data?.fileId })) // const values = form.getFieldsValue(); const params = { ...data, ...values, files: oldFiles } const res = await httppost2(apiurl.dataResourcesCenter.projectAndWater.shuikuBasicinfo.update, params) if (res.code == 200) { message.success("修改成功") setSkDisabled(true) getData() } } catch (error) { console.log(error); } } const getFileInfo = async (id) => { try { const res = await httpget2(`${apiurl.dataResourcesCenter.projectAndWater.shuikuBasicinfo.getFile}/${id}`) let obj = { name: res.data.fileName, response: { data: { filePath: res.data.filePath, fileId: res.data.fileId } }, } setFileList([obj]) } catch (error) { console.log(error); } } console.log('f', fileList); useEffect(() => { getData() }, []) return (
moment(dateString).format('YYYY-MM-DD HH:mm:ss')} getValueProps={value => ({ value: value ? moment(value) : undefined })} > moment(dateString).format('YYYY-MM-DD HH:mm:ss')} getValueProps={value => ({ value: value ? moment(value) : undefined })} > moment(dateString).format('YYYY-MM-DD HH:mm:ss')} getValueProps={value => ({ value: value ? moment(value) : undefined })} > {fileList.map(file => (
{ e.stopPropagation(); // 阻止触发上传 if (file.response?.data?.fileId) { setPerviewOpen(true); setIframeId(file.response.data.fileId); } }} > {file.name} {!skdisabled && ( { e.stopPropagation(); // 阻止触发上传 deleteFile(file.response?.data?.fileId); }} /> )}
))} {!skdisabled && fileList.length === 0 && ( )}
{ skdisabled ? :
}
{ setPerviewOpen(false) }} >