企业端添加 被委托资质审核 被委托资质审核记录

master
853931625@qq.com 2026-04-28 09:12:08 +08:00
parent 6b31bb3eff
commit 86d1e0e194
8 changed files with 251 additions and 15 deletions

View File

@ -6,8 +6,8 @@
"license": "MIT",
"main": "index.js",
"scripts": {
"serve": "node node_modules/@cqsjjb/scripts/webpack.dev.server.js",
"build": "node node_modules/@cqsjjb/scripts/webpack.build.js",
"serve": "node node_modules/@cqsjjb/scripts/rspack.dev.server.js",
"build": "node node_modules/@cqsjjb/scripts/rspack.build.js",
"push": "jjb-cmd push java production",
"clean-cache": "rimraf node_modules/.cache/webpack",
"serve:development": "cross-env NODE_ENV=development npm run serve",
@ -30,6 +30,7 @@
"lodash-es": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-pdf": "^10.4.1",
"zy-react-library": "^1.2.35"
},
"devDependencies": {

View File

@ -0,0 +1,7 @@
import Review from "~/pages/Container/Supervision/Qualification/Review/Review";
function EntrustedQualificationReview(props) {
return <Review {...props} />;
}
export default EntrustedQualificationReview;

View File

@ -0,0 +1,5 @@
function EntrustedQualification(props) {
return (<div>{props.children}</div>);
}
export default EntrustedQualification;

View File

@ -0,0 +1,80 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
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 PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
import { NS_QUALIFICATION_REVIEW } from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["qualificationReviewList"], {
form,
});
return (
<div>
<Page isShowAllAction={false}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "qualificationsName", label: "资质名称" },
{
name: "qualificationsTypeId",
label: "资质类别",
render: (<DictionarySelect dictValue="qualificationsType" />),
},
{ name: "stakeholderLevel", label: "资质等级", render: (<DictionarySelect dictValue="stakeholderLevel" />) },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "相关方名称", dataIndex: "corpName" },
{
title: "所属集团单位",
dataIndex: "groupUnitName",
render: (_, record) => record.stakeholderLevel === "one-level" ? "-" : record.groupUnitName,
},
{ title: "资质名称", dataIndex: "qualificationsName" },
{ title: "资质类别", dataIndex: "qualificationsTypeName" },
{ title: "资质等级", dataIndex: "stakeholderLevelName" },
{ title: "材料数", dataIndex: "materialNum" },
{
title: "操作",
fixed: "right",
width: 180,
hidden: !props.permission("fgs-bwtzz-sh"),
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`./review?id=${record.id}&qualificationsAuditId=${record.qualificationsAuditId}`);
}}
>
审核
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</Page>
</div>
);
}
export default Connect([NS_QUALIFICATION_REVIEW], true)(Permission(List));

View File

@ -0,0 +1,138 @@
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 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";
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["qualificationRecordsList"], {
form,
transform: (formData) => {
const auditStatus = formData.auditStatus?.split("-") || [];
return {
auditProcess: auditStatus[0],
auditStatus: auditStatus[1],
};
},
});
return (
<Page isShowAllAction={false}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "qualificationsName", label: "资质名称" },
{
name: "qualificationsTypeId",
label: "资质类别",
render: (<DictionarySelect dictValue="qualificationsType" />),
},
{ name: "stakeholderLevel", label: "资质等级", render: (<DictionarySelect dictValue="stakeholderLevel" />) },
// {
// name: "auditStatus",
// label: "审核状态",
// render: FORM_ITEM_RENDER_ENUM.SELECT,
// items: [
// { bianma: "200-200", name: "主管部门审核中" },
// { bianma: "200-300", name: "主管部门已驳回" },
// { bianma: "400", name: "已完成" },
// ],
// },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "相关方名称", dataIndex: "corpName" },
{ title: "资质名称", dataIndex: "qualificationsName" },
{ title: "资质类别", dataIndex: "qualificationsTypeName" },
{ title: "时效属性", dataIndex: "isLongTerm", render: (_, record) => record.isLongTerm ? "长期" : "短期" },
{ title: "资质等级", dataIndex: "stakeholderLevelName" },
{ title: "材料数", dataIndex: "materialNum" },
{
title: "资质资料状态",
dataIndex: "qualificationsStatus",
render: (_, record) => (
<div>
{record.qualificationsStatus === 0 && "正常"}
{record.qualificationsStatus === 1 && "资质待完善"}
{record.qualificationsStatus === 2 && (
<Tooltip
overlayStyle={{ width: "auto", maxWidth: "700px", whiteSpace: "normal", wordBreak: "break-word" }}
title={
record.expireList
? (
<div style={{ width: "100%" }}>
{record.expireList.map((item, index) => (
<div key={index}>
{item.dataName}
{" "}
已于
{item.qualificationsTermEnd}
{" "}
过期
</div>
))}
</div>
)
: "部分资料已过期"
}
>
<span style={{ display: "inline-flex", alignItems: "center" }}>
存在异常
{" "}
<WarningOutlined style={{ color: "#faad14", marginLeft: 4 }} />
</span>
</Tooltip>
)}
{(record.qualificationsStatus === 3 || record.qualificationsStatus === 4) && "资质过期"}
</div>
),
},
{
title: "审核状态",
dataIndex: "auditProcess",
render: (_, record) => (
<div>
{record.auditProcess === "100" && "集团单位"}
{record.status === 100 && "待审核"}
{record.status === 200 && "审核中"}
{record.status === 300 && "已驳回"}
{record.status === 400 && "已完成"}
</div>
),
},
// { title: "时效性", dataIndex: "qualificationsTermStart", render: (_, record) => record.qualificationsTermStart ? `${record.qualificationsTermStart}至${record.qualificationsTermEnd}` : "-" },
{
title: "操作",
fixed: "right",
width: 130,
hidden: !props.permission("fgs-bwtshjl-ck"),
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../ViewInfo?id=${record.id}`);
}}
>
查看
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}
export default Connect([NS_QUALIFICATION_RECORDS], true)(Permission(List));

View File

@ -0,0 +1,5 @@
function ExpertProjectReviewRecord(props) {
return (<div>{props.children}</div>);
}
export default ExpertProjectReviewRecord;

View File

@ -54,11 +54,11 @@ function List(props) {
{
title: "操作",
fixed: "right",
width: 100,
width: 150,
render: (_, record) => (
<Space>
{/* todo recorentrustAudit 200
*/}
{
(record.entrustAudit === 200 && props.permission("gfd-zrzzsh-wt")) &&
<Button
type="link"
onClick={() => {
@ -70,14 +70,7 @@ function List(props) {
>
委托
</Button>
<Button
type="link"
onClick={() => {
props.history.push(`./review?id=${record.id}&qualificationsAuditId=${record.qualificationsAuditId}`);
}}
>
转交审核
</Button>
}
{props.permission("zrzz-jgd-xgfzrzzsh-btn-sh") && (
<Button
type="link"

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal } from "antd";
import { useState } from "react";
import {useEffect, useState} from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -57,7 +57,7 @@ function Review(props) {
)}
/>
{rejectModalOpen && <RejectModal onCancel={() => setRejectModalOpen(false)} id={query.id} qualificationsAuditId={query.qualificationsAuditId} />}
{passModalOpen && <PassModal onCancel={() => setPassModalOpen(false)} id={query.id} qualificationsAuditId={query.qualificationsAuditId} />}
{passModalOpen && <PassModal onCancel={() => setPassModalOpen(false)} id={query.id} qualificationsAuditId={query.qualificationsAuditId} isLongTerm={info.isLongTerm} periodTermStart={info.periodTermStart} periodTermEnd={info.periodTermEnd} />}
</div>
);
}
@ -99,6 +99,7 @@ const RejectModalComponent = (props) => {
};
const PassModalComponent = (props) => {
console.log(props)
const [form] = Form.useForm();
const periodTermStart = Form.useWatch("periodTermStart", form);
const onSubmit = async (values) => {
@ -109,6 +110,12 @@ const PassModalComponent = (props) => {
window.history.back();
}
};
useEffect(() => {
if(props.isLongTerm !== null){
form.setFieldsValue({isLongTerm:props.isLongTerm, periodTermStart:props.periodTermStart, periodTermEnd:props.periodTermEnd});
}
}, []);
return (
<Modal