From 814738b466403f6086c4e057aa0d6dcde833509d Mon Sep 17 00:00:00 2001 From: dearLin <1261008090@qq.com> Date: Mon, 19 Jan 2026 18:08:04 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=E9=A1=B9=E7=9B=AE=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E8=B5=84=E8=B4=A8=E8=AF=81=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewProjectReviewUserModal/index.js | 64 +++-- .../ProjectFilingApplication/Add/index.js | 228 ++++++++++-------- .../ProjectFilingApplication/ReView/index.js | 5 +- .../UserChange/index.js | 14 +- 4 files changed, 180 insertions(+), 131 deletions(-) diff --git a/src/components/ViewProjectReviewUserModal/index.js b/src/components/ViewProjectReviewUserModal/index.js index 5821108..44b9ca7 100644 --- a/src/components/ViewProjectReviewUserModal/index.js +++ b/src/components/ViewProjectReviewUserModal/index.js @@ -10,11 +10,22 @@ import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace"; const ViewProjectReviewUserModal = (props) => { const [form] = Form.useForm(); + const [realData, setRealData] = useState([]); + const { loading: getFileLoading, getFile } = useGetFile(); const { tableProps } = useTable(props["userQualificationInfo"], { form, params: { - eqUserld: props.data.id, + eqUserId: props.data.userRealId ? props.data.userRealId : props.data.id, + }, + useStorageQueryCriteria: false, + onSuccess: async (data) => { + const list = data.list; + for (let i = 0; i < list.length; i++) { + const fileItems = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["159"], eqForeignKey: list[i].userCertificateId }); + list[i].files = fileItems; + } + setRealData(list); }, }); const [tableData, setTableData] = useState([]); @@ -57,31 +68,34 @@ const ViewProjectReviewUserModal = (props) => { dataSource: tableData.length > 0 ? tableData : tableProps.dataSource || [], }), [tableProps, tableData]); - return ( - 取消, - ]} - > - () }, + return ( + 取消, + ]} + > +
() }, - ]} - {...enhancedTableProps} - /> - - ); + ]} + {...enhancedTableProps} + dataSource={realData} + /> + + ); }; export default Connect([NS_QUALIFICATION_STATISTICS], true)(ViewProjectReviewUserModal); diff --git a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/Add/index.js b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/Add/index.js index 22493d9..ba97274 100644 --- a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/Add/index.js +++ b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/Add/index.js @@ -14,10 +14,10 @@ import Table from "zy-react-library/components/Table"; import Upload from "zy-react-library/components/Upload"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; -import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo"; import useDeleteFile from "zy-react-library/hooks/useDeleteFile"; import useGetFile from "zy-react-library/hooks/useGetFile"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo"; import useTable from "zy-react-library/hooks/useTable"; import useUploadFile from "zy-react-library/hooks/useUploadFile"; import { getLabelName, validatorEndTime } from "zy-react-library/utils"; @@ -29,7 +29,7 @@ function Add(props) { const query = useGetUrlQuery(); const [form] = Form.useForm(); const [userInfo, setUserInfo] = useState({}); - const [currentStep, setCurrentStep] = useState(1); + const [currentStep, setCurrentStep] = useState(2); const [formValues, setFormValues] = useState({}); const [projectFileAddCmdList, setProjectFileAddCmdList] = useState([]); // 项目资料 const [usercontentAddCmdList, setUsercontentAddCmdList] = useState([]); // 项目审核人员 @@ -152,9 +152,9 @@ const StepOneComponent = (props) => { const { data } = id ? await props["userListByDeptId"]({ id }) : []; // 去重 const uniqueUsers = data.filter((item, index, self) => - index === self.findIndex((t) => ( + index === self.findIndex(t => ( t.userId === item.userId && t.userName === item.userName - )) + )), ); setUserList(uniqueUsers); }; @@ -240,11 +240,16 @@ const StepOneComponent = (props) => { { label: "项目基础信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { name: "projectName", label: "项目名称" }, { - name: "userId", label: "项目负责人", render: ( + name: "userId", + label: "项目负责人", + render: ( { form.setFieldValue("userName", label); }} @@ -271,7 +276,7 @@ const StepOneComponent = (props) => { } }} /> - ) + ), }, { name: "userName", label: "项目负责人", onlyForLabel: true }, { name: "initiationTime", label: "立项时间", render: FORM_ITEM_RENDER_ENUM.DATE }, @@ -285,18 +290,21 @@ const StepOneComponent = (props) => { { name: "specialFlag", label: "是否包含特殊作业", labelCol: { span: 8 }, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] }, { label: "项目审核信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { - name: "qualificationsTypeId", label: "项目类别", span: 24, wrapperCol: { span: 5 }, + name: "qualificationsTypeId", + label: "项目类别", + span: 24, + wrapperCol: { span: 5 }, items: qualificationsTypeList, render: FORM_ITEM_RENDER_ENUM.SELECT, itemsField: { valueKey: "qualificationsTypeId", labelKey: "qualificationsTypeName" }, componentProps: { onChange: (event) => { - form.setFieldValue("qualificationsTypeName",getLabelName({ + form.setFieldValue("qualificationsTypeName", getLabelName({ list: qualificationsTypeList, status: event, idKey: "qualificationsTypeId", nameKey: "qualificationsTypeName", - })) + })); if (form.getFieldValue("isLocalCompany") === 0) { getDeptList(event); } @@ -328,7 +336,12 @@ const StepOneComponent = (props) => { { name: "qualificationsTypeName", label: "项目类别名称", onlyForLabel: true }, { name: "subcontractFlag", label: "是否存在分包项目", span: 24, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] }, { - name: "isLocalCompany", label: "是否为属地公司推荐", span: 24, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], componentProps: { + name: "isLocalCompany", + label: "是否为属地公司推荐", + span: 24, + render: FORM_ITEM_RENDER_ENUM.RADIO, + items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], + componentProps: { onChange: (event) => { if (event.target.value === 0) { getDeptList(qualificationsTypeId); @@ -346,7 +359,7 @@ const StepOneComponent = (props) => { manageUserNames: "", }); }, - } + }, }, { span: 24, @@ -358,104 +371,104 @@ const StepOneComponent = (props) => { }, ...(isLocalCompany === 1 ? [ - { - name: "recommendCorpId", - label: "推荐属地公司名称", - labelCol: { span: 6 }, - items: corpInfoList, - render: FORM_ITEM_RENDER_ENUM.SELECT, - itemsField: { valueKey: "id", labelKey: "corpName" }, - componentProps: { - onChange: (event) => { - const label = corpInfoList.find(item => item.id === event)?.corpName; - form.setFieldValue("recommendCorpName", label); - form.setFieldsValue({ - recommendDeptId: "", - recommendDeptName: "", - recommendUserIds: [], - recommendUserNames: "", - }); - }, - }, - }, - { name: "recommendCorpName", label: "推荐属地公司名称", onlyForLabel: true }, - { - name: "recommendDeptId", - labelCol: { span: 6 }, - label: "推荐属地公司部门", - render: ( - form.setFieldValue("recommendDeptName", label)} - onChange={() => { + { + name: "recommendCorpId", + label: "推荐属地公司名称", + labelCol: { span: 6 }, + items: corpInfoList, + render: FORM_ITEM_RENDER_ENUM.SELECT, + itemsField: { valueKey: "id", labelKey: "corpName" }, + componentProps: { + onChange: (event) => { + const label = corpInfoList.find(item => item.id === event)?.corpName; + form.setFieldValue("recommendCorpName", label); form.setFieldsValue({ + recommendDeptId: "", + recommendDeptName: "", recommendUserIds: [], recommendUserNames: "", }); - }} - /> - ), - }, - { name: "recommendDeptName", label: "推荐属地公司部门", onlyForLabel: true }, - { - name: "recommendUserIds", - label: "推荐属地公司人员", - span: 8, - labelCol: { span: 6 }, - wrapperCol: { span: 19 }, - render: ( - form.setFieldValue("recommendUserNames", label)} - mode="multiple" - /> - ), - }, - { name: "recommendUserNames", label: "推荐属地公司人员", onlyForLabel: true }, - ] + }, + }, + }, + { name: "recommendCorpName", label: "推荐属地公司名称", onlyForLabel: true }, + { + name: "recommendDeptId", + labelCol: { span: 6 }, + label: "推荐属地公司部门", + render: ( + form.setFieldValue("recommendDeptName", label)} + onChange={() => { + form.setFieldsValue({ + recommendUserIds: [], + recommendUserNames: "", + }); + }} + /> + ), + }, + { name: "recommendDeptName", label: "推荐属地公司部门", onlyForLabel: true }, + { + name: "recommendUserIds", + label: "推荐属地公司人员", + span: 8, + labelCol: { span: 6 }, + wrapperCol: { span: 19 }, + render: ( + form.setFieldValue("recommendUserNames", label)} + mode="multiple" + /> + ), + }, + { name: "recommendUserNames", label: "推荐属地公司人员", onlyForLabel: true }, + ] : [ - { - name: "manageDeptId", - labelCol: { span: 5 }, - label: "选择主管部门", - render: FORM_ITEM_RENDER_ENUM.SELECT, - items: deptList, - itemsField: { valueKey: "deptId", labelKey: "deptName" }, - componentProps: { - onChange: (event) => { - const label = deptList.find(item => item.deptId === event)?.deptName; - form.setFieldValue("manageDeptName", label); - form.setFieldsValue({ - manageUserIds: [], - recommendUserNames: "", - }); - getUserList(event); + { + name: "manageDeptId", + labelCol: { span: 5 }, + label: "选择主管部门", + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: deptList, + itemsField: { valueKey: "deptId", labelKey: "deptName" }, + componentProps: { + onChange: (event) => { + const label = deptList.find(item => item.deptId === event)?.deptName; + form.setFieldValue("manageDeptName", label); + form.setFieldsValue({ + manageUserIds: [], + recommendUserNames: "", + }); + getUserList(event); + }, }, }, - }, - { name: "manageDeptName", label: "选择主管部门名称", onlyForLabel: true }, - { - name: "manageUserIds", - label: "主管部门审核人", - span: 16, - labelCol: { span: 3 }, - wrapperCol: { span: 8 }, - render: FORM_ITEM_RENDER_ENUM.SELECT, - items: userList, - itemsField: { valueKey: "userId", labelKey: "userName" }, - componentProps: { - mode: "multiple", - onChange: (event) => { - const labels = event - .map(userId => userList.find(item => item.userId === userId)?.userName) - .filter(Boolean); - form.setFieldValue("manageUserNames", labels); + { name: "manageDeptName", label: "选择主管部门名称", onlyForLabel: true }, + { + name: "manageUserIds", + label: "主管部门审核人", + span: 16, + labelCol: { span: 3 }, + wrapperCol: { span: 8 }, + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: userList, + itemsField: { valueKey: "userId", labelKey: "userName" }, + componentProps: { + mode: "multiple", + onChange: (event) => { + const labels = event + .map(userId => userList.find(item => item.userId === userId)?.userName) + .filter(Boolean); + form.setFieldValue("manageUserNames", labels); + }, }, }, - }, - { name: "manageUserNames", label: "主管部门审核人名称", onlyForLabel: true }, - ]), + { name: "manageUserNames", label: "主管部门审核人名称", onlyForLabel: true }, + ]), { render: (
@@ -518,7 +531,10 @@ const StepOneComponent = (props) => { }, { name: "approvalUserNames", label: "项目执行属地公司人员名称", onlyForLabel: true }, { - name: "projectFiles", label: "安全管理协议", span: 24, render: ( + name: "projectFiles", + label: "安全管理协议", + span: 24, + render: ( { form.setFieldValue("deleteProjectFileAddCmdList", [...(form.getFieldValue("deleteProjectFileAddCmdList") || []), file]); }} /> - ) + ), }, { name: "deleteProjectFileAddCmdList", label: "删除的安全管理协议", onlyForLabel: true }, { name: "agreementFileUuid", label: "安全协议uuid", onlyForLabel: true }, @@ -564,7 +580,7 @@ const StepTwoComponent = (props) => { const [viewProjectReviewUserModalData, setViewProjectReviewUserModalData] = useState({}); // 查看安全人员证书列表 const { loading: getFileLoading, getFile } = useGetFile(); const [chooseFilsListModalOpen, setChooseFilsListModalOpen] = useState(false); - const [setChooseFilsListModalData] = useState({}); + const [, setChooseFilsListModalData] = useState([]); const getData = async () => { for (let i = 0; i < projectFileList.length; i++) { const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["148"], eqForeignKey: projectFileList[i].projectFileId }); @@ -656,6 +672,11 @@ const StepTwoComponent = (props) => { message.error(`请新增项目相关资料`); return; } + if (uploadFileModalData.length === 0) { + message.error(`请新增项目相关资料`); + return; + } + if (usercontentList.length === 0) { message.error(`请新增项目人员`); return; @@ -868,6 +889,7 @@ const StepTwoComponent = (props) => { {chooseFilsListModalOpen && ( { setChooseFilsListModalOpen(false); diff --git a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js index 23d79b7..5fb4148 100644 --- a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js +++ b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js @@ -367,7 +367,8 @@ function Review(props) { onClick={() => { setViewProjectReviewUserModalOpen(true); setViewProjectReviewUserModalData({ - ...record + ...record, + userRealId: record.userId, }); }} > @@ -421,7 +422,7 @@ function Review(props) { { title: "部门", dataIndex: "departmentName" }, { title: "姓名", dataIndex: "userName" }, { title: "时间", dataIndex: "approvalTime" }, - { title: "审核结果", dataIndex: "approvalStatus", render: (_, record) => getLabelName({ list: [{ name: record.auditType===2?"确认中":"审核中", bianma: "1" }, { name: record.auditType===2?"已确认":"已通过", bianma: "2" }, { name: "已驳回", bianma: "3" }], status: record.approvalStatus }) }, + { title: "审核结果", dataIndex: "approvalStatus", render: (_, record) => getLabelName({ list: [{ name: record.auditType === 2 ? "确认中" : "审核中", bianma: "1" }, { name: record.auditType === 2 ? "已确认" : "已通过", bianma: "2" }, { name: "已驳回", bianma: "3" }], status: record.approvalStatus }) }, ]} />
diff --git a/src/pages/Container/Supervision/ProjectReview/ProjectFilingInformation/UserChange/index.js b/src/pages/Container/Supervision/ProjectReview/ProjectFilingInformation/UserChange/index.js index 2bce0db..c9b8f0f 100644 --- a/src/pages/Container/Supervision/ProjectReview/ProjectFilingInformation/UserChange/index.js +++ b/src/pages/Container/Supervision/ProjectReview/ProjectFilingInformation/UserChange/index.js @@ -8,6 +8,7 @@ import Search from "zy-react-library/components/Search"; import Table from "zy-react-library/components/Table"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useTable from "zy-react-library/hooks/useTable"; +import ViewProjectReviewUserModal from "~/components/ViewProjectReviewUserModal"; import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace"; function UserChange(props) { @@ -16,6 +17,8 @@ function UserChange(props) { const { tableProps: allData } = useTable(props["projectUserList"], { params: { eqProjectId: query.id, pageIndex: 1, pageSize: 999999 } }); const [usercontentOpen, setUsercontentOpen] = useState(false); // 选择项目审核人员弹窗显示 const [fetchUserList, setFetchUserList] = useState([]); // 已存在的项目人员数据 + const [viewProjectReviewUserModalOpen, setViewProjectReviewUserModalOpen] = useState(false); + const [viewProjectReviewUserModalData, setViewProjectReviewUserModalData] = useState({}); // 查看安全人员证书列表 const onDelete = (record) => { Modal.confirm({ @@ -102,6 +105,11 @@ function UserChange(props) {