From 72b326c6e0bbd3e5a9f10dbc0c70f83bb6e7dc37 Mon Sep 17 00:00:00 2001 From: tangjie <122778500@qq.com> Date: Thu, 27 Aug 2026 17:20:58 +0800 Subject: [PATCH] fix --- jjb.config.js | 4 +- public/安全评价风险分析记录表模板.docx | Bin 16819 -> 16964 bytes src/components/AttachmentUpload/index.js | 59 ++++++++++++++++-- .../EvalProject/Create/index.js | 35 +++++++---- .../ProjectFlow/RiskAnalysisContent.js | 3 +- 5 files changed, 81 insertions(+), 20 deletions(-) diff --git a/jjb.config.js b/jjb.config.js index 5336dea..df4cc10 100644 --- a/jjb.config.js +++ b/jjb.config.js @@ -12,9 +12,9 @@ module.exports = { // 可通过环境变量覆盖: SAFETY_EVAL_API_HOST=http://192.168.x.x:8095 //API_HOST: "http://localhost:80", - // API_HOST: "http://192.168.0.134", + API_HOST: "http://192.168.0.134", // API_HOST: "http://192.168.0.150", //太浅 - API_HOST: "https://gbs-gateway.qhdsafety.com", + // API_HOST: "https://gbs-gateway.qhdsafety.com", // API_HOST: "http://192.168.0.103", //huwei }, production: { diff --git a/public/安全评价风险分析记录表模板.docx b/public/安全评价风险分析记录表模板.docx index 7e8abf8bc079706feddbc5723af7ec66ea65c9d4..f6d606f07ffb41c5c4f398f9404df87c9e2763eb 100644 GIT binary patch delta 9428 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 diff --git a/src/components/AttachmentUpload/index.js b/src/components/AttachmentUpload/index.js index 1af5035..397d81c 100644 --- a/src/components/AttachmentUpload/index.js +++ b/src/components/AttachmentUpload/index.js @@ -1,11 +1,61 @@ import { Form, Image, Upload, message } from "antd"; -import { useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { PlusOutlined } from "@ant-design/icons"; + +/** 批量上传接口:一次请求上传 1~N 个文件,表单字段名为 files */ +const BATCH_UPLOAD_ACTION = `${window.process.env.app.API_HOST}/safetyEval/file/upload/batch`; + const isImage = (url) => /\.(png|jpe?g|gif|bmp|webp|svg)(\?.*)?$/i.test(url || ""); export default function AttachmentUpload({ name, label, disabled, maxCount, accept, extra ,rules, style, keepOriginFile }) { const [previewImage, setPreviewImage] = useState(""); + // 同一次选择的文件先入队,等微任务结束后合并为一个批量请求 + const queueRef = useRef([]); + const timerRef = useRef(null); + + const flushUpload = () => { + timerRef.current = null; + const batch = queueRef.current.splice(0); + if (!batch.length) return; + const failAll = (msg) => { + message.error(msg); + batch.forEach(({ file, onError }) => onError(new Error(msg))); + }; + const formData = new FormData(); + batch.forEach(({ file }) => formData.append("files", file)); + fetch(BATCH_UPLOAD_ACTION, { + method: "POST", + headers: { token: sessionStorage.getItem("token") || "" }, + body: formData, + }) + .then((res) => res.json()) + .then((json) => { + if (json?.success === false) { + failAll(json.errMessage || json.message || "附件上传失败"); + return; + } + const list = json?.data || []; + // 后端保证响应数组与请求文件顺序一致,按下标一一对应 + batch.forEach(({ file, onDone, onError }, index) => { + const item = list[index]; + if (!item) { + onError(new Error(`${file.name} 上传失败`)); + return; + } + // 保留 { data } 结构,兼容表单取值 file.response?.data?.url + onDone({ data: item }, file); + }); + }) + .catch((err) => failAll(err?.message || "附件上传失败")); + }; + + useEffect(() => () => clearTimeout(timerRef.current), []); + + const customRequest = ({ file, onSuccess: onDone, onError }) => { + queueRef.current.push({ file, onDone, onError }); + if (!timerRef.current) timerRef.current = setTimeout(flushUpload, 0); + }; return ( <> @@ -55,12 +105,11 @@ export default function AttachmentUpload({ name, label, disabled, maxCount, acce 1} + customRequest={customRequest} maxCount={maxCount} accept={accept} - action={`${window.process.env.app.API_HOST}/safetyEval/file/upload`} beforeUpload={(file) => { if (!accept) return true; const rules = accept.split(",").map((e) => e.trim().toLowerCase()); diff --git a/src/pages/Container/SafetyEvalBusiness/EvalProject/Create/index.js b/src/pages/Container/SafetyEvalBusiness/EvalProject/Create/index.js index cdd08fe..16186e8 100644 --- a/src/pages/Container/SafetyEvalBusiness/EvalProject/Create/index.js +++ b/src/pages/Container/SafetyEvalBusiness/EvalProject/Create/index.js @@ -21,6 +21,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; import useIndustryOptions from "~/hooks/useIndustryOptions"; import BaiduMapPicker from "~/components/BaiduMapPicker"; import { district } from "~/enumerate/constant"; +import {REGISTER_ENGINEER_CATEGORY_OPTIONS} from '~/enumerate/enterpriseOptions'; import { phoneRule } from "~/utils/validators"; import { renderCapabilityList } from "~/utils"; import StaffPickerModal from "./StaffPickerModal"; @@ -52,6 +53,9 @@ const EvalProjectCreate = (props) => { } = props.safetyEvalBusiness; const industryOptions = useIndustryOptions(); + // 是否法定项目选“否”(仅机构内部管理)时,行业类型默认全选;编辑/查看模式不联动,避免覆盖回填数据 + const isStatutory = Form.useWatch("isStatutory", form); + useEffect(() => { props.customerPage({ current: 1, size: 999 }); @@ -326,11 +330,25 @@ const EvalProjectCreate = (props) => { + + + { + form.setFieldValue('industryCode', '') + }}> + 是,纳入监管端监管 + 否,仅机构内部管理 + + + ({ value: value ? String(value).split(",") : [], })} @@ -342,20 +360,13 @@ const EvalProjectCreate = (props) => { mode="multiple" placeholder="请选择" allowClear - options={industryOptions} + options={isStatutory?industryOptions:REGISTER_ENGINEER_CATEGORY_OPTIONS} /> - - - 是,纳入监管端监管 - 否,仅机构内部管理 - + + diff --git a/src/pages/Container/SafetyEvalBusiness/ProjectFlow/RiskAnalysisContent.js b/src/pages/Container/SafetyEvalBusiness/ProjectFlow/RiskAnalysisContent.js index bdf6bb1..77b76a2 100644 --- a/src/pages/Container/SafetyEvalBusiness/ProjectFlow/RiskAnalysisContent.js +++ b/src/pages/Container/SafetyEvalBusiness/ProjectFlow/RiskAnalysisContent.js @@ -32,7 +32,7 @@ const { router } = tools; const { TextArea } = Input; /** 风险分析记录表 docx 模板 */ -const RISK_TEMPLATE_URL = "https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com/jjb/6a86d268e4b072649bfb8a84.docx"; +const RISK_TEMPLATE_URL = "https://gbs-cqaqpj.oss-cn-beijing.aliyuncs.com/jjb/6a8ffce69f4622759bcd7ba3.docx"; /** 两选项单选回显:1 勾选前者,2 勾选后者 */ const twoCheck = (val, yes, no) => @@ -233,6 +233,7 @@ const RiskAnalysisContent = ({ readOnly, ...props }) => { RISK_LEVEL_CHECK[values.riskLevelCode] || "□ 低度 □ 中度 □ 高度", signContractCheck: twoCheck(values.signContractCode, "签合同", "不签合同"), participantsText: signTokens.join(""), + controlledNumber: evalProjectDetailData.controlledNumber, }; try { await fillDocxTemplate(