diff --git a/src/api/hiddenEvaluation/index.js b/src/api/hiddenEvaluation/index.js index 917e32e..8231d8c 100644 --- a/src/api/hiddenEvaluation/index.js +++ b/src/api/hiddenEvaluation/index.js @@ -20,3 +20,15 @@ export const hiddenEvaluationHiddenEvaluationUpdate = declareRequest( "hiddenEvaluationLoading", "Put > @T/hidden/evaluateHiddenDetail/edit", ); +export const viewCorpEvaluatePerformanceList = declareRequest( + "hiddenEvaluationLoading", + "Post > @/hidden/viewCorpEvaluatePerformance/list", +); +export const evaluateHiddenDetailList = declareRequest( + "hiddenEvaluationLoading", + "Post > @/hidden/evaluateHiddenDetail/list", +); +export const viewUserEvaluateConditionList = declareRequest( + "hiddenEvaluationLoading", + "Post > @/hidden/viewUserEvaluateConditionList/exchangeAll", +); diff --git a/src/pages/Container/Supervision/Enterprise/HiddenEvaluation/HiddenList/index.js b/src/pages/Container/Supervision/Enterprise/HiddenEvaluation/HiddenList/index.js new file mode 100644 index 0000000..3baa255 --- /dev/null +++ b/src/pages/Container/Supervision/Enterprise/HiddenEvaluation/HiddenList/index.js @@ -0,0 +1,252 @@ +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: "finalCheckOr" }, + { + 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} url="hiddenEvaluationHiddenEvaluationView" />} + {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"]({ eqId: 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/Enterprise/HiddenEvaluation/List/index.js b/src/pages/Container/Supervision/Enterprise/HiddenEvaluation/List/index.js new file mode 100644 index 0000000..2d7c87b --- /dev/null +++ b/src/pages/Container/Supervision/Enterprise/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/Enterprise/HiddenEvaluation/index.js b/src/pages/Container/Supervision/Enterprise/HiddenEvaluation/index.js new file mode 100644 index 0000000..de44bad --- /dev/null +++ b/src/pages/Container/Supervision/Enterprise/HiddenEvaluation/index.js @@ -0,0 +1,9 @@ +function HiddenEvaluation(props) { + return ( +
+ {props.children} +
+ ); +} + +export default HiddenEvaluation; diff --git a/src/pages/Container/Supervision/Enterprise/HiddenView/index.js b/src/pages/Container/Supervision/Enterprise/HiddenView/index.js new file mode 100644 index 0000000..41db77d --- /dev/null +++ b/src/pages/Container/Supervision/Enterprise/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/Enterprise/components/ViewEvaluationModal/index.js b/src/pages/Container/Supervision/Enterprise/components/ViewEvaluationModal/index.js new file mode 100644 index 0000000..a32c6c9 --- /dev/null +++ b/src/pages/Container/Supervision/Enterprise/components/ViewEvaluationModal/index.js @@ -0,0 +1,60 @@ +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"]({ eqId: props.hiddenId }); + // evaluateHiddenDetailList + 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/Enterprise/index.js b/src/pages/Container/Supervision/Enterprise/index.js new file mode 100644 index 0000000..eda14bf --- /dev/null +++ b/src/pages/Container/Supervision/Enterprise/index.js @@ -0,0 +1,9 @@ +function Supervision(props) { + return ( +
+ {props.children} +
+ ); +} + +export default Supervision; diff --git a/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js index d9a50e0..44c40d9 100644 --- a/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js +++ b/src/pages/Container/Supervision/Evaluation/HiddenEvaluation/HiddenList/index.js @@ -149,7 +149,7 @@ function List(props) { /> {viewEvaluationModalOpen - && setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} />} + && setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />} {evaluationModalOpen && setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />} @@ -162,7 +162,7 @@ const EvaluationModalComponent = (props) => { const [list, setList] = useState([]); const isEdit = useRef(false); const getData = async () => { - const { data } = await props["hiddenEvaluationHiddenEvaluationView"]({ eqHiddenId: props.hiddenId }); + const { data } = await props["hiddenEvaluationHiddenEvaluationView"]({ eqId: props.hiddenId }); setList(data); isEdit.current = (!!data?.[0]?.id); const userInfo = await getUserInfo(); diff --git a/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/HiddenEvaluationList/index.js b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/HiddenEvaluationList/index.js new file mode 100644 index 0000000..dc4b943 --- /dev/null +++ b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/HiddenEvaluationList/index.js @@ -0,0 +1,204 @@ +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 } 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["evaluateHiddenDetailList"], { + form, + params: { + eqFindUserId: query.findUserId, + }, + transform: formData => ({ + geExchangeTime: formData.hiddenFindTime?.[0], + leExchangeTime: formData.hiddenFindTime?.[1], + }), + }); + return ( +
+ +
+ ) }, + { name: "likeFindUserRealName", label: "隐患发现人" }, + { + name: "eqHiddenTypeC", + label: "隐患类型", + render: , + }, + { name: "hiddenFindTime", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, + ]} + form={form} + onFinish={getData} + /> +
getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.hiddenSource }), + }, + { title: "隐患描述", dataIndex: "hiddenDesc" }, + { title: "隐患发现时间", dataIndex: "findTime" }, + { title: "隐患发现人", dataIndex: "findUserName" }, + { title: "隐患验收人", dataIndex: "checkUserRealName" }, + { + title: "隐患状态", + dataIndex: "state", + render: () => { + return "已验收"; + }, + }, + { title: "考评组成员", dataIndex: "groupMembers" }, + { title: "兑换状态", dataIndex: "exchangeFlag", render: (_, record) => record.exchangeFlag === 1 ? "已兑换" : "未兑换" }, + { + title: "操作", + width: 230, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...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"]({ eqId: 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/PerformanceEvaluationList/List/index.js b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/List/index.js new file mode 100644 index 0000000..d0637bd --- /dev/null +++ b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/List/index.js @@ -0,0 +1,123 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Form } from "antd"; +import { useMemo } from "react"; +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_HIDDEN_EVALUATION } from "~/enumerate/namespace"; +import "./index.less"; +// 引入样式文件 +function List(props) { + const [form] = Form.useForm(); + const { tableProps, getData } = useTable(props["viewCorpEvaluatePerformanceList"], { + form, + }); + const handleCorpNameClick = (record) => { + props.history.push(`./userExchangeList?corpinfoId=${record.corpinfoId}`); + }; + // 处理表格数据,为合并行做准备 + const processedTableProps = useMemo(() => { + if (!tableProps.dataSource || tableProps.dataSource.length === 0) { + return tableProps; + } + + const dataSource = tableProps.dataSource; + + // 计算每个分公司出现的次数(用于rowSpan) + const corpRowSpans = {}; + dataSource.forEach((item) => { + const corpName = item.corpinfoName; + corpRowSpans[corpName] = (corpRowSpans[corpName] || 0) + 1; + }); + + // 处理数据源,添加rowSpan信息 + const processedDataSource = []; + const handledCorps = {}; + + dataSource.forEach((item) => { + const corpName = item.corpinfoName; + + if (!handledCorps[corpName]) { + // 第一次遇到这个分公司,设置rowSpan + processedDataSource.push({ + ...item, + _rowSpan: corpRowSpans[corpName], + }); + handledCorps[corpName] = true; + } + else { + // 后续遇到相同分公司,rowSpan为0(不显示) + processedDataSource.push({ + ...item, + _rowSpan: 0, + }); + } + }); + + return { + ...tableProps, + dataSource: processedDataSource, + }; + }, [tableProps]); + + // 自定义列配置,支持行合并 + const columns = [ + { + title: "分公司名称", + dataIndex: "corpinfoName", + render: (text, record) => { + const obj = { + children: ( + handleCorpNameClick(record)} + > + {text} + + ), + props: {}, + }; + if (record._rowSpan !== undefined) { + obj.props.rowSpan = record._rowSpan; + } + return obj; + }, + }, + { + title: "隐患考评组类型", + dataIndex: "hiddenType", + render: (_, record) => ( + <> + {record.hiddenType === "aqyh" && "安全类"} + {record.hiddenType === "wshb" && "环保类"} + + ), + }, + { title: "发现隐患数", dataIndex: "hiddenCount" }, + { title: "已验收隐患数", dataIndex: "checkCount" }, + { title: "已评审合格数", dataIndex: "passCount" }, + { title: "待评审数量", dataIndex: "notEvaluateCount" }, + { title: "已兑换积分", dataIndex: "exchangeScore" }, + { title: "未兑换积分", dataIndex: "notExchangeScore" }, + ]; + + return ( +
+
+ +
+ + + ); +} + +export default Connect([NS_HIDDEN_EVALUATION], true)(List); diff --git a/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/List/index.less b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/List/index.less new file mode 100644 index 0000000..f55ebf5 --- /dev/null +++ b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/List/index.less @@ -0,0 +1,24 @@ +.corp-name-link { + color: #1F61FF !important; + text-decoration: none !important; + cursor: pointer; + + &:hover { + color: #1F61FF !important; + text-decoration: underline !important; + } + + // 深度覆盖 antd 的样式 + :global { + .ant-table-tbody & { + color: #1F61FF !important; + } + + .ant-table-cell & { + color: #1F61FF !important; + } + } + span{ + color: #1F61FF !important; + } +} diff --git a/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/UserExchangeList/index.js b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/UserExchangeList/index.js new file mode 100644 index 0000000..565d3a5 --- /dev/null +++ b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/UserExchangeList/index.js @@ -0,0 +1,173 @@ +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 useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria"; +import { NS_HIDDEN_EVALUATION, NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace"; + +function List(props) { + const query = useGetUrlQuery(); + const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob(); + const { getUrlCriteriaQuery } = useUrlQueryCriteria(); + 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 OnRedeemAll = async () => { + Modal.confirm({ + title: "兑换确认", + content: "确定要兑换所有人得分吗?", // 确定要兑换所有人得分吗 + onOk: async () => { + const searchForm = getUrlCriteriaQuery("searchFormKeys", "searchFormValues"); + const success = await props["viewUserEvaluateConditionList"]({ likeFindUserRealName: searchForm.likeFindUserRealName, eqFindUserDeptId: searchForm.eqFindUserDeptId, corpId: query.corpinfoId }); + 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={() => ( + + + + + + )} + 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, NS_HIDDEN_EVALUATION], true)(List); diff --git a/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/UserExchangeRecordList/index.js b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/UserExchangeRecordList/index.js new file mode 100644 index 0000000..10c2ecf --- /dev/null +++ b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/UserExchangeRecordList/index.js @@ -0,0 +1,68 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Form, Space } from "antd"; +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 [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 ( +
+ +
+ +
( + + + + ), + }, + ]} + {...tableProps} + /> + + + ); +} + +export default Connect([NS_PERSONNEL_EVALUATION], true)(List); diff --git a/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/index.js b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/index.js new file mode 100644 index 0000000..18fece4 --- /dev/null +++ b/src/pages/Container/Supervision/Evaluation/PerformanceEvaluationList/index.js @@ -0,0 +1,9 @@ +function PerformanceEvaluationList(props) { + return ( +
+ {props.children} +
+ ); +} + +export default PerformanceEvaluationList; diff --git a/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js index 5280ea7..565d3a5 100644 --- a/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js +++ b/src/pages/Container/Supervision/Evaluation/PersonnelEvaluation/UserExchangeList/index.js @@ -10,12 +10,13 @@ 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"; +import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria"; +import { NS_HIDDEN_EVALUATION, NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace"; function List(props) { const query = useGetUrlQuery(); const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob(); - + const { getUrlCriteriaQuery } = useUrlQueryCriteria(); const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [form] = Form.useForm(); const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeList"], { @@ -45,7 +46,23 @@ function List(props) { }, }); }; - + const OnRedeemAll = async () => { + Modal.confirm({ + title: "兑换确认", + content: "确定要兑换所有人得分吗?", // 确定要兑换所有人得分吗 + onOk: async () => { + const searchForm = getUrlCriteriaQuery("searchFormKeys", "searchFormValues"); + const success = await props["viewUserEvaluateConditionList"]({ likeFindUserRealName: searchForm.likeFindUserRealName, eqFindUserDeptId: searchForm.eqFindUserDeptId, corpId: query.corpinfoId }); + if (success) { + message.success("兑换成功"); + getData(); + } + }, + onCancel: () => { + message.warning("已取消兑换"); + }, + }); + }; const onExportExcel = async () => { if (!selectedRowKeys.length) { message.warning("请选择需要导出的人员"); @@ -98,9 +115,7 @@ function List(props) { @@ -138,6 +153,7 @@ function List(props) {
{ - setSelectedRowKeys(selectedRowKeys); - }, - }} - rowKey="findUserId" columns={[ { title: "兑换时间", dataIndex: "exchangeTime" }, { title: "兑换操作人员", dataIndex: "exchangeUserName" }, @@ -60,6 +49,7 @@ function List(props) {