添加相关方考评模块

master
853931625@qq.com 2026-05-18 11:30:59 +08:00
parent 9034a66e5b
commit 0f2ab752fa
30 changed files with 668 additions and 0 deletions

6
src/api/hidden/index.js Normal file
View File

@ -0,0 +1,6 @@
import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
export const ledgerList = declareRequest(
"ledgerLoading",
"Post > @/hidden/hidden/list",
);

View File

@ -27,3 +27,4 @@ export const PROJECT_ONELEVEL_STATUS_MAP = [
{ name: "已完成", bianma: "4" }, { name: "已完成", bianma: "4" },
{ name: "已驳回", bianma: "6" }, { name: "已驳回", bianma: "6" },
]; ];
export const IS_RELATED_ENUM = [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }];

View File

@ -10,3 +10,4 @@ export const NS_QUALIFICATION_REVIEW = defineNamespace("qualificationReview");
export const NS_QUALIFICATION_RECORDS = defineNamespace("qualificationRecords"); export const NS_QUALIFICATION_RECORDS = defineNamespace("qualificationRecords");
export const NS_QUALIFICATION_STATISTICS = defineNamespace("qualificationStatistics"); export const NS_QUALIFICATION_STATISTICS = defineNamespace("qualificationStatistics");
export const NS_QUALIFICATION_APPLY = defineNamespace("qualificationApply"); export const NS_QUALIFICATION_APPLY = defineNamespace("qualificationApply");
export const NS_HIDDEN = defineNamespace("hidden");

View File

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

View File

@ -0,0 +1,7 @@
import ListPage from "~/pages/Container/Supervision/EvaluationManage/CompositeManage/List";
function List(props) {
return <ListPage xmsbtn="qud-xgfzhkpgl-xms" yhsbtn="qud-xgfzhkpgl-yhs" dflbbtn="qyd-xgfzhkpgl-dflb" {...props} />;
}
export default List;

View File

@ -0,0 +1,7 @@
import ListPage from "~/pages/Container/Supervision/EvaluationManage/CompositeManage/ProjectList";
function index(props) {
return <ListPage {...props} />;
}
export default index;

View File

@ -0,0 +1,7 @@
import ReViewPage from "~/pages/Container/Local/ProjectReview/ProjectApproval/Submit/ReView";
function ReView(props) {
return <ReViewPage {...props} />;
}
export default ReView;

View File

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

View File

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

View File

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

View File

@ -0,0 +1,7 @@
import ListPage from "~/pages/Container/Supervision/EvaluationManage/CompositeManage/List";
function List(props) {
return <ListPage xmsbtn="qud-xgfkpgl-xms" yhsbtn="qud-xgfkpgl-yhs" pfbtn="qud-xgfkpgl-pf" dflbbtn="qud-xgfkpgl-dflb" {...props} />;
}
export default List;

View File

@ -0,0 +1,7 @@
import ListPage from "~/pages/Container/Supervision/EvaluationManage/CompositeManage/ProjectList";
function index(props) {
return <ListPage {...props} />;
}
export default index;

View File

@ -0,0 +1,7 @@
import ReViewPage from "~/pages/Container/Local/ProjectReview/ProjectApproval/Submit/ReView";
function ReView(props) {
return <ReViewPage {...props} />;
}
export default ReView;

View File

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

View File

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

View File

@ -0,0 +1,15 @@
// import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
function HiddenView() {
const query = useGetUrlQuery();
return (
<Page headerTitle={query.history === "1" ? "过程记录" : "查看"} contentPadding="0 20px 20px 20px">
{/*<HiddenInfo history={query.history === "1"} />*/}
</Page>
);
}
export default HiddenView;

View File

@ -0,0 +1,159 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
import HiddenLevelSelectTree from "zy-react-library/components/SelectTree/HiddenLevel/Gwj";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { HIDDEN_RECTIFICATION_TYPE_ENUM, HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
import useTable from "zy-react-library/hooks/useTable";
import { getLabelName, getUnmatchedItems } from "zy-react-library/utils";
import { IS_RELATED_ENUM } from "~/enumerate/constant";
import {NS_HIDDEN} from "~/enumerate/namespace";
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["ledgerList"], {
form,
usePermission:false,
useStorageQueryCriteria:false,
transform: formData => ({
hiddenFindTime: formData.hiddenFindTime?.[0],
hiddenFindTimeLe: formData.hiddenFindTime?.[1],
state: formData.state ? [formData.state] : undefined,
hiddenLevels: ["hiddenLevel1001", "hiddenLevel1004", "hiddenLevel1002"],
}),
});
return (
<Page headerTitle="隐患列表">
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "hiddenDesc", label: "隐患描述" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{
name: "hiddenType",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
},
{
name: "hiddenLevel",
label: "隐患级别",
render: (
<HiddenLevelSelectTree isShowLarger={false} isShowMajor={false} />
),
},
{ name: "creatorName", label: "隐患发现人" },
{
name: "state",
label: "隐患状态",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: getUnmatchedItems({ list: HIDDEN_STATE_ENUM, value: ["98", "102"] }),
},
{ name: "confirmUserName", label: "确认人" },
{ name: "rectificationUserName", label: "整改人" },
{ name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> },
{ name: "checkUserName", label: "验收人" },
{
name: "isRelated",
label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: IS_RELATED_ENUM,
},
{
name: "isAi",
label: "是否使用AI",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }],
},
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
},
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName", width: 180 },
{ title: "隐患发现人", dataIndex: "createName", width: 130 },
{
title: "隐患发现时间",
dataIndex: "hiddenFindTime",
width: 180,
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{
title: "整改类型",
dataIndex: "rectificationType",
width: 100,
render: (_, record) => getLabelName({
list: HIDDEN_RECTIFICATION_TYPE_ENUM,
status: record.rectificationType,
}),
},
{ title: "确认人", dataIndex: "confirmUserName", width: 100 },
{ title: "整改人", dataIndex: "rectifyUserName", width: 100 },
{
title: "整改时间",
dataIndex: "rectificationTime",
width: 180,
render: (_, record) => record.rectificationTime ? dayjs(record.rectificationTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{ title: "验收人", dataIndex: "hiddenYUserName", width: 100 },
{
title: "是否相关方",
dataIndex: "isRelated",
width: 150,
render: (_, record) => getLabelName({
list: IS_RELATED_ENUM,
status: record.isRelated,
}),
},
{
title: "隐患状态",
dataIndex: "state",
render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }),
},
{
title: "操作",
width: 220,
fixed: "right",
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
}}
>
查看
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}
export default Connect([NS_HIDDEN], true)(Permission(List));

View File

@ -0,0 +1,199 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space,message,Modal } 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 { getLabelName } from "zy-react-library/utils";
import { PROJECT_STATUS_MAP } from "~/enumerate/constant";
import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
import {FORM_ITEM_RENDER_ENUM} from "zy-react-library/enum/formItemRender";
import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder";
function List(props) {
const [form] = Form.useForm();
const [configModalOpen, setConfigModalOpen] = useState(false);
const [currentRecord, setCurrentRecord] = useState(null);
const { tableProps, getData } = useTable(props["inCheckList"], {
form,
transform: (formData) => {
return {
...formData,
startTime: formData.time?.[0],
endTime: formData.time?.[1],
};
},
});
return (
<Page isShowAllAction={false}>
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeCorpInfoName", label: "相关方名称" },
{
name: "time",
label: "时间范围",
render: FORM_ITEM_RENDER_ENUM.DATE_RANGE,
},
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "相关方名称", dataIndex: "corpinfoName" },
{ title: "项目数", dataIndex: "projectName",render:(_, record) => (
<Button
type="link"
// disabled={ !(props.permission(props.xmsbtn && "jgd-xgfzhkpgl-xms"))}
onClick={() => {
props.history.push(`./ProjectList?id=${record.id}`);
}}
>
{record.projectName}
</Button>
) },
{ title: "已验收/隐患数", dataIndex: "manageDeptName",render:(_, record) => (
<Button
type="link"
// disabled={ !(props.permission(props.yhsbtn && "jgd-xgfzhkpgl-yhs"))}
onClick={() => {
props.history.push(`./HiddenList?id=${record.id}`);
}}
>
{record.manageDeptName}
</Button>
) },
{ title: "处罚金处罚次数", dataIndex: "qualificationsTypeName" },
{ title: "处罚金总额(元)", dataIndex: "companyName" },
{
title: "已缴纳金额(元)",
dataIndex: "projectStatus",
render: (_, record) => getLabelName({ list: PROJECT_STATUS_MAP, status: record.projectStatus }),
},
{
title: "操作",
fixed: "right",
width: 150,
render: (_, record) => (
<Space>
{/*{props.permission(props.pfbtn) && (*/}
<Button
type="link"
onClick={() => {
setCurrentRecord(record);
setConfigModalOpen(true);
}}
>
评分
</Button>
{/*)}*/}
{/*{props.permission(props.dflbbtn || "jgd-xgfzhkpgl-dflb") && (*/}
<Button
type="link"
onClick={() => {
props.history.push(`./ScoreList?id=${record.id}`);
}}
>
得分列表
</Button>
{/*)}*/}
</Space>
),
},
]}
{...tableProps}
/>
{
configModalOpen
&& (
<AddModal
currentData={currentRecord}
requestEdit={props["keyProjectAlgorithmItemEdit"]}
requestTypeList={props["algorithmListAll"]}
requestListItemByCamera={props["listItemByCamera"]}
open={configModalOpen}
onCancel={() => {
setConfigModalOpen(false);
setCurrentRecord({});
}}
getData={getData}
/>
)
}
</Page>
);
}
function AddModalComponent(props) {
const [form] = Form.useForm();
const onCancel = () => {
form.resetFields();
props.onCancel();
};
const onSubmit = async (values) => {
const res = await props.requestEdit(submitValues);
if (res?.success) {
onCancel();
props.getData();
message.success("评分成功");
}
};
return (
<Modal
maskClosable={false}
open={props.open}
onCancel={onCancel}
onOk={form.submit}
title="评分"
width={600}
>
<FormBuilder
form={form}
span={24}
labelCol={{ span: 8 }}
onFinish={onSubmit}
showActionButtons={false}
options={[
{
name: "algorithmTypeIds",
label: "评分阶段",
render:FORM_ITEM_RENDER_ENUM.DATE_MONTH,
span: 24,
},
{
name: "score",
label: "项目分数",
render:FORM_ITEM_RENDER_ENUM.NUMBER,
componentProps:{
max:"100",
min:"1",
step:"1",
},
span: 24,
},
{
required:false,
render:( <div style={{ color: "red" }}>
<div>请输入大于0的整数不可输入小数点满分为100分</div>
<div>请于评分阶段后3个月内评分如超出时间则不可评分 评分阶段以月为单位请勿重复评分</div>
</div>)
}
]}
/>
</Modal>
);
}
const AddModal = AddModalComponent;
export default Connect([NS_QUALIFICATION_STATISTICS], true)(Permission(List));

View File

@ -0,0 +1,80 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, Modal, Space } from "antd";
import { useState } from "react";
import AddIcon from "zy-react-library/components/Icon/AddIcon";
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 { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useTable from "zy-react-library/hooks/useTable";
import { getLabelName } from "zy-react-library/utils";
import { PROJECT_ONELEVEL_STATUS_MAP, PROJECT_STATUS_MAP } from "~/enumerate/constant";
import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
function ProjectList(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["inCheckList"], {
form,
usePermission:false,
useStorageQueryCriteria:false,
// params: {
// noneCompleted: props.noneCompleted ? props.noneCompleted : 2,
// },
});
return (
<Page headerTitle="项目列表">
<Search
labelCol={{ span: 8 }}
options={[
{ name: "likeProjectName", label: "项目名称" },
{
name: "eqQualificationsTypeId",
label: "项目类别",
render: (<DictionarySelect dictValue="qualificationsType" />),
},
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "项目名称", dataIndex: "projectName" },
{ title: "项目等级", dataIndex: "stakeholderLevel", render: (_, record) => record.stakeholderLevel === "two-level" ? "二级项目" : "一级项目" },
{ title: "项目类别", dataIndex: "qualificationsTypeName" },
{ title: "项目属地单位", dataIndex: "companyName" },
{ title: "股份主管部门", dataIndex: "manageDeptName" },
{
title: "操作",
fixed: "right",
width: 120,
render: (_, record) => (
<Space>
{/*{props.permission(props.ckbtn || "jgd-xgfzhkpgl-xmlb-info") && (*/}
<Button
type="link"
onClick={() => {
props.history.push(`./reView?id=${record.id}`);
}}
>
查看
</Button>
{/*)}*/}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}
export default Connect([NS_QUALIFICATION_STATISTICS], true)(Permission(ProjectList));

View File

@ -0,0 +1,7 @@
import ReViewPage from "~/pages/Container/Local/ProjectReview/ProjectApproval/Submit/ReView";
function ReView(props) {
return <ReViewPage {...props} />;
}
export default ReView;

View File

@ -0,0 +1,55 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
import { NS_QUALIFICATION_STATISTICS } from "~/enumerate/namespace";
import {FORM_ITEM_RENDER_ENUM} from "zy-react-library/enum/formItemRender";
function ScoreList(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["inCheckList"], {
form,
usePermission:false,
useStorageQueryCriteria:false,
transform: (formData) => {
return {
...formData,
};
},
});
return (
<Page isShowAllAction={false}>
<Search
options={[
{
name: "time",
label: "选择年份",
render: FORM_ITEM_RENDER_ENUM.DATE_YEAR,
},
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "年份", dataIndex: "corpinfoName" },
{ title: "月份", dataIndex: "projectName"},
{ title: "主管部门", dataIndex: "qualificationsTypeName" },
{ title: "评分人员", dataIndex: "companyName" },
{
title: "得分",
dataIndex: "projectStatus",
}
]}
{...tableProps}
/>
</Page>
);
}
export default Connect([NS_QUALIFICATION_STATISTICS], true)(Permission(ScoreList));

View File

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

View File

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

View File

@ -0,0 +1,7 @@
import ListPage from "~/pages/Container/Supervision/EvaluationManage/CompositeManage/List";
function List(props) {
return <ListPage xmsbtn={"jgd-xgfkpgl-xms"} yhsbtn={"jgd-xgfkpgl-yhs"} pfbtn="jgd-xgfkpgl-pf" dflbbtn="jgd-xgfkpgl-dflb" {...props} />;
}
export default List;

View File

@ -0,0 +1,7 @@
import ListPage from "~/pages/Container/Supervision/EvaluationManage/CompositeManage/ProjectList";
function index(props) {
return <ListPage {...props} />;
}
export default index;

View File

@ -0,0 +1,7 @@
import ReViewPage from "~/pages/Container/Local/ProjectReview/ProjectApproval/Submit/ReView";
function ReView(props) {
return <ReViewPage {...props} />;
}
export default ReView;

View File

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

View File

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

View File

@ -0,0 +1,15 @@
// import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
function HiddenView() {
const query = useGetUrlQuery();
return (
<Page headerTitle={query.history === "1" ? "过程记录" : "查看"} contentPadding="0 20px 20px 20px">
{/*<HiddenInfo history={query.history === "1"} />*/}
</Page>
);
}
export default HiddenView;

View File

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