完善相关方

master
LiuJiaNan 2025-12-24 09:36:03 +08:00
parent 87c4f74907
commit b8624ae3df
6 changed files with 421 additions and 341 deletions

View File

@ -31,7 +31,7 @@
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-to-print": "^3.2.0", "react-to-print": "^3.2.0",
"zy-react-library": "^1.0.176" "zy-react-library": "^1.0.178"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^5.4.1", "@antfu/eslint-config": "^5.4.1",

View File

@ -28,3 +28,11 @@ export const hiddenAiRecognize = declareRequest(
"ledgerLoading", "ledgerLoading",
`Post > @/hidden/hidden/aiHidden`, `Post > @/hidden/hidden/aiHidden`,
); );
export const xgfProjectList = declareRequest(
"xgfProjectLoading",
`Get > /xgfManager/project/listAllByCorp`,
);
export const xgfProjectInfo = declareRequest(
"xgfProjectLoading",
`Get > /xgfManager/project/{id}`,
);

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Divider, Form, message, Modal } from "antd"; import { Button, Divider, Form, message, Modal } from "antd";
import { useState } from "react"; import { useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
@ -8,17 +8,140 @@ import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import HiddenLevelSelectTree from "zy-react-library/components/SelectTree/HiddenLevel/Gwj"; import HiddenLevelSelectTree from "zy-react-library/components/SelectTree/HiddenLevel/Gwj";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { NS_CONFIRM } from "~/enumerate/namespace"; import { NS_CONFIRM, NS_LEDGER } from "~/enumerate/namespace";
function Confirm(props) { function Confirm(props) {
const [data, setData] = useState({});
// 是否来自安全环保检查
const [isFromInspection, setIsFromInspection] = useState(false);
const [form] = Form.useForm(); const [form] = Form.useForm();
const hiddenLevel = Form.useWatch("hiddenLevel", form); const hiddenLevel = Form.useWatch("hiddenLevel", form);
const deptId = Form.useWatch("deptId", form); const deptId = Form.useWatch("deptId", form);
const checkDeptId = Form.useWatch("checkDeptId", form); const checkDeptId = Form.useWatch("checkDeptId", form);
const [data, setData] = useState({});
const [rejectModalOpen, setRejectModalOpen] = useState(false); const [rejectModalOpen, setRejectModalOpen] = useState(false);
// 是否来自安全环保检查
const [isFromInspection, setIsFromInspection] = useState(false);
const xgfProjectInfo = useRef({});
const getXgfProjectInfo = async (id) => {
const { data } = await props["xgfProjectInfo"]({ id });
xgfProjectInfo.current = data;
};
const decideOption = () => {
const commonDeptUserFields = [
...(
data.isRelated === 0
? [
{
name: "deptId",
label: "整改部门",
render: (
<DepartmentSelectTree
onChange={() => {
form.setFieldValue("userId", "");
form.setFieldValue("userName", "");
}}
onGetLabel={(label) => {
form.setFieldValue("deptName", label);
}}
/>
),
},
{ name: "deptName", label: "整改部门名称", onlyForLabel: true },
{
name: "userId",
label: "整改人",
render: (
<PersonnelSelect
params={{ departmentId: deptId }}
onGetLabel={label => form.setFieldValue("userName", label)}
/>
),
},
{ name: "userName", label: "整改人名称", onlyForLabel: true },
]
: [
{ name: "deptName", label: "整改单位", componentProps: { disabled: true } },
{ name: "deptId", label: "整改单位id", onlyForLabel: true },
{ name: "userName", label: "整改人", componentProps: { disabled: true } },
{ name: "userId", label: "整改人id", onlyForLabel: true },
]
),
];
if (hiddenLevel !== "hiddenLevel1001") {
if (data.rectificationType === 2) {
return [
...commonDeptUserFields,
{ name: "rectificationDeadline", label: "整改完成期限", render: FORM_ITEM_RENDER_ENUM.DATE, span: 24 },
];
}
else {
return [
{
name: "rectificationType",
label: "是否立即整改",
render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: 1, name: "是" }, { bianma: 2, name: "否" }],
span: 24,
componentProps: {
onChange: () => {
if (data.isRelated === 0) {
form.setFieldValue("checkDeptName", "");
form.setFieldValue("checkUserName", "");
}
},
},
},
...commonDeptUserFields,
{
name: "rectificationDeadline",
label: "整改完成期限",
render: FORM_ITEM_RENDER_ENUM.DATE,
span: 24,
dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 2),
},
{
name: "checkDeptId",
label: "验收部门",
required: false,
dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1),
render: (
<DepartmentSelectTree
isNeedCorpInfoId={data.isRelated === 1}
params={{ eqCorpinfoId: data.isRelated === 1 ? data.hiddenFindDept : "" }}
onChange={() => {
form.setFieldValue("checkUserId", "");
form.setFieldValue("checkUserName", "");
}}
onGetLabel={(label) => {
form.setFieldValue("checkDeptName", label);
}}
/>
),
},
{ name: "checkDeptName", label: "验收部门名称", onlyForLabel: true },
{
name: "checkUserId",
label: "验收人",
required: false,
dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1),
render: (
<PersonnelSelect
params={{ departmentId: checkDeptId }}
onGetLabel={label => form.setFieldValue("checkUserName", label)}
/>
),
},
{ name: "checkUserName", label: "验收人名称", onlyForLabel: true },
];
}
}
return [];
};
const onSubmit = (values) => { const onSubmit = (values) => {
Modal.confirm({ Modal.confirm({
@ -47,6 +170,7 @@ function Confirm(props) {
isShowHeaderBack={false} isShowHeaderBack={false}
onGetData={(data) => { onGetData={(data) => {
setData(data); setData(data);
data.isRelated === 1 && getXgfProjectInfo(data.projectId);
setIsFromInspection(data.source === 4 || data.source === 5); setIsFromInspection(data.source === 4 || data.source === 5);
const hiddenUserPresetsCO = data.hiddenUserPresetsCO || {}; const hiddenUserPresetsCO = data.hiddenUserPresetsCO || {};
form.setFieldValue("deptId", hiddenUserPresetsCO.rectifyDeptId || data.hiddenFindDept); form.setFieldValue("deptId", hiddenUserPresetsCO.rectifyDeptId || data.hiddenFindDept);
@ -102,132 +226,7 @@ function Confirm(props) {
] ]
: []), : []),
{ name: "hiddenLevelName", label: "隐患级别名称", onlyForLabel: true }, { name: "hiddenLevelName", label: "隐患级别名称", onlyForLabel: true },
...( ...decideOption(),
hiddenLevel !== "hiddenLevel1001"
? [
...(
data.rectificationType === 2
? [
{
name: "deptId",
label: "整改负责人部门",
render: (
<DepartmentSelectTree
onChange={() => {
form.setFieldValue("userId", "");
form.setFieldValue("userName", "");
}}
onGetLabel={(label) => {
form.setFieldValue("deptName", label);
}}
/>
),
},
{ name: "deptName", label: "整改负责人部门名称", onlyForLabel: true },
{
name: "userId",
label: "整改负责人",
render: (
<PersonnelSelect
params={{ departmentId: deptId }}
onGetLabel={label => form.setFieldValue("userName", label)}
/>
),
},
{ name: "userName", label: "整改负责人名称", onlyForLabel: true },
{
name: "rectificationDeadline",
label: "整改完成期限",
render: FORM_ITEM_RENDER_ENUM.DATE,
span: 24,
},
]
: [
{
name: "rectificationType",
label: "是否立即整改",
render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: 1, name: "是" }, { bianma: 2, name: "否" }],
span: 24,
componentProps: {
onChange: () => {
form.setFieldValue("checkDeptName", "");
form.setFieldValue("checkUserName", "");
},
},
},
{
name: "deptId",
label: "整改负责人部门",
render: (
<DepartmentSelectTree
onChange={() => {
form.setFieldValue("userId", "");
form.setFieldValue("userName", "");
}}
onGetLabel={(label) => {
form.setFieldValue("deptName", label);
}}
/>
),
},
{ name: "deptName", label: "整改负责人部门名称", onlyForLabel: true },
{
name: "userId",
label: "整改负责人",
render: (
<PersonnelSelect
params={{ departmentId: deptId }}
onGetLabel={label => form.setFieldValue("userName", label)}
/>
),
},
{ name: "userName", label: "整改负责人名称", onlyForLabel: true },
{
name: "rectificationDeadline",
label: "整改完成期限",
render: FORM_ITEM_RENDER_ENUM.DATE,
span: 24,
dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 2),
},
{
name: "checkDeptId",
label: "验收部门",
required: false,
dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1),
render: (
<DepartmentSelectTree
onChange={() => {
form.setFieldValue("checkUserId", "");
form.setFieldValue("checkUserName", "");
}}
onGetLabel={(label) => {
form.setFieldValue("checkDeptName", label);
}}
/>
),
},
{ name: "checkDeptName", label: "验收部门名称", onlyForLabel: true },
{
name: "checkUserId",
label: "验收人",
required: false,
dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1),
render: (
<PersonnelSelect
params={{ departmentId: checkDeptId }}
onGetLabel={label => form.setFieldValue("checkUserName", label)}
/>
),
},
{ name: "checkUserName", label: "验收人名称", onlyForLabel: true },
]),
]
: []
),
]} ]}
/> />
) )
@ -280,4 +279,4 @@ const RejectModalComponent = (props) => {
}; };
const RejectModal = Connect([NS_CONFIRM], true)(RejectModalComponent); const RejectModal = Connect([NS_CONFIRM], true)(RejectModalComponent);
export default Connect([NS_CONFIRM], true)(Confirm); export default Connect([NS_CONFIRM, NS_LEDGER], true)(Confirm);

View File

@ -32,18 +32,21 @@ function Add(props) {
const checkDeptId = Form.useWatch("checkDeptId", form); const checkDeptId = Form.useWatch("checkDeptId", form);
const isAi = Form.useWatch("isAi", form); const isAi = Form.useWatch("isAi", form);
const isRelated = Form.useWatch("isRelated", form); const isRelated = Form.useWatch("isRelated", form);
const defaultValues = { isRelated: "0", rectificationType: 2 }; const defaultValues = { isRelated: 0, rectificationType: 2 };
const [aiHiddens, setAiHiddens] = useState([]); const [aiHiddens, setAiHiddens] = useState([]);
const [aiHiddenModalOpen, setAiHiddenModalOpen] = useState(false); const [aiHiddenModalOpen, setAiHiddenModalOpen] = useState(false);
const [selectHiddens, setSelectHiddens] = useState([]);
const [currentProcessHiddenIndex, setCurrentProcessHiddenIndex] = useState(-1);
const [imageSelectModalOpen, setImageSelectModalOpen] = useState(false); const [imageSelectModalOpen, setImageSelectModalOpen] = useState(false);
const processedImageUids = useRef([]);
const [uploadedImages, setUploadedImages] = useState([]); const [uploadedImages, setUploadedImages] = useState([]);
const [modalTitle, setModalTitle] = useState("选择图片进行AI识别"); const [modalTitle, setModalTitle] = useState("选择图片进行AI识别");
const [isShowAiButton, setIsShowAiButton] = useState(true); const [isShowAiButton, setIsShowAiButton] = useState(true);
const [userInfo, setUserInfo] = useState({}); const [xgfProjectList, setXgfProjectList] = useState([]);
const userInfo = useRef({});
const selectHiddens = useRef([]);
const currentProcessHiddenIndex = useRef(-1);
const processedImageUids = useRef([]);
const xgfProjectInfo = useRef({});
const [hiddenPartType, setHiddenPartType] = useState("select"); const [hiddenPartType, setHiddenPartType] = useState("select");
const [confirmUserList, setConfirmUserList] = useState([]); const [confirmUserList, setConfirmUserList] = useState([]);
@ -90,17 +93,15 @@ function Add(props) {
// checkUserId: hiddenAcceptUserCO.userId, // checkUserId: hiddenAcceptUserCO.userId,
// checkUserName: hiddenAcceptUserCO.userName, // checkUserName: hiddenAcceptUserCO.userName,
rectificationDescr: hiddenRectifyUserCO.descr, rectificationDescr: hiddenRectifyUserCO.descr,
isRelated: data.isRelated.toString(),
}); });
} }
else { else {
const userInfo = await getUserInfo(); userInfo.current = await getUserInfo();
setUserInfo(userInfo);
form.setFieldsValue({ form.setFieldsValue({
hiddenFindDept: userInfo.departmentId, hiddenFindDept: userInfo.current.departmentId,
creatorId: userInfo.id, creatorId: userInfo.current.id,
hiddenFindDeptName: userInfo.departmentName, hiddenFindDeptName: userInfo.current.departmentName,
creatorName: userInfo.name, creatorName: userInfo.current.name,
}); });
} }
}; };
@ -110,14 +111,25 @@ function Add(props) {
setConfirmUserList(data); setConfirmUserList(data);
}; };
const getXgfProjectList = async () => {
const { data } = await props["xgfProjectList"]();
setXgfProjectList(data);
};
const getXgfProjectInfo = async (id) => {
const { data } = await props["xgfProjectInfo"]({ id });
xgfProjectInfo.current = data;
};
useEffect(() => { useEffect(() => {
getData(); getData();
getConfirmUserList(); getConfirmUserList();
getXgfProjectList();
}, []); }, []);
const clearHiddenRecognizeState = () => { const clearHiddenRecognizeState = () => {
setSelectHiddens([]); selectHiddens.current = [];
setCurrentProcessHiddenIndex(-1); currentProcessHiddenIndex.current = -1;
form.setFieldValue("isAi", ""); form.setFieldValue("isAi", "");
form.setFieldValue("hiddenDesc", ""); form.setFieldValue("hiddenDesc", "");
form.setFieldValue("legalBasis", ""); form.setFieldValue("legalBasis", "");
@ -192,8 +204,8 @@ function Add(props) {
]); ]);
}; };
const isExistNextOneHidden = () => { const isExistNextOneHidden = () => {
if (currentProcessHiddenIndex !== -1) if (currentProcessHiddenIndex.current !== -1)
return currentProcessHiddenIndex !== selectHiddens.length - 1; return currentProcessHiddenIndex.current !== selectHiddens.current.length - 1;
return false; return false;
}; };
const onSubmit = async (values) => { const onSubmit = async (values) => {
@ -240,7 +252,7 @@ function Add(props) {
if (success) { if (success) {
message.success("操作成功"); message.success("操作成功");
if (isExistNextOneHidden()) { if (isExistNextOneHidden()) {
setCurrentProcessHiddenIndex(currentProcessHiddenIndex + 1); currentProcessHiddenIndex.current = currentProcessHiddenIndex.current + 1;
setIsShowAiButton(false); setIsShowAiButton(false);
const currentValues = form.getFieldsValue(); const currentValues = form.getFieldsValue();
const hiddenImageFiles = form.getFieldValue("hiddenImageFiles"); const hiddenImageFiles = form.getFieldValue("hiddenImageFiles");
@ -254,13 +266,13 @@ function Add(props) {
hiddenImageFiles, hiddenImageFiles,
}); });
form.setFieldValue("isAi", 1); form.setFieldValue("isAi", 1);
form.setFieldValue("hiddenDesc", selectHiddens[currentProcessHiddenIndex + 1].hiddenDescr); form.setFieldValue("hiddenDesc", selectHiddens.current[currentProcessHiddenIndex.current + 1].hiddenDescr);
form.setFieldValue("legalBasis", selectHiddens[currentProcessHiddenIndex + 1].legalBasis); form.setFieldValue("legalBasis", selectHiddens.current[currentProcessHiddenIndex.current + 1].legalBasis);
form.setFieldValue("rectificationDescr", selectHiddens[currentProcessHiddenIndex + 1].rectificationSuggestions); form.setFieldValue("rectificationDescr", selectHiddens.current[currentProcessHiddenIndex.current + 1].rectificationSuggestions);
form.setFieldValue("hiddenFindDept", userInfo.departmentId); form.setFieldValue("hiddenFindDept", userInfo.current.departmentId);
form.setFieldValue("creatorId", userInfo.id); form.setFieldValue("creatorId", userInfo.current.id);
form.setFieldValue("hiddenFindDeptName", userInfo.departmentName); form.setFieldValue("hiddenFindDeptName", userInfo.current.departmentName);
form.setFieldValue("creatorName", userInfo.name); form.setFieldValue("creatorName", userInfo.current.name);
} }
else { else {
props.history.goBack(); props.history.goBack();
@ -372,7 +384,7 @@ function Add(props) {
name: "isRelated", name: "isRelated",
label: "是否相关方", label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.RADIO, render: FORM_ITEM_RENDER_ENUM.RADIO,
items: IS_RELATED_ENUM, items: IS_RELATED_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
componentProps: { componentProps: {
onChange: () => { onChange: () => {
form.setFieldValue("projectName", ""); form.setFieldValue("projectName", "");
@ -380,10 +392,7 @@ function Add(props) {
form.setFieldValue("rectificationDeptName", ""); form.setFieldValue("rectificationDeptName", "");
form.setFieldValue("rectificationUserId", ""); form.setFieldValue("rectificationUserId", "");
form.setFieldValue("rectificationUserName", ""); form.setFieldValue("rectificationUserName", "");
form.setFieldValue("checkDeptId", ""); xgfProjectInfo.current = {};
form.setFieldValue("checkDeptName", "");
form.setFieldValue("checkUserId", "");
form.setFieldValue("checkUserName", "");
}, },
}, },
}, },
@ -391,15 +400,26 @@ function Add(props) {
name: "projectId", name: "projectId",
label: "相关方项目", label: "相关方项目",
dependencies: ["isRelated"], dependencies: ["isRelated"],
hidden: formValues => !(formValues.isRelated === "1"), hidden: formValues => !(formValues.isRelated === 1),
render: FORM_ITEM_RENDER_ENUM.SELECT, render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "相关方未做" }, { bianma: 2, name: "后期补全" }], // TODO items: xgfProjectList,
itemsField: {
valueKey: "id",
labelKey: "projectName",
},
componentProps: { componentProps: {
onChange: (value) => { onChange: async (value) => {
form.setFieldValue("projectName", getLabelName({ form.setFieldValue("projectName", getLabelName({
list: [], list: xgfProjectList,
status: value, status: value,
idKey: "id",
nameKey: "projectName",
})); }));
await getXgfProjectInfo(value);
form.setFieldValue("rectificationDeptId", xgfProjectInfo.current.corpinfoId);
form.setFieldValue("rectificationUserId", xgfProjectInfo.current.userId);
form.setFieldValue("rectificationDeptName", xgfProjectInfo.current.corpinfoName);
form.setFieldValue("rectificationUserName", xgfProjectInfo.current.userName);
}, },
}, },
}, },
@ -511,13 +531,21 @@ function Add(props) {
componentProps: { componentProps: {
onChange: (value) => { onChange: (value) => {
if (isAi === 1) { if (isAi === 1) {
form.setFieldValue("rectificationDescr", selectHiddens[currentProcessHiddenIndex + 1].rectificationSuggestions); form.setFieldValue("rectificationDescr", selectHiddens.current[currentProcessHiddenIndex.current + 1].rectificationSuggestions);
} }
if (value.target.value === 2) { if (value.target.value === 2) {
form.setFieldValue("rectificationDeptId", ""); if (isRelated === 0) {
form.setFieldValue("rectificationUserId", ""); form.setFieldValue("rectificationDeptId", "");
form.setFieldValue("rectificationDeptName", ""); form.setFieldValue("rectificationUserId", "");
form.setFieldValue("rectificationUserName", ""); form.setFieldValue("rectificationDeptName", "");
form.setFieldValue("rectificationUserName", "");
}
else {
form.setFieldValue("rectificationDeptId", xgfProjectInfo.current.corpinfoId);
form.setFieldValue("rectificationUserId", xgfProjectInfo.current.userId);
form.setFieldValue("rectificationDeptName", xgfProjectInfo.current.corpinfoName);
form.setFieldValue("rectificationUserName", xgfProjectInfo.current.userName);
}
form.setFieldValue("checkDeptName", ""); form.setFieldValue("checkDeptName", "");
form.setFieldValue("checkUserName", ""); form.setFieldValue("checkUserName", "");
} }
@ -526,12 +554,20 @@ function Add(props) {
const creatorId = form.getFieldValue("creatorId"); const creatorId = form.getFieldValue("creatorId");
const hiddenFindDeptName = form.getFieldValue("hiddenFindDeptName"); const hiddenFindDeptName = form.getFieldValue("hiddenFindDeptName");
const creatorName = form.getFieldValue("creatorName"); const creatorName = form.getFieldValue("creatorName");
form.setFieldValue("rectificationDeptId", hiddenFindDept); if (isRelated === 0) {
form.setFieldValue("rectificationUserId", creatorId); form.setFieldValue("rectificationDeptId", hiddenFindDept);
form.setFieldValue("rectificationUserId", creatorId);
form.setFieldValue("rectificationDeptName", hiddenFindDeptName);
form.setFieldValue("rectificationUserName", creatorName);
}
else {
form.setFieldValue("rectificationDeptId", xgfProjectInfo.current.corpinfoId);
form.setFieldValue("rectificationUserId", xgfProjectInfo.current.userId);
form.setFieldValue("rectificationDeptName", xgfProjectInfo.current.corpinfoName);
form.setFieldValue("rectificationUserName", xgfProjectInfo.current.userName);
}
form.setFieldValue("checkDeptId", hiddenFindDept); form.setFieldValue("checkDeptId", hiddenFindDept);
form.setFieldValue("checkUserId", creatorId); form.setFieldValue("checkUserId", creatorId);
form.setFieldValue("rectificationDeptName", hiddenFindDeptName);
form.setFieldValue("rectificationUserName", creatorName);
form.setFieldValue("checkDeptName", hiddenFindDeptName); form.setFieldValue("checkDeptName", hiddenFindDeptName);
form.setFieldValue("checkUserName", creatorName); form.setFieldValue("checkUserName", creatorName);
} }
@ -568,65 +604,60 @@ function Add(props) {
dependencies: ["rectificationType"], dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1), hidden: formValues => !(formValues.rectificationType === 1),
}, },
{ ...(
name: "rectificationDeptId", isRelated === 0
label: isRelated === "0" ? "整改部门" : "整改单位", ? [
required: false, {
render: ( name: "rectificationDeptId",
isRelated === "0" && ( label: "整改部门",
<DepartmentSelectTree required: false,
onChange={() => { render: (
form.setFieldValue("rectificationUserId", ""); <DepartmentSelectTree
form.setFieldValue("rectificationUserName", ""); onChange={() => {
}} form.setFieldValue("rectificationUserId", "");
onGetLabel={(label) => { form.setFieldValue("rectificationUserName", "");
form.setFieldValue("rectificationDeptName", label); }}
}} onGetLabel={(label) => {
/> form.setFieldValue("rectificationDeptName", label);
) }}
), />
componentProps: { ),
disabled: isRelated === "1", },
}, { name: "rectificationDeptName", label: "整改部门名称", onlyForLabel: true },
}, {
{ name: "rectificationDeptName", label: "整改部门名称", onlyForLabel: true }, name: "rectificationUserId",
{ label: "整改人",
name: "rectificationUserId", required: false,
label: "整改人", render: (
required: false, <PersonnelSelect
render: ( params={{ departmentId: rectificationDeptId }}
isRelated === "0" && ( onGetLabel={label => form.setFieldValue("rectificationUserName", label)}
<PersonnelSelect />
params={{ departmentId: rectificationDeptId }} ),
onGetLabel={label => form.setFieldValue("rectificationUserName", label)} },
/> { name: "rectificationUserName", label: "整改人名称", onlyForLabel: true },
) ]
), : [
componentProps: { { name: "rectificationDeptName", label: "整改单位", componentProps: { disabled: true } },
disabled: isRelated === "1", { name: "rectificationDeptId", label: "整改单位id", onlyForLabel: true },
}, { name: "rectificationUserName", label: "整改人", componentProps: { disabled: true } },
}, { name: "rectificationUserId", label: "整改人id", onlyForLabel: true },
{ name: "rectificationUserName", label: "整改人名称", onlyForLabel: true }, ]),
{ {
name: "checkDeptId", name: "checkDeptId",
label: isRelated === "0" ? "验收部门" : "验收单位", label: "验收部门",
required: false, required: false,
render: ( render: (
isRelated === "0" && ( <DepartmentSelectTree
<DepartmentSelectTree onChange={() => {
onChange={() => { form.setFieldValue("checkUserId", "");
form.setFieldValue("checkUserId", ""); form.setFieldValue("checkUserName", "");
form.setFieldValue("checkUserName", ""); }}
}} onGetLabel={(label) => {
onGetLabel={(label) => { form.setFieldValue("checkDeptName", label);
form.setFieldValue("checkDeptName", label); }}
}} />
/>
)
), ),
componentProps: {
disabled: isRelated === "1",
},
dependencies: ["rectificationType"], dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1), hidden: formValues => !(formValues.rectificationType === 1),
}, },
@ -636,16 +667,11 @@ function Add(props) {
label: "验收人", label: "验收人",
required: false, required: false,
render: ( render: (
isRelated === "0" && ( <PersonnelSelect
<PersonnelSelect params={{ departmentId: checkDeptId }}
params={{ departmentId: checkDeptId }} onGetLabel={label => form.setFieldValue("checkUserName", label)}
onGetLabel={label => form.setFieldValue("checkUserName", label)} />
/>
)
), ),
componentProps: {
disabled: isRelated === "1",
},
dependencies: ["rectificationType"], dependencies: ["rectificationType"],
hidden: formValues => !(formValues.rectificationType === 1), hidden: formValues => !(formValues.rectificationType === 1),
}, },
@ -661,8 +687,8 @@ function Add(props) {
setAiHiddenModalOpen(false); setAiHiddenModalOpen(false);
}} }}
onConfirm={(selectedRows) => { onConfirm={(selectedRows) => {
setSelectHiddens(selectedRows); selectHiddens.current = selectedRows;
setCurrentProcessHiddenIndex(0); currentProcessHiddenIndex.current = 0;
form.setFieldValue("isAi", 1); form.setFieldValue("isAi", 1);
form.setFieldValue("hiddenDesc", selectedRows[0].hiddenDescr); form.setFieldValue("hiddenDesc", selectedRows[0].hiddenDescr);
form.setFieldValue("legalBasis", selectedRows[0].legalBasis); form.setFieldValue("legalBasis", selectedRows[0].legalBasis);

View File

@ -21,7 +21,9 @@ function Rectification(props) {
const isRectificationScheme = Form.useWatch("isRectificationScheme", form); const isRectificationScheme = Form.useWatch("isRectificationScheme", form);
const hiddenUserAddCmds = Form.useWatch("hiddenUserAddCmds", form); const hiddenUserAddCmds = Form.useWatch("hiddenUserAddCmds", form);
const { loading: uploadFileLoading, uploadFile } = useUploadFile(); const { loading: uploadFileLoading, uploadFile } = useUploadFile();
const [data, setData] = useState({}); const [data, setData] = useState({});
const onSubmit = async (values) => { const onSubmit = async (values) => {
const { id: afterRectificationImageId } = await uploadFile({ const { id: afterRectificationImageId } = await uploadFile({
single: false, single: false,
@ -80,6 +82,18 @@ function Rectification(props) {
onGetData={(data) => { onGetData={(data) => {
setData(data); setData(data);
form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure); form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure);
if (data.isRelated === 0) {
form.setFieldValue("hiddenUserAddCmds", [
{ type: 300 },
]);
}
else {
const hiddenConfirmUserCO = data.hiddenConfirmUserCO?.[0] || {};
const { deptName, deptId, userId, userName } = hiddenConfirmUserCO;
form.setFieldValue("hiddenUserAddCmds", [
{ type: 300, deptName, deptId, userId, userName },
]);
}
}} }}
/> />
<Divider orientation="left">隐患整改</Divider> <Divider orientation="left">隐患整改</Divider>
@ -87,9 +101,6 @@ function Rectification(props) {
<FormBuilder <FormBuilder
values={{ values={{
status: 1, status: 1,
hiddenUserAddCmds: [
{ type: 300 },
],
}} }}
span={24} span={24}
form={form} form={form}
@ -126,59 +137,81 @@ function Rectification(props) {
}, },
{ name: "tempSafeMeasure", label: "临时安全措施", render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, { name: "tempSafeMeasure", label: "临时安全措施", render: FORM_ITEM_RENDER_ENUM.TEXTAREA },
{ name: "afterRectificationImageFiles", label: "整改后图片", render: <Upload /> }, { name: "afterRectificationImageFiles", label: "整改后图片", render: <Upload /> },
{ ...(
name: "hiddenUserAddCmds", data.isRelated === 0
render: FORM_ITEM_RENDER_ENUM.FORM_LIST, ? [
formListUniqueProps: { {
addDefaultValue: { type: 300 }, name: "hiddenUserAddCmds",
options: field => ([ render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
{ formListUniqueProps: {
name: [field.name, "deptId"], addDefaultValue: { type: 300 },
label: "验收部门", options: field => ([
span: 12, {
render: ( name: [field.name, "deptId"],
<DepartmentSelectTree label: "验收部门",
onChange={() => { span: 12,
form.setFieldValue(["hiddenUserAddCmds", field.name, "userId"], ""); render: (
form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], ""); <DepartmentSelectTree
}} onChange={() => {
onGetLabel={(label) => { form.setFieldValue(["hiddenUserAddCmds", field.name, "userId"], "");
form.setFieldValue(["hiddenUserAddCmds", field.name, "deptName"], label); form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], "");
}} }}
/> onGetLabel={(label) => {
), form.setFieldValue(["hiddenUserAddCmds", field.name, "deptName"], label);
}, }}
{ name: [field.name, "deptName"], deptName: "验收部门名称", onlyForLabel: true }, />
{ name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true }, ),
{ name: [field.name, "userName"], deptName: "验收人名称", onlyForLabel: true }, },
{ { name: [field.name, "deptName"], deptName: "验收部门名称", onlyForLabel: true },
name: [field.name, "userId"], { name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true },
deptName: "验收人", { name: [field.name, "userName"], deptName: "验收人名称", onlyForLabel: true },
span: 12, {
rules: [{ name: [field.name, "userId"],
validator: (_, value) => { deptName: "验收人",
// 获取已存在的用户名 span: 12,
const confirmUserName = data?.hiddenConfirmUserCO?.rectifyUserId; rules: [{
const presetUserName = data?.hiddenUserPresetsCO?.rectifyUserId; validator: (_, value) => {
// 获取已存在的用户名
const confirmUserName = data?.hiddenConfirmUserCO?.rectifyUserId;
const presetUserName = data?.hiddenUserPresetsCO?.rectifyUserId;
// 验证是否与已有用户名相同 // 验证是否与已有用户名相同
if (value && (value === confirmUserName || value === presetUserName)) { if (value && (value === confirmUserName || value === presetUserName)) {
return Promise.reject(new Error("验收人不能与整改人相同")); return Promise.reject(new Error("验收人不能与整改人相同"));
} }
return Promise.resolve(); return Promise.resolve();
},
}],
render: (
<PersonnelSelect
params={{ departmentId: hiddenUserAddCmds?.[field.name]?.deptId || "" }}
onGetLabel={label => form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], label)}
/>
),
},
]),
}, },
}], },
render: ( ]
<PersonnelSelect : [
params={{ departmentId: hiddenUserAddCmds?.[field.name]?.deptId || "" }} {
onGetLabel={label => form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], label)} name: "hiddenUserAddCmds",
/> render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
), formListUniqueProps: {
}, showAddButton: false,
]), showRemoveButton: false,
}, options: field => ([
}, { name: [field.name, "deptName"], label: "验收部门", span: 12, componentProps: { disabled: true } },
{ name: [field.name, "deptId"], deptName: "验收部门id", onlyForLabel: true },
{ name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true },
{ name: [field.name, "userId"], deptName: "验收人id", onlyForLabel: true },
{ name: [field.name, "userName"], deptName: "验收人", span: 12, componentProps: { disabled: true } },
]),
},
},
]
),
{ {
name: "isRectificationScheme", name: "isRectificationScheme",
label: "整改方案", label: "整改方案",

View File

@ -1,5 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Divider, Form, message } from "antd"; import { Divider, Form, message } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
@ -17,6 +18,9 @@ function Review(props) {
const [form] = Form.useForm(); const [form] = Form.useForm();
const deptId = Form.useWatch("deptId", form); const deptId = Form.useWatch("deptId", form);
const { loading: uploadFileLoading, uploadFile } = useUploadFile(); const { loading: uploadFileLoading, uploadFile } = useUploadFile();
const [data, setData] = useState({});
const onSubmit = async (values) => { const onSubmit = async (values) => {
const { filePath } = await uploadFile({ files: values.files, params: { type: UPLOAD_FILE_TYPE_ENUM["138"] } }); const { filePath } = await uploadFile({ files: values.files, params: { type: UPLOAD_FILE_TYPE_ENUM["138"] } });
const { success } = await props["specialDisposalReview"]({ const { success } = await props["specialDisposalReview"]({
@ -30,12 +34,14 @@ function Review(props) {
props.history.goBack(); props.history.goBack();
} }
}; };
return ( return (
<div> <div>
<HeaderBack title="特殊处理审核" /> <HeaderBack title="特殊处理审核" />
<HiddenInfo <HiddenInfo
isShowHeaderBack={false} isShowHeaderBack={false}
onGetData={(data) => { onGetData={(data) => {
setData(data);
form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure); form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure);
}} }}
/> />
@ -81,54 +87,62 @@ function Review(props) {
dependencies: ["state"], dependencies: ["state"],
hidden: formValues => !(formValues.state === 3), hidden: formValues => !(formValues.state === 3),
}, },
{ ...(
name: "modifyRectifyPerson", data.isRelated === 0
label: "是否更换整改负责人", ? [
span: 24, {
render: FORM_ITEM_RENDER_ENUM.RADIO, name: "modifyRectifyPerson",
items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], label: "是否更换整改负责人",
componentProps: { span: 24,
onChange: () => { render: FORM_ITEM_RENDER_ENUM.RADIO,
form.setFieldValue("deptId", ""); items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }],
form.setFieldValue("deptName", ""); componentProps: {
form.setFieldValue("rectifyPersonId", ""); onChange: () => {
form.setFieldValue("rectifyPersonName", ""); form.setFieldValue("deptId", "");
}, form.setFieldValue("deptName", "");
}, form.setFieldValue("rectifyPersonId", "");
dependencies: ["state"], form.setFieldValue("rectifyPersonName", "");
hidden: formValues => !(formValues.state === 4), },
}, },
{ dependencies: ["state"],
name: "deptId", hidden: formValues => !(formValues.state === 4),
label: "整改负责人部门", },
render: ( {
<DepartmentSelectTree name: "deptId",
onChange={() => { label: "整改部门",
form.setFieldValue("rectifyPersonId", ""); render: (
form.setFieldValue("rectifyPersonName", ""); <DepartmentSelectTree
}} onChange={() => {
onGetLabel={(label) => { form.setFieldValue("rectifyPersonId", "");
form.setFieldValue("deptName", label); form.setFieldValue("rectifyPersonName", "");
}} }}
/> onGetLabel={(label) => {
), form.setFieldValue("deptName", label);
dependencies: ["state", "modifyRectifyPerson"], }}
hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1), />
}, ),
{ name: "deptName", label: "整改负责人部门名称", onlyForLabel: true }, dependencies: ["state", "modifyRectifyPerson"],
{ hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1),
name: "rectifyPersonId", },
label: "整改负责人", { name: "deptName", label: "整改部门名称", onlyForLabel: true },
render: ( {
<PersonnelSelect name: "rectifyPersonId",
params={{ departmentId: deptId }} label: "整改人",
onGetLabel={label => form.setFieldValue("rectifyPersonName", label)} render: (
/> <PersonnelSelect
), params={{ departmentId: deptId }}
dependencies: ["state", "modifyRectifyPerson"], onGetLabel={label => form.setFieldValue("rectifyPersonName", label)}
hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1), />
}, ),
{ name: "rectifyPersonName", label: "整改负责人名称", onlyForLabel: true }, dependencies: ["state", "modifyRectifyPerson"],
hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1),
},
{ name: "rectifyPersonName", label: "整改人名称", onlyForLabel: true },
]
: [
{ name: "modifyRectifyPerson", label: "是否更换整改负责人", onlyForLabel: true },
]
),
]} ]}
/> />
</div> </div>