diff --git a/package.json b/package.json
index 40378b4..67ea179 100644
--- a/package.json
+++ b/package.json
@@ -18,20 +18,20 @@
"lint": "eslint --ext .js,.jsx,.tsx --fix src"
},
"dependencies": {
- "@ant-design/icons": "latest",
+ "@ant-design/icons": "^6.1.0",
"@ant-design/pro-components": "^2.8.10",
"@cqsjjb/jjb-common-decorator": "latest",
"@cqsjjb/jjb-common-lib": "latest",
"@cqsjjb/jjb-dva-runtime": "latest",
"@cqsjjb/jjb-react-admin-component": "latest",
"ahooks": "^3.9.5",
- "antd": "latest",
+ "antd": "^5.28.0",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-to-print": "^3.2.0",
- "zy-react-library": "^1.0.125"
+ "zy-react-library": "^1.0.130"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",
diff --git a/src/api/evaluationTeamConfig/index.js b/src/api/evaluationTeamConfig/index.js
new file mode 100644
index 0000000..de016c3
--- /dev/null
+++ b/src/api/evaluationTeamConfig/index.js
@@ -0,0 +1,25 @@
+import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
+
+export const evaluationTeamConfigList = declareRequest(
+ "evaluationTeamConfigLoading",
+ "Post > @/hidden/evaluateGroupUserConfig/page",
+);
+export const evaluationTeamConfigAdd = declareRequest(
+ "evaluationTeamConfigLoading",
+ "Post > @/hidden/evaluateGroupUserConfig/saveT",
+);
+export const evaluationTeamConfigUpdate = declareRequest(
+ "evaluationTeamConfigLoading",
+ "Put > @/hidden/evaluateGroupUserConfig/editT",
+);
+export const evaluationTeamConfigView = declareRequest(
+ "evaluationTeamConfigLoading",
+ "Post > @/hidden/evaluateGroupUserConfig/groupDetail",
+);
+export const evaluationTeamConfigChangeLog = declareRequest(
+ "evaluationTeamConfigLoading",
+ `Post > @/hidden/evaluateConfigUpdateRecord/list`,
+);
+export const corpInfoList = declareRequest(
+ `Post > @/basic-info/corpInfo/list`,
+);
diff --git a/src/api/hiddenEvaluation/index.js b/src/api/hiddenEvaluation/index.js
new file mode 100644
index 0000000..917e32e
--- /dev/null
+++ b/src/api/hiddenEvaluation/index.js
@@ -0,0 +1,22 @@
+import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
+
+export const hiddenEvaluationList = declareRequest(
+ "hiddenEvaluationLoading",
+ "Post > @/hidden/evaluateGroupUserConfig/hiddenEvaluatePage",
+);
+export const hiddenEvaluationHiddenList = declareRequest(
+ "hiddenEvaluationLoading",
+ "Post > @/hidden/viewHiddenEvaluate/list",
+);
+export const hiddenEvaluationHiddenEvaluationView = declareRequest(
+ "hiddenEvaluationLoading",
+ "Post > @/hidden/evaluateGroupUserConfig/viewList",
+);
+export const hiddenEvaluationHiddenEvaluationAdd = declareRequest(
+ "hiddenEvaluationLoading",
+ "Post > @/hidden/evaluateHiddenDetail/save",
+);
+export const hiddenEvaluationHiddenEvaluationUpdate = declareRequest(
+ "hiddenEvaluationLoading",
+ "Put > @T/hidden/evaluateHiddenDetail/edit",
+);
diff --git a/src/api/personnelEvaluation/index.js b/src/api/personnelEvaluation/index.js
new file mode 100644
index 0000000..6846ec9
--- /dev/null
+++ b/src/api/personnelEvaluation/index.js
@@ -0,0 +1,18 @@
+import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
+
+export const personnelEvaluationList = declareRequest(
+ "personnelEvaluationLoading",
+ "Post > @/hidden/viewUserEvaluateCondition/list",
+);
+export const personnelEvaluationUserExchangeList = declareRequest(
+ "personnelEvaluationLoading",
+ "Post > @/hidden/viewUserEvaluateConditionList/list",
+);
+export const personnelEvaluationExchange = declareRequest(
+ "personnelEvaluationLoading",
+ "Post > @/hidden/viewUserEvaluateConditionList/exchange",
+);
+export const personnelEvaluationUserExchangeRecordList = declareRequest(
+ "personnelEvaluationLoading",
+ "Post > @/hidden/evaluateExchangeRecord/list",
+);
diff --git a/src/enumerate/namespace/index.js b/src/enumerate/namespace/index.js
index b9271bd..794f90f 100644
--- a/src/enumerate/namespace/index.js
+++ b/src/enumerate/namespace/index.js
@@ -14,3 +14,6 @@ export const NS_SPECIAL_DISPOSAL = defineNamespace("specialDisposal");
export const NS_ACCEPTANCE = defineNamespace("acceptance");
export const NS_PART = defineNamespace("part");
export const NS_AVERAGE = defineNamespace("average");
+export const NS_EVALUATION_TEAM_CONFIG = defineNamespace("evaluationTeamConfig");
+export const NS_HIDDEN_EVALUATION = defineNamespace("hiddenEvaluation");
+export const NS_PERSONNEL_EVALUATION = defineNamespace("personnelEvaluation");
diff --git a/src/pages/Container/Supervision/Evaluation/EvaluationTeamConfig/List/index.js b/src/pages/Container/Supervision/Evaluation/EvaluationTeamConfig/List/index.js
new file mode 100644
index 0000000..b21dce4
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/EvaluationTeamConfig/List/index.js
@@ -0,0 +1,469 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Col, Descriptions, Form, message, Modal, Row, Space } from "antd";
+import { useEffect, useState } from "react";
+import FormBuilder from "zy-react-library/components/FormBuilder";
+import AddIcon from "zy-react-library/components/Icon/AddIcon";
+import Search from "zy-react-library/components/Search";
+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 { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
+import useIsExistenceDuplicateSelection from "zy-react-library/hooks/useIsExistenceDuplicateSelection";
+import useTable from "zy-react-library/hooks/useTable";
+import { NS_EVALUATION_TEAM_CONFIG } from "~/enumerate/namespace";
+
+const STATE_ENUM = [
+ { bianma: "1", name: "安全类已分配" },
+ { bianma: "2", name: "安全类未分配" },
+ { bianma: "3", name: "环保类已分配" },
+ { bianma: "4", name: "环保类未分配" },
+ { bianma: "5", name: "安全类和环保类已分配" },
+ { bianma: "6", name: "安全类和环保类已分配" },
+];
+
+function List(props) {
+ const [form] = Form.useForm();
+ const [configModalOpen, setConfigModalOpen] = useState(false);
+ const [configType, setConfigType] = useState("");
+ const [currentData, setCurrentData] = useState({});
+ const [addModalOpen, setAddModalOpen] = useState(false);
+ const [viewModalOpen, setViewModalOpen] = useState(false);
+ const [changeLogModalOpen, setChangeLogModalOpen] = useState(false);
+
+ const { tableProps, getData } = useTable(props["evaluationTeamConfigList"], {
+ form,
+ });
+
+ return (
+
+
+
+
(
+ }
+ onClick={() => {
+ setAddModalOpen(true);
+ }}
+ >
+ 新增
+
+ )}
+ columns={[
+ { title: "分公司名称", dataIndex: "corpinfoName" },
+ {
+ title: "安全类隐患考评组分配状态",
+ dataIndex: "safetyFlag",
+ width: 220,
+ render: (_, record) => (record.safetyFlag === 1 ? "已分配" : "未分配"),
+ },
+ { title: "考评组成员", dataIndex: "safetyMembers" },
+ {
+ title: "环保类隐患考评组分配状态",
+ dataIndex: "environmentalFlag",
+ width: 220,
+ render: (_, record) => (record.safetyFlag === 1 ? "已分配" : "未分配"),
+ },
+ { title: "考评组成员", dataIndex: "environmentalMembers" },
+ {
+ title: "操作",
+ width: 330,
+ fixed: "right",
+ render: (_, record) => (
+
+
+
+
+
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ />
+
+ {configModalOpen
+ && (
+ setConfigModalOpen(false)}
+ getData={getData}
+ data={currentData}
+ />
+ )}
+ {addModalOpen
+ && (
+ setAddModalOpen(false)}
+ getData={getData}
+ />
+ )}
+ {viewModalOpen
+ && (
+ setViewModalOpen(false)}
+ data={currentData}
+ />
+ )}
+ {changeLogModalOpen
+ && (
+ setChangeLogModalOpen(false)}
+ data={currentData}
+ />
+ )}
+
+ );
+}
+
+const ConfigModalComponent = (props) => {
+ const configType = props.configType;
+ const configTypeName = configType === "safety" ? "安全类" : "环保类";
+ const corpinfoId = props.data.corpinfoId;
+
+ const [form] = Form.useForm();
+ const evaluateGroupUserConfigUpdateCmdList = Form.useWatch("evaluateGroupUserConfigUpdateCmdList", form);
+
+ const { isExistenceDuplicateSelection } = useIsExistenceDuplicateSelection();
+
+ const getData = async () => {
+ const { data } = await props["evaluationTeamConfigView"]({
+ eqCorpinfoId: corpinfoId,
+ eqType: configType === "safety" ? "aqyh" : "wshb",
+ });
+ form.setFieldValue("evaluateGroupUserConfigUpdateCmdList", data);
+ };
+
+ useEffect(() => {
+ corpinfoId && getData();
+ }, []);
+ const onSubmit = async (values) => {
+ await isExistenceDuplicateSelection({ data: values.evaluateGroupUserConfigUpdateCmdList, key: "memberId" });
+ const { success } = await props["evaluationTeamConfigUpdate"]({
+ ...values,
+ corpinfoId,
+ corpinfoName: props.data.corpinfoName,
+ });
+ if (success) {
+ message.success("操作成功");
+ props.onCancel();
+ props.getData();
+ }
+ };
+
+ return (
+
+
+
+ {fields => (
+ <>
+ {fields.map(field => (
+
+
+
+ {
+ form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberId"], "");
+ form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberName"], "");
+ }}
+ onGetLabel={(label) => {
+ form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberDeptName"], label);
+ }}
+ />
+
+
+
+
+
+
+
+ form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberName"], label)}
+ />
+
+
+
+
+
+
+
+
+
+ ))}
+ >
+ )}
+
+ >
+ ),
+ },
+ ]}
+ />
+
+ );
+};
+
+const AddModalComponent = (props) => {
+ const [form] = Form.useForm();
+ const [corpInfoList, setCorpInfoList] = useState([]);
+
+ const getCorpInfoList = async () => {
+ const { data } = await props["corpInfoList"]({ pageIndex: 1, pageSize: 1000 });
+ setCorpInfoList(data);
+ };
+
+ useEffect(() => {
+ getCorpInfoList();
+ }, []);
+
+ const onSubmit = async (values) => {
+ const { success } = await props["evaluationTeamConfigAdd"]({
+ ...values,
+ });
+ if (success) {
+ message.success("操作成功");
+ props.onCancel();
+ props.getData();
+ }
+ };
+
+ return (
+
+ {
+ form.setFieldValue("corpinfoName", corpInfoList.find(item => item.id === value)?.corpName);
+ },
+ },
+ },
+ { name: "corpinfoName", label: "分公司名称", onlyForLabel: true },
+ ]}
+ />
+
+ );
+};
+
+const ViewModalComponent = (props) => {
+ const corpinfoId = props.data.corpinfoId;
+
+ const [safetyList, setSafetyList] = useState([]);
+ const [environmentalList, setEnvironmentalList] = useState([]);
+
+ const getData = async () => {
+ const { data: safetyList } = await props["evaluationTeamConfigView"]({
+ eqCorpinfoId: corpinfoId,
+ eqType: "aqyh",
+ });
+ setSafetyList(safetyList);
+ const { data: environmentalList } = await props["evaluationTeamConfigView"]({
+ eqCorpinfoId: corpinfoId,
+ eqType: "wshb",
+ });
+ setEnvironmentalList(environmentalList);
+ };
+
+ useEffect(() => {
+ getData();
+ }, []);
+
+ return (
+
+
+ {safetyList.map(item => (
+ item.memberDeptName && (
+
+ {item.memberDeptName}
+ {" "}
+ -
+ {" "}
+ {item.memberName}
+
+ )
+ ))}
+
+ ) },
+ ]}
+ />
+
+ {environmentalList.map(item => (
+ item.memberDeptName && (
+
+ {item.memberDeptName}
+ {" "}
+ -
+ {" "}
+ {item.memberName}
+
+ )
+ ))}
+
+ ) },
+ ]}
+ />
+
+ );
+};
+
+const ChangeLogModalComponent = (props) => {
+ const corpinfoId = props.data.corpinfoId;
+
+ const [list, setList] = useState([]);
+
+ const getData = async () => {
+ const { data } = await props["evaluationTeamConfigChangeLog"]({
+ eqCorpinfoId: corpinfoId,
+ });
+ setList(data);
+ };
+
+ useEffect(() => {
+ getData();
+ }, []);
+
+ return (
+ 关闭,
+ ]}
+ >
+ ([
+ { label: "隐患考评组类型", children: item.evaluateType === 1 ? "安全类" : "环保类" },
+ { label: "变更前", children: `${item.beforeDeptName}-${item.beforeMemberName}` },
+ { label: "变更后", children: `${item.afterDeptName}-${item.afterMemberName}` },
+ ])),
+ ]}
+ />
+
+ );
+};
+
+const ConfigModal = Connect([NS_EVALUATION_TEAM_CONFIG], true)(ConfigModalComponent);
+const AddModal = Connect([NS_EVALUATION_TEAM_CONFIG], true)(AddModalComponent);
+const ViewModal = Connect([NS_EVALUATION_TEAM_CONFIG], true)(ViewModalComponent);
+const ChangeLogModal = Connect([NS_EVALUATION_TEAM_CONFIG], true)(ChangeLogModalComponent);
+export default Connect([NS_EVALUATION_TEAM_CONFIG], true)(List);
diff --git a/src/pages/Container/Supervision/Evaluation/EvaluationTeamConfig/index.js b/src/pages/Container/Supervision/Evaluation/EvaluationTeamConfig/index.js
new file mode 100644
index 0000000..770ab18
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/EvaluationTeamConfig/index.js
@@ -0,0 +1,9 @@
+function EvaluationTeamConfig(props) {
+ return (
+
+ {props.children}
+
+ );
+}
+
+export default EvaluationTeamConfig;
diff --git a/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js
new file mode 100644
index 0000000..d9a50e0
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js
@@ -0,0 +1,251 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Descriptions, Form, message, Modal, Space } from "antd";
+import { useEffect, useRef, useState } from "react";
+import FormBuilder from "zy-react-library/components/FormBuilder";
+import HeaderBack from "zy-react-library/components/HeaderBack";
+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 Table from "zy-react-library/components/Table";
+import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
+import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
+import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
+import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo";
+import useTable from "zy-react-library/hooks/useTable";
+import { getLabelName } from "zy-react-library/utils";
+import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace";
+import ViewEvaluationModal from "../../components/ViewEvaluationModal";
+
+function List(props) {
+ const query = useGetUrlQuery();
+ const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
+ const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
+ const [currentHiddenId, setCurrentHiddenId] = useState("");
+ const [form] = Form.useForm();
+ const { tableProps, getData } = useTable(props["hiddenEvaluationHiddenList"], {
+ form,
+ params: {
+ eqCorpId: query.corpinfoId,
+ eqHiddenType: query.hiddenType,
+ },
+ transform: formData => ({
+ geHiddenFindTime: formData.hiddenFindTime?.[0],
+ leHiddenFindTime: formData.hiddenFindTime?.[1],
+ geFinalDoneTime: formData.finalDoneTime?.[0],
+ leFinalDoneTime: formData.finalDoneTime?.[1],
+ }),
+ });
+ return (
+
+
+
+
) },
+ { name: "likeFindUserName", label: "隐患发现人" },
+ { name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
+ {
+ name: "eqHiddenTypeC",
+ label: "隐患类型",
+ render:
,
+ },
+ {
+ name: "eqEvaState",
+ label: "考评结果",
+ render: FORM_ITEM_RENDER_ENUM.SELECT,
+ items: [
+ { bianma: "1", name: "是" },
+ { bianma: "2", name: "否" },
+ { bianma: "3", name: "考评合格" },
+ { bianma: "4", name: "考评不合格" },
+ ],
+ },
+ {
+ name: "eqSelf",
+ label: "本人是否考评",
+ render: FORM_ITEM_RENDER_ENUM.SELECT,
+ items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }],
+ },
+ { name: "finalDoneTime", label: "考评完成时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
+ ]}
+ form={form}
+ onFinish={getData}
+ />
+
getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
+ },
+ { title: "隐患描述", dataIndex: "hiddenDesc" },
+ { title: "隐患发现时间", dataIndex: "hiddenFindTime" },
+ { title: "隐患发现人", dataIndex: "findUserName" },
+ {
+ title: "隐患状态",
+ dataIndex: "state",
+ render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }),
+ },
+ { title: "已考评组成员", dataIndex: "alreadyEvaluate" },
+ { title: "待考评组成员", dataIndex: "notEvaluate" },
+ {
+ title: "考评结果",
+ dataIndex: "finalResult",
+ render: (_, record) => {
+ switch (record.finalResult) {
+ case 1:
+ return "考评合格";
+ case 0:
+ return "考评不合格";
+ default:
+ return "考核未完成";
+ }
+ },
+ },
+ {
+ title: "操作",
+ width: 230,
+ fixed: "right",
+ render: (_, record) => (
+
+
+
+ {
+ record.isPermission === 1 && (
+
+ )
+ }
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ />
+
+ {viewEvaluationModalOpen
+ && setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} />}
+ {evaluationModalOpen
+ && setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
+
+ );
+}
+
+const EvaluationModalComponent = (props) => {
+ const { getUserInfo } = useGetUserInfo();
+ const [form] = Form.useForm();
+ const [list, setList] = useState([]);
+ const isEdit = useRef(false);
+ const getData = async () => {
+ const { data } = await props["hiddenEvaluationHiddenEvaluationView"]({ eqHiddenId: props.hiddenId });
+ setList(data);
+ isEdit.current = (!!data?.[0]?.id);
+ const userInfo = await getUserInfo();
+ form.setFieldValue("user", `${userInfo.departmentName}-${userInfo.name}`);
+ };
+
+ useEffect(() => {
+ getData();
+ }, []);
+
+ const onSubmit = async (values) => {
+ const { success } = await props[isEdit ? "hiddenEvaluationHiddenEvaluationUpdate" : "hiddenEvaluationHiddenEvaluationAdd"]({
+ ...values,
+ hiddenId: props.hiddenId,
+ });
+ if (success) {
+ message.success("考评成功");
+ props.onCancel();
+ props.getData();
+ }
+ };
+
+ return (
+
+ ([
+ { label: "考评人员", children: item.evaluateMemberName },
+ {
+ label: "是否符合",
+ children: (() => {
+ switch (item.evaluateResult) {
+ case 1:
+ return "考评合格";
+ case 0:
+ return "考评不合格";
+ default:
+ return "考核未完成";
+ }
+ })(),
+ },
+ ...(item.evaluateResult === 0 ? [{ label: "不符合原因", children: `111`, span: 2 }] : []),
+ ])),
+ ]}
+ />
+ !(formValues.result === 0),
+ },
+ ]}
+ />
+
+ );
+};
+
+const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent);
+export default Connect([NS_HIDDEN_EVALUATION], true)(List);
diff --git a/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/List/index.js b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/List/index.js
new file mode 100644
index 0000000..2d7c87b
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/List/index.js
@@ -0,0 +1,73 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Form, Space } from "antd";
+import Search from "zy-react-library/components/Search";
+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 { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace";
+
+const STATE_ENUM = [
+ { bianma: "1", name: "安全类已分配" },
+ { bianma: "2", name: "安全类未分配" },
+ { bianma: "3", name: "环保类已分配" },
+ { bianma: "4", name: "环保类未分配" },
+];
+function List(props) {
+ const [form] = Form.useForm();
+ const { tableProps, getData } = useTable(props["hiddenEvaluationList"], {
+ form,
+ });
+
+ return (
+
+
+
+
(
+ <>
+ {record.hiddenType === "aqyh" && "安全类"}
+ {record.hiddenType === "wshb" && "环保类"}
+ >
+ ) },
+ { title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
+ { title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
+ { title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
+ { title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
+ { title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
+ { title: "考评组成员", dataIndex: "members" },
+ {
+ title: "操作",
+ width: 100,
+ fixed: "right",
+ render: (_, record) => (
+
+
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ />
+
+
+ );
+}
+
+export default Connect([NS_HIDDEN_EVALUATION], true)(List);
diff --git a/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/index.js b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/index.js
new file mode 100644
index 0000000..de44bad
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/index.js
@@ -0,0 +1,9 @@
+function HiddenEvaluation(props) {
+ return (
+
+ {props.children}
+
+ );
+}
+
+export default HiddenEvaluation;
diff --git a/src/pages/Container/Supervision/Evaluation/HiddenView/index.js b/src/pages/Container/Supervision/Evaluation/HiddenView/index.js
new file mode 100644
index 0000000..41db77d
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/HiddenView/index.js
@@ -0,0 +1,11 @@
+import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
+
+function HiddenView() {
+ return (
+
+
+
+ );
+}
+
+export default HiddenView;
diff --git a/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/List/index.js b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/List/index.js
new file mode 100644
index 0000000..83d34f5
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/List/index.js
@@ -0,0 +1,64 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Form, Space } from "antd";
+import Search from "zy-react-library/components/Search";
+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_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
+
+function List(props) {
+ const [form] = Form.useForm();
+ const { tableProps, getData } = useTable(props["personnelEvaluationList"], {
+ form,
+ });
+
+ return (
+
+
+
) },
+ { name: "likeSafetyMembers", label: "考评组人员" },
+ ]}
+ form={form}
+ onFinish={getData}
+ />
+
(`${record.alreadyExchange}/${record.alreadyExchange + record.notExchange}`),
+ },
+ { title: "安全类隐患考评组成员", dataIndex: "safetyMembers" },
+ { title: "环保类隐患考评组成员", dataIndex: "environmentalMembers" },
+ {
+ title: "操作",
+ width: 100,
+ fixed: "right",
+ render: (_, record) => (
+
+
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ />
+
+
+ );
+}
+
+export default Connect([NS_PERSONNEL_EVALUATION], true)(List);
diff --git a/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js
new file mode 100644
index 0000000..5280ea7
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js
@@ -0,0 +1,157 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Form, message, Modal, Space, Spin } from "antd";
+import { useState } from "react";
+import HeaderBack from "zy-react-library/components/HeaderBack";
+import EditIcon from "zy-react-library/components/Icon/EditIcon";
+import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
+import Search from "zy-react-library/components/Search";
+import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
+import Table from "zy-react-library/components/Table";
+import useDownloadBlob from "zy-react-library/hooks/useDownloadBlob";
+import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
+import useTable from "zy-react-library/hooks/useTable";
+import { NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
+
+function List(props) {
+ const query = useGetUrlQuery();
+ const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob();
+
+ const [selectedRowKeys, setSelectedRowKeys] = useState([]);
+ const [form] = Form.useForm();
+ const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeList"], {
+ form,
+ params: {
+ eqCorpId: query.corpinfoId,
+ },
+ });
+
+ const onBatchExchange = async () => {
+ if (!selectedRowKeys.length) {
+ message.warning("请选择需要兑换的人员");
+ return;
+ }
+ Modal.confirm({
+ title: "兑换确认",
+ content: "确定要兑换吗?", // 确定要兑换所有人得分吗
+ onOk: async () => {
+ const success = await props["personnelEvaluationExchange"]({ userIds: selectedRowKeys });
+ if (success) {
+ message.success("兑换成功");
+ getData();
+ }
+ },
+ onCancel: () => {
+ message.warning("已取消兑换");
+ },
+ });
+ };
+
+ const onExportExcel = async () => {
+ if (!selectedRowKeys.length) {
+ message.warning("请选择需要导出的人员");
+ return;
+ }
+ Modal.confirm({
+ title: "导出确认",
+ content: "确定要导出excel吗?",
+ onOk: async () => {
+ await downloadBlob("/hidden/viewUserEvaluateConditionList/exportEvaluate", { params: { findUserIds: selectedRowKeys.join(",") } });
+ message.success("导出成功");
+ },
+ onCancel: () => {
+ message.warning("已取消导出");
+ },
+ });
+ };
+
+ return (
+
+
+
+
+ ) },
+ { name: "likeFindUserRealName", label: "姓名" },
+ ]}
+ form={form}
+ onFinish={getData}
+ />
+ {
+ setSelectedRowKeys(selectedRowKeys);
+ },
+ }}
+ rowKey="findUserId"
+ toolBarRender={() => (
+
+ }
+ onClick={onBatchExchange}
+ >
+ 批量兑换
+
+ }
+ onClick={() => {
+ // TODO
+ }}
+ >
+ 全选兑换
+
+ }
+ onClick={onExportExcel}
+ >
+ 导出数据
+
+
+ )}
+ columns={[
+ { title: "用户名", dataIndex: "findUserName" },
+ { title: "姓名", dataIndex: "findUserRealName" },
+ { title: "部门", dataIndex: "findUserDeptName" },
+ { title: "岗位", dataIndex: "findUserPositionsName" },
+ { title: "奖励总得分", dataIndex: "totalScore" },
+ { title: "已兑换分数", dataIndex: "alreadyExchange" },
+ { title: "未兑换奖励数", dataIndex: "notExchanged", render: (_, record) => record.totalScore - record.alreadyExchange },
+ {
+ title: "操作",
+ width: 200,
+ fixed: "right",
+ render: (_, record) => (
+
+
+
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ />
+
+
+
+ );
+}
+
+export default Connect([NS_PERSONNEL_EVALUATION], true)(List);
diff --git a/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeRecordList/index.js b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeRecordList/index.js
new file mode 100644
index 0000000..4a12310
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeRecordList/index.js
@@ -0,0 +1,78 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Form, Space } from "antd";
+import { useState } from "react";
+import HeaderBack from "zy-react-library/components/HeaderBack";
+import Search from "zy-react-library/components/Search";
+import Table from "zy-react-library/components/Table";
+import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
+import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
+import useTable from "zy-react-library/hooks/useTable";
+import { NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
+
+function List(props) {
+ const query = useGetUrlQuery();
+
+ const [selectedRowKeys, setSelectedRowKeys] = useState([]);
+ const [form] = Form.useForm();
+ const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeRecordList"], {
+ form,
+ params: {
+ eqBelongerId: query.findUserId,
+ },
+ transform: formData => ({
+ geExchangeTime: formData.dates?.[0],
+ leExchangeTime: formData.dates?.[1],
+ }),
+ });
+
+ return (
+
+
+
+
+
{
+ setSelectedRowKeys(selectedRowKeys);
+ },
+ }}
+ rowKey="findUserId"
+ columns={[
+ { title: "兑换时间", dataIndex: "exchangeTime" },
+ { title: "兑换操作人员", dataIndex: "exchangeUserName" },
+ { title: "兑换隐患数", dataIndex: "exchangeTotal" },
+ { title: "兑换积分", dataIndex: "exchangeScore" },
+ { title: "剩余积分数", dataIndex: "surplusScoreTotal" },
+ {
+ title: "操作",
+ width: 100,
+ fixed: "right",
+ render: (_, record) => (
+
+
+
+ ),
+ },
+ ]}
+ {...tableProps}
+ />
+
+
+ );
+}
+
+export default Connect([NS_PERSONNEL_EVALUATION], true)(List);
diff --git a/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/index.js b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/index.js
new file mode 100644
index 0000000..e6b989a
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/index.js
@@ -0,0 +1,9 @@
+function PersonnelEvaluation(props) {
+ return (
+
+ {props.children}
+
+ );
+}
+
+export default PersonnelEvaluation;
diff --git a/src/pages/Container/Supervision/Evaluation/components/ViewEvaluationModal/index.js b/src/pages/Container/Supervision/Evaluation/components/ViewEvaluationModal/index.js
new file mode 100644
index 0000000..fccecee
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/components/ViewEvaluationModal/index.js
@@ -0,0 +1,59 @@
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Descriptions, Modal } from "antd";
+import { useEffect, useState } from "react";
+import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace";
+
+const ViewEvaluationModal = (props) => {
+ const [list, setList] = useState([]);
+ const getData = async () => {
+ const { data } = await props["hiddenEvaluationHiddenEvaluationView"]({ eqHiddenId: props.hiddenId });
+ setList(data);
+ };
+
+ useEffect(() => {
+ getData();
+ }, []);
+
+ return (
+
+ 取消
+ ,
+ ]}
+ >
+ ([
+ { label: "考评人员", children: item.evaluateMemberName },
+ {
+ label: "是否符合",
+ children: (() => {
+ switch (item.evaluateResult) {
+ case 1:
+ return "考评合格";
+ case 0:
+ return "考评不合格";
+ default:
+ return "考核未完成";
+ }
+ })(),
+ },
+ ...(item.evaluateResult === 0 ? [{ label: "不符合原因", children: "todo", span: 2 }] : []),
+ ])),
+ ]}
+ />
+
+ );
+};
+
+export default Connect([NS_HIDDEN_EVALUATION], true)(ViewEvaluationModal);
diff --git a/src/pages/Container/Supervision/Evaluation/index.js b/src/pages/Container/Supervision/Evaluation/index.js
new file mode 100644
index 0000000..822ad2a
--- /dev/null
+++ b/src/pages/Container/Supervision/Evaluation/index.js
@@ -0,0 +1,9 @@
+function Evaluation(props) {
+ return (
+
+ {props.children}
+
+ );
+}
+
+export default Evaluation;