fix
parent
1d9dc7be62
commit
0a7476358d
|
|
@ -325,3 +325,11 @@ export const evalReportSpotcheckRectify = declareRequest(
|
||||||
"evalReportSpotcheckRectifyLoading",
|
"evalReportSpotcheckRectifyLoading",
|
||||||
"Post > @/safetyEval/institution/eval-report-spotcheck/rectify",
|
"Post > @/safetyEval/institution/eval-report-spotcheck/rectify",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// ===== 机构备案行业信息 =====
|
||||||
|
|
||||||
|
export const orgIndustryCodeList = declareRequest(
|
||||||
|
"orgIndustryCodeLoading",
|
||||||
|
"Get > /safetyEval/org-info/select/org/industry/code",
|
||||||
|
"orgIndustryCodeList: [] | res.data || []",
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
import { tools } from "@cqsjjb/jjb-common-lib";
|
import { tools } from "@cqsjjb/jjb-common-lib";
|
||||||
import { Button, Form, message, Modal, Space, Spin, Tabs } from "antd";
|
import { Button, Form, message, Modal, Space, Spin, Table, Tabs } from "antd";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useCallback, useEffect, useRef, useState } from "react";
|
import { useCallback, useEffect, useRef, useState } from "react";
|
||||||
import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
|
import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
|
||||||
|
|
@ -12,9 +12,7 @@ import { FILING_MATERIAL_TEMPLATE } from "../filingMaterialTemplate";
|
||||||
import {
|
import {
|
||||||
fetchOrgPersonnelOptions,
|
fetchOrgPersonnelOptions,
|
||||||
mapEquipRowToFilingEquipment,
|
mapEquipRowToFilingEquipment,
|
||||||
|
|
||||||
mergeDetailFromForms,
|
mergeDetailFromForms,
|
||||||
|
|
||||||
} from "../filingPersist";
|
} from "../filingPersist";
|
||||||
import { verifyFilingPrerequisites } from "../filingVerify";
|
import { verifyFilingPrerequisites } from "../filingVerify";
|
||||||
|
|
||||||
|
|
@ -36,13 +34,14 @@ const MODE_TITLE = {
|
||||||
function FilingFormPage(props) {
|
function FilingFormPage(props) {
|
||||||
const query = router.query;
|
const query = router.query;
|
||||||
const mode = query.mode;
|
const mode = query.mode;
|
||||||
|
|
||||||
const [submitting, setSubmitting] = useState(false);
|
const [submitting, setSubmitting] = useState(false);
|
||||||
const [activeStep, setActiveStep] = useState("basic");
|
const [activeStep, setActiveStep] = useState("basic");
|
||||||
const [detail, setDetail] = useState(null);
|
const [detail, setDetail] = useState(null);
|
||||||
const [personnelOptions, setPersonnelOptions] = useState([]);
|
const [personnelOptions, setPersonnelOptions] = useState([]);
|
||||||
const [verifyOpen, setVerifyOpen] = useState(false);
|
const [verifyOpen, setVerifyOpen] = useState(false);
|
||||||
const [verifyResult, setVerifyResult] = useState(null);
|
const [verifyResult, setVerifyResult] = useState(null);
|
||||||
|
const [verifyFailItems, setVerifyFailItems] = useState([]);
|
||||||
const [basicForm] = Form.useForm();
|
const [basicForm] = Form.useForm();
|
||||||
const [commitmentForm] = Form.useForm();
|
const [commitmentForm] = Form.useForm();
|
||||||
|
|
||||||
|
|
@ -84,7 +83,9 @@ function FilingFormPage(props) {
|
||||||
const commitment = res?.data?.commitment || {};
|
const commitment = res?.data?.commitment || {};
|
||||||
commitmentForm.setFieldsValue({
|
commitmentForm.setFieldsValue({
|
||||||
...commitment,
|
...commitment,
|
||||||
signDate: commitment.signDate ? dayjs(commitment.signDate) : undefined,
|
signDate: commitment.signDate
|
||||||
|
? dayjs(commitment.signDate)
|
||||||
|
: undefined,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -117,8 +118,6 @@ function FilingFormPage(props) {
|
||||||
[syncCommitmentFromBasic],
|
[syncCommitmentFromBasic],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (activeStep === "commitment") {
|
if (activeStep === "commitment") {
|
||||||
syncCommitmentFromBasic();
|
syncCommitmentFromBasic();
|
||||||
|
|
@ -157,12 +156,11 @@ function FilingFormPage(props) {
|
||||||
setVerifyOpen(true);
|
setVerifyOpen(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleVerifyConfirm = async (config={}) => {
|
const handleVerifyConfirm = async (config = {}) => {
|
||||||
|
|
||||||
setSubmitting(true);
|
setSubmitting(true);
|
||||||
|
|
||||||
const currentDetail = collectCurrentDetail();
|
const currentDetail = collectCurrentDetail();
|
||||||
|
|
||||||
const word = mode === "change" ? "Change" : "";
|
const word = mode === "change" ? "Change" : "";
|
||||||
const body = {
|
const body = {
|
||||||
[`qualFiling${word}AddCmd`]: {
|
[`qualFiling${word}AddCmd`]: {
|
||||||
|
|
@ -178,13 +176,15 @@ function FilingFormPage(props) {
|
||||||
delete params.materials;
|
delete params.materials;
|
||||||
}
|
}
|
||||||
if (params.personnelList) {
|
if (params.personnelList) {
|
||||||
body[`qualFilingPersonnel${word}AddCmds`] = params.personnelList.map(item=>{
|
body[`qualFilingPersonnel${word}AddCmds`] = params.personnelList.map(
|
||||||
return {
|
(item) => {
|
||||||
...item,
|
return {
|
||||||
personName: item.userName || item.personName,
|
...item,
|
||||||
sourcePersonnelId: item.sourcePersonnelId || item.id,
|
personName: item.userName || item.personName,
|
||||||
};
|
sourcePersonnelId: item.sourcePersonnelId || item.id,
|
||||||
});
|
};
|
||||||
|
},
|
||||||
|
);
|
||||||
delete params.personnelList;
|
delete params.personnelList;
|
||||||
}
|
}
|
||||||
if (params.equipmentList) {
|
if (params.equipmentList) {
|
||||||
|
|
@ -210,8 +210,12 @@ function FilingFormPage(props) {
|
||||||
|
|
||||||
if (result?.success) {
|
if (result?.success) {
|
||||||
setVerifyOpen(false);
|
setVerifyOpen(false);
|
||||||
message.success(config.isSaveDraft ? "暂存成功" : "提交成功");
|
if (Array.isArray(result.data) && result.data.length) {
|
||||||
props.history.goBack();
|
setVerifyFailItems(result.data);
|
||||||
|
} else {
|
||||||
|
message.success(config.isSaveDraft ? "暂存成功" : "提交成功");
|
||||||
|
props.history.goBack();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
setSubmitting(false);
|
setSubmitting(false);
|
||||||
};
|
};
|
||||||
|
|
@ -334,7 +338,9 @@ function FilingFormPage(props) {
|
||||||
{
|
{
|
||||||
key: "basic",
|
key: "basic",
|
||||||
label: "1. 基本信息备案",
|
label: "1. 基本信息备案",
|
||||||
children: <BasicInfoStep form={basicForm} disabled={readOnly} mode={mode} />,
|
children: (
|
||||||
|
<BasicInfoStep form={basicForm} disabled={readOnly} mode={mode} />
|
||||||
|
),
|
||||||
forceRender: true,
|
forceRender: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -397,23 +403,24 @@ function FilingFormPage(props) {
|
||||||
history={props.history}
|
history={props.history}
|
||||||
previous
|
previous
|
||||||
extra={
|
extra={
|
||||||
!readOnly && mode !== FILING_FORM_MODE.CHANGE ? (
|
!readOnly && mode !== FILING_FORM_MODE.CHANGE ? (
|
||||||
<Button loading={submitting} onClick={() => handleVerifyConfirm({ isSaveDraft: true })}>
|
<Button
|
||||||
|
loading={submitting}
|
||||||
|
onClick={() => handleVerifyConfirm({ isSaveDraft: true })}
|
||||||
|
>
|
||||||
暂存
|
暂存
|
||||||
</Button>
|
</Button>
|
||||||
) : null
|
) : null
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Spin spinning={ submitting}>
|
<Spin spinning={submitting}>
|
||||||
<Tabs
|
<Tabs activeKey={activeStep} items={STEP_ITEMS} onChange={goToStep} />
|
||||||
activeKey={activeStep}
|
|
||||||
items={STEP_ITEMS}
|
|
||||||
onChange={goToStep}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Space style={{
|
<Space
|
||||||
marginTop: '12px'
|
style={{
|
||||||
}}>
|
marginTop: "12px",
|
||||||
|
}}
|
||||||
|
>
|
||||||
{stepIndex > 0 && (
|
{stepIndex > 0 && (
|
||||||
<Button
|
<Button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|
@ -449,6 +456,25 @@ function FilingFormPage(props) {
|
||||||
onCancel={() => setVerifyOpen(false)}
|
onCancel={() => setVerifyOpen(false)}
|
||||||
onConfirm={handleVerifyConfirm}
|
onConfirm={handleVerifyConfirm}
|
||||||
/>
|
/>
|
||||||
|
<Modal
|
||||||
|
title="校验失败"
|
||||||
|
open={verifyFailItems.length > 0}
|
||||||
|
onCancel={() => setVerifyFailItems([])}
|
||||||
|
footer={<Button onClick={() => setVerifyFailItems([])}>知道了</Button>}
|
||||||
|
>
|
||||||
|
<Table
|
||||||
|
size="small"
|
||||||
|
rowKey="title"
|
||||||
|
pagination={false}
|
||||||
|
dataSource={verifyFailItems}
|
||||||
|
columns={[
|
||||||
|
{ title: "检查项", dataIndex: "title", width: 120 },
|
||||||
|
{ title: "资质要求", dataIndex: "description", width: 280 },
|
||||||
|
{ title: "当前值", dataIndex: "currentValue", width: 260 },
|
||||||
|
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Modal>
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import { tools } from "@cqsjjb/jjb-common-lib";
|
||||||
import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
|
import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
|
||||||
import { NS_SAFETY_EVAL_BUSINESS } from "~/enumerate/namespace";
|
import { NS_SAFETY_EVAL_BUSINESS } from "~/enumerate/namespace";
|
||||||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
import { QUALIFICATION_INDUSTRY_OPTIONS } from "~/enumerate/enterpriseOptions";
|
import { QUALIFICATION_INDUSTRY_OPTIONS_MAP } from "~/enumerate/enterpriseOptions";
|
||||||
import BaiduMapPicker from "~/components/BaiduMapPicker";
|
import BaiduMapPicker from "~/components/BaiduMapPicker";
|
||||||
import { district } from "~/enumerate/constant";
|
import { district } from "~/enumerate/constant";
|
||||||
import { phoneRule } from "~/utils/validators";
|
import { phoneRule } from "~/utils/validators";
|
||||||
|
|
@ -45,10 +45,12 @@ const EvalProjectCreate = (props) => {
|
||||||
evalProjectSaveLoading,
|
evalProjectSaveLoading,
|
||||||
evalProjectDetailLoading,
|
evalProjectDetailLoading,
|
||||||
customerPage: customerList,
|
customerPage: customerList,
|
||||||
|
orgIndustryCodeList: industryCodes,
|
||||||
} = props.safetyEvalBusiness;
|
} = props.safetyEvalBusiness;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
props.customerPage({ current: 1, size: 999 });
|
props.customerPage({ current: 1, size: 999 });
|
||||||
|
props.orgIndustryCodeList();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
@ -308,9 +310,9 @@ const EvalProjectCreate = (props) => {
|
||||||
rules={[{ required: true, message: "请选择所属行业" }]}
|
rules={[{ required: true, message: "请选择所属行业" }]}
|
||||||
>
|
>
|
||||||
<Select placeholder="请选择" allowClear>
|
<Select placeholder="请选择" allowClear>
|
||||||
{QUALIFICATION_INDUSTRY_OPTIONS.map((opt) => (
|
{(industryCodes || []).map((code) => (
|
||||||
<Select.Option key={opt.value} value={opt.value}>
|
<Select.Option key={code} value={code}>
|
||||||
{opt.label}
|
{QUALIFICATION_INDUSTRY_OPTIONS_MAP[code] || code}
|
||||||
</Select.Option>
|
</Select.Option>
|
||||||
))}
|
))}
|
||||||
</Select>
|
</Select>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue