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>",
// 接口服务地址
// API_HOST: "http://192.168.20.100:30140",
API_HOST: "https://gbs-gateway.qhdsafety.com",
},
production: {
@ -62,7 +63,7 @@ module.exports = {
// 全局主题色
"colorPrimary": "#1677ff",
// 全局圆角
"borderRadius": 2,
"borderRadius": 4,
},
},
// webpack

View File

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

View File

@ -36,3 +36,7 @@ export const xgfProjectInfo = declareRequest(
"xgfProjectLoading",
`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";
require("antd/dist/reset.css");
require("zy-react-library/css/common.less");
dayjs.locale("zh-cn");
setJJBCommonAntdMessage(message);

View File

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

View File

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

View File

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

View File

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

View File

@ -1,13 +1,14 @@
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
function HiddenView() {
const query = useGetUrlQuery();
return (
<div>
<Page headerTitle={query.history === "1" ? "过程记录" : "查看"} contentPadding="0 20px 20px 20px">
<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 { Button, Form, Space } from "antd";
import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -25,7 +26,7 @@ function List(props) {
});
return (
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -100,7 +101,7 @@ function List(props) {
]}
{...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 { useEffect, useRef, useState } from "react";
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 Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -282,8 +282,7 @@ function Add(props) {
return (
<div>
<HeaderBack title={query.id ? "编辑" : "新增"} />
<div style={{ paddingBottom: 10 }}>
<Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
<FormBuilder
form={form}
loading={deleteFileLoading || uploadFileLoading || getFileLoading || props.ledger.ledgerLoading}
@ -678,7 +677,7 @@ function Add(props) {
{ name: "checkUserName", label: "验收人名称", onlyForLabel: true },
]}
/>
</div>
</Page>
{
aiHiddenModalOpen && (
<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 ExportIcon from "zy-react-library/components/Icon/ExportIcon";
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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -27,7 +28,6 @@ function List(props) {
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [exportByColumnModalOpen, setExportByColumnModalOpen] = useState(false);
const [printModalOpen, setPrintModalOpen] = useState(false);
const [printData, setPrintData] = useState([]);
const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob();
const { tableProps, getData } = useTable(props["ledgerList"], {
form,
@ -74,7 +74,7 @@ function List(props) {
};
return (
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Spin spinning={downloadBlobLoading}>
<Search
options={[
@ -91,7 +91,7 @@ function List(props) {
name: "hiddenLevel",
label: "隐患级别",
render: (
<HiddenLevelSelectTree isShowNeglect={false} isShowLarger={false} isShowMajor={false} />
<HiddenLevelSelectTree isShowLarger={false} isShowMajor={false} />
),
},
{ name: "creatorName", label: "隐患发现人" },
@ -141,13 +141,13 @@ function List(props) {
<Button
type="primary"
icon={<PrintIcon />}
ghost
onClick={() => {
if (selectedRowKeys.length === 0) {
message.error("请选中要打印的数据");
return;
}
setPrintModalOpen(true);
setPrintData(tableProps.dataSource.filter(item => selectedRowKeys.includes(item.id)));
}}
>
打印
@ -157,6 +157,7 @@ function List(props) {
<Button
type="primary"
icon={<ExportIcon />}
ghost
onClick={() => {
onExportExcel();
}}
@ -168,6 +169,7 @@ function List(props) {
<Button
type="primary"
icon={<ExportIcon />}
ghost
onClick={() => {
const hiddenFindTime = form.getFieldValue("hiddenFindTime");
if (!hiddenFindTime) {
@ -233,7 +235,7 @@ function List(props) {
{
title: "隐患状态",
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: "操作",
@ -291,14 +293,11 @@ function List(props) {
)}
{printModalOpen && (
<PrintModal
data={printData}
onCancel={() => {
setPrintModalOpen(false);
setPrintData([]);
}}
data={selectedRowKeys}
onCancel={() => setPrintModalOpen(false)}
/>
)}
</div>
</Page>
);
}
@ -329,14 +328,15 @@ const ExportByColumnModalComponent = (props) => {
return (
<Modal
title="按列导出"
width={800}
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
onOk={form.submit}
loading={loading}
confirmLoading={loading}
>
<FormBuilder
loading={loading}
form={form}
span={24}
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 handlePrint = useReactToPrint({
contentRef,
@ -375,6 +376,18 @@ const PrintModal = (props) => {
`,
documentTitle: "",
});
const getData = async () => {
const { data } = await props["hiddenPrintList"]({
ids: props.data.join(","),
});
setList(data);
};
useEffect(() => {
getData();
}, []);
const getIsQualified = (isQualified) => {
if (isQualified === "1")
return "合格";
@ -382,6 +395,7 @@ const PrintModal = (props) => {
return "不合格";
return "";
};
return (
<Modal
title="打印"
@ -395,7 +409,7 @@ const PrintModal = (props) => {
<Table
options={false}
disabledResizer={false}
dataSource={props.data}
dataSource={list}
pagination={false}
columns={[
{
@ -407,7 +421,7 @@ const PrintModal = (props) => {
{ title: "责任部门", dataIndex: "hiddenFindDeptName" },
{ title: "事故隐患", dataIndex: "hiddenDesc" },
{ title: "隐患等级", dataIndex: "hiddenLevelName" },
{ title: "治理措施", dataIndex: "tempSafeMeasure" },
{ title: "治理措施", dataIndex: "rectificationDesc" },
{
title: "完成时限",
dataIndex: "rectificationDeadline",
@ -427,7 +441,7 @@ const PrintModal = (props) => {
{
title: "验收结果",
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>
</thead>
<tbody>
{(props.data || []).map(item => (
{list.map(item => (
<tr key={item.id}>
<td>{item.hiddenFindTime ? dayjs(item.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : ""}</td>
<td>{item.createName}</td>
<td>{item.hiddenFindDeptName}</td>
<td>{item.hiddenDesc}</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.rectifyUserName}</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);
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 BackIcon from "zy-react-library/components/Icon/BackIcon";
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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
@ -76,7 +77,7 @@ function Part(props) {
};
return (
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<div style={{ display: "flex", gap: 20 }}>
<div style={{ width: 300 }}>
<Spin spinning={props.part.partLoading}>
@ -92,7 +93,8 @@ function Part(props) {
/>
</Spin>
</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
toolBarRender={() => (
<>
@ -182,7 +184,7 @@ function Part(props) {
}}
/>
)}
</div>
</Page>
);
}
@ -210,14 +212,15 @@ const AddModalComponent = (props) => {
return (
<Modal
title={props.id ? "编辑" : "新增"}
width={800}
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
onOk={form.submit}
loading={props.part.partLoading}
confirmLoading={props.part.partLoading}
>
<FormBuilder
loading={props.part.partLoading}
form={form}
span={24}
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 { Button, Form, Space } from "antd";
import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -27,7 +28,7 @@ function List(props) {
});
return (
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -122,7 +123,7 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</Page>
);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
import { NS_AVERAGE } from "~/enumerate/namespace";
@ -10,38 +11,36 @@ function List(props) {
const { tableProps } = useTable(props["averageAiHiddenRecord"], {
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>
</div>
return (
<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 { Form } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack";
import { Button, Form } from "antd";
import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable";
@ -15,38 +15,36 @@ function ListView(props) {
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>
</div>
return (
<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 { 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 useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable";
@ -15,21 +15,18 @@ function ViewContent(props) {
userId: query.userId,
},
});
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Table
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "法律依据", dataIndex: "legalBasis" },
{ title: "整改描述", dataIndex: "rectificationDesc" },
]}
{...tableProps}
/>
</div>
</div>
return (
<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 { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
@ -11,7 +12,7 @@ function CorpInfoList(props) {
const { tableProps, getData } = useTable(props["averageCorpInfoCountList"], { form });
return (
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "corpName", label: "企业名称" },
@ -48,7 +49,7 @@ function CorpInfoList(props) {
]}
{...tableProps}
/>
</div>
</Page>
);
}

View File

@ -3,9 +3,9 @@ import { Button, Form, message, Modal, Space, Spin } from "antd";
import dayjs from "dayjs";
import { useRef, useState } from "react";
import { useReactToPrint } from "react-to-print";
import HeaderBack from "zy-react-library/components/HeaderBack";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -58,137 +58,135 @@ function HiddenList(props) {
};
return (
<div>
<HeaderBack title="一般隐患" />
<div style={{ padding: 20 }}>
<Spin spinning={downloadBlobLoading}>
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "hiddenDesc", label: "隐患描述" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{
name: "hiddenType",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" />,
},
{
name: "hiddenPart",
label: "隐患部位",
render: <HiddenPartSelectTree />,
},
{
name: "hiddenLevel",
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: "confirmUserName", label: "确认人" },
{ name: "rectificationUserName", label: "整改人" },
{ name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> },
{ name: "checkUserName", label: "验收人" },
{
name: "isRelated",
label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: IS_RELATED_ENUM,
},
]}
form={form}
onFinish={getData}
/>
<Table
rowSelection={{
preserveSelectedRowKeys: true,
selectedRowKeys,
onChange: (selectedRowKeys) => {
setSelectedRowKeys(selectedRowKeys);
},
}}
headerTitle={`公司名称:${query.corpName}`}
toolBarRender={() => (
<Space>
<Button
type="primary"
icon={<PrintIcon />}
onClick={() => {
if (selectedRowKeys.length === 0) {
message.error("请选择要打印的隐患");
return;
}
setPrintModalOpen(true);
setPrintData(tableProps.dataSource.filter(item => selectedRowKeys.includes(item.id)));
}}
>
打印
</Button>
<Button
type="primary"
icon={<ExportIcon />}
onClick={() => {
onExportExcel();
}}
>
导出
</Button>
</Space>
)}
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
},
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName", width: 130 },
{
title: "隐患发现时间",
dataIndex: "hiddenFindTime",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{
title: "整改类型",
dataIndex: "rectificationType",
width: 100,
render: (_, record) => getLabelName({ list: HIDDEN_RECTIFICATION_TYPE_ENUM, status: record.rectificationType }),
},
{ title: "确认人", dataIndex: "confirmUserName", width: 100 },
{ title: "整改人", dataIndex: "rectifyUserName", width: 100 },
{ title: "整改时间", dataIndex: "rectificationTime" },
{ title: "验收人", dataIndex: "hiddenYUserName", width: 100 },
{
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}
/>
</Spin>
</div>
<Page headerTitle="一般隐患">
<Spin spinning={downloadBlobLoading}>
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "hiddenDesc", label: "隐患描述" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{
name: "hiddenType",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" />,
},
{
name: "hiddenPart",
label: "隐患部位",
render: <HiddenPartSelectTree />,
},
{
name: "hiddenLevel",
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: "confirmUserName", label: "确认人" },
{ name: "rectificationUserName", label: "整改人" },
{ name: "rectificationDeptId", label: "整改部门", render: <DepartmentSelectTree /> },
{ name: "checkUserName", label: "验收人" },
{
name: "isRelated",
label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: IS_RELATED_ENUM,
},
]}
form={form}
onFinish={getData}
/>
<Table
rowSelection={{
preserveSelectedRowKeys: true,
selectedRowKeys,
onChange: (selectedRowKeys) => {
setSelectedRowKeys(selectedRowKeys);
},
}}
headerTitle={`公司名称:${query.corpName}`}
toolBarRender={() => (
<Space>
<Button
type="primary"
ghost
icon={<PrintIcon />}
onClick={() => {
if (selectedRowKeys.length === 0) {
message.error("请选择要打印的隐患");
return;
}
setPrintModalOpen(true);
setPrintData(tableProps.dataSource.filter(item => selectedRowKeys.includes(item.id)));
}}
>
打印
</Button>
<Button
type="primary"
icon={<ExportIcon />}
onClick={() => {
onExportExcel();
}}
>
导出
</Button>
</Space>
)}
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
},
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患级别", dataIndex: "hiddenLevelName", width: 100 },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName", width: 130 },
{
title: "隐患发现时间",
dataIndex: "hiddenFindTime",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{
title: "整改类型",
dataIndex: "rectificationType",
width: 100,
render: (_, record) => getLabelName({ list: HIDDEN_RECTIFICATION_TYPE_ENUM, status: record.rectificationType }),
},
{ title: "确认人", dataIndex: "confirmUserName", width: 100 },
{ title: "整改人", dataIndex: "rectifyUserName", width: 100 },
{ title: "整改时间", dataIndex: "rectificationTime" },
{ title: "验收人", dataIndex: "hiddenYUserName", width: 100 },
{
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}
/>
</Spin>
{printModalOpen && (
<PrintModal
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 { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
import { NS_AVERAGE } from "~/enumerate/namespace";
@ -10,38 +11,36 @@ function List(props) {
const { tableProps } = useTable(props["averageRepeatHiddenCount"], {
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>
</div>
return (
<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 { 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 { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -17,44 +17,41 @@ function ListView(props) {
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>
</div>
return (
<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 Page from "zy-react-library/components/Page";
function HiddenView() {
return (
<div>
<Page headerTitle="查看" contentPadding="0 20px 20px 20px">
<HiddenInfo />
</div>
</Page>
);
}

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
@ -11,7 +12,7 @@ function CorpInfoList(props) {
const { tableProps, getData } = useTable(props["ignoreCorpInfoCountList"], { form });
return (
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "corpName", label: "企业名称" },
@ -45,7 +46,7 @@ function CorpInfoList(props) {
]}
{...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 dayjs from "dayjs";
import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -52,104 +52,102 @@ function HiddenList(props) {
};
return (
<div>
<HeaderBack title="忽略隐患" />
<div style={{ padding: 20 }}>
<Spin spinning={downloadBlobLoading}>
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "hiddenDesc", label: "隐患描述" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{
name: "hiddenType",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" />,
},
{
name: "hiddenPart",
label: "隐患部位",
render: <HiddenPartSelectTree />,
},
{ name: "creatorName", label: "隐患发现人" },
{ name: "confirmUserName", label: "确认人" },
{
name: "isRelated",
label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: IS_RELATED_ENUM,
},
]}
form={form}
onFinish={getData}
/>
<Table
rowSelection={{
preserveSelectedRowKeys: true,
selectedRowKeys,
onChange: (selectedRowKeys) => {
setSelectedRowKeys(selectedRowKeys);
},
}}
headerTitle={`公司名称:${query.corpName}`}
toolBarRender={() => (
<Button
type="primary"
icon={<ExportIcon />}
onClick={() => {
onExportExcel();
}}
>
导出
</Button>
)}
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
},
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName", width: 130 },
{
title: "隐患发现时间",
dataIndex: "hiddenFindTime",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{ title: "确认人", dataIndex: "confirmUserName", width: 100 },
{
title: "确认时间",
dataIndex: "confirmTime",
render: (_, record) => record.confirmTime ? dayjs(record.confirmTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{ title: "隐患状态", dataIndex: "state", render: () => "已忽略" },
{
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}
/>
</Spin>
</div>
</div>
<Page headerTitle="忽略隐患">
<Spin spinning={downloadBlobLoading}>
<Search
options={[
{ name: "source", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "hiddenDesc", label: "隐患描述" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "hiddenFindDept", label: "隐患发现部门", render: <DepartmentSelectTree /> },
{
name: "hiddenType",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" />,
},
{
name: "hiddenPart",
label: "隐患部位",
render: <HiddenPartSelectTree />,
},
{ name: "creatorName", label: "隐患发现人" },
{ name: "confirmUserName", label: "确认人" },
{
name: "isRelated",
label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: IS_RELATED_ENUM,
},
]}
form={form}
onFinish={getData}
/>
<Table
rowSelection={{
preserveSelectedRowKeys: true,
selectedRowKeys,
onChange: (selectedRowKeys) => {
setSelectedRowKeys(selectedRowKeys);
},
}}
headerTitle={`公司名称:${query.corpName}`}
toolBarRender={() => (
<Button
type="primary"
ghost
icon={<ExportIcon />}
onClick={() => {
onExportExcel();
}}
>
导出
</Button>
)}
columns={[
{
title: "隐患来源",
dataIndex: "source",
render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }),
},
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患类型", dataIndex: "hiddenTypeName" },
{ title: "隐患部位", dataIndex: "hiddenPartName" },
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName", width: 130 },
{
title: "隐患发现时间",
dataIndex: "hiddenFindTime",
render: (_, record) => record.hiddenFindTime ? dayjs(record.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{ title: "确认人", dataIndex: "confirmUserName", width: 100 },
{
title: "确认时间",
dataIndex: "confirmTime",
render: (_, record) => record.confirmTime ? dayjs(record.confirmTime).format("YYYY-MM-DD HH:mm:ss") : "",
},
{ title: "隐患状态", dataIndex: "state", render: () => "已忽略" },
{
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}
/>
</Spin>
</Page>
);
}

View File

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

View File

@ -1,8 +1,8 @@
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 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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
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 ViewEvaluationModal from "../../components/ViewEvaluationModal";
function List(props) {
function HiddenList(props) {
const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -35,125 +35,123 @@ function List(props) {
leFinalDoneTime: formData.finalDoneTime?.[1],
}),
});
return (
<div>
<HeaderBack title="分公司考评隐患" />
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "likeHiddenDesc", label: "隐患描述" },
{ name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "likeFindUserName", label: "隐患发现人" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{
name: "eqHiddenTypeC",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
<Page headerTitle="分公司考评隐患">
<Search
options={[
{ name: "likeHiddenDesc", label: "隐患描述" },
{ name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "likeFindUserName", label: "隐患发现人" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{
name: "eqHiddenTypeC",
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: "考评结果",
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 "考核未完成";
},
{
title: "操作",
width: 230,
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>
)
}
},
},
{
title: "操作",
width: 230,
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>
</Space>
),
},
]}
{...tableProps}
/>
{viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />}
{evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div>
</Page>
);
}
@ -189,64 +187,66 @@ const EvaluationModalComponent = (props) => {
return (
<Modal
title="考评"
width={800}
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
onOk={form.submit}
loading={props.hiddenEvaluation.hiddenEvaluationLoading}
confirmLoading={props.hiddenEvaluation.hiddenEvaluationLoading}
>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 } }}
items={[
...list.flatMap(item => ([
{ label: "考评人员", children: item.evaluateMemberName },
<Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 } }}
items={[
...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: "是否符合",
children: (() => {
switch (item.evaluateResult) {
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
}
})(),
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
},
...(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: "是否符合",
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),
},
]}
/>
{
name: "resultCase",
label: "不符合原因",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
dependencies: ["result"],
hidden: formValues => !(formValues.result === 0),
},
]}
/>
</Spin>
</Modal>
);
};
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 { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
@ -20,56 +21,54 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
{ name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "likeMembers", label: "考评组成员" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => (
<>
{record.hiddenType === "aqyh" && "安全类"}
{record.hiddenType === "wshb" && "环保类"}
</>
) },
{ title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
{ title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
{ title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
{ title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
{ title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
{ title: "考评组成员", dataIndex: "members" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("fgs-kp-kp") && (
<Button
type="link"
onClick={() => {
props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`);
}}
>
考评
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
{ name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "likeMembers", label: "考评组成员" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => (
<>
{record.hiddenType === "aqyh" && "安全类"}
{record.hiddenType === "wshb" && "环保类"}
</>
) },
{ title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
{ title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
{ title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
{ title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
{ title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
{ title: "考评组成员", dataIndex: "members" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("fgs-kp-kp") && (
<Button
type="link"
onClick={() => {
props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`);
}}
>
考评
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}

View File

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

View File

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

View File

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

View File

@ -1,8 +1,8 @@
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 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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
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 ViewEvaluationModal from "../../components/ViewEvaluationModal";
function List(props) {
function HiddenList(props) {
const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -35,124 +35,122 @@ function List(props) {
leFinalDoneTime: formData.finalDoneTime?.[1],
}),
});
return (
<div>
<HeaderBack title="分公司考评隐患" />
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "likeHiddenDesc", label: "隐患描述" },
{ name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "likeFindUserName", label: "隐患发现人" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{
name: "eqHiddenTypeC",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
<Page headerTitle="分公司考评隐患">
<Search
options={[
{ name: "likeHiddenDesc", label: "隐患描述" },
{ name: "eqSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "eqHiddenFindDept", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "likeFindUserName", label: "隐患发现人" },
{ name: "hiddenFindTime", label: "隐患发现时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{
name: "eqHiddenTypeC",
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: "考评结果",
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 "考核未完成";
},
{
title: "操作",
width: 230,
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>
)
}
},
},
{
title: "操作",
width: 230,
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>
</Space>
),
},
]}
{...tableProps}
/>
{viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />}
{evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div>
</Page>
);
}
@ -188,64 +186,66 @@ const EvaluationModalComponent = (props) => {
return (
<Modal
title="考评"
width={800}
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
onOk={form.submit}
loading={props.hiddenEvaluation.hiddenEvaluationLoading}
confirmLoading={props.hiddenEvaluation.hiddenEvaluationLoading}
>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 } }}
items={[
...list.flatMap(item => ([
{ label: "考评人员", children: item.evaluateMemberName },
<Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 } }}
items={[
...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: "是否符合",
children: (() => {
switch (item.evaluateResult) {
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
}
})(),
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
},
...(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: "是否符合",
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),
},
]}
/>
{
name: "resultCase",
label: "不符合原因",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
dependencies: ["result"],
hidden: formValues => !(formValues.result === 0),
},
]}
/>
</Spin>
</Modal>
);
};
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 { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
@ -20,56 +21,54 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
{ name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "likeMembers", label: "考评组成员" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => (
<>
{record.hiddenType === "aqyh" && "安全类"}
{record.hiddenType === "wshb" && "环保类"}
</>
) },
{ title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
{ title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
{ title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
{ title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
{ title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
{ title: "考评组成员", dataIndex: "members" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("jgd-yhkp-kp") && (
<Button
type="link"
onClick={() => {
props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`);
}}
>
考评
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
{ name: "eqState", label: "隐患考评组类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: STATE_ENUM },
{ name: "likeMembers", label: "考评组成员" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "分公司名称", dataIndex: "corpinfoName" },
{ title: "隐患考评组类型", dataIndex: "hiddenType", render: (_, record) => (
<>
{record.hiddenType === "aqyh" && "安全类"}
{record.hiddenType === "wshb" && "环保类"}
</>
) },
{ title: "安全环保奖惩监管端", dataIndex: "superviseTotal", render: (_, record) => (`${record.superviseDone}/${record.superviseTotal}`) },
{ title: "安全环保奖惩企业端", dataIndex: "enterpriseTotal", render: (_, record) => (`${record.enterpriseDone}/${record.enterpriseTotal}`) },
{ title: "隐患排查", dataIndex: "troubleshootTotal", render: (_, record) => (`${record.troubleshootDone}/${record.troubleshootTotal}`) },
{ title: "隐患快报", dataIndex: "bulletinTotal", render: (_, record) => (`${record.bulletinDone}/${record.bulletinTotal}`) },
{ title: "消防检查", dataIndex: "fireControlTotal", render: (_, record) => (`${record.fireControlDone}/${record.fireControlTotal}`) },
{ title: "考评组成员", dataIndex: "members" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("jgd-yhkp-kp") && (
<Button
type="link"
onClick={() => {
props.history.push(`./hiddenList?hiddenType=${record.hiddenType}&corpinfoId=${record.corpinfoId}`);
}}
>
考评
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}

View File

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

View File

@ -1,8 +1,8 @@
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 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 DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
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 ViewEvaluationModal from "../../components/ViewEvaluationModal";
function List(props) {
function HiddenEvaluationList(props) {
const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -32,80 +32,78 @@ function List(props) {
leExchangeTime: formData.hiddenFindTime?.[1],
}),
});
return (
<div>
<HeaderBack title="分公司考评隐患" />
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "eqHiddenSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "eqFindUserDeptId", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "likeFindUserRealName", label: "隐患发现人" },
{
name: "eqHiddenTypeC",
label: "隐患类型",
render: <DictionarySelectTree dictValue="hiddenType" onlyLastLevel />,
<Page headerTitle="分公司考评隐患">
<Search
options={[
{ name: "eqHiddenSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
{ name: "eqFindUserDeptId", label: "发现部门", render: (<DepartmentSelectTree />) },
{ name: "likeFindUserRealName", label: "隐患发现人" },
{
name: "eqHiddenTypeC",
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 },
]}
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 "已验收";
},
},
{ title: "考评组成员", dataIndex: "groupMembers" },
{ title: "兑换状态", dataIndex: "exchangeFlag", render: (_, record) => record.exchangeFlag === 1 ? "已兑换" : "未兑换" },
{
title: "操作",
width: 230,
fixed: "right",
render: (_, record) => (
<Space>
<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>
},
{ title: "考评组成员", dataIndex: "groupMembers" },
{ title: "兑换状态", dataIndex: "exchangeFlag", render: (_, record) => record.exchangeFlag === 1 ? "已兑换" : "未兑换" },
{
title: "操作",
width: 230,
fixed: "right",
render: (_, record) => (
<Space>
<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}
/>
{viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} />}
{evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div>
</Page>
);
}
@ -141,64 +139,66 @@ const EvaluationModalComponent = (props) => {
return (
<Modal
title="考评"
width={800}
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
onOk={form.submit}
loading={props.hiddenEvaluation.hiddenEvaluationLoading}
confirmLoading={props.hiddenEvaluation.hiddenEvaluationLoading}
>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 } }}
items={[
...list.flatMap(item => ([
{ label: "考评人员", children: item.evaluateMemberName },
<Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
<Descriptions
column={2}
bordered
styles={{ label: { width: 200 } }}
items={[
...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: "是否符合",
children: (() => {
switch (item.evaluateResult) {
case 1:
return "考评合格";
case 0:
return "考评不合格";
default:
return "考核未完成";
}
})(),
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: [{ bianma: 1, name: "符合" }, { bianma: 0, name: "不符合" }],
},
...(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: "是否符合",
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),
},
]}
/>
{
name: "resultCase",
label: "不符合原因",
render: FORM_ITEM_RENDER_ENUM.TEXTAREA,
dependencies: ["result"],
hidden: formValues => !(formValues.result === 0),
},
]}
/>
</Spin>
</Modal>
);
};
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 { Form } from "antd";
import { useMemo } from "react";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import useTable from "zy-react-library/hooks/useTable";
@ -102,21 +103,19 @@ function List(props) {
];
return (
<div>
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={columns}
{...processedTableProps}
/>
</div>
</div>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={columns}
{...processedTableProps}
/>
</Page>
);
}

View File

@ -1,173 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space, Spin } from "antd";
import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import EditIcon from "zy-react-library/components/Icon/EditIcon";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
import useDownloadBlob from "zy-react-library/hooks/useDownloadBlob";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable";
import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
import { NS_HIDDEN_EVALUATION, NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
function List(props) {
const query = useGetUrlQuery();
const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob();
const { getUrlCriteriaQuery } = useUrlQueryCriteria();
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeList"], {
form,
params: {
eqCorpId: query.corpinfoId,
},
});
const onBatchExchange = async () => {
if (!selectedRowKeys.length) {
message.warning("请选择需要兑换的人员");
return;
}
Modal.confirm({
title: "兑换确认",
content: "确定要兑换吗?", // 确定要兑换所有人得分吗
onOk: async () => {
const success = await props["personnelEvaluationExchange"]({ userIds: selectedRowKeys });
if (success) {
message.success("兑换成功");
getData();
}
},
onCancel: () => {
message.warning("已取消兑换");
},
});
};
const OnRedeemAll = async () => {
Modal.confirm({
title: "兑换确认",
content: "确定要兑换所有人得分吗?", // 确定要兑换所有人得分吗
onOk: async () => {
const searchForm = getUrlCriteriaQuery("searchFormKeys", "searchFormValues");
const success = await props["viewUserEvaluateConditionList"]({ likeFindUserRealName: searchForm.likeFindUserRealName, eqFindUserDeptId: searchForm.eqFindUserDeptId, corpId: query.corpinfoId });
if (success) {
message.success("兑换成功");
getData();
}
},
onCancel: () => {
message.warning("已取消兑换");
},
});
};
const onExportExcel = async () => {
if (!selectedRowKeys.length) {
message.warning("请选择需要导出的人员");
return;
}
Modal.confirm({
title: "导出确认",
content: "确定要导出excel吗",
onOk: async () => {
await downloadBlob("/hidden/viewUserEvaluateConditionList/exportEvaluate", { params: { findUserIds: selectedRowKeys.join(",") } });
message.success("导出成功");
},
onCancel: () => {
message.warning("已取消导出");
},
});
};
import UserExchangeListPage from "../../PersonnelEvaluation/UserExchangeList";
function UserExchangeList(props) {
return (
<div>
<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>
<UserExchangeListPage {...props} />
);
}
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 { 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],
}),
});
import UserExchangeRecordListPage from "../../PersonnelEvaluation/UserExchangeRecordList";
function UserExchangeRecordList(props) {
return (
<div>
<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>
<UserExchangeRecordListPage {...props} />
);
}
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 { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
@ -14,53 +15,51 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Search
options={[
{ name: "eqDeptId", label: "考评组部门", render: (<DepartmentSelectTree searchType="all" />) },
{ name: "likeSafetyMembers", label: "考评组人员" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "单位名称", dataIndex: "corpinfoName" },
{ title: "完成考评隐患数", dataIndex: "evaDoneTotal" },
{ title: "待考评隐患数", dataIndex: "checkTotal" },
{ title: "涉及奖励人数", dataIndex: "peopleTotal" },
{
title: "奖励兑换情况",
dataIndex: "alreadyExchange",
render: (_, record) => (`${record.alreadyExchange}/${record.alreadyExchange + record.notExchange}`),
},
{ title: "安全类隐患考评组成员", dataIndex: "safetyMembers" },
{ title: "环保类隐患考评组成员", dataIndex: "environmentalMembers" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("permission") && (
<Button
type="link"
onClick={() => {
props.history.push(`./userExchangeList?corpinfoId=${record.corpinfoId}`);
}}
>
查看
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</div>
</div>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "eqDeptId", label: "考评组部门", render: (<DepartmentSelectTree searchType="all" />) },
{ name: "likeSafetyMembers", label: "考评组人员" },
]}
form={form}
onFinish={getData}
/>
<Table
columns={[
{ title: "单位名称", dataIndex: "corpinfoName" },
{ title: "完成考评隐患数", dataIndex: "evaDoneTotal" },
{ title: "待考评隐患数", dataIndex: "checkTotal" },
{ title: "涉及奖励人数", dataIndex: "peopleTotal" },
{
title: "奖励兑换情况",
dataIndex: "alreadyExchange",
render: (_, record) => (`${record.alreadyExchange}/${record.alreadyExchange + record.notExchange}`),
},
{ title: "安全类隐患考评组成员", dataIndex: "safetyMembers" },
{ title: "环保类隐患考评组成员", dataIndex: "environmentalMembers" },
{
title: "操作",
width: 100,
fixed: "right",
render: (_, record) => (
<Space>
{props.permission("permission") && (
<Button
type="link"
onClick={() => {
props.history.push(`./userExchangeList?corpinfoId=${record.corpinfoId}`);
}}
>
查看
</Button>
)}
</Space>
),
},
]}
{...tableProps}
/>
</Page>
);
}

View File

@ -1,9 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space, Spin } from "antd";
import { useState } from "react";
import HeaderBack from "zy-react-library/components/HeaderBack";
import EditIcon from "zy-react-library/components/Icon/EditIcon";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import 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 { NS_HIDDEN_EVALUATION, NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
function List(props) {
function UserExchangeList(props) {
const query = useGetUrlQuery();
const { loading: downloadBlobLoading, downloadBlob } = useDownloadBlob();
const { getUrlCriteriaQuery } = useUrlQueryCriteria();
@ -82,92 +82,89 @@ function List(props) {
};
return (
<div>
<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>
<Page headerTitle="人员考评情况">
<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>
</Page>
);
}
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 { 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 Table from "zy-react-library/components/Table";
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 { NS_PERSONNEL_EVALUATION } from "~/enumerate/namespace";
function List(props) {
function UserExchangeRecordList(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["personnelEvaluationUserExchangeRecordList"], {
@ -23,46 +23,43 @@ function List(props) {
});
return (
<div>
<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>
<Page headerTitle="兑换记录">
<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}
/>
</Page>
);
}
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 (
<Modal
title="考评详情"
width={800}
width={600}
open
maskClosable={false}
onCancel={props.onCancel}
loading={props.hiddenEvaluation.hiddenEvaluationLoading}
footer={[
<Button key="cancel" onClick={props.onCancel}>
取消