import React, { useState, useEffect } from "react";
import {
Form,
Table,
Button,
Tag,
Modal,
Select,
Descriptions,
message,
} from "antd";
import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout";
import SearchForm from "@cqsjjb/jjb-react-admin-component/SearchForm";
import ControlWrapper from "@cqsjjb/jjb-react-admin-component/ControlWrapper";
import TableAction from "@cqsjjb/jjb-react-admin-component/TableAction";
import { AntdTableFuncControl } from "@cqsjjb/jjb-common-decorator/antd";
import { NS_QUAL_REVIEW } from "~/enumerate/namespace";
import { ON_SITE_REVIEW_STATUS_MAP } from "~/enumerate/constant";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { tools } from "@cqsjjb/jjb-common-lib";
import "./index.less";
const { router } = tools;
const BIZ_TYPE_MAP = {
add: "新申请资质",
change: "资质变更",
};
const SiteReviewNotice = (props) => {
const [searchForm] = Form.useForm();
const [detailModalVisible, setDetailModalVisible] = useState(false);
const [currentRecord, setCurrentRecord] = useState(null);
const {
qualReview,
queryQualOnSiteReviewOrgPage,
confirmQualOnSiteReview,
} = props;
const {
orgSiteReviewList = [],
orgSiteReviewTotal = 0,
siteReviewNoticeLoading,
} = qualReview || {};
useEffect(() => {
searchForm.setFieldsValue(router.query);
getData();
}, []);
const getData = () => {
queryQualOnSiteReviewPage({
...router.query,
});
};
const queryQualOnSiteReviewPage = (params) => {
router.query = params;
queryQualOnSiteReviewOrgPage(params);
};
const handleSearch = (values) => {
const { reviewDateRange, ...rest } = values;
queryQualOnSiteReviewPage({
...router.query,
...rest,
...(reviewDateRange?.[0] && { reviewDateStartBegin: reviewDateRange[0].format("YYYY-MM-DD") }),
...(reviewDateRange?.[1] && { reviewDateStartEnd: reviewDateRange[1].format("YYYY-MM-DD") }),
current: 1,
size: 10,
});
};
const handleReset = (values) => {
searchForm.resetFields();
queryQualOnSiteReviewPage({ ...values, current: 1, size: 10 });
};
const handleViewDetail = (record) => {
setCurrentRecord(record);
setDetailModalVisible(true);
};
const handleConfirm = (record) => {
Modal.confirm({
title: "确认现场审查安排",
content: `确定确认项目"${record.id}"的现场审查安排吗?确认后将反馈至监管端。`,
onOk: () => {
return confirmQualOnSiteReview({ id: record.id }).then((res) => {
if (res?.success !== false) {
message.success("现场审查安排已确认");
getData();
}
});
},
});
};
const columns = [
{ title: "通知编号", dataIndex: "id", width: 110 ,ellipsis: true },
{
title: "申请事项",
dataIndex: "bizType",
width: 120,
render: (v) => BIZ_TYPE_MAP[v] || v || "-",
},
{ title: "监管部门", dataIndex: "supervisorContact", width: 130, ellipsis: true },
{ title: "现场审查时间", dataIndex: "reviewDateStart", width: 180 },
{ title: "审查地点", dataIndex: "reviewLocation", width: 180, ellipsis: true },
{ title: "审查组", dataIndex: "reviewMembers", width: 130, ellipsis: true },
{
title: "材料准备",
dataIndex: "materialRequirements",
width: 160,
ellipsis: true,
},
{
title: "状态",
dataIndex: "status",
width: 110,
render: (status) => {
const cfg = ON_SITE_REVIEW_STATUS_MAP[status];
return cfg ? {cfg.label} : (status || "-");
},
},
{
title: "操作",
width: 180,
fixed: "right",
render: (_, record) => (
{record.status === "AGENCY_PENDING_CONFIRMATION" && (
)}
),
},
];
return (
,
新申请资质
资质变更
,
,
{Object.entries(ON_SITE_REVIEW_STATUS_MAP).map(([value, cfg]) => (
{cfg.label}
))}
,
]}
onFinish={handleSearch}
onReset={handleReset}
/>
`共 ${total} 条`,
current: Number(router.query.current) || 1,
pageSize: Number(router.query.size) || 10,
onChange: (page, pageSize) => {
queryQualOnSiteReviewPage({ ...router.query, current: page, size: pageSize });
},
}}
/>
setDetailModalVisible(false)}
footer={null}
width={680}
destroyOnHide={true}
>
{currentRecord && (
{currentRecord.id}
{BIZ_TYPE_MAP[currentRecord.bizType] || currentRecord.bizType || "-"}
{currentRecord.supervisorContact || "-"}
{currentRecord.contactPhone || "-"}
{currentRecord.reviewDateStart || "-"}
{currentRecord.reviewLocation || "-"}
{currentRecord.reviewMembers || "-"}
{currentRecord.reviewLeader || "-"}
{ON_SITE_REVIEW_STATUS_MAP[currentRecord.status]?.label || currentRecord.status}
{currentRecord.materialRequirements || "-"}
)}
);
};
export default Connect(
[NS_QUAL_REVIEW],
true,
)(AntdTableFuncControl(SiteReviewNotice));