fixed:项目对接资质证照
parent
086d1187a1
commit
814738b466
|
|
@ -10,11 +10,22 @@ import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
|
||||||
|
|
||||||
const ViewProjectReviewUserModal = (props) => {
|
const ViewProjectReviewUserModal = (props) => {
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
|
const [realData, setRealData] = useState([]);
|
||||||
|
|
||||||
const { loading: getFileLoading, getFile } = useGetFile();
|
const { loading: getFileLoading, getFile } = useGetFile();
|
||||||
const { tableProps } = useTable(props["userQualificationInfo"], {
|
const { tableProps } = useTable(props["userQualificationInfo"], {
|
||||||
form,
|
form,
|
||||||
params: {
|
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([]);
|
const [tableData, setTableData] = useState([]);
|
||||||
|
|
@ -69,16 +80,19 @@ const ViewProjectReviewUserModal = (props) => {
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Table
|
<Table
|
||||||
|
options={false}
|
||||||
|
disabledResizer={true}
|
||||||
columns={[
|
columns={[
|
||||||
{ title: "姓名", dataIndex: "userName" },
|
{ title: "姓名", dataIndex: "name" },
|
||||||
{ title: "证书名称", dataIndex: "qualificationName" },
|
{ title: "证书名称", dataIndex: "certificateName" },
|
||||||
{ title: "证书作业类别", dataIndex: "qualificationinfoCategoryName" },
|
{ title: "行业类别", dataIndex: "industryCategoryName" },
|
||||||
{ title: "操作项目", dataIndex: "operatingProjectName" },
|
{ title: "操作项目", dataIndex: "industryOperatingItemsName" },
|
||||||
{ title: "证书编号", dataIndex: "certificateNo" },
|
{ title: "证书编号", dataIndex: "certificateCode" },
|
||||||
{ title: "图片", dataIndex: "files", render: (_, record) => (<TooltipPreviewImg files={record.files} />) },
|
{ title: "图片", dataIndex: "files", render: (_, record) => (<TooltipPreviewImg files={record.files} />) },
|
||||||
|
|
||||||
]}
|
]}
|
||||||
{...enhancedTableProps}
|
{...enhancedTableProps}
|
||||||
|
dataSource={realData}
|
||||||
/>
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,10 @@ import Table from "zy-react-library/components/Table";
|
||||||
import Upload from "zy-react-library/components/Upload";
|
import Upload from "zy-react-library/components/Upload";
|
||||||
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||||
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
|
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 useDeleteFile from "zy-react-library/hooks/useDeleteFile";
|
||||||
import useGetFile from "zy-react-library/hooks/useGetFile";
|
import useGetFile from "zy-react-library/hooks/useGetFile";
|
||||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
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 useTable from "zy-react-library/hooks/useTable";
|
||||||
import useUploadFile from "zy-react-library/hooks/useUploadFile";
|
import useUploadFile from "zy-react-library/hooks/useUploadFile";
|
||||||
import { getLabelName, validatorEndTime } from "zy-react-library/utils";
|
import { getLabelName, validatorEndTime } from "zy-react-library/utils";
|
||||||
|
|
@ -29,7 +29,7 @@ function Add(props) {
|
||||||
const query = useGetUrlQuery();
|
const query = useGetUrlQuery();
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
const [userInfo, setUserInfo] = useState({});
|
const [userInfo, setUserInfo] = useState({});
|
||||||
const [currentStep, setCurrentStep] = useState(1);
|
const [currentStep, setCurrentStep] = useState(2);
|
||||||
const [formValues, setFormValues] = useState({});
|
const [formValues, setFormValues] = useState({});
|
||||||
const [projectFileAddCmdList, setProjectFileAddCmdList] = useState([]); // 项目资料
|
const [projectFileAddCmdList, setProjectFileAddCmdList] = useState([]); // 项目资料
|
||||||
const [usercontentAddCmdList, setUsercontentAddCmdList] = useState([]); // 项目审核人员
|
const [usercontentAddCmdList, setUsercontentAddCmdList] = useState([]); // 项目审核人员
|
||||||
|
|
@ -152,9 +152,9 @@ const StepOneComponent = (props) => {
|
||||||
const { data } = id ? await props["userListByDeptId"]({ id }) : [];
|
const { data } = id ? await props["userListByDeptId"]({ id }) : [];
|
||||||
// 去重
|
// 去重
|
||||||
const uniqueUsers = data.filter((item, index, self) =>
|
const uniqueUsers = data.filter((item, index, self) =>
|
||||||
index === self.findIndex((t) => (
|
index === self.findIndex(t => (
|
||||||
t.userId === item.userId && t.userName === item.userName
|
t.userId === item.userId && t.userName === item.userName
|
||||||
))
|
)),
|
||||||
);
|
);
|
||||||
setUserList(uniqueUsers);
|
setUserList(uniqueUsers);
|
||||||
};
|
};
|
||||||
|
|
@ -240,11 +240,16 @@ const StepOneComponent = (props) => {
|
||||||
{ label: "项目基础信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
{ label: "项目基础信息", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||||
{ name: "projectName", label: "项目名称" },
|
{ name: "projectName", label: "项目名称" },
|
||||||
{
|
{
|
||||||
name: "userId", label: "项目负责人", render: (
|
name: "userId",
|
||||||
|
label: "项目负责人",
|
||||||
|
render: (
|
||||||
<PersonnelSelect
|
<PersonnelSelect
|
||||||
isNeedCorpInfoId={true}
|
isNeedCorpInfoId={true}
|
||||||
params={{ corpinfoId: props.userInfo?.corpinfoId || "" }}
|
params={{ corpinfoId: props.userInfo?.corpinfoId || "" }}
|
||||||
isNeedDepartmentId={false}
|
isNeedDepartmentId={false}
|
||||||
|
extraParams={{
|
||||||
|
noMain: 1,
|
||||||
|
}}
|
||||||
onGetLabel={(label) => {
|
onGetLabel={(label) => {
|
||||||
form.setFieldValue("userName", label);
|
form.setFieldValue("userName", label);
|
||||||
}}
|
}}
|
||||||
|
|
@ -271,7 +276,7 @@ const StepOneComponent = (props) => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
{ name: "userName", label: "项目负责人", onlyForLabel: true },
|
{ name: "userName", label: "项目负责人", onlyForLabel: true },
|
||||||
{ name: "initiationTime", label: "立项时间", render: FORM_ITEM_RENDER_ENUM.DATE },
|
{ name: "initiationTime", label: "立项时间", render: FORM_ITEM_RENDER_ENUM.DATE },
|
||||||
|
|
@ -285,7 +290,10 @@ const StepOneComponent = (props) => {
|
||||||
{ name: "specialFlag", 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 },
|
{ 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,
|
items: qualificationsTypeList,
|
||||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||||
itemsField: { valueKey: "qualificationsTypeId", labelKey: "qualificationsTypeName" },
|
itemsField: { valueKey: "qualificationsTypeId", labelKey: "qualificationsTypeName" },
|
||||||
|
|
@ -296,7 +304,7 @@ const StepOneComponent = (props) => {
|
||||||
status: event,
|
status: event,
|
||||||
idKey: "qualificationsTypeId",
|
idKey: "qualificationsTypeId",
|
||||||
nameKey: "qualificationsTypeName",
|
nameKey: "qualificationsTypeName",
|
||||||
}))
|
}));
|
||||||
if (form.getFieldValue("isLocalCompany") === 0) {
|
if (form.getFieldValue("isLocalCompany") === 0) {
|
||||||
getDeptList(event);
|
getDeptList(event);
|
||||||
}
|
}
|
||||||
|
|
@ -328,7 +336,12 @@ const StepOneComponent = (props) => {
|
||||||
{ name: "qualificationsTypeName", label: "项目类别名称", onlyForLabel: true },
|
{ name: "qualificationsTypeName", label: "项目类别名称", onlyForLabel: true },
|
||||||
{ name: "subcontractFlag", label: "是否存在分包项目", span: 24, render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }] },
|
{ 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) => {
|
onChange: (event) => {
|
||||||
if (event.target.value === 0) {
|
if (event.target.value === 0) {
|
||||||
getDeptList(qualificationsTypeId);
|
getDeptList(qualificationsTypeId);
|
||||||
|
|
@ -346,7 +359,7 @@ const StepOneComponent = (props) => {
|
||||||
manageUserNames: "",
|
manageUserNames: "",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
span: 24,
|
span: 24,
|
||||||
|
|
@ -518,7 +531,10 @@ const StepOneComponent = (props) => {
|
||||||
},
|
},
|
||||||
{ name: "approvalUserNames", label: "项目执行属地公司人员名称", onlyForLabel: true },
|
{ name: "approvalUserNames", label: "项目执行属地公司人员名称", onlyForLabel: true },
|
||||||
{
|
{
|
||||||
name: "projectFiles", label: "安全管理协议", span: 24, render: (
|
name: "projectFiles",
|
||||||
|
label: "安全管理协议",
|
||||||
|
span: 24,
|
||||||
|
render: (
|
||||||
<Upload
|
<Upload
|
||||||
fileType="image"
|
fileType="image"
|
||||||
maxCount={5}
|
maxCount={5}
|
||||||
|
|
@ -528,7 +544,7 @@ const StepOneComponent = (props) => {
|
||||||
form.setFieldValue("deleteProjectFileAddCmdList", [...(form.getFieldValue("deleteProjectFileAddCmdList") || []), file]);
|
form.setFieldValue("deleteProjectFileAddCmdList", [...(form.getFieldValue("deleteProjectFileAddCmdList") || []), file]);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
{ name: "deleteProjectFileAddCmdList", label: "删除的安全管理协议", onlyForLabel: true },
|
{ name: "deleteProjectFileAddCmdList", label: "删除的安全管理协议", onlyForLabel: true },
|
||||||
{ name: "agreementFileUuid", label: "安全协议uuid", onlyForLabel: true },
|
{ name: "agreementFileUuid", label: "安全协议uuid", onlyForLabel: true },
|
||||||
|
|
@ -564,7 +580,7 @@ const StepTwoComponent = (props) => {
|
||||||
const [viewProjectReviewUserModalData, setViewProjectReviewUserModalData] = useState({}); // 查看安全人员证书列表
|
const [viewProjectReviewUserModalData, setViewProjectReviewUserModalData] = useState({}); // 查看安全人员证书列表
|
||||||
const { loading: getFileLoading, getFile } = useGetFile();
|
const { loading: getFileLoading, getFile } = useGetFile();
|
||||||
const [chooseFilsListModalOpen, setChooseFilsListModalOpen] = useState(false);
|
const [chooseFilsListModalOpen, setChooseFilsListModalOpen] = useState(false);
|
||||||
const [setChooseFilsListModalData] = useState({});
|
const [, setChooseFilsListModalData] = useState([]);
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
for (let i = 0; i < projectFileList.length; i++) {
|
for (let i = 0; i < projectFileList.length; i++) {
|
||||||
const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["148"], eqForeignKey: projectFileList[i].projectFileId });
|
const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["148"], eqForeignKey: projectFileList[i].projectFileId });
|
||||||
|
|
@ -656,6 +672,11 @@ const StepTwoComponent = (props) => {
|
||||||
message.error(`请新增项目相关资料`);
|
message.error(`请新增项目相关资料`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (uploadFileModalData.length === 0) {
|
||||||
|
message.error(`请新增项目相关资料`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (usercontentList.length === 0) {
|
if (usercontentList.length === 0) {
|
||||||
message.error(`请新增项目人员`);
|
message.error(`请新增项目人员`);
|
||||||
return;
|
return;
|
||||||
|
|
@ -868,6 +889,7 @@ const StepTwoComponent = (props) => {
|
||||||
{chooseFilsListModalOpen && (
|
{chooseFilsListModalOpen && (
|
||||||
<ChooseFilsList
|
<ChooseFilsList
|
||||||
data={projectFileList}
|
data={projectFileList}
|
||||||
|
qualificationsTypeId={props.qualificationsTypeId}
|
||||||
onSubmit={handleChooseFilsSubmit} // 使用新的处理函数
|
onSubmit={handleChooseFilsSubmit} // 使用新的处理函数
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
setChooseFilsListModalOpen(false);
|
setChooseFilsListModalOpen(false);
|
||||||
|
|
|
||||||
|
|
@ -367,7 +367,8 @@ function Review(props) {
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setViewProjectReviewUserModalOpen(true);
|
setViewProjectReviewUserModalOpen(true);
|
||||||
setViewProjectReviewUserModalData({
|
setViewProjectReviewUserModalData({
|
||||||
...record
|
...record,
|
||||||
|
userRealId: record.userId,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import Search from "zy-react-library/components/Search";
|
||||||
import Table from "zy-react-library/components/Table";
|
import Table from "zy-react-library/components/Table";
|
||||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||||
import useTable from "zy-react-library/hooks/useTable";
|
import useTable from "zy-react-library/hooks/useTable";
|
||||||
|
import ViewProjectReviewUserModal from "~/components/ViewProjectReviewUserModal";
|
||||||
import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
|
import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
|
||||||
|
|
||||||
function UserChange(props) {
|
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 { tableProps: allData } = useTable(props["projectUserList"], { params: { eqProjectId: query.id, pageIndex: 1, pageSize: 999999 } });
|
||||||
const [usercontentOpen, setUsercontentOpen] = useState(false); // 选择项目审核人员弹窗显示
|
const [usercontentOpen, setUsercontentOpen] = useState(false); // 选择项目审核人员弹窗显示
|
||||||
const [fetchUserList, setFetchUserList] = useState([]); // 已存在的项目人员数据
|
const [fetchUserList, setFetchUserList] = useState([]); // 已存在的项目人员数据
|
||||||
|
const [viewProjectReviewUserModalOpen, setViewProjectReviewUserModalOpen] = useState(false);
|
||||||
|
const [viewProjectReviewUserModalData, setViewProjectReviewUserModalData] = useState({}); // 查看安全人员证书列表
|
||||||
|
|
||||||
const onDelete = (record) => {
|
const onDelete = (record) => {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
|
|
@ -102,6 +105,11 @@ function UserChange(props) {
|
||||||
<Button
|
<Button
|
||||||
type="link"
|
type="link"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
setViewProjectReviewUserModalOpen(true);
|
||||||
|
setViewProjectReviewUserModalData({
|
||||||
|
...record,
|
||||||
|
userRealId: record.userId,
|
||||||
|
});
|
||||||
// 查看特种证书逻辑
|
// 查看特种证书逻辑
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
@ -122,6 +130,8 @@ function UserChange(props) {
|
||||||
]}
|
]}
|
||||||
{...tableProps}
|
{...tableProps}
|
||||||
/>
|
/>
|
||||||
|
{viewProjectReviewUserModalOpen
|
||||||
|
&& <ViewProjectReviewUserModal onCancel={() => setViewProjectReviewUserModalOpen(false)} data={viewProjectReviewUserModalData} />}
|
||||||
{usercontentOpen && (
|
{usercontentOpen && (
|
||||||
<UserSelect
|
<UserSelect
|
||||||
data={fetchUserList}
|
data={fetchUserList}
|
||||||
|
|
@ -150,6 +160,7 @@ const UserSelectComponent = (props) => {
|
||||||
likeName: "",
|
likeName: "",
|
||||||
likeUserIdCard: "",
|
likeUserIdCard: "",
|
||||||
inDepartmentId,
|
inDepartmentId,
|
||||||
|
noMain: 1,
|
||||||
eqEmploymentFlag: 1, // 在职
|
eqEmploymentFlag: 1, // 在职
|
||||||
},
|
},
|
||||||
useStorageQueryCriteria: false,
|
useStorageQueryCriteria: false,
|
||||||
|
|
@ -168,7 +179,8 @@ const UserSelectComponent = (props) => {
|
||||||
...item,
|
...item,
|
||||||
// 统一字段名
|
// 统一字段名
|
||||||
id: item.id,
|
id: item.id,
|
||||||
name: item.username || item.name,
|
name: item.name,
|
||||||
|
username: item.username,
|
||||||
});
|
});
|
||||||
existingUserIds.add(item.id);
|
existingUserIds.add(item.id);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue