diff --git a/src/components/AttachmentUpload/index.js b/src/components/AttachmentUpload/index.js index 3fe8cb4..53b738a 100644 --- a/src/components/AttachmentUpload/index.js +++ b/src/components/AttachmentUpload/index.js @@ -4,57 +4,20 @@ import { PlusOutlined } from "@ant-design/icons"; const isImage = (url) => /\.(png|jpe?g|gif|bmp|webp|svg)(\?.*)?$/i.test(url || ""); -export default function AttachmentUpload({ name, label, disabled = false, maxCount, accept, extra ,rules, style }) { +function UploadWithAddon({ addon, disabled, maxCount, accept, fileList, onChange, id }) { const [previewImage, setPreviewImage] = useState(""); return ( <> - { - if (Array.isArray(value)) { - return { fileList: value }; - } - if (typeof value === "string" && value) { - try { - const parsed = JSON.parse(value); - if (Array.isArray(parsed)) { - return { fileList: parsed }; - } - } catch {} - return { - fileList: value.split(",").map((item) => ({ - url: item, - uid: item, - status: "done", - name: "附件", - })), - }; - } - return { fileList: [] }; - }} - getValueFromEvent={({ fileList }) => { - return ( - fileList?.map((file) => ({ - url: file.response?.data?.url || file.url, - uid: file.uid, - status: file.status, - name: file.name, - percent: file.percent, - })) || [] - ); - }} - > +
上传附件
-
- {previewImage && { - if (!visible) setPreviewImage(""); - }, - }} - />} + {addon ? ( +
+ {addon} +
+ ) : null} + + {previewImage && ( + { + if (!visible) setPreviewImage(""); + }, + }} + /> + )} ); } + +export default function AttachmentUpload({ + name, + label, + disabled = false, + maxCount, + accept, + extra, + rules, + style, + addon, +}) { + return ( + { + if (Array.isArray(value)) { + return { fileList: value }; + } + if (typeof value === "string" && value) { + try { + const parsed = JSON.parse(value); + if (Array.isArray(parsed)) { + return { fileList: parsed }; + } + } catch {} + return { + fileList: value.split(",").map((item) => ({ + url: item, + uid: item, + status: "done", + name: "附件", + })), + }; + } + return { fileList: [] }; + }} + getValueFromEvent={({ fileList }) => { + return ( + fileList?.map((file) => ({ + url: file.response?.data?.url || file.url, + uid: file.uid, + status: file.status, + name: file.name, + percent: file.percent, + })) || [] + ); + }} + > + + + ); +} diff --git a/src/pages/Container/SafetyEvalBusiness/ProjectFlow/SurveyContent.js b/src/pages/Container/SafetyEvalBusiness/ProjectFlow/SurveyContent.js index 13194d9..3cde032 100644 --- a/src/pages/Container/SafetyEvalBusiness/ProjectFlow/SurveyContent.js +++ b/src/pages/Container/SafetyEvalBusiness/ProjectFlow/SurveyContent.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from "react"; -import { Form, Button, Flex, Typography, Steps, Tag, Card, Table, message, Popover, Image } from "antd"; +import { Form, Button, Flex, Typography, Steps, Tag, Card, Table, message, Popover, Image, Checkbox } from "antd"; import { CheckCircleFilled, DownloadOutlined } from "@ant-design/icons"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { NS_SAFETY_EVAL_BUSINESS } from "~/enumerate/namespace"; @@ -160,6 +160,17 @@ const RectificationNoticePanel = ({ readOnly }) => ( accept=".pdf,.doc,.docx,.xls,.xlsx,.png,.jpg,.jpeg" disabled={readOnly} extra="支持 PDF、Word、Excel、PNG、JPG 格式,最多上传 10 个文件" + addon={ + (e.target.checked ? 1 : 0)} + getValueProps={(v) => ({ checked: Number(v) === 1 })} + > + 是否存在重大隐患 + + } /> ); @@ -235,7 +246,13 @@ const SurveyContent = ({ readOnly, ...props }) => { STAGES.forEach((s) => { values[s.key] = map[s.key] || []; }); - form.setFieldsValue(values); + const noticeItem = (res?.data || []).find( + (item) => item.attachTypeCode === "RECTIFICATION_NOTICE", + ); + form.setFieldsValue({ + ...values, + checkbox: Number(noticeItem?.checkbox) === 1 ? 1 : 0, + }); } }; @@ -306,6 +323,8 @@ const SurveyContent = ({ readOnly, ...props }) => { projectId, attachTypeCode: s.key, fileUrl: JSON.stringify(fileList), + checkbox: + s.key === "RECTIFICATION_NOTICE" ? Number(values.checkbox) || 0 : 0, }); } const res = await props.evalSurveySaveAttach(payload);