From 1ebc8cdeec8dab9ee8cb9e7ab5880910febdd05d Mon Sep 17 00:00:00 2001
From: LiuJiaNan <15703339975@163.com>
Date: Tue, 3 Feb 2026 14:57:43 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=EF=BC=9A14354=E3=80=81143?=
=?UTF-8?q?53=E3=80=8114345=E3=80=8114344=E3=80=8114338=E3=80=8114337?=
=?UTF-8?q?=E3=80=8114331=E3=80=8114324=E3=80=8114315=E3=80=8114289?=
=?UTF-8?q?=E3=80=8113543=E3=80=8113499=E3=80=8113489?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
src/api/qualificationStatistics/index.js | 5 +-
.../ViewProjectReviewUserModal/index.js | 262 ++++++++++++++----
.../ProjectFilingApplication/Add/index.js | 26 +-
.../ProjectFilingApplication/List/index.js | 2 +-
.../ProjectFilingApplication/ReView/index.js | 26 +-
.../ProjectFilingApplicationTwo/List/index.js | 2 +-
.../ProjectApproval/Subcontract/List/index.js | 1 +
.../Qualification/ViewInfo/index.js | 4 +-
9 files changed, 244 insertions(+), 86 deletions(-)
diff --git a/package.json b/package.json
index 407dc18..c70777e 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
"lodash-es": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "zy-react-library": "^1.1.32"
+ "zy-react-library": "^1.1.42"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",
diff --git a/src/api/qualificationStatistics/index.js b/src/api/qualificationStatistics/index.js
index 2b571f5..5eeeb2a 100644
--- a/src/api/qualificationStatistics/index.js
+++ b/src/api/qualificationStatistics/index.js
@@ -28,9 +28,12 @@ export const projectUpdate = declareRequest(
"qualificationStatisticsLoading",
`Put > @/xgfManager/project/edit`,
);
-export const userQualificationInfo = declareRequest(
+export const userQualificationList = declareRequest(
`Post > @/certificate/userCertificate/listPage`,
);
+export const userQualificationInfo = declareRequest(
+ `Get > /certificate/userCertificate/getInfoById/{id}`,
+);
export const projectDetail = declareRequest(
"qualificationStatisticsLoading",
`Get > /xgfManager/project/{id}`,
diff --git a/src/components/ViewProjectReviewUserModal/index.js b/src/components/ViewProjectReviewUserModal/index.js
index 44b9ca7..2fc515f 100644
--- a/src/components/ViewProjectReviewUserModal/index.js
+++ b/src/components/ViewProjectReviewUserModal/index.js
@@ -1,72 +1,139 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
-import { Button, Form, Modal } from "antd";
-import { useEffect, useMemo, useRef, useState } from "react";
+import { Button, Descriptions, Divider, Form, Modal } from "antd";
+import { useEffect, useState } from "react";
+import PreviewImg from "zy-react-library/components/PreviewImg";
+import Search from "zy-react-library/components/Search";
+import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import Table from "zy-react-library/components/Table";
import TooltipPreviewImg from "zy-react-library/components/TooltipPreviewImg";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import useGetFile from "zy-react-library/hooks/useGetFile";
import useTable from "zy-react-library/hooks/useTable";
+import { getLabelName } from "zy-react-library/utils";
import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
+const EMPLOYMENT_STATUS_ENUM = [
+ { label: "离职", value: 0 },
+ { label: "在职", value: 1 },
+ { label: "信息变更中", value: 2 },
+ { label: "未入职", value: 3 },
+ { label: "实习生", value: 4 },
+ { label: "实习结束", value: 5 },
+ { label: "退休", value: 6 },
+ { label: "劳务派遣", value: 7 },
+ { label: "劳务派遣结束", value: 8 },
+ { label: "入职待审核", value: 11 },
+ { label: "离职待审核", value: 10 },
+];
const ViewProjectReviewUserModal = (props) => {
const [form] = Form.useForm();
const [realData, setRealData] = useState([]);
+ const [viewInfoModalVisible, setViewInfoModalVisible] = useState(false);
+ const [currentId, setCurrentId] = useState("");
const { loading: getFileLoading, getFile } = useGetFile();
- const { tableProps } = useTable(props["userQualificationInfo"], {
+ const { tableProps, getData } = useTable(props["userQualificationList"], {
form,
params: {
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;
- }
+ const list = await getFile({
+ single: false,
+ dataSource: data.list,
+ foreignKey: "userCertificateId",
+ eqType: UPLOAD_FILE_TYPE_ENUM["159"],
+ });
setRealData(list);
},
});
- const [tableData, setTableData] = useState([]);
- const hasFetchedRef = useRef(false);
+
+ return (
+
+
取消,
+ ]}
+ >
+ ) },
+ ]}
+ form={form}
+ onFinish={getData}
+ />
+ `${record.certificateDateStart}至${record.certificateDateEnd}`,
+ },
+ { title: "图片", dataIndex: "files", render: (_, record) => () },
+ {
+ title: "操作",
+ width: 100,
+ fixed: "right",
+ render: (_, record) => (
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ dataSource={realData}
+ loading={getFileLoading || tableProps.loading}
+ />
+
+ {viewInfoModalVisible && (
+ {
+ setViewInfoModalVisible(false);
+ setCurrentId("");
+ }}
+ />
+ )}
+
+ );
+};
+
+const ViewInfoModalComponent = (props) => {
+ const [info, setInfo] = useState({});
+
+ const { getFile } = useGetFile();
+
+ const getData = async () => {
+ const { data } = await props["userQualificationInfo"]({ id: props.id });
+ const fileItems = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["159"], eqForeignKey: data.userCertificateId });
+ console.log(fileItems);
+ setInfo({ ...data, files: fileItems });
+ };
+
useEffect(() => {
- // 只在第一次获取数据时执行,或者数据真正变化时
- if (tableProps.dataSource
- && tableProps.dataSource.length > 0
- && !getFileLoading
- && !hasFetchedRef.current) {
- hasFetchedRef.current = true;
-
- const fetchFiles = async () => {
- const dataWithFiles = await Promise.all(
- tableProps.dataSource.map(async (item) => {
- try {
- const files = await getFile({
- eqType: UPLOAD_FILE_TYPE_ENUM["6"],
- eqForeignKey: item.userId,
- });
- return { ...item, files: files || [] };
- }
- catch (error) {
- console.error("获取文件失败:", error);
- return { ...item, files: [] };
- }
- }),
- );
-
- setTableData(dataWithFiles);
- };
-
- fetchFiles();
- }
- }, [tableProps.dataSource, getFileLoading, getFile]);
-
- // 使用 useMemo 避免重复计算
- const enhancedTableProps = useMemo(() => ({
- ...tableProps,
- dataSource: tableData.length > 0 ? tableData : tableProps.dataSource || [],
- }), [tableProps, tableData]);
+ getData();
+ }, []);
return (
{
,
]}
>
- () },
-
+ 人员信息
+
+ 证书信息
+ {
+ info.type === "tezhongzuoye" && (
+ ) },
+ ]}
+ />
+ )
+ }
+ {
+ info.type === "tzsbczry" && (
+ ) },
+ ]}
+ />
+ )
+ }
+ {
+ info.type === "zyfzr" && (
+ ) },
+ ]}
+ />
+ )
+ }
+ {
+ info.type === "aqscglry" && (
+ ) },
+ ]}
+ />
+ )
+ }
);
};
+const ViewInfoModal = Connect([NS_QUALIFICATION_STATISTICS], true)(ViewInfoModalComponent);
+
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 d8aac11..f7bbceb 100644
--- a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/Add/index.js
+++ b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/Add/index.js
@@ -29,6 +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(1);
const [formValues, setFormValues] = useState({});
const [projectFileAddCmdList, setProjectFileAddCmdList] = useState([]); // 项目资料
@@ -83,7 +84,7 @@ function Add(props) {
}, []);
return (
-
+
<>
{currentStep === 1
&& (
@@ -226,7 +227,7 @@ const StepOneComponent = (props) => {
}, [props.formValues]);
return (
{
{ name: "chooseForm", label: "项目选取形式", render: form.setFieldValue("chooseFormName", label)} /> },
{ name: "chooseFormName", label: "项目选取形式名称", onlyForLabel: true },
{ name: "fourNewFlag", label: "是否涉及四新工作内容", labelCol: { span: 8 }, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] },
- { name: "threePeopleFlag", label: "是否涉及三人及以上工作内容", labelCol: { span: 9 }, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] },
+ { name: "threePeopleFlag", label: "是否涉及三人及以上工作内容", labelCol: { span: 10 }, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] },
{ name: "nightWorkFlag", label: "是否涉及夜间作业", labelCol: { span: 8 }, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] },
{ 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 },
@@ -430,7 +431,6 @@ const StepOneComponent = (props) => {
: [
{
name: "manageDeptId",
- labelCol: { span: 5 },
label: "选择主管部门",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: deptList,
@@ -479,8 +479,7 @@ const StepOneComponent = (props) => {
},
{
name: "approvalCorpId",
- label: "项目执行属地公司名称",
- labelCol: { span: 7 },
+ label: "项目属地单位",
items: corpInfoList,
render: FORM_ITEM_RENDER_ENUM.SELECT,
itemsField: { valueKey: "id", labelKey: "corpName" },
@@ -497,11 +496,10 @@ const StepOneComponent = (props) => {
},
},
},
- { name: "approvalCorpName", label: "项目执行属地公司名称", onlyForLabel: true },
+ { name: "approvalCorpName", label: "项目属地单位名称", onlyForLabel: true },
{
name: "approvalDeptId",
- labelCol: { span: 7 },
- label: "项目执行属地公司部门",
+ label: "项目属地单位部门",
render: (
{
/>
),
},
- { name: "approvalDeptName", label: "项目执行属地公司部门名称", onlyForLabel: true },
+ { name: "approvalDeptName", label: "项目属地单位部门名称", onlyForLabel: true },
{
name: "approvalUserIds",
- label: "项目执行属地公司人员",
- labelCol: { span: 7 },
+ label: "项目属地单位人员",
render: (
{
/>
),
},
- { name: "approvalUserNames", label: "项目执行属地公司人员名称", onlyForLabel: true },
+ { name: "approvalUserNames", label: "项目属地单位人员名称", onlyForLabel: true },
{
name: "projectFiles",
label: "安全管理协议",
span: 24,
+ labelCol: { span: 2 },
render: (
{
pagination={false}
options={false}
disabledResizer={true}
- rowKey={record => record.id || record.dataName}
+ rowKey={record => record.id || record.detailId}
columns={[
{ title: "材料名称", key: "dataName", dataIndex: "dataName" },
{ title: "上传时间", key: "createTime", dataIndex: "createTime", render: (_, record) => record.createTime || "-" },
diff --git a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/List/index.js b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/List/index.js
index f2ed3c8..cb7a31a 100644
--- a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/List/index.js
+++ b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/List/index.js
@@ -43,7 +43,7 @@ function List(props) {
},
{ name: "eqSubcontractFlag", label: "是否存在分包", render: FORM_ITEM_RENDER_ENUM.SELECT, items: [{ name: "是", bianma: "1" }, { name: "否", bianma: "0" }] },
{
- name: "",
+ name: "eqProjectStatus",
label: "项目审核状态",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: PROJECT_STATUS_MAP,
diff --git a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js
index 5fb4148..b64ea8d 100644
--- a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js
+++ b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplication/ReView/index.js
@@ -3,8 +3,8 @@ import { Button, Descriptions, Divider, Form, Input, message, Modal, Space } fro
import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import Page from "zy-react-library/components/Page";
+import PreviewImg from "zy-react-library/components/PreviewImg";
import Table from "zy-react-library/components/Table";
-import TooltipPreviewImg from "zy-react-library/components/TooltipPreviewImg";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import useGetFile from "zy-react-library/hooks/useGetFile";
@@ -269,7 +269,8 @@ function Review(props) {
项目基础信息
},
+ { label: "安全管理协议", children: },
]}
/>
@@ -291,7 +292,8 @@ function Review(props) {
企业基础信息
},
+ { label: "营业执照", children: },
{ label: "营业执照有效期", children: info.corpInfo?.licenseStart ? `${info.corpInfo?.licenseStart}-${info.corpInfo?.licenseEnd}` : "-" },
- { label: "", children: "" },
]}
/>
@@ -422,7 +423,18 @@ 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/Stakeholder/ProjectReview/ProjectFilingApplicationTwo/List/index.js b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplicationTwo/List/index.js
index c287d2a..278583a 100644
--- a/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplicationTwo/List/index.js
+++ b/src/pages/Container/Stakeholder/ProjectReview/ProjectFilingApplicationTwo/List/index.js
@@ -42,7 +42,7 @@ function List(props) {
render: (),
},
{
- name: "",
+ name: "eqProjectStatus",
label: "项目审核状态",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: PROJECT_STATUS_MAP,
diff --git a/src/pages/Container/Supervision/ProjectReview/ProjectApproval/Subcontract/List/index.js b/src/pages/Container/Supervision/ProjectReview/ProjectApproval/Subcontract/List/index.js
index ccb17e8..0bcdf33 100644
--- a/src/pages/Container/Supervision/ProjectReview/ProjectApproval/Subcontract/List/index.js
+++ b/src/pages/Container/Supervision/ProjectReview/ProjectApproval/Subcontract/List/index.js
@@ -52,6 +52,7 @@ function List(props) {
{ title: "项目名称", dataIndex: "projectName" },
{ title: "股份主管部门", dataIndex: "manageDeptName" },
{ title: "项目类别", dataIndex: "qualificationsTypeName" },
+ { title: "是否存在分包", dataIndex: "subcontractFlag", render: (_, record) => record.subcontractFlag === 1 ? "是" : "否" },
{ title: "项目属地单位", dataIndex: "companyName" },
{
title: "项目备案审核状态",
diff --git a/src/pages/Container/Supervision/Qualification/ViewInfo/index.js b/src/pages/Container/Supervision/Qualification/ViewInfo/index.js
index 1751f28..db028c2 100644
--- a/src/pages/Container/Supervision/Qualification/ViewInfo/index.js
+++ b/src/pages/Container/Supervision/Qualification/ViewInfo/index.js
@@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Divider, Spin } from "antd";
import { Fragment, useEffect, useState } from "react";
import Page from "zy-react-library/components/Page";
+import PreviewImg from "zy-react-library/components/PreviewImg";
import Table from "zy-react-library/components/Table";
-import TooltipPreviewImg from "zy-react-library/components/TooltipPreviewImg";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import useGetFile from "zy-react-library/hooks/useGetFile";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@@ -162,7 +162,7 @@ function ViewInfo(props) {
label: "企业类型",
children: getLabelName({ status: corpInfoData.type, list: ENTERPRISE_TYPE }),
},
- { label: "营业执照", children: },
+ { label: "营业执照", children: },
{ label: "营业执照有效期", children: corpInfoData.licenseStart ? `${corpInfoData.licenseStart} 至 ${corpInfoData.licenseEnd}` : "" },
]}
/>