6.5需求变更

dev
853931625@qq.com 2026-06-10 10:09:20 +08:00
parent 81f785ad5c
commit 592a6a1992
10 changed files with 151 additions and 32 deletions

View File

@ -20,7 +20,7 @@ module.exports = {
// 应用后端分支名称,部署上线需要
javaGitBranch: "<branch-name>",
// 接口服务地址
API_HOST: "https://gbs-gateway.qhdsafety.com",
API_HOST: "",
},
},
// 应用唯一标识符
@ -29,8 +29,9 @@ module.exports = {
contextInject: {
// 应用Key
appKey: "",
fileUrl: "https://jpfz.qhdsafety.com/gbsFileTest/",
// fileUrl: "https://jpfz.qhdsafety.com/gbsFileTest/",
// fileUrl: "http://192.168.20.240:9787/mnt/",
fileUrl: "https://skqhdg.porthebei.com:9004/file/uploadFiles2/",
},
// public/index.html注入全局变量
windowInject: {

View File

@ -19,6 +19,19 @@ import useUploadFile from "zy-react-library/hooks/useUploadFile";
import { getLabelName, validatorEndTime, validatorTimeGECurrentDay } from "zy-react-library/utils";
import { NS_QUALIFICATION_APPLY, NS_QUALIFICATION_MAINTENANCE } from "~/enumerate/namespace";
const hasSelectedValue = value => Array.isArray(value) ? value.length > 0 : !!value;
const validateQualificationBusiness = (values) => {
if (values.qualificationsTypeId !== "sbl")
return true;
if ([values.maintain, values.detection, values.otherHighRiskName].some(hasSelectedValue))
return true;
message.error("“维修、保养”“检测”“其它高风险业务”,至少选择一项。");
return false;
};
function Add(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
@ -33,6 +46,11 @@ function Add(props) {
const getData = async () => {
const { data } = await props["qualificationApplyInfo"]({ id: query.id });
console.log(data);
data.maintain = data.maintain && data.maintain.split(",")
data.detection = data.detection && data.detection.split(",")
data.otherHighRisk = data.otherHighRisk && data.otherHighRisk.split(",")
// 重新提交时删除id
if (query.resubmit) {
delete data.id;
@ -122,6 +140,8 @@ const StepOneComponent = (props) => {
const getQualificationsListAll = async () => {
const { data } = await props["qualificationsListAll"]({ qualificationsTypeId, stakeholderLevel, status: 0 });
setQualificationsListAll(data);
};
@ -161,6 +181,9 @@ const StepOneComponent = (props) => {
form={form}
loading={props.qualificationApply.qualificationApplyLoading}
onFinish={(values) => {
if (!validateQualificationBusiness(values))
return;
props.setCurrentStep(2);
props.setFormValues(values);
}}
@ -278,10 +301,12 @@ const StepOneComponent = (props) => {
items: qualificationsListAll,
itemsField: { labelKey: "qualificationsName", valueKey: "id" },
},
{
name: "maintain",
label: "维修、保养",
hidden:qualificationsTypeId !=="sbl",
required:false,
render: (
<DictionarySelect
dictValue="maintain"
@ -298,6 +323,7 @@ const StepOneComponent = (props) => {
name: "detection",
label: "检测",
hidden:qualificationsTypeId !=="sbl",
required:false,
render: (
<DictionarySelect
dictValue="detection"
@ -312,6 +338,7 @@ const StepOneComponent = (props) => {
{
name: "otherHighRisk",
label: "其它高风险业务",
required:false,
hidden:qualificationsTypeId !=="sbl",
render: (
<DictionarySelect
@ -429,6 +456,9 @@ const StepTwoComponent = forwardRef((props, ref) => {
};
const onSubmit = async () => {
if (!validateQualificationBusiness(props.formValues))
return;
if (!validateFileList(specialList))
return;
for (let i = 0; i < specialList.length; i++) {

View File

@ -73,9 +73,9 @@ function View(props) {
...(
info.qualificationsTypeId === "sbl" ? [
{label: "维修、保养", children: info.maintainName && info.maintainName.join(" , ")},
{label: "检测", children: info.detectionName && info.detectionName.join(" , ")},
{label: "其它高风险业务", children: info.otherHighRiskName && info.otherHighRiskName.join(" , "), span: 2},
{label: "维修、保养", children: info.maintainName && info.maintainName},
{label: "检测", children: info.detectionName && info.detectionName},
{label: "其它高风险业务", children: info.otherHighRiskName && info.otherHighRiskName, span: 2},
] : []
),
{ label: "备注", children: info.remarks },

View File

@ -1,16 +1,19 @@
import { WarningOutlined } from "@ant-design/icons";
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space, Tooltip } from "antd";
import {Button, Descriptions, Form, Modal, Space, Tooltip} from "antd";
import Page from "zy-react-library/components/Page";
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 useTable from "zy-react-library/hooks/useTable";
import { NS_QUALIFICATION_RECORDS } from "~/enumerate/namespace";
import {NS_QUALIFICATION_APPLY, NS_QUALIFICATION_RECORDS} from "~/enumerate/namespace";
import {useState} from "react";
function List(props) {
const [form] = Form.useForm();
const [rejectReasonModalOpen, setRejectReasonModalOpen] = useState(false);
const [rejectReason, setRejectReason] = useState(false);
const { tableProps, getData } = useTable(props["qualificationRecordsList"], {
form,
transform: (formData) => {
@ -21,7 +24,11 @@ function List(props) {
};
},
});
const onViewRejectReason = async (id) => {
const { data } = await props["qualificationApplyRejectReason"]({ id });
setRejectReason(data);
setRejectReasonModalOpen(true);
};
return (
<Page isShowAllAction={false}>
<Search
@ -113,26 +120,63 @@ function List(props) {
{
title: "操作",
fixed: "right",
width: 130,
hidden: !props.permission("fgs-bwtshjl-ck"),
width: 160,
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../ViewInfo?id=${record.id}`);
}}
>
查看
</Button>
{
props.permission("fgs-bwtshjl-ck") &&
(
<Button
type="link"
onClick={() => {
props.history.push(`../ViewInfo?id=${record.id}`);
}}
>
查看
</Button>
)
}
<Button
type="link"
danger
disabled={record.status !== 300}
onClick={() => {
onViewRejectReason(record.id);
}}
>
查看驳回原因
</Button>
</Space>
),
},
]}
{...tableProps}
/>
{rejectReasonModalOpen && <RejectReason rejectReason={rejectReason} onCancel={() => setRejectReasonModalOpen(false)} />}
</Page>
);
}
export default Connect([NS_QUALIFICATION_RECORDS], true)(Permission(List));
const RejectReason = (props) => {
return (
<Modal
title="查看驳回原因"
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
footer={[
<Button key="cancel" onClick={props.onCancel}>关闭</Button>,
]}
>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "驳回原因", children: props.rejectReason },
]}
/>
</Modal>
);
};
export default Connect([NS_QUALIFICATION_RECORDS,NS_QUALIFICATION_APPLY], true)(Permission(List));

View File

@ -21,6 +21,7 @@ function List(props) {
return {
auditProcess: auditStatus[0],
auditStatus: 400,
status: 400
};
},
onSuccess: (data) => {
@ -140,6 +141,7 @@ function List(props) {
查看
</Button>
)}
</Space>
),
},

View File

@ -123,7 +123,7 @@ const PassModalComponent = (props) => {
options={[
{
name: "isLongTerm",
label: "供应商时效属性",
label: "相关方时效属性",
span: 24,
render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: 1, name: "长期" }, { bianma: 0, name: "短期" }],

View File

@ -322,7 +322,7 @@ function Review(props) {
{ label: "注册资金(万元)", children: info.corpInfo?.regcapital },
{ label: "企业类型", children: getLabelName({ list: typeList, status: info.corpInfo?.type }) },
{ label: "营业执照", children: <PreviewImg files={info.corpInfo?.qiyefile || []} /> },
{ label: "营业执照有效期", children: info.corpInfo?.licenseStart ? `${info.corpInfo?.licenseStart}-${info.corpInfo?.licenseEnd}` : "-" },
// { label: "营业执照有效期", children: info.corpInfo?.licenseStart ? `${info.corpInfo?.licenseStart}-${info.corpInfo?.licenseEnd}` : "-" },
]}
/>
</div>

View File

@ -1,16 +1,19 @@
import { WarningOutlined } from "@ant-design/icons";
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space, Tooltip } from "antd";
import {Button, Descriptions, Form, Modal, Space, Tooltip} from "antd";
import Page from "zy-react-library/components/Page";
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 useTable from "zy-react-library/hooks/useTable";
import { NS_QUALIFICATION_RECORDS } from "~/enumerate/namespace";
import {NS_QUALIFICATION_APPLY, NS_QUALIFICATION_RECORDS} from "~/enumerate/namespace";
import {useState} from "react";
function List(props) {
const [form] = Form.useForm();
const [rejectReasonModalOpen, setRejectReasonModalOpen] = useState(false);
const [rejectReason, setRejectReason] = useState(false);
const { tableProps, getData } = useTable(props["qualificationRecordsList"], {
form,
transform: (formData) => {
@ -21,7 +24,11 @@ function List(props) {
};
},
});
const onViewRejectReason = async (id) => {
const { data } = await props["qualificationApplyRejectReason"]({ id });
setRejectReason(data);
setRejectReasonModalOpen(true);
};
return (
<Page isShowAllAction={false}>
<Search
@ -113,7 +120,7 @@ function List(props) {
{
title: "操作",
fixed: "right",
width: 130,
width: 180,
render: (_, record) => (
<Space>
{props.permission("zrzz-jgd-zrzzjl-btn-ck") && (
@ -126,14 +133,49 @@ function List(props) {
查看
</Button>
)}
<Button
type="link"
danger
disabled={record.status !== 300}
onClick={() => {
onViewRejectReason(record.id);
}}
>
查看驳回原因
</Button>
</Space>
),
},
]}
{...tableProps}
/>
{rejectReasonModalOpen && <RejectReason rejectReason={rejectReason} onCancel={() => setRejectReasonModalOpen(false)} />}
</Page>
);
}
const RejectReason = (props) => {
return (
<Modal
title="查看驳回原因"
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
footer={[
<Button key="cancel" onClick={props.onCancel}>关闭</Button>,
]}
>
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
items={[
{ label: "驳回原因", children: props.rejectReason },
]}
/>
</Modal>
);
};
export default Connect([NS_QUALIFICATION_RECORDS], true)(Permission(List));
export default Connect([NS_QUALIFICATION_RECORDS,NS_QUALIFICATION_APPLY], true)(Permission(List));

View File

@ -137,7 +137,7 @@ const PassModalComponent = (props) => {
options={[
{
name: "isLongTerm",
label: "供应商时效属性",
label: "相关方时效属性",
span: 24,
render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: 1, name: "长期" }, { bianma: 0, name: "短期" }],

View File

@ -95,9 +95,9 @@ function ViewInfo(props) {
...(
info.qualificationsTypeId === "sbl" ? [
{label: "维修、保养", children: info.maintainName && info.maintainName.join(" , ")},
{label: "检测", children: info.detectionName && info.detectionName.join(" , ")},
{label: "其它高风险业务", children: info.otherHighRiskName && info.otherHighRiskName.join(" , "), span: 2},
{label: "维修、保养", children: info.maintainName && info.maintainName},
{label: "检测", children: info.detectionName && info.detectionName},
{label: "其它高风险业务", children: info.otherHighRiskName && info.otherHighRiskName, span: 2},
] : []
),
@ -175,7 +175,7 @@ function ViewInfo(props) {
children: getLabelName({ status: corpInfoData.type, list: ENTERPRISE_TYPE }),
},
{ label: "营业执照", children: <PreviewImg files={corpInfoData.licenseFile} /> },
{ label: "营业执照有效期", children: corpInfoData.licenseStart ? `${corpInfoData.licenseStart}${corpInfoData.licenseEnd}` : "" },
// { label: "营业执照有效期", children: corpInfoData.licenseStart ? `${corpInfoData.licenseStart} 至 ${corpInfoData.licenseEnd}` : "" },
]}
/>
</Spin>