bug修改:12968、12966、12960、12931、12924、12916、12913、12910、12906、12905、12630、12604、12365、12330

master
LiuJiaNan 2025-12-26 14:07:53 +08:00
parent b8624ae3df
commit 3a99f0b5ff
48 changed files with 1884 additions and 2106 deletions

View File

@ -9,6 +9,7 @@ module.exports = {
// 应用后端分支名称,部署上线需要 // 应用后端分支名称,部署上线需要
javaGitBranch: "<branch-name>", javaGitBranch: "<branch-name>",
// 接口服务地址 // 接口服务地址
// API_HOST: "http://192.168.20.100:30140",
API_HOST: "https://gbs-gateway.qhdsafety.com", API_HOST: "https://gbs-gateway.qhdsafety.com",
}, },
production: { production: {
@ -62,7 +63,7 @@ module.exports = {
// 全局主题色 // 全局主题色
"colorPrimary": "#1677ff", "colorPrimary": "#1677ff",
// 全局圆角 // 全局圆角
"borderRadius": 2, "borderRadius": 4,
}, },
}, },
// webpack // webpack

View File

@ -31,7 +31,7 @@
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-to-print": "^3.2.0", "react-to-print": "^3.2.0",
"zy-react-library": "^1.0.178" "zy-react-library": "^1.1.4"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^5.4.1", "@antfu/eslint-config": "^5.4.1",

View File

@ -36,3 +36,7 @@ export const xgfProjectInfo = declareRequest(
"xgfProjectLoading", "xgfProjectLoading",
`Get > /xgfManager/project/{id}`, `Get > /xgfManager/project/{id}`,
); );
export const hiddenPrintList = declareRequest(
"xgfProjectLoading",
`Post > @/hidden/hidden/printList`,
);

View File

@ -6,6 +6,7 @@ import "dayjs/locale/zh-cn";
import "../blessed_by_buddha"; import "../blessed_by_buddha";
require("antd/dist/reset.css"); require("antd/dist/reset.css");
require("zy-react-library/css/common.less");
dayjs.locale("zh-cn"); dayjs.locale("zh-cn");
setJJBCommonAntdMessage(message); setJJBCommonAntdMessage(message);

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -26,7 +27,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -118,7 +119,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Divider, Form, message } from "antd"; import { Divider, Form, message } from "antd";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
@ -21,14 +21,15 @@ function Rectification(props) {
const [data, setData] = useState({}); const [data, setData] = useState({});
const onSubmit = async (values) => { const onSubmit = async (values) => {
await uploadFile({ const { id } = await uploadFile({
single: false, single: false,
files: values.files, files: values.files,
params: { type: UPLOAD_FILE_TYPE_ENUM["5"], foreignKey: query.hiddenId }, params: { type: UPLOAD_FILE_TYPE_ENUM["5"], foreignKey: "" },
}); });
const { success } = await props["acceptanceReview"]({ const { success } = await props["acceptanceReview"]({
id: query.id, id: query.id,
hiddenId: query.hiddenId, hiddenId: query.hiddenId,
hiddenUserId: id,
...values, ...values,
}); });
if (success) { if (success) {
@ -36,58 +37,55 @@ function Rectification(props) {
props.history.goBack(); props.history.goBack();
} }
}; };
return ( return (
<div> <Page headerTitle="隐患验收" contentPadding="0 20px 20px 20px" isShowFooter={false}>
<HeaderBack title="隐患验收" />
<HiddenInfo <HiddenInfo
isShowHeaderBack={false}
onGetData={(data) => { onGetData={(data) => {
setData(data); setData(data);
}} }}
/> />
<Divider orientation="left">隐患验收</Divider> <Divider orientation="left">隐患验收</Divider>
<div style={{ paddingBottom: 20 }}> <FormBuilder
<FormBuilder values={{
values={{ status: 1,
status: 1, }}
}} form={form}
form={form} loading={props.acceptance.acceptanceLoading || uploadFileLoading}
loading={props.acceptance.acceptanceLoading || uploadFileLoading} onFinish={onSubmit}
onFinish={onSubmit} options={[
options={[ {
{ name: "status",
name: "status", label: "是否合格",
label: "是否合格", span: 24,
span: 24, render: FORM_ITEM_RENDER_ENUM.RADIO,
render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }],
items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], },
}, {
{ name: "repulseCause",
name: "repulseCause", label: "打回意见",
label: "打回意见", span: 24,
span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
render: FORM_ITEM_RENDER_ENUM.TEXTAREA, dependencies: ["status"],
dependencies: ["status"], hidden: formValues => !(formValues.status === 0),
hidden: formValues => !(formValues.status === 0), },
}, ...(
...( status === 1
status === 1 ? [
? [ { name: "descr", label: "验收描述" },
{ name: "descr", label: "验收描述" }, {
{ name: "rectificationTime",
name: "rectificationTime", label: "验收时间",
label: "验收时间", render: FORM_ITEM_RENDER_ENUM.DATETIME,
render: FORM_ITEM_RENDER_ENUM.DATETIME, rules: [validatorEndTime(data.rectificationTime, "验收时间不能早于整改时间")],
rules: [validatorEndTime(data.rectificationTime, "验收时间不能早于整改时间")], },
}, { name: "files", label: "验收图片", required: false, render: <Upload /> },
{ name: "files", label: "验收图片", required: false, render: <Upload /> }, ]
] : []
: [] ),
), ]}
]} />
/> </Page>
</div>
</div>
); );
} }

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -25,7 +26,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -111,7 +112,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Divider, Form, message, Modal } from "antd"; import { Button, Divider, Form, message, Modal } from "antd";
import { useRef, useState } from "react"; import { useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import HiddenLevelSelectTree from "zy-react-library/components/SelectTree/HiddenLevel/Gwj"; import HiddenLevelSelectTree from "zy-react-library/components/SelectTree/HiddenLevel/Gwj";
@ -84,14 +84,6 @@ function Confirm(props) {
render: FORM_ITEM_RENDER_ENUM.RADIO, render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: 1, name: "是" }, { bianma: 2, name: "否" }], items: [{ bianma: 1, name: "是" }, { bianma: 2, name: "否" }],
span: 24, span: 24,
componentProps: {
onChange: () => {
if (data.isRelated === 0) {
form.setFieldValue("checkDeptName", "");
form.setFieldValue("checkUserName", "");
}
},
},
}, },
...commonDeptUserFields, ...commonDeptUserFields,
{ {
@ -165,74 +157,77 @@ function Confirm(props) {
return ( return (
<div> <div>
<HeaderBack title="确认" /> <Page headerTitle="确认" contentPadding="0 20px 20px 20px" isShowFooter={false}>
<HiddenInfo <HiddenInfo
isShowHeaderBack={false} onGetData={(data) => {
onGetData={(data) => { setData(data);
setData(data); data.isRelated === 1 && getXgfProjectInfo(data.projectId);
data.isRelated === 1 && getXgfProjectInfo(data.projectId); setIsFromInspection(data.source === 4 || data.source === 5);
setIsFromInspection(data.source === 4 || data.source === 5); const hiddenUserPresetsCO = data.hiddenUserPresetsCO || {};
const hiddenUserPresetsCO = data.hiddenUserPresetsCO || {}; form.setFieldValue("deptId", hiddenUserPresetsCO.rectifyDeptId || data.hiddenFindDept);
form.setFieldValue("deptId", hiddenUserPresetsCO.rectifyDeptId || data.hiddenFindDept); form.setFieldValue("deptName", hiddenUserPresetsCO.rectifyDeptName || data.hiddenFindDeptName);
form.setFieldValue("deptName", hiddenUserPresetsCO.rectifyDeptName || data.hiddenFindDeptName); form.setFieldValue("userId", hiddenUserPresetsCO.rectifyUserId || data.creatorId);
form.setFieldValue("userId", hiddenUserPresetsCO.rectifyUserId || data.creatorId); form.setFieldValue("userName", hiddenUserPresetsCO.rectifyUserName || data.creatorName);
form.setFieldValue("userName", hiddenUserPresetsCO.rectifyUserName || data.creatorName); form.setFieldValue("checkDeptId", hiddenUserPresetsCO.rectifyDeptId || data.hiddenFindDept);
form.setFieldValue("checkDeptId", hiddenUserPresetsCO.rectifyDeptId || data.hiddenFindDept); form.setFieldValue("checkDeptName", hiddenUserPresetsCO.rectifyDeptName || data.hiddenFindDeptName);
form.setFieldValue("checkDeptName", hiddenUserPresetsCO.rectifyDeptName || data.hiddenFindDeptName); form.setFieldValue("checkUserId", hiddenUserPresetsCO.rectifyUserId || data.creatorId);
form.setFieldValue("checkUserId", hiddenUserPresetsCO.rectifyUserId || data.creatorId); form.setFieldValue("checkUserName", hiddenUserPresetsCO.rectifyUserName || data.creatorName);
form.setFieldValue("checkUserName", hiddenUserPresetsCO.rectifyUserName || data.creatorName); }}
}} />
/> <Divider orientation="left">隐患确认</Divider>
<Divider orientation="left">隐患确认</Divider> <div>
<div style={{ paddingBottom: 20 }}> {
{ Object.keys(data).length > 0
Object.keys(data).length > 0 ? (
? ( <FormBuilder
<FormBuilder form={form}
form={form} loading={props.confirm.confirmLoading}
loading={props.confirm.confirmLoading} showCancelButton={false}
showCancelButton={false} submitButtonText="通过"
submitButtonText="通过" onFinish={onSubmit}
onFinish={onSubmit} extraActionButtons={[
extraActionButtons={[ !isFromInspection && <Button key="reject" type="primary" danger onClick={() => setRejectModalOpen(true)}>打回</Button>,
!isFromInspection && <Button key="reject" type="primary" danger onClick={() => setRejectModalOpen(true)}>打回</Button>, ]}
]} values={{
options={[ rectificationType: 1,
...(!isFromInspection }}
? [ options={[
{ ...(!isFromInspection
name: "hiddenLevel", ? [
label: "隐患级别", {
span: 24, name: "hiddenLevel",
render: ( label: "隐患级别",
<HiddenLevelSelectTree span: 24,
isShowMajor={false} render: (
isShowLarger={false} <HiddenLevelSelectTree
isShowNeglect={data.rectificationType === 2} isShowMajor={false}
onChange={(event) => { isShowLarger={false}
if (event === "hiddenLevel1001") { isShowNeglect={data.rectificationType === 2}
form.setFieldValue("deptName", ""); onChange={(event) => {
form.setFieldValue("userName", ""); if (event === "hiddenLevel1001") {
form.setFieldValue("checkDeptName", ""); form.setFieldValue("deptName", "");
form.setFieldValue("checkUserName", ""); form.setFieldValue("userName", "");
} form.setFieldValue("checkDeptName", "");
}} form.setFieldValue("checkUserName", "");
onGetLabel={(label) => { }
form.setFieldValue("hiddenLevelName", label); }}
}} onGetLabel={(label) => {
/> form.setFieldValue("hiddenLevelName", label);
), }}
}, />
] ),
: []), },
{ name: "hiddenLevelName", label: "隐患级别名称", onlyForLabel: true }, ]
...decideOption(), : []),
]} { name: "hiddenLevelName", label: "隐患级别名称", onlyForLabel: true },
/> ...decideOption(),
) ]}
: null />
} )
</div> : null
}
</div>
</Page>
{rejectModalOpen && <RejectModal onCancel={() => setRejectModalOpen(false)} data={data} />} {rejectModalOpen && <RejectModal onCancel={() => setRejectModalOpen(false)} data={data} />}
</div> </div>
); );
@ -259,12 +254,14 @@ const RejectModalComponent = (props) => {
<Modal <Modal
title="驳回原因" title="驳回原因"
open open
width={600}
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
confirmLoading={props.confirm.confirmLoading} confirmLoading={props.confirm.confirmLoading}
> >
<FormBuilder <FormBuilder
loading={props.confirm.confirmLoading}
form={form} form={form}
onFinish={onSubmit} onFinish={onSubmit}
showActionButtons={false} showActionButtons={false}

View File

@ -4,6 +4,7 @@ import { Button, Form, message, Modal, Space } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; 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 Search from "zy-react-library/components/Search";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
@ -38,7 +39,7 @@ function HiddenConfirmUser(props) {
}; };
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
labelCol={{ span: 4 }} labelCol={{ span: 4 }}
options={[ options={[
@ -103,7 +104,7 @@ function HiddenConfirmUser(props) {
getData={getData} getData={getData}
/> />
)} )}
</div> </Page>
); );
} }
@ -138,17 +139,18 @@ const AddModalComponent = (props) => {
return ( return (
<Modal <Modal
title="新增隐患确认人" title="新增隐患确认人"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.confirmUser.confirmUserLoading} confirmLoading={props.confirmUser.confirmUserLoading}
> >
<FormBuilder <FormBuilder
loading={props.confirmUser.confirmUserLoading}
form={form} form={form}
span={24} span={24}
labelCol={{ span: 10 }} labelCol={{ span: 12 }}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[
@ -191,7 +193,7 @@ const AddModalComponent = (props) => {
{ name: "postId", label: "确认人", onlyForLabel: true }, { name: "postId", label: "确认人", onlyForLabel: true },
{ {
name: "confirmRange", name: "confirmRange",
label: "确认范围(部门)", label: "确认范围(部门)",
render: ( render: (
<DepartmentSelectTree <DepartmentSelectTree
treeCheckable treeCheckable
@ -202,7 +204,7 @@ const AddModalComponent = (props) => {
/> />
), ),
}, },
{ name: "confirmRangeName", label: "确认范围(部门)", onlyForLabel: true }, { name: "confirmRangeName", label: "确认范围(部门)名称", onlyForLabel: true },
]} ]}
/> />
</Modal> </Modal>

View File

@ -1,13 +1,14 @@
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; 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"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
function HiddenView() { function HiddenView() {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
return ( return (
<div> <Page headerTitle={query.history === "1" ? "过程记录" : "查看"} contentPadding="0 20px 20px 20px">
<HiddenInfo history={query.history === "1"} /> <HiddenInfo history={query.history === "1"} />
</div> </Page>
); );
} }

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -25,7 +26,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -100,7 +101,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Col, Form, Image, Input, message, Modal, Row } from "antd"; import { Button, Col, Form, Image, Input, message, Modal, Row } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import Map from "zy-react-library/components/Map"; import Map from "zy-react-library/components/Map";
import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -282,8 +282,7 @@ function Add(props) {
return ( return (
<div> <div>
<HeaderBack title={query.id ? "编辑" : "新增"} /> <Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
<div style={{ paddingBottom: 10 }}>
<FormBuilder <FormBuilder
form={form} form={form}
loading={deleteFileLoading || uploadFileLoading || getFileLoading || props.ledger.ledgerLoading} loading={deleteFileLoading || uploadFileLoading || getFileLoading || props.ledger.ledgerLoading}
@ -678,7 +677,7 @@ function Add(props) {
{ name: "checkUserName", label: "验收人名称", onlyForLabel: true }, { name: "checkUserName", label: "验收人名称", onlyForLabel: true },
]} ]}
/> />
</div> </Page>
{ {
aiHiddenModalOpen && ( aiHiddenModalOpen && (
<AiHiddenModal <AiHiddenModal

View File

@ -8,6 +8,7 @@ import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon"; import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import PrintIcon from "zy-react-library/components/Icon/PrintIcon"; import PrintIcon from "zy-react-library/components/Icon/PrintIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -27,7 +28,6 @@ function List(props) {
const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [exportByColumnModalOpen, setExportByColumnModalOpen] = useState(false); const [exportByColumnModalOpen, setExportByColumnModalOpen] = useState(false);
const [printModalOpen, setPrintModalOpen] = useState(false); const [printModalOpen, setPrintModalOpen] = useState(false);
const [printData, setPrintData] = useState([]);
const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob(); const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob();
const { tableProps, getData } = useTable(props["ledgerList"], { const { tableProps, getData } = useTable(props["ledgerList"], {
form, form,
@ -74,7 +74,7 @@ function List(props) {
}; };
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Spin spinning={downloadBlobLoading}> <Spin spinning={downloadBlobLoading}>
<Search <Search
options={[ options={[
@ -91,7 +91,7 @@ function List(props) {
name: "hiddenLevel", name: "hiddenLevel",
label: "隐患级别", label: "隐患级别",
render: ( render: (
<HiddenLevelSelectTree isShowNeglect={false} isShowLarger={false} isShowMajor={false} /> <HiddenLevelSelectTree isShowLarger={false} isShowMajor={false} />
), ),
}, },
{ name: "creatorName", label: "隐患发现人" }, { name: "creatorName", label: "隐患发现人" },
@ -141,13 +141,13 @@ function List(props) {
<Button <Button
type="primary" type="primary"
icon={<PrintIcon />} icon={<PrintIcon />}
ghost
onClick={() => { onClick={() => {
if (selectedRowKeys.length === 0) { if (selectedRowKeys.length === 0) {
message.error("请选中要打印的数据"); message.error("请选中要打印的数据");
return; return;
} }
setPrintModalOpen(true); setPrintModalOpen(true);
setPrintData(tableProps.dataSource.filter(item => selectedRowKeys.includes(item.id)));
}} }}
> >
打印 打印
@ -157,6 +157,7 @@ function List(props) {
<Button <Button
type="primary" type="primary"
icon={<ExportIcon />} icon={<ExportIcon />}
ghost
onClick={() => { onClick={() => {
onExportExcel(); onExportExcel();
}} }}
@ -168,6 +169,7 @@ function List(props) {
<Button <Button
type="primary" type="primary"
icon={<ExportIcon />} icon={<ExportIcon />}
ghost
onClick={() => { onClick={() => {
const hiddenFindTime = form.getFieldValue("hiddenFindTime"); const hiddenFindTime = form.getFieldValue("hiddenFindTime");
if (!hiddenFindTime) { if (!hiddenFindTime) {
@ -233,7 +235,7 @@ function List(props) {
{ {
title: "隐患状态", title: "隐患状态",
dataIndex: "state", dataIndex: "state",
render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }), render: (_, record) => record.hiddenLevelName !== "忽略隐患" ? getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) : "",
}, },
{ {
title: "操作", title: "操作",
@ -291,14 +293,11 @@ function List(props) {
)} )}
{printModalOpen && ( {printModalOpen && (
<PrintModal <PrintModal
data={printData} data={selectedRowKeys}
onCancel={() => { onCancel={() => setPrintModalOpen(false)}
setPrintModalOpen(false);
setPrintData([]);
}}
/> />
)} )}
</div> </Page>
); );
} }
@ -329,14 +328,15 @@ const ExportByColumnModalComponent = (props) => {
return ( return (
<Modal <Modal
title="按列导出" title="按列导出"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={loading} confirmLoading={loading}
> >
<FormBuilder <FormBuilder
loading={loading}
form={form} form={form}
span={24} span={24}
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
@ -358,7 +358,8 @@ const ExportByColumnModalComponent = (props) => {
); );
}; };
const PrintModal = (props) => { const PrintModalComponent = (props) => {
const [list, setList] = useState([]);
const contentRef = useRef(null); const contentRef = useRef(null);
const handlePrint = useReactToPrint({ const handlePrint = useReactToPrint({
contentRef, contentRef,
@ -375,6 +376,18 @@ const PrintModal = (props) => {
`, `,
documentTitle: "", documentTitle: "",
}); });
const getData = async () => {
const { data } = await props["hiddenPrintList"]({
ids: props.data.join(","),
});
setList(data);
};
useEffect(() => {
getData();
}, []);
const getIsQualified = (isQualified) => { const getIsQualified = (isQualified) => {
if (isQualified === "1") if (isQualified === "1")
return "合格"; return "合格";
@ -382,6 +395,7 @@ const PrintModal = (props) => {
return "不合格"; return "不合格";
return ""; return "";
}; };
return ( return (
<Modal <Modal
title="打印" title="打印"
@ -395,7 +409,7 @@ const PrintModal = (props) => {
<Table <Table
options={false} options={false}
disabledResizer={false} disabledResizer={false}
dataSource={props.data} dataSource={list}
pagination={false} pagination={false}
columns={[ columns={[
{ {
@ -407,7 +421,7 @@ const PrintModal = (props) => {
{ title: "责任部门", dataIndex: "hiddenFindDeptName" }, { title: "责任部门", dataIndex: "hiddenFindDeptName" },
{ title: "事故隐患", dataIndex: "hiddenDesc" }, { title: "事故隐患", dataIndex: "hiddenDesc" },
{ title: "隐患等级", dataIndex: "hiddenLevelName" }, { title: "隐患等级", dataIndex: "hiddenLevelName" },
{ title: "治理措施", dataIndex: "tempSafeMeasure" }, { title: "治理措施", dataIndex: "rectificationDesc" },
{ {
title: "完成时限", title: "完成时限",
dataIndex: "rectificationDeadline", dataIndex: "rectificationDeadline",
@ -427,7 +441,7 @@ const PrintModal = (props) => {
{ {
title: "验收结果", title: "验收结果",
dataIndex: "isQualified", dataIndex: "isQualified",
render: (_, record) => record.state === 301 ? getIsQualified(record.isQualified) : "", render: (_, record) => record.hiddenLevelName !== "忽略隐患" ? (record.state === 301 ? getIsQualified(record.isQualified) : "") : "",
}, },
]} ]}
/> />
@ -449,14 +463,14 @@ const PrintModal = (props) => {
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{(props.data || []).map(item => ( {list.map(item => (
<tr key={item.id}> <tr key={item.id}>
<td>{item.hiddenFindTime ? dayjs(item.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : ""}</td> <td>{item.hiddenFindTime ? dayjs(item.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : ""}</td>
<td>{item.createName}</td> <td>{item.createName}</td>
<td>{item.hiddenFindDeptName}</td> <td>{item.hiddenFindDeptName}</td>
<td>{item.hiddenDesc}</td> <td>{item.hiddenDesc}</td>
<td>{item.hiddenLevelName}</td> <td>{item.hiddenLevelName}</td>
<td>{item.tempSafeMeasure}</td> <td>{item.rectificationDesc}</td>
<td>{item.rectificationDeadline ? dayjs(item.rectificationDeadline).format("YYYY-MM-DD HH:mm:ss") : ""}</td> <td>{item.rectificationDeadline ? dayjs(item.rectificationDeadline).format("YYYY-MM-DD HH:mm:ss") : ""}</td>
<td>{item.rectifyUserName}</td> <td>{item.rectifyUserName}</td>
<td>{item.state === 301 ? item.hiddenYUserName : ""}</td> <td>{item.state === 301 ? item.hiddenYUserName : ""}</td>
@ -471,5 +485,6 @@ const PrintModal = (props) => {
); );
}; };
const PrintModal = Connect([NS_LEDGER], true)(PrintModalComponent);
const ExportByColumnModal = Connect([NS_LEDGER], true)(ExportByColumnModalComponent); const ExportByColumnModal = Connect([NS_LEDGER], true)(ExportByColumnModalComponent);
export default Connect([NS_LEDGER], true)(Permission(List)); export default Connect([NS_LEDGER], true)(Permission(List));

View File

@ -7,6 +7,7 @@ import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import BackIcon from "zy-react-library/components/Icon/BackIcon"; import BackIcon from "zy-react-library/components/Icon/BackIcon";
import BasicLeftTree from "zy-react-library/components/LeftTree/Basic"; import BasicLeftTree from "zy-react-library/components/LeftTree/Basic";
import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -76,7 +77,7 @@ function Part(props) {
}; };
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<div style={{ display: "flex", gap: 20 }}> <div style={{ display: "flex", gap: 20 }}>
<div style={{ width: 300 }}> <div style={{ width: 300 }}>
<Spin spinning={props.part.partLoading}> <Spin spinning={props.part.partLoading}>
@ -92,7 +93,8 @@ function Part(props) {
/> />
</Spin> </Spin>
</div> </div>
<div style={{ flex: 1 }}> <div style={{ backgroundColor: "rgb(241, 241, 242)", width: 10, marginTop: "-20px", marginBottom: "-20px", height: "calc(100vh - 112px)" }}></div>
<div style={{ width: "calc(100% - 300px - 50px)" }}>
<Table <Table
toolBarRender={() => ( toolBarRender={() => (
<> <>
@ -182,7 +184,7 @@ function Part(props) {
}} }}
/> />
)} )}
</div> </Page>
); );
} }
@ -210,14 +212,15 @@ const AddModalComponent = (props) => {
return ( return (
<Modal <Modal
title={props.id ? "编辑" : "新增"} title={props.id ? "编辑" : "新增"}
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.part.partLoading} confirmLoading={props.part.partLoading}
> >
<FormBuilder <FormBuilder
loading={props.part.partLoading}
form={form} form={form}
span={24} span={24}
labelCol={{ span: 10 }} labelCol={{ span: 10 }}

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -27,7 +28,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -122,7 +123,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -1,9 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd"; import { Button, Form, message, Modal } from "antd";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_SPECIAL_DISPOSAL } from "~/enumerate/namespace"; import { NS_SPECIAL_DISPOSAL } from "~/enumerate/namespace";
@ -28,18 +28,30 @@ function Review(props) {
}, },
}); });
}; };
return ( return (
<div> <div>
<HeaderBack title="延期审核" /> <Page headerTitle="延期审核" isShowFooter={false} contentPadding="0 20px 20px 20px">
<HiddenInfo isShowHeaderBack={false} /> <HiddenInfo />
<div style={{ paddingBottom: 20, textAlign: "center" }}> <FormBuilder
<Space> options={[]}
<Button type="primary" onClick={onSubmit}>通过</Button> submitButtonText="通过"
<Button key="reject" type="primary" danger onClick={() => setRejectModalOpen(true)}>打回</Button> extraActionButtons={(
<Button key="back" onClick={() => props.history.goBack()}>取消</Button> <Button
</Space> type="primary"
</div> danger
{rejectModalOpen && <RejectModal onCancel={() => setRejectModalOpen(false)} data={{ id: query.id, hiddenId: query.hiddenId }} />} onClick={() => setRejectModalOpen(true)}
>
打回
</Button>
)}
onFinish={onSubmit}
loading={props.specialDisposal.specialDisposalLoading}
/>
</Page>
{
rejectModalOpen && (<RejectModal onCancel={() => setRejectModalOpen(false)} data={{ id: query.id, hiddenId: query.hiddenId }} />)
}
</div> </div>
); );
} }
@ -64,12 +76,14 @@ const RejectModalComponent = (props) => {
<Modal <Modal
title="驳回原因" title="驳回原因"
open open
width={600}
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
confirmLoading={props.specialDisposal.specialDisposalLoading} confirmLoading={props.specialDisposal.specialDisposalLoading}
> >
<FormBuilder <FormBuilder
loading={props.specialDisposal.specialDisposalLoading}
form={form} form={form}
onFinish={onSubmit} onFinish={onSubmit}
showActionButtons={false} showActionButtons={false}

View File

@ -4,6 +4,7 @@ import { Button, Form, message, Modal, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; 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 Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -34,7 +35,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -171,7 +172,7 @@ function List(props) {
getData={getData} getData={getData}
/> />
)} )}
</div> </Page>
); );
} }
@ -189,17 +190,18 @@ const TemporarySafetyMeasuresModalComponent = (props) => {
return ( return (
<Modal <Modal
title="添加临时安全措施" title="添加临时安全措施"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.rectification.rectificationLoading} confirmLoading={props.rectification.rectificationLoading}
> >
<FormBuilder <FormBuilder
loading={props.rectification.rectificationLoading}
form={form} form={form}
span={24} span={24}
labelCol={{ span: 8 }} labelCol={{ span: 10 }}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[
@ -226,17 +228,18 @@ const RequestAnExtensionModalComponent = (props) => {
return ( return (
<Modal <Modal
title="申请延期" title="申请延期"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.rectification.rectificationLoading || uploadFileLoading} confirmLoading={props.rectification.rectificationLoading || uploadFileLoading}
> >
<FormBuilder <FormBuilder
loading={props.rectification.rectificationLoading || uploadFileLoading}
form={form} form={form}
span={24} span={24}
labelCol={{ span: 8 }} labelCol={{ span: 10 }}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[

View File

@ -3,8 +3,8 @@ import { Divider, Form, message } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
@ -74,11 +74,10 @@ function Rectification(props) {
} }
return {}; return {};
}; };
return ( return (
<div> <Page headerTitle="整改" isShowFooter={false} contentPadding="0 20px 20px 20px">
<HeaderBack title="整改" />
<HiddenInfo <HiddenInfo
isShowHeaderBack={false}
onGetData={(data) => { onGetData={(data) => {
setData(data); setData(data);
form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure); form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure);
@ -97,152 +96,150 @@ function Rectification(props) {
}} }}
/> />
<Divider orientation="left">隐患整改</Divider> <Divider orientation="left">隐患整改</Divider>
<div style={{ paddingBottom: 20 }}> <FormBuilder
<FormBuilder values={{
values={{ status: 1,
status: 1, }}
}} span={24}
span={24} form={form}
form={form} loading={uploadFileLoading || props.rectification.rectificationLoading}
loading={uploadFileLoading || props.rectification.rectificationLoading} onFinish={onSubmit}
onFinish={onSubmit} options={[
options={[ {
{ name: "status",
name: "status", label: "是否正常整改",
label: "是否正常整改", render: FORM_ITEM_RENDER_ENUM.RADIO,
render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }],
items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], },
}, ...(
...( status === 0
status === 0 ? [
? [ { name: "repulseCause", label: "无法正常整改原因", render: FORM_ITEM_RENDER_ENUM.TEXTAREA },
{ name: "repulseCause", label: "无法正常整改原因", render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, ]
] : [
: [ { name: "descr", label: "整改描述" },
{ name: "descr", label: "整改描述" }, {
{ name: "investmentFunds",
name: "investmentFunds", label: "投入资金",
label: "投入资金", render: FORM_ITEM_RENDER_ENUM.NUMBER,
render: FORM_ITEM_RENDER_ENUM.NUMBER, componentProps: { addonAfter: "元" },
componentProps: { addonAfter: "元" }, },
{
name: "rectificationTime",
label: "整改时间",
render: FORM_ITEM_RENDER_ENUM.DATETIME,
componentProps: {
disabledDate: current => current && current > dayjs().endOf("day"),
disabledTime,
}, },
{ },
name: "rectificationTime", { name: "tempSafeMeasure", label: "临时安全措施", render: FORM_ITEM_RENDER_ENUM.TEXTAREA },
label: "整改时间", { name: "afterRectificationImageFiles", label: "整改后图片", render: <Upload /> },
render: FORM_ITEM_RENDER_ENUM.DATETIME, ...(
componentProps: { data.isRelated === 0
disabledDate: current => current && current > dayjs().endOf("day"), ? [
disabledTime, {
}, name: "hiddenUserAddCmds",
}, render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
{ name: "tempSafeMeasure", label: "临时安全措施", render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, formListUniqueProps: {
{ name: "afterRectificationImageFiles", label: "整改后图片", render: <Upload /> }, addDefaultValue: { type: 300 },
...( options: field => ([
data.isRelated === 0 {
? [ name: [field.name, "deptId"],
{ label: "验收部门",
name: "hiddenUserAddCmds", span: 12,
render: FORM_ITEM_RENDER_ENUM.FORM_LIST, render: (
formListUniqueProps: { <DepartmentSelectTree
addDefaultValue: { type: 300 }, onChange={() => {
options: field => ([ form.setFieldValue(["hiddenUserAddCmds", field.name, "userId"], "");
{ form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], "");
name: [field.name, "deptId"], }}
label: "验收部门", onGetLabel={(label) => {
span: 12, form.setFieldValue(["hiddenUserAddCmds", field.name, "deptName"], label);
render: ( }}
<DepartmentSelectTree />
onChange={() => { ),
form.setFieldValue(["hiddenUserAddCmds", field.name, "userId"], ""); },
form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], ""); { name: [field.name, "deptName"], deptName: "验收部门名称", onlyForLabel: true },
}} { name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true },
onGetLabel={(label) => { { name: [field.name, "userName"], deptName: "验收人名称", onlyForLabel: true },
form.setFieldValue(["hiddenUserAddCmds", field.name, "deptName"], label); {
}} name: [field.name, "userId"],
/> deptName: "验收人",
), span: 12,
}, rules: [{
{ name: [field.name, "deptName"], deptName: "验收部门名称", onlyForLabel: true }, validator: (_, value) => {
{ name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true }, // 获取已存在的用户名
{ name: [field.name, "userName"], deptName: "验收人名称", onlyForLabel: true }, const confirmUserName = data?.hiddenConfirmUserCO?.rectifyUserId;
{ const presetUserName = data?.hiddenUserPresetsCO?.rectifyUserId;
name: [field.name, "userId"],
deptName: "验收人",
span: 12,
rules: [{
validator: (_, value) => {
// 获取已存在的用户名
const confirmUserName = data?.hiddenConfirmUserCO?.rectifyUserId;
const presetUserName = data?.hiddenUserPresetsCO?.rectifyUserId;
// 验证是否与已有用户名相同 // 验证是否与已有用户名相同
if (value && (value === confirmUserName || value === presetUserName)) { if (value && (value === confirmUserName || value === presetUserName)) {
return Promise.reject(new Error("验收人不能与整改人相同")); return Promise.reject(new Error("验收人不能与整改人相同"));
} }
return Promise.resolve(); return Promise.resolve();
}, },
}], }],
render: ( render: (
<PersonnelSelect <PersonnelSelect
params={{ departmentId: hiddenUserAddCmds?.[field.name]?.deptId || "" }} params={{ departmentId: hiddenUserAddCmds?.[field.name]?.deptId || "" }}
onGetLabel={label => form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], label)} onGetLabel={label => form.setFieldValue(["hiddenUserAddCmds", field.name, "userName"], label)}
/> />
), ),
}, },
]), ]),
},
}, },
] },
: [ ]
{ : [
name: "hiddenUserAddCmds", {
render: FORM_ITEM_RENDER_ENUM.FORM_LIST, name: "hiddenUserAddCmds",
formListUniqueProps: { render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
showAddButton: false, formListUniqueProps: {
showRemoveButton: false, showAddButton: false,
options: field => ([ showRemoveButton: false,
{ name: [field.name, "deptName"], label: "验收部门", span: 12, componentProps: { disabled: true } }, options: field => ([
{ name: [field.name, "deptId"], deptName: "验收部门id", onlyForLabel: true }, { name: [field.name, "deptName"], label: "验收部门", span: 12, componentProps: { disabled: true } },
{ name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true }, { name: [field.name, "deptId"], deptName: "验收部门id", onlyForLabel: true },
{ name: [field.name, "userId"], deptName: "验收人id", onlyForLabel: true }, { name: [field.name, "type"], deptName: "用户类型", onlyForLabel: true },
{ name: [field.name, "userName"], deptName: "验收人", span: 12, componentProps: { disabled: true } }, { name: [field.name, "userId"], deptName: "验收人id", onlyForLabel: true },
]), { name: [field.name, "userName"], deptName: "验收人", span: 12, componentProps: { disabled: true } },
}, ]),
}, },
] },
), ]
{ ),
name: "isRectificationScheme", {
label: "整改方案", name: "isRectificationScheme",
render: FORM_ITEM_RENDER_ENUM.RADIO, label: "整改方案",
items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], render: FORM_ITEM_RENDER_ENUM.RADIO,
}, items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }],
...( },
isRectificationScheme !== undefined ...(
? ( isRectificationScheme !== undefined
isRectificationScheme === 1 ? (
? [ isRectificationScheme === 1
{ name: "governStanDards", label: "治理标准" }, ? [
{ name: "governMethod", label: "治理方法" }, { name: "governStanDards", label: "治理标准" },
{ name: "expenditure", label: "经费落实" }, { name: "governMethod", label: "治理方法" },
{ name: "principal", label: "负责人员" }, { name: "expenditure", label: "经费落实" },
{ name: "programming", label: "工时安排" }, { name: "principal", label: "负责人员" },
{ name: "timeLimitFor", label: "时限要求" }, { name: "programming", label: "工时安排" },
{ name: "jobRequireMent", label: "工作要求" }, { name: "timeLimitFor", label: "时限要求" },
{ name: "otherBusiness", label: "其他事项" }, { name: "jobRequireMent", label: "工作要求" },
{ name: "rectificationPlanImageFiles", label: "方案图片", render: <Upload /> }, { name: "otherBusiness", label: "其他事项" },
] { name: "rectificationPlanImageFiles", label: "方案图片", render: <Upload /> },
: [] ]
) : []
: [] )
), : []
] ),
), ]
]} ),
/> ]}
</div> />
</div> </Page>
); );
} }

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -27,7 +28,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -122,7 +123,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Divider, Form, message } from "antd"; import { Divider, Form, message } from "antd";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
@ -36,117 +36,113 @@ function Review(props) {
}; };
return ( return (
<div> <Page headerTitle="特殊处理审核" isShowFooter={false} contentPadding="0 20px 20px 20px">
<HeaderBack title="特殊处理审核" />
<HiddenInfo <HiddenInfo
isShowHeaderBack={false}
onGetData={(data) => { onGetData={(data) => {
setData(data); setData(data);
form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure); form.setFieldValue("tempSafeMeasure", data.tempSafeMeasure);
}} }}
/> />
<Divider orientation="left">特殊处理审核</Divider> <Divider orientation="left">特殊处理审核</Divider>
<div style={{ paddingBottom: 20 }}> <FormBuilder
<FormBuilder values={{
values={{ state: 3,
state: 3, }}
}} form={form}
form={form} loading={uploadFileLoading || props.specialDisposal.specialDisposalLoading}
loading={uploadFileLoading || props.specialDisposal.specialDisposalLoading} onFinish={onSubmit}
onFinish={onSubmit} options={[
options={[ {
{ name: "state",
name: "state", label: "是否通过",
label: "是否通过", span: 24,
span: 24, render: FORM_ITEM_RENDER_ENUM.RADIO,
render: FORM_ITEM_RENDER_ENUM.RADIO, items: [{ bianma: 3, name: "通过" }, { bianma: 4, name: "不通过" }],
items: [{ bianma: 3, name: "通过" }, { bianma: 4, name: "不通过" }], componentProps: {
componentProps: { onChange: () => {
onChange: () => { form.setFieldValue("modifyRectifyPerson", 0);
form.setFieldValue("modifyRectifyPerson", 0); form.setFieldValue("deptId", "");
form.setFieldValue("deptId", ""); form.setFieldValue("deptName", "");
form.setFieldValue("deptName", ""); form.setFieldValue("rectifyPersonId", "");
form.setFieldValue("rectifyPersonId", ""); form.setFieldValue("rectifyPersonName", "");
form.setFieldValue("rectifyPersonName", "");
},
}, },
}, },
{ },
name: "disposalPlan", {
label: "处置方案", name: "disposalPlan",
span: 24, label: "处置方案",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24,
dependencies: ["state"], render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
hidden: formValues => !(formValues.state === 3), dependencies: ["state"],
}, hidden: formValues => !(formValues.state === 3),
{ },
name: "files", {
label: "处置方案附件", name: "files",
span: 24, label: "处置方案附件",
render: <Upload fileType="document" maxCount={1} />, span: 24,
dependencies: ["state"], render: <Upload fileType="document" maxCount={1} />,
hidden: formValues => !(formValues.state === 3), dependencies: ["state"],
}, hidden: formValues => !(formValues.state === 3),
...( },
data.isRelated === 0 ...(
? [ data.isRelated === 0
{ ? [
name: "modifyRectifyPerson", {
label: "是否更换整改负责人", name: "modifyRectifyPerson",
span: 24, label: "是否更换整改负责人",
render: FORM_ITEM_RENDER_ENUM.RADIO, span: 24,
items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }], render: FORM_ITEM_RENDER_ENUM.RADIO,
componentProps: { items: [{ bianma: 1, name: "是" }, { bianma: 0, name: "否" }],
onChange: () => { componentProps: {
form.setFieldValue("deptId", ""); onChange: () => {
form.setFieldValue("deptName", ""); form.setFieldValue("deptId", "");
form.setFieldValue("deptName", "");
form.setFieldValue("rectifyPersonId", "");
form.setFieldValue("rectifyPersonName", "");
},
},
dependencies: ["state"],
hidden: formValues => !(formValues.state === 4),
},
{
name: "deptId",
label: "整改部门",
render: (
<DepartmentSelectTree
onChange={() => {
form.setFieldValue("rectifyPersonId", ""); form.setFieldValue("rectifyPersonId", "");
form.setFieldValue("rectifyPersonName", ""); form.setFieldValue("rectifyPersonName", "");
}, }}
}, onGetLabel={(label) => {
dependencies: ["state"], form.setFieldValue("deptName", label);
hidden: formValues => !(formValues.state === 4), }}
}, />
{ ),
name: "deptId", dependencies: ["state", "modifyRectifyPerson"],
label: "整改部门", hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1),
render: ( },
<DepartmentSelectTree { name: "deptName", label: "整改部门名称", onlyForLabel: true },
onChange={() => { {
form.setFieldValue("rectifyPersonId", ""); name: "rectifyPersonId",
form.setFieldValue("rectifyPersonName", ""); label: "整改人",
}} render: (
onGetLabel={(label) => { <PersonnelSelect
form.setFieldValue("deptName", label); params={{ departmentId: deptId }}
}} onGetLabel={label => form.setFieldValue("rectifyPersonName", label)}
/> />
), ),
dependencies: ["state", "modifyRectifyPerson"], dependencies: ["state", "modifyRectifyPerson"],
hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1), hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1),
}, },
{ name: "deptName", label: "整改部门名称", onlyForLabel: true }, { name: "rectifyPersonName", label: "整改人名称", onlyForLabel: true },
{ ]
name: "rectifyPersonId", : [
label: "整改人", { name: "modifyRectifyPerson", label: "是否更换整改负责人", onlyForLabel: true },
render: ( ]
<PersonnelSelect ),
params={{ departmentId: deptId }} ]}
onGetLabel={label => form.setFieldValue("rectifyPersonName", label)} />
/> </Page>
),
dependencies: ["state", "modifyRectifyPerson"],
hidden: formValues => !(formValues.state === 4 && formValues.modifyRectifyPerson === 1),
},
{ name: "rectifyPersonName", label: "整改人名称", onlyForLabel: true },
]
: [
{ name: "modifyRectifyPerson", label: "是否更换整改负责人", onlyForLabel: true },
]
),
]}
/>
</div>
</div>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_AVERAGE } from "~/enumerate/namespace"; import { NS_AVERAGE } from "~/enumerate/namespace";
@ -10,38 +11,36 @@ function List(props) {
const { tableProps } = useTable(props["averageAiHiddenRecord"], { const { tableProps } = useTable(props["averageAiHiddenRecord"], {
form, form,
}); });
return (
<div>
<div style={{ padding: 20 }}>
<Table
columns={[
{ title: "企业名称", dataIndex: "corpName" },
{ title: "使用频次", dataIndex: "frequency" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("jgd-aiyh-ck") && (
<Button
type="link"
onClick={() => {
props.history.push(`./ListView?corpName=${record.corpName}&id=${record.corpId}`);
}}
>
查看
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</div> return (
</div> <Page isShowAllAction={false}>
<Table
columns={[
{ title: "企业名称", dataIndex: "corpName" },
{ title: "使用频次", dataIndex: "frequency" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("jgd-aiyh-ck") && (
<Button
type="link"
onClick={() => {
props.history.push(`./ListView?corpName=${record.corpName}&id=${record.corpId}`);
}}
>
查看
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form } from "antd"; import { Button, Form } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -15,38 +15,36 @@ function ListView(props) {
corpId: query.id, corpId: query.id,
}, },
}); });
return (
<div>
<HeaderBack title="重复隐患" />
<div style={{ padding: 20 }}>
<Table
title={() => `企业名称:${query.corpName}`}
columns={[
{ title: "使用人", dataIndex: "userName" },
{ title: "使用时间", dataIndex: "useTime" },
{
title: "生成隐患数",
dataIndex: "hiddenNum",
render: (_, record) => {
return (
<>
<a
onClick={() => {
props.history.push(`./ViewContent?userId=${record.userId}`);
}}
>
{record.hiddenNum}
</a>
</>
);
},
},
]}
{...tableProps}
/>
</div> return (
</div> <Page headerTitle="重复隐患">
<Table
headerTitle={`企业名称:${query.corpName}`}
columns={[
{ title: "使用人", dataIndex: "userName" },
{ title: "使用时间", dataIndex: "useTime" },
{
title: "生成隐患数",
dataIndex: "hiddenNum",
render: (_, record) => {
return (
<>
<Button
type="link"
onClick={() => {
props.history.push(`./ViewContent?userId=${record.userId}`);
}}
>
{record.hiddenNum}
</Button>
</>
);
},
},
]}
{...tableProps}
/>
</Page>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form } from "antd"; import { Form } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -15,21 +15,18 @@ function ViewContent(props) {
userId: query.userId, userId: query.userId,
}, },
}); });
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Table
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "法律依据", dataIndex: "legalBasis" },
{ title: "整改描述", dataIndex: "rectificationDesc" },
]}
{...tableProps}
/>
</div> return (
</div> <Page headerTitle="查看">
<Table
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "法律依据", dataIndex: "legalBasis" },
{ title: "整改描述", dataIndex: "rectificationDesc" },
]}
{...tableProps}
/>
</Page>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -11,7 +12,7 @@ function CorpInfoList(props) {
const { tableProps, getData } = useTable(props["averageCorpInfoCountList"], { form }); const { tableProps, getData } = useTable(props["averageCorpInfoCountList"], { form });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "corpName", label: "企业名称" }, { name: "corpName", label: "企业名称" },
@ -48,7 +49,7 @@ function CorpInfoList(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -3,9 +3,9 @@ import { Button, Form, message, Modal, Space, Spin } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useRef, useState } from "react"; import { useRef, useState } from "react";
import { useReactToPrint } from "react-to-print"; import { useReactToPrint } from "react-to-print";
import HeaderBack from "zy-react-library/components/HeaderBack";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon"; import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import PrintIcon from "zy-react-library/components/Icon/PrintIcon"; import PrintIcon from "zy-react-library/components/Icon/PrintIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -58,137 +58,135 @@ function HiddenList(props) {
}; };
return ( return (
<div> <Page headerTitle="一般隐患">
<HeaderBack title="一般隐患" /> <Spin spinning={downloadBlobLoading}>
<div style={{ padding: 20 }}> <Search
<Spin spinning={downloadBlobLoading}> options={[
<Search { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
options={[ { name: "hiddenDesc", label: "隐患描述" },
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenDesc", label: "隐患描述" }, { name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, {
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> }, name: "hiddenType",
{ label: "隐患类型",
name: "hiddenType", render: <DictionarySelectTree dictValue="hiddenType" />,
label: "隐患类型", },
render: <DictionarySelectTree dictValue="hiddenType" />, {
}, name: "hiddenPart",
{ label: "隐患部位",
name: "hiddenPart", render: <HiddenPartSelectTree />,
label: "隐患部位", },
render: <HiddenPartSelectTree />, {
}, name: "hiddenLevel",
{ label: "隐患级别",
name: "hiddenLevel", render: <HiddenLevelSelectTree isShowNeglect={false} isShowLarger={false} isShowMajor={false} />,
label: "隐患级别", },
render: <HiddenLevelSelectTree isShowNeglect={false} isShowLarger={false} isShowMajor={false} />, { name: "creatorName", label: "隐患发现人" },
}, { name: "state", label: "隐患状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_STATE_ENUM },
{ name: "creatorName", label: "隐患发现人" }, { name: "confirmUserName", label: "确认人" },
{ name: "state", label: "隐患状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_STATE_ENUM }, { name: "rectificationUserName", label: "整改人" },
{ name: "confirmUserName", label: "确认人" }, { name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> },
{ name: "rectificationUserName", label: "整改人" }, { name: "checkUserName", label: "验收人" },
{ name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> }, {
{ name: "checkUserName", label: "验收人" }, name: "isRelated",
{ label: "是否相关方",
name: "isRelated", render: FORM_ITEM_RENDER_ENUM.SELECT,
label: "是否相关方", items: IS_RELATED_ENUM,
render: FORM_ITEM_RENDER_ENUM.SELECT, },
items: IS_RELATED_ENUM, ]}
}, form={form}
]} onFinish={getData}
form={form} />
onFinish={getData} <Table
/> rowSelection={{
<Table preserveSelectedRowKeys: true,
rowSelection={{ selectedRowKeys,
preserveSelectedRowKeys: true, onChange: (selectedRowKeys) => {
selectedRowKeys, setSelectedRowKeys(selectedRowKeys);
onChange: (selectedRowKeys) => { },
setSelectedRowKeys(selectedRowKeys); }}
}, headerTitle={`公司名称:${query.corpName}`}
}} toolBarRender={() => (
headerTitle={`公司名称:${query.corpName}`} <Space>
toolBarRender={() => ( <Button
<Space> type="primary"
<Button ghost
type="primary" icon={<PrintIcon />}
icon={<PrintIcon />} onClick={() => {
onClick={() => { if (selectedRowKeys.length === 0) {
if (selectedRowKeys.length === 0) { message.error("请选择要打印的隐患");
message.error("请选择要打印的隐患"); return;
return; }
} setPrintModalOpen(true);
setPrintModalOpen(true); setPrintData(tableProps.dataSource.filter(item => selectedRowKeys.includes(item.id)));
setPrintData(tableProps.dataSource.filter(item => selectedRowKeys.includes(item.id))); }}
}} >
> 打印
打印 </Button>
</Button> <Button
<Button type="primary"
type="primary" icon={<ExportIcon />}
icon={<ExportIcon />} onClick={() => {
onClick={() => { onExportExcel();
onExportExcel(); }}
}} >
> 导出
导出 </Button>
</Button> </Space>
</Space> )}
)} columns={[
columns={[ {
{ title: "隐患来源",
title: "隐患来源", dataIndex: "source",
dataIndex: "source", render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }), },
}, { title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患描述", dataIndex: "hiddenDesc" }, { title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 },
{ title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 }, { title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" }, { title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" }, { title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" }, { title: "隐患发现人", dataIndex: "createName", width: 130 },
{ title: "隐患发现人", dataIndex: "createName", width: 130 }, {
{ title: "隐患发现时间",
title: "隐患发现时间", dataIndex: "hiddenFindTime",
dataIndex: "hiddenFindTime", render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "", },
}, {
{ title: "整改类型",
title: "整改类型", dataIndex: "rectificationType",
dataIndex: "rectificationType", width: 100,
width: 100, render: (_, record) => getLabelName({ list: HIDDEN_RECTIFICATION_TYPE_ENUM, status: record.rectificationType }),
render: (_, record) => getLabelName({ list: HIDDEN_RECTIFICATION_TYPE_ENUM, status: record.rectificationType }), },
}, { title: "确认人", dataIndex: "confirmUserName", width: 100 },
{ title: "确认人", dataIndex: "confirmUserName", width: 100 }, { title: "整改人", dataIndex: "rectifyUserName", width: 100 },
{ title: "整改人", dataIndex: "rectifyUserName", width: 100 }, { title: "整改时间", dataIndex: "rectificationTime" },
{ title: "整改时间", dataIndex: "rectificationTime" }, { title: "验收人", dataIndex: "hiddenYUserName", width: 100 },
{ title: "验收人", dataIndex: "hiddenYUserName", width: 100 }, {
{ title: "隐患状态",
title: "隐患状态", dataIndex: "state",
dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }),
render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }), },
}, {
{ title: "操作",
title: "操作", width: 100,
width: 100, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`); }}
}} >
> 查看
查看 </Button>
</Button> </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/> </Spin>
</Spin>
</div>
{printModalOpen && ( {printModalOpen && (
<PrintModal <PrintModal
data={printData} data={printData}
@ -198,7 +196,7 @@ function HiddenList(props) {
}} }}
/> />
)} )}
</div> </Page>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_AVERAGE } from "~/enumerate/namespace"; import { NS_AVERAGE } from "~/enumerate/namespace";
@ -10,38 +11,36 @@ function List(props) {
const { tableProps } = useTable(props["averageRepeatHiddenCount"], { const { tableProps } = useTable(props["averageRepeatHiddenCount"], {
form, form,
}); });
return (
<div>
<div style={{ padding: 20 }}>
<Table
columns={[
{ title: "企业名称", dataIndex: "corpName" },
{ title: "隐患重复数", dataIndex: "repeatNum" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("jgd-cfyh-ck") && (
<Button
type="link"
onClick={() => {
props.history.push(`./ListView?corpName=${record.corpName}&id=${record.corpId}`);
}}
>
查看重复隐患
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</div> return (
</div> <Page isShowAllAction={false}>
<Table
columns={[
{ title: "企业名称", dataIndex: "corpName" },
{ title: "隐患重复数", dataIndex: "repeatNum" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("jgd-cfyh-ck") && (
<Button
type="link"
onClick={() => {
props.history.push(`./ListView?corpName=${record.corpName}&id=${record.corpId}`);
}}
>
查看重复隐患
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj"; import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -17,44 +17,41 @@ function ListView(props) {
corpId: query.id, corpId: query.id,
}, },
}); });
return (
<div>
<HeaderBack title="重复隐患" />
<div style={{ padding: 20 }}>
<Table
title={() => `企业名称:${query.corpName}`}
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患来源", dataIndex: "source", render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }) },
{ title: "隐患级别", dataIndex: "hiddenLevelName" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName" },
{ title: "隐患发现时间", dataIndex: "hiddenFindTime" },
{ title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }), },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
}}
>
查看
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div> return (
</div> <Page headerTitle="重复隐患">
<Table
headerTitle={`企业名称:${query.corpName}`}
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患来源", dataIndex: "source", render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }) },
{ title: "隐患级别", dataIndex: "hiddenLevelName" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName" },
{ title: "隐患发现时间", dataIndex: "hiddenFindTime" },
{ title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
}}
>
查看
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</Page>
); );
} }

View File

@ -1,10 +1,11 @@
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
function HiddenView() { function HiddenView() {
return ( return (
<div> <Page headerTitle="查看" contentPadding="0 20px 20px 20px">
<HiddenInfo /> <HiddenInfo />
</div> </Page>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -11,7 +12,7 @@ function CorpInfoList(props) {
const { tableProps, getData } = useTable(props["ignoreCorpInfoCountList"], { form }); const { tableProps, getData } = useTable(props["ignoreCorpInfoCountList"], { form });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "corpName", label: "企业名称" }, { name: "corpName", label: "企业名称" },
@ -45,7 +46,7 @@ function CorpInfoList(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space, Spin } from "antd"; import { Button, Form, message, Modal, Space, Spin } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useState } from "react"; import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon"; import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -52,104 +52,102 @@ function HiddenList(props) {
}; };
return ( return (
<div> <Page headerTitle="忽略隐患">
<HeaderBack title="忽略隐患" /> <Spin spinning={downloadBlobLoading}>
<div style={{ padding: 20 }}> <Search
<Spin spinning={downloadBlobLoading}> options={[
<Search { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
options={[ { name: "hiddenDesc", label: "隐患描述" },
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenDesc", label: "隐患描述" }, { name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, {
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> }, name: "hiddenType",
{ label: "隐患类型",
name: "hiddenType", render: <DictionarySelectTree dictValue="hiddenType" />,
label: "隐患类型", },
render: <DictionarySelectTree dictValue="hiddenType" />, {
}, name: "hiddenPart",
{ label: "隐患部位",
name: "hiddenPart", render: <HiddenPartSelectTree />,
label: "隐患部位", },
render: <HiddenPartSelectTree />, { name: "creatorName", label: "隐患发现人" },
}, { name: "confirmUserName", label: "确认人" },
{ name: "creatorName", label: "隐患发现人" }, {
{ name: "confirmUserName", label: "确认人" }, name: "isRelated",
{ label: "是否相关方",
name: "isRelated", render: FORM_ITEM_RENDER_ENUM.SELECT,
label: "是否相关方", items: IS_RELATED_ENUM,
render: FORM_ITEM_RENDER_ENUM.SELECT, },
items: IS_RELATED_ENUM, ]}
}, form={form}
]} onFinish={getData}
form={form} />
onFinish={getData} <Table
/> rowSelection={{
<Table preserveSelectedRowKeys: true,
rowSelection={{ selectedRowKeys,
preserveSelectedRowKeys: true, onChange: (selectedRowKeys) => {
selectedRowKeys, setSelectedRowKeys(selectedRowKeys);
onChange: (selectedRowKeys) => { },
setSelectedRowKeys(selectedRowKeys); }}
}, headerTitle={`公司名称:${query.corpName}`}
}} toolBarRender={() => (
headerTitle={`公司名称:${query.corpName}`} <Button
toolBarRender={() => ( type="primary"
<Button ghost
type="primary" icon={<ExportIcon />}
icon={<ExportIcon />} onClick={() => {
onClick={() => { onExportExcel();
onExportExcel(); }}
}} >
> 导出
导出 </Button>
</Button> )}
)} columns={[
columns={[ {
{ title: "隐患来源",
title: "隐患来源", dataIndex: "source",
dataIndex: "source", render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }), },
}, { title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患描述", dataIndex: "hiddenDesc" }, { title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" }, { title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" }, { title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" }, { title: "隐患发现人", dataIndex: "createName", width: 130 },
{ title: "隐患发现人", dataIndex: "createName", width: 130 }, {
{ title: "隐患发现时间",
title: "隐患发现时间", dataIndex: "hiddenFindTime",
dataIndex: "hiddenFindTime", render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "", },
}, { title: "确认人", dataIndex: "confirmUserName", width: 100 },
{ title: "确认人", dataIndex: "confirmUserName", width: 100 }, {
{ title: "确认时间",
title: "确认时间", dataIndex: "confirmTime",
dataIndex: "confirmTime", render: (_, record) => record.confirmTime ? dayjs(record.confirmTime).format("YYYY-MM-DD HH:mm:ss") : "",
render: (_, record) => record.confirmTime ? dayjs(record.confirmTime).format("YYYY-MM-DD HH:mm:ss") : "", },
}, { title: "隐患状态", dataIndex: "state", render: () => "已忽略" },
{ title: "隐患状态", dataIndex: "state", render: () => "已忽略" }, {
{ title: "操作",
title: "操作", width: 100,
width: 100, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`); }}
}} >
> 查看
查看 </Button>
</Button> </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/> </Spin>
</Spin> </Page>
</div>
</div>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -11,7 +12,7 @@ function CorpInfoList(props) {
const { tableProps, getData } = useTable(props["specialDisposalCorpInfoCountList"], { form }); const { tableProps, getData } = useTable(props["specialDisposalCorpInfoCountList"], { form });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ name: "corpName", label: "企业名称" }, { name: "corpName", label: "企业名称" },
@ -48,7 +49,7 @@ function CorpInfoList(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space, Spin } from "antd"; import { Button, Form, message, Modal, Space, Spin } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useState } from "react"; import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon"; import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -51,114 +51,112 @@ function HiddenList(props) {
}; };
return ( return (
<div> <Page headerTitle="特殊处置隐患">
<HeaderBack title="特殊处置隐患" /> <Spin spinning={downloadBlobLoading}>
<div style={{ padding: 20 }}> <Search
<Spin spinning={downloadBlobLoading}> options={[
<Search { name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
options={[ { name: "hiddenDesc", label: "隐患描述" },
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenDesc", label: "隐患描述" }, { name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, {
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> }, name: "hiddenType",
{ label: "隐患类型",
name: "hiddenType", render: <DictionarySelectTree dictValue="hiddenType" />,
label: "隐患类型", },
render: <DictionarySelectTree dictValue="hiddenType" />, {
}, name: "hiddenPart",
{ label: "隐患部位",
name: "hiddenPart", render: <HiddenPartSelectTree />,
label: "隐患部位", },
render: <HiddenPartSelectTree />, {
}, name: "hiddenLevel",
{ label: "隐患级别",
name: "hiddenLevel", render: <HiddenLevelSelectTree isShowNeglect={false} isShowLarger={false} isShowMajor={false} />,
label: "隐患级别", },
render: <HiddenLevelSelectTree isShowNeglect={false} isShowLarger={false} isShowMajor={false} />, { name: "creatorName", label: "隐患发现人" },
}, { name: "confirmUserName", label: "确认人" },
{ name: "creatorName", label: "隐患发现人" }, { name: "rectificationUserName", label: "整改人" },
{ name: "confirmUserName", label: "确认人" }, { name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> },
{ name: "rectificationUserName", label: "整改人" }, {
{ name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> }, name: "isRelated",
{ label: "是否相关方",
name: "isRelated", render: FORM_ITEM_RENDER_ENUM.SELECT,
label: "是否相关方", items: IS_RELATED_ENUM,
render: FORM_ITEM_RENDER_ENUM.SELECT, },
items: IS_RELATED_ENUM, ]}
}, form={form}
]} onFinish={getData}
form={form} />
onFinish={getData} <Table
/> rowSelection={{
<Table preserveSelectedRowKeys: true,
rowSelection={{ selectedRowKeys,
preserveSelectedRowKeys: true, onChange: (selectedRowKeys) => {
selectedRowKeys, setSelectedRowKeys(selectedRowKeys);
onChange: (selectedRowKeys) => { },
setSelectedRowKeys(selectedRowKeys); }}
}, headerTitle={`公司名称:${query.corpName}`}
}} toolBarRender={() => (
headerTitle={`公司名称:${query.corpName}`} <Button
toolBarRender={() => ( type="primary"
<Button ghost
type="primary" icon={<ExportIcon />}
icon={<ExportIcon />} onClick={() => {
onClick={() => { onExportExcel();
onExportExcel(); }}
}} >
> 导出
导出 </Button>
</Button> )}
)} columns={[
columns={[ {
{ title: "隐患来源",
title: "隐患来源", dataIndex: "source",
dataIndex: "source", render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }), },
}, { title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患描述", dataIndex: "hiddenDesc" }, { title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 },
{ title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 }, { title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" }, { title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" }, { title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" }, { title: "隐患发现人", dataIndex: "createName", width: 130 },
{ title: "隐患发现人", dataIndex: "createName", width: 130 }, {
{ title: "隐患发现时间",
title: "隐患发现时间", dataIndex: "hiddenFindTime",
dataIndex: "hiddenFindTime", render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "", },
}, {
{ title: "整改类型",
title: "整改类型", dataIndex: "rectificationType",
dataIndex: "rectificationType", width: 100,
width: 100, render: (_, record) => getLabelName({ list: HIDDEN_RECTIFICATION_TYPE_ENUM, status: record.rectificationType }),
render: (_, record) => getLabelName({ list: HIDDEN_RECTIFICATION_TYPE_ENUM, status: record.rectificationType }), },
}, { title: "确认人", dataIndex: "confirmUserName", width: 100 },
{ title: "确认人", dataIndex: "confirmUserName", width: 100 }, { title: "整改人", dataIndex: "rectifyUserName", width: 100 },
{ title: "整改人", dataIndex: "rectifyUserName", width: 100 }, { title: "隐患状态", dataIndex: "state", render: () => "待处理特殊隐患" },
{ title: "隐患状态", dataIndex: "state", render: () => "待处理特殊隐患" }, {
{ title: "操作",
title: "操作", width: 100,
width: 100, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
props.history.push(`../HiddenView?id=${record.id}&hiddenId=${record.hiddenId}`); }}
}} >
> 查看
查看 </Button>
</Button> </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/> </Spin>
</Spin> </Page>
</div>
</div>
); );
} }

View File

@ -1,8 +1,8 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, message, Modal, Space } from "antd"; import { Button, Descriptions, Form, message, Modal, Space, Spin } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -16,7 +16,7 @@ import { getLabelName } from "zy-react-library/utils";
import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace"; import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace";
import ViewEvaluationModal from "../../components/ViewEvaluationModal"; import ViewEvaluationModal from "../../components/ViewEvaluationModal";
function List(props) { function HiddenList(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false); const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false); const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -35,125 +35,123 @@ function List(props) {
leFinalDoneTime: formData.finalDoneTime?.[1], leFinalDoneTime: formData.finalDoneTime?.[1],
}), }),
}); });
return ( return (
<div> <Page headerTitle="分公司考评隐患">
<HeaderBack title="分公司考评隐患" /> <Search
<div style={{ padding: 20 }}> options={[
<Search { name: "likeHiddenDesc", label: "隐患描述" },
options={[ { name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "likeHiddenDesc", label: "隐患描述" }, { name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "likeFindUserName", label: "隐患发现人" },
{ name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) }, { name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "likeFindUserName", label: "隐患发现人" }, {
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, name: "eqHiddenTypeC",
{ label: "隐患类型",
name: "eqHiddenTypeC", render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
label: "隐患类型", },
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />, {
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}
/>
<Table
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => 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 "考核未完成";
}
}, },
{ },
name: "eqEvaState", {
label: "考评结果", title: "操作",
render: FORM_ITEM_RENDER_ENUM.SELECT, width: 230,
items: [ fixed: "right",
{ bianma: "1", name: "是" }, render: (_, record) => (
{ bianma: "2", name: "否" }, <Space>
{ bianma: "3", name: "考评合格" }, <Button
{ bianma: "4", name: "考评不合格" }, type="link"
], onClick={() => {
}, props.history.push(`../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`);
{ }}
name: "eqSelf", >
label: "本人是否考评", 查看隐患详情
render: FORM_ITEM_RENDER_ENUM.SELECT, </Button>
items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }], <Button
}, type="link"
{ name: "finalDoneTime", label: "考评完成时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, onClick={() => {
]} setViewEvaluationModalOpen(true);
form={form} setCurrentHiddenId(record.id);
onFinish={getData} }}
/> >
<Table 考评详情
columns={[ </Button>
{ {
title: "隐患来源", record.isPermission === 1 && (
dataIndex: "source", <Button
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }), disabled={record.finalResult === 1 || record.finalResult === 0}
}, type="link"
{ title: "隐患描述", dataIndex: "hiddenDesc" }, onClick={() => {
{ title: "隐患发现时间", dataIndex: "hiddenFindTime" }, setEvaluationModalOpen(true);
{ title: "隐患发现人", dataIndex: "findUserName" }, setCurrentHiddenId(record.id);
{ title: "隐患验收人", dataIndex: "finalCheckOr" }, }}
{ >
title: "隐患状态", 考评
dataIndex: "state", </Button>
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 "考核未完成";
} }
}, </Space>
}, ),
{ },
title: "操作", ]}
width: 230, {...tableProps}
fixed: "right", />
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`);
}}
>
查看隐患详情
</Button>
<Button
type="link"
onClick={() => {
setViewEvaluationModalOpen(true);
setCurrentHiddenId(record.id);
}}
>
考评详情
</Button>
{
record.isPermission === 1 && (
<Button
disabled={record.finalResult === 1 || record.finalResult === 0}
type="link"
onClick={() => {
setEvaluationModalOpen(true);
setCurrentHiddenId(record.id);
}}
>
考评
</Button>
)
}
</Space>
),
},
]}
{...tableProps}
/>
</div>
{viewEvaluationModalOpen {viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />} && <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />}
{evaluationModalOpen {evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />} && <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div> </Page>
); );
} }
@ -189,64 +187,66 @@ const EvaluationModalComponent = (props) => {
return ( return (
<Modal <Modal
title="考评" title="考评"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.hiddenEvaluation.hiddenEvaluationLoading} confirmLoading={props.hiddenEvaluation.hiddenEvaluationLoading}
> >
<Descriptions <Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
column={2} <Descriptions
bordered column={2}
styles={{ label: { width: 200 } }} bordered
items={[ styles={{ label: { width: 200 } }}
...list.flatMap(item => ([ items={[
{ label: "考评人员", children: item.evaluateMemberName }, ...list.flatMap(item => ([
{ 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 }] : []),
])),
]}
/>
<FormBuilder
style={{ marginTop: 20 }}
form={form}
showActionButtons={false}
span={24}
onFinish={onSubmit}
labelCol={{ span: 8 }}
options={[
{ name: "user", label: "考评人员", required: false, componentProps: { disabled: true } },
{ {
name: "result",
label: "是否符合", label: "是否符合",
children: (() => { render: FORM_ITEM_RENDER_ENUM.SELECT,
switch (item.evaluateResult) { items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
}
})(),
}, },
...(item.evaluateResult === 0 ? [{ label: "不符合原因", children: `111`, span: 2 }] : []), {
])), name: "resultCase",
]} label: "不符合原因",
/> render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
<FormBuilder dependencies: ["result"],
style={{ marginTop: 20 }} hidden: formValues => !(formValues.result === 0),
form={form} },
showActionButtons={false} ]}
span={24} />
onFinish={onSubmit} </Spin>
labelCol={{ span: 8 }}
options={[
{ name: "user", label: "考评人员", required: false, componentProps: { disabled: true } },
{
name: "result",
label: "是否符合",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
},
{
name: "resultCase",
label: "不符合原因",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
dependencies: ["result"],
hidden: formValues => !(formValues.result === 0),
},
]}
/>
</Modal> </Modal>
); );
}; };
const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent); const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent);
export default Connect([NS_HIDDEN_EVALUATION], true)(List); export default Connect([NS_HIDDEN_EVALUATION], true)(HiddenList);

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
@ -20,56 +21,54 @@ function List(props) {
}); });
return ( return (
<div> <Page isShowAllAction={false}>
<div style={{ padding: 20 }}> <Search
<Search options={[
options={[ { name: "likeCorpinfoName", label: "分公司名称" },
{ name: "likeCorpinfoName", label: "分公司名称" }, { name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM }, { name: "likeMembers", label: "考评组成员" },
{ name: "likeMembers", label: "考评组成员" }, ]}
]} form={form}
form={form} onFinish={getData}
onFinish={getData} />
/> <Table
<Table columns={[
columns={[ { title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "分公司名称", dataIndex: "corpinfoName" }, { title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => (
{ title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => ( <>
<> {record.hiddenType === "aqyh" && "安全类"}
{record.hiddenType === "aqyh" && "安全类"} {record.hiddenType === "wshb" && "环保类"}
{record.hiddenType === "wshb" && "环保类"} </>
</> ) },
) }, { title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
{ title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) }, { title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
{ title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) }, { title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
{ title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) }, { title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
{ title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) }, { title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
{ title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) }, { title: "考评组成员", dataIndex: "members" },
{ title: "考评组成员", dataIndex: "members" }, {
{ title: "操作",
title: "操作", width: 100,
width: 100, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> {props.permission("fgs-kp-kp") && (
{props.permission("fgs-kp-kp") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`);
props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`); }}
}} >
> 考评
考评 </Button>
</Button> )}
)} </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/> </Page>
</div>
</div>
); );
} }

View File

@ -1,10 +1,11 @@
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
function HiddenView() { function HiddenView() {
return ( return (
<div> <Page headerTitle="查看" contentPadding="0 20px 20px 20px">
<HiddenInfo /> <HiddenInfo />
</div> </Page>
); );
} }

View File

@ -18,11 +18,10 @@ const ViewEvaluationModal = (props) => {
return ( return (
<Modal <Modal
title="考评详情" title="考评详情"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
loading={props.hiddenEvaluation.hiddenEvaluationLoading}
footer={[ footer={[
<Button key="cancel" onClick={props.onCancel}> <Button key="cancel" onClick={props.onCancel}>
取消 取消

View File

@ -1,9 +1,10 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Col, Descriptions, Form, message, Modal, Row, Space } from "antd"; import { Button, Descriptions, Form, message, Modal, Space } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; 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 Search from "zy-react-library/components/Search";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
@ -37,105 +38,103 @@ function List(props) {
}); });
return ( return (
<div> <Page isShowAllAction={false}>
<div style={{ padding: 20 }}> <Search
<Search options={[
options={[ { name: "likeCorpinfoName", label: "分公司名称" },
{ name: "likeCorpinfoName", label: "分公司名称" }, { name: "eqState", label: "考评组状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "eqState", label: "考评组状态", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM }, ]}
]} form={form}
form={form} onFinish={getData}
onFinish={getData} />
/> <Table
<Table toolBarRender={() => (
toolBarRender={() => ( props.permission("jgd-yhkp-kpz-tjqy") && (
props.permission("jgd-yhkp-kpz-tjqy") && ( <Button
<Button type="primary"
type="primary" icon={<AddIcon />}
icon={<AddIcon />} onClick={() => {
onClick={() => { setAddModalOpen(true);
setAddModalOpen(true); }}
}} >
> 新增
新增 </Button>
</Button> )
) )}
)} columns={[
columns={[ { title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "分公司名称", dataIndex: "corpinfoName" }, {
{ title: "安全类隐患考评组分配状态",
title: "安全类隐患考评组分配状态", dataIndex: "safetyFlag",
dataIndex: "safetyFlag", width: 220,
width: 220, render: (_, record) => (record.safetyFlag === 1 ? "已分配" : "未分配"),
render: (_, record) => (record.safetyFlag === 1 ? "已分配" : "未分配"), },
}, { title: "考评组成员", dataIndex: "safetyMembers" },
{ title: "考评组成员", dataIndex: "safetyMembers" }, {
{ title: "环保类隐患考评组分配状态",
title: "环保类隐患考评组分配状态", dataIndex: "environmentalFlag",
dataIndex: "environmentalFlag", width: 220,
width: 220, render: (_, record) => (record.safetyFlag === 1 ? "已分配" : "未分配"),
render: (_, record) => (record.safetyFlag === 1 ? "已分配" : "未分配"), },
}, { title: "考评组成员", dataIndex: "environmentalMembers" },
{ title: "考评组成员", dataIndex: "environmentalMembers" }, {
{ title: "操作",
title: "操作", width: 330,
width: 330, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> {props.permission("jgd-yhkp-kpz-ck") && (
{props.permission("jgd-yhkp-kpz-ck") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { setViewModalOpen(true);
setViewModalOpen(true); setCurrentData(record);
setCurrentData(record); }}
}} >
> 查看
查看 </Button>
</Button> )}
)} {props.permission("jgd-yhkp-kpz-aqz") && (
{props.permission("jgd-yhkp-kpz-aqz") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { setConfigModalOpen(true);
setConfigModalOpen(true); setConfigType("safety");
setConfigType("safety"); setCurrentData(record);
setCurrentData(record); }}
}} >
> 安全类组分配
安全类组分配 </Button>
</Button> )}
)} {props.permission("jgd-yhkp-kpz-hbz") && (
{props.permission("jgd-yhkp-kpz-hbz") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { setConfigModalOpen(true);
setConfigModalOpen(true); setConfigType("environmental");
setConfigType("environmental"); setCurrentData(record);
setCurrentData(record); }}
}} >
> 环保类组分配
环保类组分配 </Button>
</Button> )}
)} {props.permission("jgd-yhkp-kpz-bgjl") && (
{props.permission("jgd-yhkp-kpz-bgjl") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { setChangeLogModalOpen(true);
setChangeLogModalOpen(true); setCurrentData(record);
setCurrentData(record); }}
}} >
> 变更记录
变更记录 </Button>
</Button> )}
)} </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/>
</div>
{configModalOpen {configModalOpen
&& ( && (
<ConfigModal <ConfigModal
@ -166,7 +165,7 @@ function List(props) {
data={currentData} data={currentData}
/> />
)} )}
</div> </Page>
); );
} }
@ -213,9 +212,10 @@ const ConfigModalComponent = (props) => {
onCancel={props.onCancel} onCancel={props.onCancel}
maskClosable={false} maskClosable={false}
onOk={form.submit} onOk={form.submit}
loading={props.evaluationTeamConfig.evaluationTeamConfigLoading} confirmLoading={props.evaluationTeamConfig.evaluationTeamConfigLoading}
> >
<FormBuilder <FormBuilder
loading={props.evaluationTeamConfig.evaluationTeamConfigLoading}
values={{ configType: configTypeName }} values={{ configType: configTypeName }}
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
showActionButtons={false} showActionButtons={false}
@ -224,63 +224,45 @@ const ConfigModalComponent = (props) => {
options={[ options={[
{ name: "configType", label: "隐患考评组类型", componentProps: { disabled: true }, span: 24 }, { name: "configType", label: "隐患考评组类型", componentProps: { disabled: true }, span: 24 },
{ {
key: "evaluateGroupUserConfigUpdateCmdList", name: "evaluateGroupUserConfigUpdateCmdList",
customizeRender: true,
span: 24, span: 24,
render: ( render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
<> formListUniqueProps: {
<Form.List name="evaluateGroupUserConfigUpdateCmdList"> showRemoveButton: false,
{fields => ( showAddButton: false,
<> options: field => ([
{fields.map(field => ( {
<Row gutter={24} key={field.key}> name: [field.name, "memberDeptId"],
<Col span={12}> label: "考评部门",
<Form.Item render: (
label="考评部门" <DepartmentSelectTree
rules={[{ required: true, message: "请选择考评部门" }]} isNeedCorpInfoId={true}
name={[field.name, "memberDeptId"]} params={{ eqCorpinfoId: corpinfoId }}
> onChange={() => {
<DepartmentSelectTree form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberId"], "");
isNeedCorpInfoId={true} form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberName"], "");
params={{ eqCorpinfoId: corpinfoId }} }}
onChange={() => { onGetLabel={(label) => {
form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberId"], ""); form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberDeptName"], label);
form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberName"], ""); }}
}} />
onGetLabel={(label) => { ),
form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberDeptName"], label); },
}} { name: [field.name, "memberDeptName"], label: "考评部门名称", onlyForLabel: true },
/> {
</Form.Item> name: [field.name, "memberId"],
<Form.Item label="考评部门名称" noStyle name={[field.name, "memberDeptName"]}> label: "考评人员",
<input type="hidden" /> render: (
</Form.Item> <PersonnelSelect
</Col> params={{ departmentId: evaluateGroupUserConfigUpdateCmdList?.[field.name]?.memberDeptId || "" }}
<Col span={12}> onGetLabel={label => form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberName"], label)}
<Form.Item />
label="考评人员" ),
rules={[{ required: true, message: "请选择考评部门" }]} },
name={[field.name, "memberId"]} { name: [field.name, "memberName"], label: "考评人员名称", onlyForLabel: true },
> { name: [field.name, "type"], label: "用户类型", onlyForLabel: true },
<PersonnelSelect ]),
params={{ departmentId: evaluateGroupUserConfigUpdateCmdList?.[field.name]?.memberDeptId || "" }} },
onGetLabel={label => form.setFieldValue(["evaluateGroupUserConfigUpdateCmdList", field.name, "memberName"], label)}
/>
</Form.Item>
<Form.Item label="考评人员名称" noStyle name={[field.name, "memberName"]}>
<input type="hidden" />
</Form.Item>
<Form.Item label="用户类型" noStyle name={[field.name, "type"]}>
<input type="hidden" />
</Form.Item>
</Col>
</Row>
))}
</>
)}
</Form.List>
</>
),
}, },
]} ]}
/> />
@ -315,14 +297,15 @@ const AddModalComponent = (props) => {
return ( return (
<Modal <Modal
title="新增" title="新增"
width={1000} width={600}
open open
onCancel={props.onCancel} onCancel={props.onCancel}
maskClosable={false} maskClosable={false}
onOk={form.submit} onOk={form.submit}
loading={props.evaluationTeamConfig.evaluationTeamConfigLoading} confirmLoading={props.evaluationTeamConfig.evaluationTeamConfigLoading}
> >
<FormBuilder <FormBuilder
loading={props.evaluationTeamConfig.evaluationTeamConfigLoading}
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
showActionButtons={false} showActionButtons={false}
form={form} form={form}
@ -379,11 +362,10 @@ const ViewModalComponent = (props) => {
return ( return (
<Modal <Modal
title="查看" title="查看"
width={1000} width={600}
open open
onCancel={props.onCancel} onCancel={props.onCancel}
maskClosable={false} maskClosable={false}
loading={props.evaluationTeamConfig.evaluationTeamConfigLoading}
> >
<Descriptions <Descriptions
column={1} column={1}
@ -391,21 +373,24 @@ const ViewModalComponent = (props) => {
styles={{ label: { width: 200 } }} styles={{ label: { width: 200 } }}
items={[ items={[
{ label: "隐患考评组类型", children: "安全类" }, { label: "隐患考评组类型", children: "安全类" },
{ label: "考评组成员", children: ( {
<div> label: "考评组成员",
{safetyList.map(item => ( children: (
item.memberDeptName && ( <div>
<div key={item.id}> {safetyList.map(item => (
{item.memberDeptName} item.memberDeptName && (
{" "} <div key={item.id}>
- {item.memberDeptName}
{" "} {" "}
{item.memberName} -
</div> {" "}
) {item.memberName}
))} </div>
</div> )
) }, ))}
</div>
),
},
]} ]}
/> />
<Descriptions <Descriptions
@ -414,21 +399,24 @@ const ViewModalComponent = (props) => {
styles={{ label: { width: 200 } }} styles={{ label: { width: 200 } }}
items={[ items={[
{ label: "隐患考评组类型", children: "环保类" }, { label: "隐患考评组类型", children: "环保类" },
{ label: "考评组成员", children: ( {
<div> label: "考评组成员",
{environmentalList.map(item => ( children: (
item.memberDeptName && ( <div>
<div key={item.id}> {environmentalList.map(item => (
{item.memberDeptName} item.memberDeptName && (
{" "} <div key={item.id}>
- {item.memberDeptName}
{" "} {" "}
{item.memberName} -
</div> {" "}
) {item.memberName}
))} </div>
</div> )
) }, ))}
</div>
),
},
]} ]}
/> />
</Modal> </Modal>
@ -454,11 +442,10 @@ const ChangeLogModalComponent = (props) => {
return ( return (
<Modal <Modal
title="查看" title="查看"
width={1200} width={1000}
open open
onCancel={props.onCancel} onCancel={props.onCancel}
maskClosable={false} maskClosable={false}
loading={props.evaluationTeamConfig.evaluationTeamConfigLoading}
footer={[ footer={[
<Button key="back" onClick={props.onCancel}>关闭</Button>, <Button key="back" onClick={props.onCancel}>关闭</Button>,
]} ]}

View File

@ -1,8 +1,8 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, message, Modal, Space } from "antd"; import { Button, Descriptions, Form, message, Modal, Space, Spin } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -16,7 +16,7 @@ import { getLabelName } from "zy-react-library/utils";
import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace"; import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace";
import ViewEvaluationModal from "../../components/ViewEvaluationModal"; import ViewEvaluationModal from "../../components/ViewEvaluationModal";
function List(props) { function HiddenList(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false); const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false); const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -35,124 +35,122 @@ function List(props) {
leFinalDoneTime: formData.finalDoneTime?.[1], leFinalDoneTime: formData.finalDoneTime?.[1],
}), }),
}); });
return ( return (
<div> <Page headerTitle="分公司考评隐患">
<HeaderBack title="分公司考评隐患" /> <Search
<div style={{ padding: 20 }}> options={[
<Search { name: "likeHiddenDesc", label: "隐患描述" },
options={[ { name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "likeHiddenDesc", label: "隐患描述" }, { name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "likeFindUserName", label: "隐患发现人" },
{ name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) }, { name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "likeFindUserName", label: "隐患发现人" }, {
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, name: "eqHiddenTypeC",
{ label: "隐患类型",
name: "eqHiddenTypeC", render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
label: "隐患类型", },
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />, {
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}
/>
<Table
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => 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 "考核未完成";
}
}, },
{ },
name: "eqEvaState", {
label: "考评结果", title: "操作",
render: FORM_ITEM_RENDER_ENUM.SELECT, width: 230,
items: [ fixed: "right",
{ bianma: "1", name: "是" }, render: (_, record) => (
{ bianma: "2", name: "否" }, <Space>
{ bianma: "3", name: "考评合格" }, <Button
{ bianma: "4", name: "考评不合格" }, type="link"
], onClick={() => {
}, props.history.push(`../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`);
{ }}
name: "eqSelf", >
label: "本人是否考评", 查看隐患详情
render: FORM_ITEM_RENDER_ENUM.SELECT, </Button>
items: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }], <Button
}, type="link"
{ name: "finalDoneTime", label: "考评完成时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, onClick={() => {
]} setViewEvaluationModalOpen(true);
form={form} setCurrentHiddenId(record.id);
onFinish={getData} }}
/> >
<Table 考评详情
columns={[ </Button>
{ {
title: "隐患来源", record.isPermission === 1 && (
dataIndex: "source", <Button
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }), disabled={record.finalResult === 1 || record.finalResult === 0}
}, type="link"
{ title: "隐患描述", dataIndex: "hiddenDesc" }, onClick={() => {
{ title: "隐患发现时间", dataIndex: "hiddenFindTime" }, setEvaluationModalOpen(true);
{ title: "隐患发现人", dataIndex: "findUserName" }, setCurrentHiddenId(record.id);
{ }}
title: "隐患状态", >
dataIndex: "state", 考评
render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }), </Button>
}, )
{ title: "已考评组成员", dataIndex: "alreadyEvaluate" },
{ title: "待考评组成员", dataIndex: "notEvaluate" },
{
title: "考评结果",
dataIndex: "finalResult",
render: (_, record) => {
switch (record.finalResult) {
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
} }
}, </Space>
}, ),
{ },
title: "操作", ]}
width: 230, {...tableProps}
fixed: "right", />
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`);
}}
>
查看隐患详情
</Button>
<Button
type="link"
onClick={() => {
setViewEvaluationModalOpen(true);
setCurrentHiddenId(record.id);
}}
>
考评详情
</Button>
{
record.isPermission === 1 && (
<Button
disabled={record.finalResult === 1 || record.finalResult === 0}
type="link"
onClick={() => {
setEvaluationModalOpen(true);
setCurrentHiddenId(record.id);
}}
>
考评
</Button>
)
}
</Space>
),
},
]}
{...tableProps}
/>
</div>
{viewEvaluationModalOpen {viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />} && <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />}
{evaluationModalOpen {evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />} && <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div> </Page>
); );
} }
@ -188,64 +186,66 @@ const EvaluationModalComponent = (props) => {
return ( return (
<Modal <Modal
title="考评" title="考评"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.hiddenEvaluation.hiddenEvaluationLoading} confirmLoading={props.hiddenEvaluation.hiddenEvaluationLoading}
> >
<Descriptions <Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
column={2} <Descriptions
bordered column={2}
styles={{ label: { width: 200 } }} bordered
items={[ styles={{ label: { width: 200 } }}
...list.flatMap(item => ([ items={[
{ label: "考评人员", children: item.evaluateMemberName }, ...list.flatMap(item => ([
{ 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 }] : []),
])),
]}
/>
<FormBuilder
style={{ marginTop: 20 }}
form={form}
showActionButtons={false}
span={24}
onFinish={onSubmit}
labelCol={{ span: 8 }}
options={[
{ name: "user", label: "考评人员", required: false, componentProps: { disabled: true } },
{ {
name: "result",
label: "是否符合", label: "是否符合",
children: (() => { render: FORM_ITEM_RENDER_ENUM.SELECT,
switch (item.evaluateResult) { items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
}
})(),
}, },
...(item.evaluateResult === 0 ? [{ label: "不符合原因", children: `111`, span: 2 }] : []), {
])), name: "resultCase",
]} label: "不符合原因",
/> render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
<FormBuilder dependencies: ["result"],
style={{ marginTop: 20 }} hidden: formValues => !(formValues.result === 0),
form={form} },
showActionButtons={false} ]}
span={24} />
onFinish={onSubmit} </Spin>
labelCol={{ span: 8 }}
options={[
{ name: "user", label: "考评人员", required: false, componentProps: { disabled: true } },
{
name: "result",
label: "是否符合",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
},
{
name: "resultCase",
label: "不符合原因",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
dependencies: ["result"],
hidden: formValues => !(formValues.result === 0),
},
]}
/>
</Modal> </Modal>
); );
}; };
const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent); const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent);
export default Connect([NS_HIDDEN_EVALUATION], true)(List); export default Connect([NS_HIDDEN_EVALUATION], true)(HiddenList);

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
@ -20,56 +21,54 @@ function List(props) {
}); });
return ( return (
<div> <Page isShowAllAction={false}>
<div style={{ padding: 20 }}> <Search
<Search options={[
options={[ { name: "likeCorpinfoName", label: "分公司名称" },
{ name: "likeCorpinfoName", label: "分公司名称" }, { name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM }, { name: "likeMembers", label: "考评组成员" },
{ name: "likeMembers", label: "考评组成员" }, ]}
]} form={form}
form={form} onFinish={getData}
onFinish={getData} />
/> <Table
<Table columns={[
columns={[ { title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "分公司名称", dataIndex: "corpinfoName" }, { title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => (
{ title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => ( <>
<> {record.hiddenType === "aqyh" && "安全类"}
{record.hiddenType === "aqyh" && "安全类"} {record.hiddenType === "wshb" && "环保类"}
{record.hiddenType === "wshb" && "环保类"} </>
</> ) },
) }, { title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
{ title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) }, { title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
{ title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) }, { title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
{ title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) }, { title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
{ title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) }, { title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
{ title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) }, { title: "考评组成员", dataIndex: "members" },
{ title: "考评组成员", dataIndex: "members" }, {
{ title: "操作",
title: "操作", width: 100,
width: 100, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> {props.permission("jgd-yhkp-kp") && (
{props.permission("jgd-yhkp-kp") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`);
props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`); }}
}} >
> 考评
考评 </Button>
</Button> )}
)} </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/> </Page>
</div>
</div>
); );
} }

View File

@ -1,10 +1,11 @@
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
function HiddenView() { function HiddenView() {
return ( return (
<div> <Page headerTitle="查看" contentPadding="0 20px 20px 20px">
<HiddenInfo /> <HiddenInfo />
</div> </Page>
); );
} }

View File

@ -1,8 +1,8 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, message, Modal, Space } from "antd"; import { Button, Descriptions, Form, message, Modal, Space, Spin } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -16,7 +16,7 @@ import { getLabelName } from "zy-react-library/utils";
import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace"; import { NS_HIDDEN_EVALUATION } from "~/enumerate/namespace";
import ViewEvaluationModal from "../../components/ViewEvaluationModal"; import ViewEvaluationModal from "../../components/ViewEvaluationModal";
function List(props) { function HiddenEvaluationList(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false); const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false); const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -32,80 +32,78 @@ function List(props) {
leExchangeTime: formData.hiddenFindTime?.[1], leExchangeTime: formData.hiddenFindTime?.[1],
}), }),
}); });
return ( return (
<div> <Page headerTitle="分公司考评隐患">
<HeaderBack title="分公司考评隐患" /> <Search
<div style={{ padding: 20 }}> options={[
<Search { name: "eqHiddenSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
options={[ { name: "eqFindUserDeptId", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "eqHiddenSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM }, { name: "likeFindUserRealName", label: "隐患发现人" },
{ name: "eqFindUserDeptId", label: "发现部门", render: (<DepartmentSelectTree />) }, {
{ name: "likeFindUserRealName", label: "隐患发现人" }, name: "eqHiddenTypeC",
{ label: "隐患类型",
name: "eqHiddenTypeC", render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
label: "隐患类型", },
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />, { name: "hiddenFindTime", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{
title: "隐患来源",
dataIndex: "hiddenSource",
render: (_, record) => 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 "已验收";
}, },
{ name: "hiddenFindTime", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, },
]} { title: "考评组成员", dataIndex: "groupMembers" },
form={form} { title: "兑换状态", dataIndex: "exchangeFlag", render: (_, record) => record.exchangeFlag === 1 ? "已兑换" : "未兑换" },
onFinish={getData} {
/> title: "操作",
<Table width: 230,
columns={[ fixed: "right",
{ render: (_, record) => (
title: "隐患来源", <Space>
dataIndex: "hiddenSource", <Button
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.hiddenSource }), type="link"
}, onClick={() => {
{ title: "隐患描述", dataIndex: "hiddenDesc" }, props.history.push(`../hiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
{ title: "隐患发现时间", dataIndex: "findTime" }, }}
{ title: "隐患发现人", dataIndex: "findUserName" }, >
{ title: "隐患验收人", dataIndex: "checkUserRealName" }, 查看隐患详情
{ </Button>
title: "隐患状态", <Button
dataIndex: "state", type="link"
render: () => { onClick={() => {
return "已验收"; setViewEvaluationModalOpen(true);
}, setCurrentHiddenId(record.id);
}, }}
{ title: "考评组成员", dataIndex: "groupMembers" }, >
{ title: "兑换状态", dataIndex: "exchangeFlag", render: (_, record) => record.exchangeFlag === 1 ? "已兑换" : "未兑换" }, 考评详情
{ </Button>
title: "操作", </Space>
width: 230, ),
fixed: "right", },
render: (_, record) => ( ]}
<Space> {...tableProps}
<Button />
type="link"
onClick={() => {
props.history.push(`../hiddenView?id=${record.id}&hiddenId=${record.hiddenId}`);
}}
>
查看隐患详情
</Button>
<Button
type="link"
onClick={() => {
setViewEvaluationModalOpen(true);
setCurrentHiddenId(record.id);
}}
>
考评详情
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
{viewEvaluationModalOpen {viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} />} && <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} />}
{evaluationModalOpen {evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />} && <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div> </Page>
); );
} }
@ -141,64 +139,66 @@ const EvaluationModalComponent = (props) => {
return ( return (
<Modal <Modal
title="考评" title="考评"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={props.hiddenEvaluation.hiddenEvaluationLoading} confirmLoading={props.hiddenEvaluation.hiddenEvaluationLoading}
> >
<Descriptions <Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
column={2} <Descriptions
bordered column={2}
styles={{ label: { width: 200 } }} bordered
items={[ styles={{ label: { width: 200 } }}
...list.flatMap(item => ([ items={[
{ label: "考评人员", children: item.evaluateMemberName }, ...list.flatMap(item => ([
{ 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 }] : []),
])),
]}
/>
<FormBuilder
style={{ marginTop: 20 }}
form={form}
showActionButtons={false}
span={24}
onFinish={onSubmit}
labelCol={{ span: 8 }}
options={[
{ name: "user", label: "考评人员", required: false, componentProps: { disabled: true } },
{ {
name: "result",
label: "是否符合", label: "是否符合",
children: (() => { render: FORM_ITEM_RENDER_ENUM.SELECT,
switch (item.evaluateResult) { items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
}
})(),
}, },
...(item.evaluateResult === 0 ? [{ label: "不符合原因", children: `111`, span: 2 }] : []), {
])), name: "resultCase",
]} label: "不符合原因",
/> render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
<FormBuilder dependencies: ["result"],
style={{ marginTop: 20 }} hidden: formValues => !(formValues.result === 0),
form={form} },
showActionButtons={false} ]}
span={24} />
onFinish={onSubmit} </Spin>
labelCol={{ span: 8 }}
options={[
{ name: "user", label: "考评人员", required: false, componentProps: { disabled: true } },
{
name: "result",
label: "是否符合",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
},
{
name: "resultCase",
label: "不符合原因",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
dependencies: ["result"],
hidden: formValues => !(formValues.result === 0),
},
]}
/>
</Modal> </Modal>
); );
}; };
const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent); const EvaluationModal = Connect([NS_HIDDEN_EVALUATION], true)(EvaluationModalComponent);
export default Connect([NS_HIDDEN_EVALUATION], true)(List); export default Connect([NS_HIDDEN_EVALUATION], true)(HiddenEvaluationList);

View File

@ -1,6 +1,7 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Form } from "antd"; import { Form } from "antd";
import { useMemo } from "react"; import { useMemo } from "react";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -102,21 +103,19 @@ function List(props) {
]; ];
return ( return (
<div> <Page isShowAllAction={false}>
<div style={{ padding: 20 }}> <Search
<Search options={[
options={[ { name: "likeCorpinfoName", label: "分公司名称" },
{ name: "likeCorpinfoName", label: "分公司名称" }, ]}
]} form={form}
form={form} onFinish={getData}
onFinish={getData} />
/> <Table
<Table columns={columns}
columns={columns} {...processedTableProps}
{...processedTableProps} />
/> </Page>
</div>
</div>
); );
} }

View File

@ -1,173 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import UserExchangeListPage from "../../PersonnelEvaluation/UserExchangeList";
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("已取消导出");
},
});
};
function UserExchangeList(props) {
return ( return (
<div> <UserExchangeListPage {...props} />
<HeaderBack title="人员考评情况" />
<div style={{ padding: 20 }}>
<Spin spinning={downloadBlobLoading}>
<Search
options={[
{ name: "eqFindUserDeptId", label: "部门", render: (<DepartmentSelectTree isNeedCorpInfoId params={{ eqCorpinfoId: query.corpinfoId }} />) },
{ name: "likeFindUserRealName", label: "姓名" },
]}
form={form}
onFinish={getData}
/>
<Table
rowSelection={{
preserveSelectedRowKeys: true,
selectedRowKeys,
onChange: (selectedRowKeys) => {
setSelectedRowKeys(selectedRowKeys);
},
}}
rowKey="findUserId"
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<EditIcon />}
onClick={onBatchExchange}
>
批量兑换
</Button>
<Button
type="primary"
icon={<EditIcon />}
onClick={OnRedeemAll}
>
全选兑换
</Button>
<Button
type="primary"
icon={<ExportIcon />}
onClick={onExportExcel}
>
导出数据
</Button>
</Space>
)}
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) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`./userExchangeRecordList?findUserId=${record.findUserId}`);
}}
>
兑换记录
</Button>
<Button
type="link"
onClick={() => {
props.history.push(`./HiddenEvaluationList?findUserId=${record.findUserId}`);
}}
>
考评详情
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</Spin>
</div>
</div>
); );
} }
export default Connect([NS_PERSONNEL_EVALUATION, NS_HIDDEN_EVALUATION], true)(List); export default UserExchangeList;

View File

@ -1,68 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import UserExchangeRecordListPage from "../../PersonnelEvaluation/UserExchangeRecordList";
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],
}),
});
function UserExchangeRecordList(props) {
return ( return (
<div> <UserExchangeRecordListPage {...props} />
<HeaderBack title="兑换记录" />
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "dates", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "兑换时间", dataIndex: "exchangeTime" },
{ title: "兑换操作人员", dataIndex: "exchangeUserName" },
{ title: "兑换隐患数", dataIndex: "exchangeTotal" },
{ title: "兑换积分", dataIndex: "exchangeScore" },
{ title: "剩余积分数", dataIndex: "surplusScoreTotal" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
<Button
type="link"
onClick={() => {
props.history.push(`./HiddenEvaluationList?findUserId=${record.belongerId}`);
}}
>
隐患详情
</Button>
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
); );
} }
export default Connect([NS_PERSONNEL_EVALUATION], true)(List); export default UserExchangeRecordList;

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -14,53 +15,51 @@ function List(props) {
}); });
return ( return (
<div> <Page isShowAllAction={false}>
<div style={{ padding: 20 }}> <Search
<Search options={[
options={[ { name: "eqDeptId", label: "考评组部门", render: (<DepartmentSelectTree searchType="all" />) },
{ name: "eqDeptId", label: "考评组部门", render: (<DepartmentSelectTree searchType="all" />) }, { name: "likeSafetyMembers", label: "考评组人员" },
{ name: "likeSafetyMembers", label: "考评组人员" }, ]}
]} form={form}
form={form} onFinish={getData}
onFinish={getData} />
/> <Table
<Table columns={[
columns={[ { title: "单位名称", dataIndex: "corpinfoName" },
{ title: "单位名称", dataIndex: "corpinfoName" }, { title: "完成考评隐患数", dataIndex: "evaDoneTotal" },
{ title: "完成考评隐患数", dataIndex: "evaDoneTotal" }, { title: "待考评隐患数", dataIndex: "checkTotal" },
{ title: "待考评隐患数", dataIndex: "checkTotal" }, { title: "涉及奖励人数", dataIndex: "peopleTotal" },
{ title: "涉及奖励人数", dataIndex: "peopleTotal" }, {
{ title: "奖励兑换情况",
title: "奖励兑换情况", dataIndex: "alreadyExchange",
dataIndex: "alreadyExchange", render: (_, record) => (`${record.alreadyExchange}/${record.alreadyExchange + record.notExchange}`),
render: (_, record) => (`${record.alreadyExchange}/${record.alreadyExchange + record.notExchange}`), },
}, { title: "安全类隐患考评组成员", dataIndex: "safetyMembers" },
{ title: "安全类隐患考评组成员", dataIndex: "safetyMembers" }, { title: "环保类隐患考评组成员", dataIndex: "environmentalMembers" },
{ title: "环保类隐患考评组成员", dataIndex: "environmentalMembers" }, {
{ title: "操作",
title: "操作", width: 100,
width: 100, fixed: "right",
fixed: "right", render: (_, record) => (
render: (_, record) => ( <Space>
<Space> {props.permission("permission") && (
{props.permission("permission") && ( <Button
<Button type="link"
type="link" onClick={() => {
onClick={() => { props.history.push(`./userExchangeList?corpinfoId=${record.corpinfoId}`);
props.history.push(`./userExchangeList?corpinfoId=${record.corpinfoId}`); }}
}} >
> 查看
查看 </Button>
</Button> )}
)} </Space>
</Space> ),
), },
}, ]}
]} {...tableProps}
{...tableProps} />
/> </Page>
</div>
</div>
); );
} }

View File

@ -1,9 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space, Spin } from "antd"; import { Button, Form, message, Modal, Space, Spin } from "antd";
import { useState } from "react"; import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import EditIcon from "zy-react-library/components/Icon/EditIcon"; import EditIcon from "zy-react-library/components/Icon/EditIcon";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon"; import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -13,7 +13,7 @@ import useTable from "zy-react-library/hooks/useTable";
import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria"; import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
import { NS_HIDDEN_EVALUATION, NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace"; import { NS_HIDDEN_EVALUATION, NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
function List(props) { function UserExchangeList(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob(); const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob();
const { getUrlCriteriaQuery } = useUrlQueryCriteria(); const { getUrlCriteriaQuery } = useUrlQueryCriteria();
@ -82,92 +82,89 @@ function List(props) {
}; };
return ( return (
<div> <Page headerTitle="人员考评情况">
<HeaderBack title="人员考评情况" /> <Spin spinning={downloadBlobLoading}>
<div style={{ padding: 20 }}> <Search
<Spin spinning={downloadBlobLoading}> options={[
<Search { name: "eqFindUserDeptId", label: "部门", render: (<DepartmentSelectTree isNeedCorpInfoId params={{ eqCorpinfoId: query.corpinfoId }} />) },
options={[ { name: "likeFindUserRealName", label: "姓名" },
{ name: "eqFindUserDeptId", label: "部门", render: (<DepartmentSelectTree isNeedCorpInfoId params={{ eqCorpinfoId: query.corpinfoId }} />) }, ]}
{ name: "likeFindUserRealName", label: "姓名" }, form={form}
]} onFinish={getData}
form={form} />
onFinish={getData} <Table
/> rowSelection={{
<Table preserveSelectedRowKeys: true,
rowSelection={{ selectedRowKeys,
preserveSelectedRowKeys: true, onChange: (selectedRowKeys) => {
selectedRowKeys, setSelectedRowKeys(selectedRowKeys);
onChange: (selectedRowKeys) => { },
setSelectedRowKeys(selectedRowKeys); }}
}, rowKey="findUserId"
}} toolBarRender={() => (
rowKey="findUserId" <Space>
toolBarRender={() => ( <Button
<Space> type="primary"
<Button icon={<EditIcon />}
type="primary" onClick={onBatchExchange}
icon={<EditIcon />} >
onClick={onBatchExchange} 批量兑换
> </Button>
批量兑换 <Button
</Button> type="primary"
<Button icon={<EditIcon />}
type="primary" onClick={OnRedeemAll}
icon={<EditIcon />} >
onClick={OnRedeemAll} 全选兑换
> </Button>
全选兑换 <Button
</Button> type="primary"
<Button icon={<ExportIcon />}
type="primary" onClick={onExportExcel}
icon={<ExportIcon />} >
onClick={onExportExcel} 导出数据
> </Button>
导出数据 </Space>
</Button> )}
</Space> columns={[
)} { title: "用户名", dataIndex: "findUserName" },
columns={[ { title: "姓名", dataIndex: "findUserRealName" },
{ title: "用户名", dataIndex: "findUserName" }, { title: "部门", dataIndex: "findUserDeptName" },
{ title: "姓名", dataIndex: "findUserRealName" }, { title: "岗位", dataIndex: "findUserPositionsName" },
{ title: "部门", dataIndex: "findUserDeptName" }, { title: "奖励总得分", dataIndex: "totalScore" },
{ title: "岗位", dataIndex: "findUserPositionsName" }, { title: "已兑换分数", dataIndex: "alreadyExchange" },
{ title: "奖励总得分", dataIndex: "totalScore" }, { title: "未兑换奖励数", dataIndex: "notExchanged", render: (_, record) => record.totalScore - record.alreadyExchange },
{ title: "已兑换分数", dataIndex: "alreadyExchange" }, {
{ title: "未兑换奖励数", dataIndex: "notExchanged", render: (_, record) => record.totalScore - record.alreadyExchange }, title: "操作",
{ width: 200,
title: "操作", fixed: "right",
width: 200, render: (_, record) => (
fixed: "right", <Space>
render: (_, record) => ( <Button
<Space> type="link"
<Button onClick={() => {
type="link" props.history.push(`./userExchangeRecordList?findUserId=${record.findUserId}`);
onClick={() => { }}
props.history.push(`./userExchangeRecordList?findUserId=${record.findUserId}`); >
}} 兑换记录
> </Button>
兑换记录 <Button
</Button> type="link"
<Button onClick={() => {
type="link" props.history.push(`./HiddenEvaluationList?findUserId=${record.findUserId}`);
onClick={() => { }}
props.history.push(`./HiddenEvaluationList?findUserId=${record.findUserId}`); >
}} 考评详情
> </Button>
考评详情 </Space>
</Button> ),
</Space> },
), ]}
}, {...tableProps}
]} />
{...tableProps} </Spin>
/> </Page>
</Spin>
</div>
</div>
); );
} }
export default Connect([NS_PERSONNEL_EVALUATION, NS_HIDDEN_EVALUATION], true)(List); export default Connect([NS_PERSONNEL_EVALUATION, NS_HIDDEN_EVALUATION], true)(UserExchangeList);

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
@ -8,7 +8,7 @@ import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace"; import { NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
function List(props) { function UserExchangeRecordList(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const [form] = Form.useForm(); const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeRecordList"], { const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeRecordList"], {
@ -23,46 +23,43 @@ function List(props) {
}); });
return ( return (
<div> <Page headerTitle="兑换记录">
<HeaderBack title="兑换记录" /> <Search
<div style={{ padding: 20 }}> options={[
<Search { name: "dates", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
options={[ ]}
{ name: "dates", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, form={form}
]} onFinish={getData}
form={form} />
onFinish={getData} <Table
/> columns={[
<Table { title: "兑换时间", dataIndex: "exchangeTime" },
columns={[ { title: "兑换操作人员", dataIndex: "exchangeUserName" },
{ title: "兑换时间", dataIndex: "exchangeTime" }, { title: "兑换隐患数", dataIndex: "exchangeTotal" },
{ title: "兑换操作人员", dataIndex: "exchangeUserName" }, { title: "兑换积分", dataIndex: "exchangeScore" },
{ title: "兑换隐患数", dataIndex: "exchangeTotal" }, { title: "剩余积分数", dataIndex: "surplusScoreTotal" },
{ title: "兑换积分", dataIndex: "exchangeScore" }, {
{ title: "剩余积分数", dataIndex: "surplusScoreTotal" }, title: "操作",
{ width: 100,
title: "操作", fixed: "right",
width: 100, render: (_, record) => (
fixed: "right", <Space>
render: (_, record) => ( <Button
<Space> type="link"
<Button onClick={() => {
type="link" props.history.push(`./HiddenEvaluationList?findUserId=${record.belongerId}`);
onClick={() => { }}
props.history.push(`./HiddenEvaluationList?findUserId=${record.belongerId}`); >
}} 隐患详情
> </Button>
隐患详情 </Space>
</Button> ),
</Space> },
), ]}
}, {...tableProps}
]} />
{...tableProps} </Page>
/>
</div>
</div>
); );
} }
export default Connect([NS_PERSONNEL_EVALUATION], true)(List); export default Connect([NS_PERSONNEL_EVALUATION], true)(UserExchangeRecordList);

View File

@ -18,11 +18,10 @@ const ViewEvaluationModal = (props) => {
return ( return (
<Modal <Modal
title="考评详情" title="考评详情"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
loading={props.hiddenEvaluation.hiddenEvaluationLoading}
footer={[ footer={[
<Button key="cancel" onClick={props.onCancel}> <Button key="cancel" onClick={props.onCancel}>
取消 取消