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,17 +37,15 @@ 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,
@ -86,8 +85,7 @@ function Rectification(props) {
),
]}
/>
</div>
</div>
</Page>
);
}

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { 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,9 +157,8 @@ function Confirm(props) {
return (
<div>
<HeaderBack title="确认" />
<Page headerTitle="确认" contentPadding="0 20px 20px 20px" isShowFooter={false}>
<HiddenInfo
isShowHeaderBack={false}
onGetData={(data) => {
setData(data);
data.isRelated === 1 && getXgfProjectInfo(data.projectId);
@ -184,7 +175,7 @@ function Confirm(props) {
}}
/>
<Divider orientation="left">隐患确认</Divider>
<div style={{ paddingBottom: 20 }}>
<div>
{
Object.keys(data).length > 0
? (
@ -197,6 +188,9 @@ function Confirm(props) {
extraActionButtons={[
!isFromInspection && <Button key="reject" type="primary" danger onClick={() => setRejectModalOpen(true)}>打回</Button>,
]}
values={{
rectificationType: 1,
}}
options={[
...(!isFromInspection
? [
@ -233,6 +227,7 @@ function Confirm(props) {
: 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,7 +96,6 @@ function Rectification(props) {
}}
/>
<Divider orientation="left">隐患整改</Divider>
<div style={{ paddingBottom: 20 }}>
<FormBuilder
values={{
status: 1,
@ -241,8 +239,7 @@ function Rectification(props) {
),
]}
/>
</div>
</div>
</Page>
);
}

View File

@ -2,6 +2,7 @@ import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { 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,17 +36,14 @@ 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,
@ -145,8 +142,7 @@ function Review(props) {
),
]}
/>
</div>
</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,9 +11,9 @@ function List(props) {
const { tableProps } = useTable(props["averageAiHiddenRecord"], {
form,
});
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Table
columns={[
{ title: "企业名称", dataIndex: "corpName" },
@ -39,9 +40,7 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,12 +15,11 @@ function ListView(props) {
corpId: query.id,
},
});
return (
<div>
<HeaderBack title="重复隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="重复隐患">
<Table
title={() => `企业名称:${query.corpName}`}
headerTitle={`企业名称:${query.corpName}`}
columns={[
{ title: "使用人", dataIndex: "userName" },
{ title: "使用时间", dataIndex: "useTime" },
@ -30,13 +29,14 @@ function ListView(props) {
render: (_, record) => {
return (
<>
<a
<Button
type="link"
onClick={() => {
props.history.push(`./ViewContent?userId=${record.userId}`);
}}
>
{record.hiddenNum}
</a>
</Button>
</>
);
},
@ -44,9 +44,7 @@ function ListView(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,10 +15,9 @@ function ViewContent(props) {
userId: query.userId,
},
});
return (
<div>
<HeaderBack title="查看" />
<div style={{ padding: 20 }}>
<Page headerTitle="查看">
<Table
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
@ -27,9 +26,7 @@ function ViewContent(props) {
]}
{...tableProps}
/>
</div>
</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["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,9 +58,7 @@ function HiddenList(props) {
};
return (
<div>
<HeaderBack title="一般隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="一般隐患">
<Spin spinning={downloadBlobLoading}>
<Search
options={[
@ -112,6 +110,7 @@ function HiddenList(props) {
<Space>
<Button
type="primary"
ghost
icon={<PrintIcon />}
onClick={() => {
if (selectedRowKeys.length === 0) {
@ -188,7 +187,6 @@ function HiddenList(props) {
{...tableProps}
/>
</Spin>
</div>
{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,9 +11,9 @@ function List(props) {
const { tableProps } = useTable(props["averageRepeatHiddenCount"], {
form,
});
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Table
columns={[
{ title: "企业名称", dataIndex: "corpName" },
@ -39,9 +40,7 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,12 +17,11 @@ function ListView(props) {
corpId: query.id,
},
});
return (
<div>
<HeaderBack title="重复隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="重复隐患">
<Table
title={() => `企业名称:${query.corpName}`}
headerTitle={`企业名称:${query.corpName}`}
columns={[
{ title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患来源", dataIndex: "source", render: (_, record) => getLabelName({ list: HIDDEN_SOURCE_ENUM, status: record.source }) },
@ -31,7 +30,7 @@ function ListView(props) {
{ title: "隐患发现部门", dataIndex: "hiddenFindDeptName" },
{ title: "隐患发现人", dataIndex: "createName" },
{ title: "隐患发现时间", dataIndex: "hiddenFindTime" },
{ title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }), },
{ title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) },
{
title: "操作",
width: 100,
@ -52,9 +51,7 @@ function ListView(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,9 +52,7 @@ function HiddenList(props) {
};
return (
<div>
<HeaderBack title="忽略隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="忽略隐患">
<Spin spinning={downloadBlobLoading}>
<Search
options={[
@ -96,6 +94,7 @@ function HiddenList(props) {
toolBarRender={() => (
<Button
type="primary"
ghost
icon={<ExportIcon />}
onClick={() => {
onExportExcel();
@ -148,8 +147,7 @@ function HiddenList(props) {
{...tableProps}
/>
</Spin>
</div>
</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["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,9 +51,7 @@ function HiddenList(props) {
};
return (
<div>
<HeaderBack title="特殊处置隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="特殊处置隐患">
<Spin spinning={downloadBlobLoading}>
<Search
options={[
@ -102,6 +100,7 @@ function HiddenList(props) {
toolBarRender={() => (
<Button
type="primary"
ghost
icon={<ExportIcon />}
onClick={() => {
onExportExcel();
@ -157,8 +156,7 @@ function HiddenList(props) {
{...tableProps}
/>
</Spin>
</div>
</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 HiddenList(props) {
const query = useGetUrlQuery();
const [viewEvaluationModalOpen, setViewEvaluationModalOpen] = useState(false);
const [evaluationModalOpen, setEvaluationModalOpen] = useState(false);
@ -35,10 +35,9 @@ function List(props) {
leFinalDoneTime: formData.finalDoneTime?.[1],
}),
});
return (
<div>
<HeaderBack title="分公司考评隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="分公司考评隐患">
<Search
options={[
{ name: "likeHiddenDesc", label: "隐患描述" },
@ -148,12 +147,11 @@ function List(props) {
]}
{...tableProps}
/>
</div>
{viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />}
{evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div>
</Page>
);
}
@ -189,13 +187,14 @@ 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}
>
<Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
<Descriptions
column={2}
bordered
@ -244,9 +243,10 @@ const EvaluationModalComponent = (props) => {
},
]}
/>
</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,8 +21,7 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
@ -68,8 +68,7 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,8 +38,7 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
@ -135,7 +135,6 @@ function List(props) {
]}
{...tableProps}
/>
</div>
{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,22 +224,17 @@ const ConfigModalComponent = (props) => {
options={[
{ name: "configType", label: "隐患考评组类型", componentProps: { disabled: true }, span: 24 },
{
key: "evaluateGroupUserConfigUpdateCmdList",
customizeRender: true,
name: "evaluateGroupUserConfigUpdateCmdList",
span: 24,
render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
formListUniqueProps: {
showRemoveButton: false,
showAddButton: false,
options: field => ([
{
name: [field.name, "memberDeptId"],
label: "考评部门",
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 }}
@ -251,37 +246,24 @@ const ConfigModalComponent = (props) => {
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"]}
>
),
},
{ 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)}
/>
</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>
</>
),
},
{ name: [field.name, "memberName"], label: "考评人员名称", onlyForLabel: true },
{ name: [field.name, "type"], label: "用户类型", onlyForLabel: true },
]),
},
},
]}
/>
</Modal>
@ -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,7 +373,9 @@ const ViewModalComponent = (props) => {
styles={{ label: { width: 200 } }}
items={[
{ label: "隐患考评组类型", children: "安全类" },
{ label: "考评组成员", children: (
{
label: "考评组成员",
children: (
<div>
{safetyList.map(item => (
item.memberDeptName && (
@ -405,7 +389,8 @@ const ViewModalComponent = (props) => {
)
))}
</div>
) },
),
},
]}
/>
<Descriptions
@ -414,7 +399,9 @@ const ViewModalComponent = (props) => {
styles={{ label: { width: 200 } }}
items={[
{ label: "隐患考评组类型", children: "环保类" },
{ label: "考评组成员", children: (
{
label: "考评组成员",
children: (
<div>
{environmentalList.map(item => (
item.memberDeptName && (
@ -428,7 +415,8 @@ const ViewModalComponent = (props) => {
)
))}
</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,10 +35,9 @@ function List(props) {
leFinalDoneTime: formData.finalDoneTime?.[1],
}),
});
return (
<div>
<HeaderBack title="分公司考评隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="分公司考评隐患">
<Search
options={[
{ name: "likeHiddenDesc", label: "隐患描述" },
@ -147,12 +146,11 @@ function List(props) {
]}
{...tableProps}
/>
</div>
{viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} url="hiddenEvaluationHiddenEvaluationView" />}
{evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div>
</Page>
);
}
@ -188,13 +186,14 @@ 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}
>
<Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
<Descriptions
column={2}
bordered
@ -243,9 +242,10 @@ const EvaluationModalComponent = (props) => {
},
]}
/>
</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,8 +21,7 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
@ -68,8 +68,7 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,10 +32,9 @@ function List(props) {
leExchangeTime: formData.hiddenFindTime?.[1],
}),
});
return (
<div>
<HeaderBack title="分公司考评隐患" />
<div style={{ padding: 20 }}>
<Page headerTitle="分公司考评隐患">
<Search
options={[
{ name: "eqHiddenSource", label: "隐患来源", render: FORM_ITEM_RENDER_ENUM.SELECT, items: HIDDEN_SOURCE_ENUM },
@ -100,12 +99,11 @@ function List(props) {
]}
{...tableProps}
/>
</div>
{viewEvaluationModalOpen
&& <ViewEvaluationModal onCancel={() => setViewEvaluationModalOpen(false)} hiddenId={currentHiddenId} />}
{evaluationModalOpen
&& <EvaluationModal onCancel={() => setEvaluationModalOpen(false)} hiddenId={currentHiddenId} getData={getData} />}
</div>
</Page>
);
}
@ -141,13 +139,14 @@ 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}
>
<Spin spinning={props.hiddenEvaluation.hiddenEvaluationLoading}>
<Descriptions
column={2}
bordered
@ -196,9 +195,10 @@ const EvaluationModalComponent = (props) => {
},
]}
/>
</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,8 +103,7 @@ function List(props) {
];
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "likeCorpinfoName", label: "分公司名称" },
@ -115,8 +115,7 @@ function List(props) {
columns={columns}
{...processedTableProps}
/>
</div>
</div>
</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,8 +15,7 @@ function List(props) {
});
return (
<div>
<div style={{ padding: 20 }}>
<Page isShowAllAction={false}>
<Search
options={[
{ name: "eqDeptId", label: "考评组部门", render: (<DepartmentSelectTree searchType="all" />) },
@ -59,8 +59,7 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</div>
</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,9 +82,7 @@ function List(props) {
};
return (
<div>
<HeaderBack title="人员考评情况" />
<div style={{ padding: 20 }}>
<Page headerTitle="人员考评情况">
<Spin spinning={downloadBlobLoading}>
<Search
options={[
@ -165,9 +163,8 @@ function List(props) {
{...tableProps}
/>
</Spin>
</div>
</div>
</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,9 +23,7 @@ function List(props) {
});
return (
<div>
<HeaderBack title="兑换记录" />
<div style={{ padding: 20 }}>
<Page headerTitle="兑换记录">
<Search
options={[
{ name: "dates", label: "兑换时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
@ -60,9 +58,8 @@ function List(props) {
]}
{...tableProps}
/>
</div>
</div>
</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}>
取消