修改页面样式

master
LiuJiaNan 2025-12-29 11:39:29 +08:00
parent f600f90b06
commit c2b0e5c99f
28 changed files with 603 additions and 618 deletions

View File

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

View File

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

View File

@ -1,8 +1,8 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Divider, Form, message } from "antd"; import { Divider, Form, message } from "antd";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import Upload from "zy-react-library/components/Upload"; import Upload from "zy-react-library/components/Upload";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
@ -29,9 +29,8 @@ function Acceptance(props) {
}; };
return ( return (
<div> <Page headerTitle="隐患验收" contentPadding="0 20px 20px 20px" isShowFooter={false}>
<HeaderBack title="隐患验收" /> <HiddenInfo hiddenId={query.hiddenId} id={query.id} />
<HiddenInfo isShowHeaderBack={false} hiddenId={query.hiddenId} id={query.id} />
<Divider orientation="left">安全环保检查验收</Divider> <Divider orientation="left">安全环保检查验收</Divider>
<FormBuilder <FormBuilder
form={form} form={form}
@ -53,7 +52,7 @@ function Acceptance(props) {
{ name: "files", label: "验收图片", required: false, render: (<Upload />) }, { name: "files", label: "验收图片", required: false, render: (<Upload />) },
]} ]}
/> />
</div> </Page>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Space } from "antd"; import { Button, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj"; import { HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -15,42 +15,39 @@ function HiddenList(props) {
}); });
return ( return (
<div> <Page headerTitle="隐患验收">
<HeaderBack title="隐患验收" /> <Table
<div style={{ padding: 20 }}> columns={[
<Table { title: "隐患描述", dataIndex: "hiddenDesc" },
columns={[ { title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) },
{ title: "隐患描述", dataIndex: "hiddenDesc" }, {
{ title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) }, title: "操作",
{ width: 150,
title: "操作", render: (_, record) => (
width: 150, <Space>
render: (_, record) => ( <Button
<Space> type="link"
<Button onClick={() => {
type="link" props.history.push(`../../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`);
onClick={() => { }}
props.history.push(`../../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`); >
}} 查看
> </Button>
查看 <Button
</Button> type="link"
<Button onClick={() => {
type="link" props.history.push(`./acceptance?hiddenId=${record.hiddenId}&id=${record.id}`);
onClick={() => { }}
props.history.push(`./acceptance?hiddenId=${record.hiddenId}&id=${record.id}`); >
}} 验收
> </Button>
验收 </Space>
</Button> ),
</Space> },
), ]}
}, {...tableProps}
]} />
{...tableProps} </Page>
/>
</div>
</div>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -22,7 +23,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
@ -83,7 +84,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -2,8 +2,8 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Divider, Form, message } from "antd"; import { Divider, Form, message } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { NS_INSPECTION } from "~/enumerate/namespace"; import { NS_INSPECTION } from "~/enumerate/namespace";
@ -29,9 +29,8 @@ function Assign(props) {
}; };
return ( return (
<div> <Page headerTitle="隐患指派" contentPadding="0 20px 20px 20px" isShowFooter={false}>
<HeaderBack title="隐患指派" /> <HiddenInfo hiddenId={query.hiddenUUId} id={query.hiddenId} />
<HiddenInfo isShowHeaderBack={false} hiddenId={query.hiddenUUId} id={query.hiddenId} />
<Divider orientation="left">隐患确认</Divider> <Divider orientation="left">隐患确认</Divider>
<FormBuilder <FormBuilder
form={form} form={form}
@ -60,7 +59,7 @@ function Assign(props) {
{ name: "deptId", label: "隐患确认人部门id", onlyForLabel: true }, { name: "deptId", label: "隐患确认人部门id", onlyForLabel: true },
]} ]}
/> />
</div> </Page>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Space } from "antd"; import { Button, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj"; import { HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -15,42 +15,39 @@ function HiddenList(props) {
}); });
return ( return (
<div> <Page headerTitle="隐患指派">
<HeaderBack title="隐患指派" /> <Table
<div style={{ padding: 20 }}> columns={[
<Table { title: "隐患描述", dataIndex: "hiddenDesc" },
columns={[ { title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) },
{ title: "隐患描述", dataIndex: "hiddenDesc" }, {
{ title: "隐患状态", dataIndex: "state", render: (_, record) => getLabelName({ list: HIDDEN_STATE_ENUM, status: record.state }) }, title: "操作",
{ width: 150,
title: "操作", render: (_, record) => (
width: 150, <Space>
render: (_, record) => ( <Button
<Space> type="link"
<Button onClick={() => {
type="link" props.history.push(`../../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`);
onClick={() => { }}
props.history.push(`../../hiddenView?hiddenId=${record.hiddenId}&id=${record.id}`); >
}} 查看
> </Button>
查看 <Button
</Button> type="link"
<Button onClick={() => {
type="link" props.history.push(`./assign?inspectionId=${query.inspectionId}&id=${query.id}&hiddenUUId=${record.hiddenId}&hiddenId=${record.id}`);
onClick={() => { }}
props.history.push(`./assign?inspectionId=${query.inspectionId}&id=${query.id}&hiddenUUId=${record.hiddenId}&hiddenId=${record.id}`); >
}} 指派
> </Button>
指派 </Space>
</Button> ),
</Space> },
), ]}
}, {...tableProps}
]} />
{...tableProps} </Page>
/>
</div>
</div>
); );
} }

View File

@ -1,6 +1,7 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -22,7 +23,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
@ -83,7 +84,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -1,8 +1,9 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Image, message, Modal, Space } from "antd"; import { Button, Form, Image, message, Modal, Space, Spin } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -33,7 +34,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
@ -124,7 +125,7 @@ function List(props) {
}} }}
/> />
)} )}
</div> </Page>
); );
} }
@ -152,17 +153,18 @@ function DefenseHandlingModalComponent(props) {
return ( return (
<Modal <Modal
title="申辩处理" title="申辩处理"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={uploadFileLoading || props.inspection.defenseLoading} confirmLoading={uploadFileLoading || props.inspection.defenseLoading}
> >
<FormBuilder <FormBuilder
loading={uploadFileLoading || props.inspection.defenseLoading}
form={form} form={form}
span={24} span={24}
labelCol={{ span: 8 }} labelCol={{ span: 10 }}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[
@ -210,7 +212,7 @@ function DefenseHandlingModalComponent(props) {
function DefenseRecordModalComponent(props) { function DefenseRecordModalComponent(props) {
const [list, setList] = useState([]); const [list, setList] = useState([]);
const { loading: downloadFileLoading, downloadFile } = useDownloadFile(); const { loading: downloadFileLoading, downloadFile } = useDownloadFile();
const { loading: downloadGetFileLoading, getFile } = useGetFile(); const { loading: getFileLoading, getFile } = useGetFile();
const getFiles = async (list) => { const getFiles = async (list) => {
for (let i = 0; i < list.length; i++) { for (let i = 0; i < list.length; i++) {
@ -242,40 +244,41 @@ function DefenseRecordModalComponent(props) {
footer={[ footer={[
<Button key="cancel" onClick={props.onCancel}>取消</Button>, <Button key="cancel" onClick={props.onCancel}>取消</Button>,
]} ]}
loading={downloadFileLoading || downloadGetFileLoading}
> >
<Table <Spin spinning={downloadFileLoading || getFileLoading}>
columns={[ <Table
{ title: "申辩时间", dataIndex: "createTime", width: 200 }, columns={[
{ title: "申辩描述", dataIndex: "content" }, { title: "申辩时间", dataIndex: "createTime", width: 200 },
{ title: "申辩状态", dataIndex: "isPass", render: (_, record) => ( { title: "申辩描述", dataIndex: "content" },
<> { title: "申辩状态", dataIndex: "isPass", render: (_, record) => (
<div>{record.isPass === 0 && "未审批"}</div> <>
<div>{record.isPass === 1 && "通过"}</div> <div>{record.isPass === 0 && "未审批"}</div>
<div>{record.isPass === 2 && "未通过"}</div> <div>{record.isPass === 1 && "通过"}</div>
</> <div>{record.isPass === 2 && "未通过"}</div>
) }, </>
{ title: "签字图片", dataIndex: "signature", render: (_, record) => (record.signature && <Image src={getFileUrl() + record.signature} width={100} height={100} />) }, ) },
{ title: "申辩附件名称", dataIndex: "name", width: 200 }, { title: "签字图片", dataIndex: "signature", render: (_, record) => (record.signature && <Image src={getFileUrl() + record.signature} width={100} height={100} />) },
{ title: "申辩附件", dataIndex: "url", render: (_, record) => ( { title: "申辩附件名称", dataIndex: "name", width: 200 },
record.url && ( { title: "申辩附件", dataIndex: "url", render: (_, record) => (
<Button record.url && (
type="link" <Button
onClick={() => { type="link"
downloadFile({ url: record.url, name: record.name }); onClick={() => {
}} downloadFile({ url: record.url, name: record.name });
> }}
下载 >
</Button> 下载
) </Button>
) }, )
{ title: "检查人签字", dataIndex: "checkSign", render: (_, record) => (record.checkSign && <Image src={getFileUrl() + record.checkSign} width={100} height={100} />) }, ) },
{ title: "检查人意见", dataIndex: "checkRemarks" }, { title: "检查人签字", dataIndex: "checkSign", render: (_, record) => (record.checkSign && <Image src={getFileUrl() + record.checkSign} width={100} height={100} />) },
{ title: "审批时间", dataIndex: "checkSignTime", width: 200 }, { title: "检查人意见", dataIndex: "checkRemarks" },
]} { title: "审批时间", dataIndex: "checkSignTime", width: 200 },
{...tableProps} ]}
dataSource={list} {...tableProps}
/> dataSource={list}
/>
</Spin>
</Modal> </Modal>
); );
} }

View File

@ -3,6 +3,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd"; import { Button, Form, message, Modal, Space } from "antd";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -30,7 +31,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
@ -102,7 +103,7 @@ function List(props) {
getData={getData} getData={getData}
/> />
)} )}
</div> </Page>
); );
} }
@ -131,20 +132,21 @@ function ConfirmModalComponent(props) {
return ( return (
<Modal <Modal
title="检查确认" title="检查确认"
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={uploadFileLoading || props.inspection.inspectedLoading} confirmLoading={uploadFileLoading || props.inspection.inspectedLoading}
> >
<FormBuilder <FormBuilder
loading={uploadFileLoading || props.inspection.inspectedLoading}
form={form} form={form}
span={24} span={24}
values={{ values={{
reviewStatus: "1", reviewStatus: "1",
}} }}
labelCol={{ span: 8 }} labelCol={{ span: 10 }}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[

View File

@ -23,6 +23,7 @@ function HiddenAddModal(props) {
hiddenPartType, hiddenPartType,
hiddenFindTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), hiddenFindTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
rectificationType: 2, rectificationType: 2,
isRelated: 2,
}); });
props.onCancel(); props.onCancel();
}; };
@ -104,12 +105,6 @@ function HiddenAddModal(props) {
{ name: "hiddenTypeName", label: "隐患类型名称", onlyForLabel: true }, { name: "hiddenTypeName", label: "隐患类型名称", onlyForLabel: true },
{ name: "hiddenType2", label: "隐患类型名称", onlyForLabel: true }, { name: "hiddenType2", label: "隐患类型名称", onlyForLabel: true },
{ name: "hiddenType2Name", label: "隐患类型名称", onlyForLabel: true }, { name: "hiddenType2Name", label: "隐患类型名称", onlyForLabel: true },
{
name: "isRelated",
label: "是否相关方",
render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: 1, name: "是" }, { bianma: 2, name: "否" }],
},
{ name: "map", customizeRender: true, render: <Map required={false} />, span: 24 }, { name: "map", customizeRender: true, render: <Map required={false} />, span: 24 },
{ name: "positionDesc", label: "隐患位置描述", required: false, span: 24 }, { name: "positionDesc", label: "隐患位置描述", required: false, span: 24 },
{ {

View File

@ -3,7 +3,7 @@ import { Button, Form, message, Modal, Space } from "antd";
import { cloneDeep } from "lodash-es"; import { cloneDeep } from "lodash-es";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -198,7 +198,7 @@ function Add(props) {
}); });
}; };
// 更新现有隐患 // 保存隐患
const handleHiddenSubmit = async (traceId, isDraft, index) => { const handleHiddenSubmit = async (traceId, isDraft, index) => {
await deleteFile({ await deleteFile({
single: false, single: false,
@ -224,7 +224,7 @@ function Add(props) {
files: hiddenList[index].hiddenVideoFiles, files: hiddenList[index].hiddenVideoFiles,
params: { params: {
type: UPLOAD_FILE_TYPE_ENUM["102"], type: UPLOAD_FILE_TYPE_ENUM["102"],
foreignKey: hiddenList[index].hiddenId, foreignKey: id,
}, },
}); });
@ -237,9 +237,9 @@ function Add(props) {
eqForeignKey: id, eqForeignKey: id,
}); });
await props["hiddenEdit"]({ await props[!hiddenList[index].hiddenId ? "hiddenAdd" : "hiddenEdit"]({
...hiddenList[index], ...hiddenList[index],
source: 5, source: props.source || "5",
hiddenId: id, hiddenId: id,
state: isDraft === 0 ? 102 : 98, state: isDraft === 0 ? 102 : 98,
foreignKey: traceId, foreignKey: traceId,
@ -307,283 +307,280 @@ function Add(props) {
}; };
useEffect(() => { useEffect(() => {
// if (isIdle) if (isIdle)
// onSubmit(form.getFieldsValue(), 1); onSubmit(form.getFieldsValue(), 1);
}, [isIdle]); }, [isIdle]);
return ( return (
<div> <Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
<HeaderBack title={query.id ? "编辑" : "新增"} /> <FormBuilder
<div style={{ paddingBottom: 10 }}> form={form}
<FormBuilder values={{
form={form} planType: query.planId ? 1 : 0,
values={{ planId: query.planId,
planType: query.planId ? 1 : 0, situationList: [{ content: undefined }],
planId: query.planId, }}
situationList: [{ content: undefined }], loading={deleteFileLoading || getFileLoading || uploadFileLoading || props.inspection.inspectionLoading}
}} onFinish={values => onSubmit(values, 0)}
loading={deleteFileLoading || getFileLoading || uploadFileLoading || props.inspection.inspectionLoading} extraActionButtons={[
onFinish={values => onSubmit(values, 0)} <Button
extraActionButtons={[ key="temporaryStorage"
<Button onClick={() => {
key="temporaryStorage" onSubmit(form.getFieldsValue(), 1);
onClick={() => { }}
onSubmit(form.getFieldsValue(), 1); >
}} 暂存
> </Button>,
暂存 ]}
</Button>, options={[
]} {
options={[ name: "subject",
{ label: "检查题目",
name: "subject", render: FORM_ITEM_RENDER_ENUM.RADIO,
label: "检查题目", items: INSPECTION_QUESTION_ENUM,
render: FORM_ITEM_RENDER_ENUM.RADIO, span: 24,
items: INSPECTION_QUESTION_ENUM, },
span: 24, {
}, name: "planType",
{ label: "计划属性",
name: "planType", render: FORM_ITEM_RENDER_ENUM.RADIO,
label: "计划属性", items: PLAN_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
render: FORM_ITEM_RENDER_ENUM.RADIO, span: planType === 0 ? 24 : 12,
items: PLAN_ENUM.map(item => ({ ...item, bianma: +item.bianma })), componentProps: { disabled: query.planId },
span: planType === 0 ? 24 : 12, },
componentProps: { disabled: query.planId }, {
}, name: "planId",
{ label: "计划名称",
name: "planId", render: FORM_ITEM_RENDER_ENUM.SELECT,
label: "计划名称", items: planList,
render: FORM_ITEM_RENDER_ENUM.SELECT, itemsField: { labelKey: "planName", valueKey: "id" },
items: planList, dependencies: ["planType"],
itemsField: { labelKey: "planName", valueKey: "id" }, hidden: formValues => !(formValues.planType === 1),
dependencies: ["planType"], componentProps: { disabled: query.planId },
hidden: formValues => !(formValues.planType === 1), },
componentProps: { disabled: query.planId }, {
}, name: ["personUnderInspection", "departmentId"],
{ label: "被检查单位",
name: ["personUnderInspection", "departmentId"], render: (
label: "被检查单位", <DepartmentSelectTree
render: ( searchType={props.searchType}
<DepartmentSelectTree onGetLabel={label => form.setFieldValue(["personUnderInspection", "departmentName"], label)}
searchType={props.searchType} onChange={() => {
onGetLabel={label => form.setFieldValue(["personUnderInspection", "departmentName"], label)} form.setFieldValue(["personUnderInspection", "userId"], "");
onChange={() => { form.setFieldValue(["personUnderInspection", "userName"], "");
form.setFieldValue(["personUnderInspection", "userId"], ""); }}
form.setFieldValue(["personUnderInspection", "userName"], ""); />
}} ),
/> },
), { name: ["personUnderInspection", "departmentName"], label: "被检查单位名称", onlyForLabel: true },
}, {
{ name: ["personUnderInspection", "departmentName"], label: "被检查单位名称", onlyForLabel: true }, name: ["personUnderInspection", "userId"],
{ label: "被检查单位现场负责人",
name: ["personUnderInspection", "userId"], render: (
label: "被检查单位现场负责人", <PersonnelSelect
render: ( params={{ departmentId: personUnderInspectionDepartmentId }}
<PersonnelSelect onGetLabel={label => form.setFieldValue(["personUnderInspection", "userName"], label)}
params={{ departmentId: personUnderInspectionDepartmentId }} />
onGetLabel={label => form.setFieldValue(["personUnderInspection", "userName"], label)} ),
/> formItemProps: { labelCol: { span: 8 } },
), },
formItemProps: { labelCol: { span: 8 } }, { name: ["personUnderInspection", "userName"], label: "被检查单位现场负责人名称", onlyForLabel: true },
}, { name: "place", label: "检查场所", span: 24 },
{ name: ["personUnderInspection", "userName"], label: "被检查单位现场负责人名称", onlyForLabel: true }, {
{ name: "place", label: "检查场所", span: 24 }, name: "type",
{ label: "检查类型",
name: "type", span: 8,
label: "检查类型", render: (
span: 8, <DictionarySelectTree
render: ( dictValue="inspectionType"
<DictionarySelectTree onlyLastLevel
dictValue="inspectionType" onGetLabel={label => form.setFieldValue("typeName", label)}
onlyLastLevel />
onGetLabel={label => form.setFieldValue("typeName", label)} ),
/> formItemProps: { labelCol: { span: 6 } },
), },
formItemProps: { labelCol: { span: 6 } }, { name: "typeName", label: "检查类型名称", onlyForLabel: true },
}, {
{ name: "typeName", label: "检查类型名称", onlyForLabel: true }, name: "timeStart",
{ label: "检查开始时间",
name: "timeStart", span: 8,
label: "检查开始时间", render: FORM_ITEM_RENDER_ENUM.DATETIME,
span: 8, formItemProps: { labelCol: { span: 6 } },
render: FORM_ITEM_RENDER_ENUM.DATETIME, },
formItemProps: { labelCol: { span: 6 } }, {
}, name: "timeEnd",
{ label: "检查结束时间",
name: "timeEnd", span: 8,
label: "检查结束时间", render: FORM_ITEM_RENDER_ENUM.DATETIME,
span: 8, formItemProps: { labelCol: { span: 6 } },
render: FORM_ITEM_RENDER_ENUM.DATETIME, rules: [validatorEndTime(timeStart)],
formItemProps: { labelCol: { span: 6 } }, },
rules: [validatorEndTime(timeStart)], { label: "检查人员", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
}, {
{ label: "检查人员", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, name: "inspectorList",
{ span: 24,
name: "inspectorList", render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
span: 24, formListUniqueProps: {
render: FORM_ITEM_RENDER_ENUM.FORM_LIST, addButtonText: "添加检查人员",
formListUniqueProps: { options: field => (
addButtonText: "添加检查人员", [
options: field => (
[
{
name: [field.name, "departmentId"],
label: "检查人员部门",
render: (
<DepartmentSelectTree
onChange={() => {
form.setFieldValue(["inspectorList", field.name, "userId"], "");
form.setFieldValue(["inspectorList", field.name, "userName"], "");
}}
onGetLabel={(label) => {
form.setFieldValue(["inspectorList", field.name, "departmentName"], label);
}}
/>
),
},
{ name: [field.name, "departmentName"], label: "检查人员部门名称", onlyForLabel: true },
{ name: [field.name, "userName"], label: "检查人员名称", onlyForLabel: true },
{
name: [field.name, "userId"],
label: "检查人员",
render: (
<PersonnelSelect
params={{ departmentId: inspectorList?.[field.name]?.departmentId || "" }}
onGetLabel={label => form.setFieldValue(["inspectorList", field.name, "userName"], label)}
/>
),
},
]
),
},
},
{ label: "检查情况", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
{
name: "situationList",
span: 24,
render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
formListUniqueProps: {
addButtonText: "添加检查情况",
options: field => ([
{ name: [field.name, "content"], label: "检查情况", render: FORM_ITEM_RENDER_ENUM.TEXTAREA },
{ name: [field.name, "deleteFiles"], label: "删除的图片", onlyForLabel: true },
{ {
name: [field.name, "files"], name: [field.name, "departmentId"],
label: "图片", label: "检查人员部门",
render: ( render: (
<Upload <DepartmentSelectTree
maxCount={1} onChange={() => {
onGetRemoveFile={(file) => { form.setFieldValue(["inspectorList", field.name, "userId"], "");
form.setFieldValue( form.setFieldValue(["inspectorList", field.name, "userName"], "");
["situationList", field.name, "deleteFiles"], }}
[...(form.getFieldValue(["situationList", field.name, "deleteFiles"]) || []), file], onGetLabel={(label) => {
); form.setFieldValue(["inspectorList", field.name, "departmentName"], label);
}} }}
/> />
), ),
}, },
]), { name: [field.name, "departmentName"], label: "检查人员部门名称", onlyForLabel: true },
}, { name: [field.name, "userName"], label: "检查人员名称", onlyForLabel: true },
{
name: [field.name, "userId"],
label: "检查人员",
render: (
<PersonnelSelect
params={{ departmentId: inspectorList?.[field.name]?.departmentId || "" }}
onGetLabel={label => form.setFieldValue(["inspectorList", field.name, "userName"], label)}
/>
),
},
]
),
}, },
{ label: "发现问题", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, },
{ { label: "检查情况", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
key: "hiddenList", {
customizeRender: true, name: "situationList",
span: 24, span: 24,
render: ( render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
<Table formListUniqueProps: {
style={{ marginBottom: 20 }} addButtonText: "添加检查情况",
pagination={false} options: field => ([
options={false} { name: [field.name, "content"], label: "检查情况", render: FORM_ITEM_RENDER_ENUM.TEXTAREA },
disabledResizer={true} { name: [field.name, "deleteFiles"], label: "删除的图片", onlyForLabel: true },
toolBarRender={() => ( {
<Button name: [field.name, "files"],
type="primary" label: "图片",
onClick={() => { render: (
setHiddenDiscovererUserList(getHiddenDiscovererUserList()); <Upload
setCurrentHiddenInfo({}); maxCount={1}
currentHiddenIndex.current = -1; onGetRemoveFile={(file) => {
setHiddenAddModalOpen(true); form.setFieldValue(
["situationList", field.name, "deleteFiles"],
[...(form.getFieldValue(["situationList", field.name, "deleteFiles"]) || []), file],
);
}} }}
> />
添加隐患 ),
</Button> },
)} ]),
dataSource={hiddenList}
columns={[
{ title: "问题描述", dataIndex: "hiddenDesc" },
{
title: "操作",
width: 120,
render: (_, record, index) => (
<Space>
<Button
type="link"
onClick={async () => {
if (record.hiddenId) {
getCurrentHiddenInfo(record.id, record.hiddenId);
}
else {
setCurrentHiddenInfo({ ...record });
}
setHiddenDiscovererUserList(getHiddenDiscovererUserList());
currentHiddenIndex.current = index;
setHiddenAddModalOpen(true);
}}
>
编辑
</Button>
<Button
type="link"
danger
onClick={() => {
Modal.confirm({
title: "提示",
content: "确定删除该隐患吗?",
onOk: async () => {
if (record.id) {
deleteHiddenIds.current.push(record.id);
}
setHiddenList(hiddenList.filter((_, i) => i !== index));
},
});
}}
>
删除
</Button>
</Space>
),
},
]}
/>
),
}, },
{ name: ["initiator", "userRemarks"], label: "检查人意见", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 }, },
{ { label: "发现问题", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
name: ["initiator", "signature"], {
label: "检查人", key: "hiddenList",
span: 24, customizeRender: true,
required: false, span: 24,
rules: [{ required: true, message: "请签名" }], render: (
render: ( <Table
<Signature style={{ marginBottom: 20 }}
url={signatureFilePath} pagination={false}
onConfirm={(value) => { options={false}
const signature = form.getFieldValue(["initiator", "signature"]); disabledResizer={true}
if (query.id && typeof signature === "string") { toolBarRender={() => (
form.setFieldValue("deleteSignature", signature); <Button
} type="primary"
form.setFieldValue(["initiator", "signature"], value.file); onClick={() => {
form.setFieldValue(["initiator", "signatureTime"], value.time); setHiddenDiscovererUserList(getHiddenDiscovererUserList());
}} setCurrentHiddenInfo({});
/> currentHiddenIndex.current = -1;
), setHiddenAddModalOpen(true);
}, }}
{ name: ["initiator", "signatureTime"], label: "签字时间", onlyForLabel: true }, >
{ name: "deleteSignature", label: "删除的签字图片", onlyForLabel: true }, 添加隐患
]} </Button>
/> )}
</div> dataSource={hiddenList}
columns={[
{ title: "问题描述", dataIndex: "hiddenDesc" },
{
title: "操作",
width: 120,
render: (_, record, index) => (
<Space>
<Button
type="link"
onClick={async () => {
if (record.hiddenId) {
getCurrentHiddenInfo(record.id, record.hiddenId);
}
else {
setCurrentHiddenInfo({ ...record });
}
setHiddenDiscovererUserList(getHiddenDiscovererUserList());
currentHiddenIndex.current = index;
setHiddenAddModalOpen(true);
}}
>
编辑
</Button>
<Button
type="link"
danger
onClick={() => {
Modal.confirm({
title: "提示",
content: "确定删除该隐患吗?",
onOk: async () => {
if (record.id) {
deleteHiddenIds.current.push(record.id);
}
setHiddenList(hiddenList.filter((_, i) => i !== index));
},
});
}}
>
删除
</Button>
</Space>
),
},
]}
/>
),
},
{ name: ["initiator", "userRemarks"], label: "检查人意见", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 },
{
name: ["initiator", "signature"],
label: "检查人",
span: 24,
required: false,
rules: [{ required: true, message: "请签名" }],
render: (
<Signature
url={signatureFilePath}
onConfirm={(value) => {
const signature = form.getFieldValue(["initiator", "signature"]);
if (query.id && typeof signature === "string") {
form.setFieldValue("deleteSignature", signature);
}
form.setFieldValue(["initiator", "signature"], value.file);
form.setFieldValue(["initiator", "signatureTime"], value.time);
}}
/>
),
},
{ name: ["initiator", "signatureTime"], label: "签字时间", onlyForLabel: true },
{ name: "deleteSignature", label: "删除的签字图片", onlyForLabel: true },
]}
/>
{ {
hiddenAddModalOpen && ( hiddenAddModalOpen && (
<HiddenAddModal <HiddenAddModal
@ -611,7 +608,7 @@ function Add(props) {
/> />
) )
} }
</div> </Page>
); );
} }

View File

@ -4,6 +4,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd"; import { Button, Form, Space } from "antd";
import { useState } from "react"; import { useState } from "react";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -34,7 +35,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={!!props.headerTitle} headerTitle={props.headerTitle}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
@ -140,7 +141,7 @@ function List(props) {
/> />
) )
} }
</div> </Page>
); );
} }

View File

@ -3,6 +3,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd"; import { Button, Form, message, Modal, Space } from "antd";
import { useState } from "react"; import { useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -29,7 +30,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
options={[ options={[
@ -101,7 +102,7 @@ function List(props) {
getData={getData} getData={getData}
/> />
)} )}
</div> </Page>
); );
} }
@ -125,20 +126,21 @@ function VerifyModalComponent(props) {
return ( return (
<Modal <Modal
title="检查核实" title="检查核实"
width={1000} width={600}
open open
maskClosable={false} maskClosable={false}
onCancel={props.onCancel} onCancel={props.onCancel}
onOk={form.submit} onOk={form.submit}
loading={uploadFileLoading || props.inspection.inspectorLoading} confirmLoading={uploadFileLoading || props.inspection.inspectorLoading}
> >
<FormBuilder <FormBuilder
loading={uploadFileLoading || props.inspection.inspectorLoading}
form={form} form={form}
span={24} span={24}
values={{ values={{
status: "1", status: "1",
}} }}
labelCol={{ span: 8 }} labelCol={{ span: 10 }}
showActionButtons={false} showActionButtons={false}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[

View File

@ -4,15 +4,16 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space, Spin } from "antd"; import { Button, Form, message, Modal, Space, Spin } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import ExportIcon from "zy-react-library/components/Icon/ExportIcon"; import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
import useDownloadBlob from "zy-react-library/hooks/useDownloadBlob"; 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 useTable from "zy-react-library/hooks/useTable";
import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
import { getLabelName } from "zy-react-library/utils"; import { getLabelName } from "zy-react-library/utils";
import InspectionFlowModal from "~/components/InspectionFlowModal"; import InspectionFlowModal from "~/components/InspectionFlowModal";
import { INSPECTION_QUESTION_ENUM, INSPECTION_STATE_ENUM, PLAN_ENUM } from "~/enumerate/constant"; import { INSPECTION_QUESTION_ENUM, INSPECTION_STATE_ENUM, PLAN_ENUM } from "~/enumerate/constant";
@ -80,7 +81,7 @@ function List(props) {
}; };
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={!!query.headerTitle} headerTitle={query.headerTitle}>
<Search <Search
labelCol={{ span: 8 }} labelCol={{ span: 8 }}
values={{ values={{
@ -151,7 +152,7 @@ function List(props) {
onClick={async () => { onClick={async () => {
const exportParams = getUrlCriteriaQuery("searchFormKeys", "searchFormValues"); const exportParams = getUrlCriteriaQuery("searchFormKeys", "searchFormValues");
await downloadBlob("/accident/accident/export", { params: { ...exportParams, eqType: props.type } }) await downloadBlob("/accident/accident/export", { params: { ...exportParams, eqType: props.type } });
}} }}
> >
导出 导出
@ -228,7 +229,7 @@ function List(props) {
/> />
) )
} }
</div> </Page>
); );
} }

View File

@ -2,14 +2,13 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Divider, Modal, Space, Spin } from "antd"; import { Button, Descriptions, Divider, Modal, Space, Spin } from "antd";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import { useReactToPrint } from "react-to-print"; import { useReactToPrint } from "react-to-print";
import HeaderBack from "zy-react-library/components/HeaderBack";
import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj"; import HiddenInfo from "zy-react-library/components/HiddenInfo/gwj";
import Page from "zy-react-library/components/Page";
import PreviewImg from "zy-react-library/components/PreviewImg"; import PreviewImg from "zy-react-library/components/PreviewImg";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import useGetFile from "zy-react-library/hooks/useGetFile"; import useGetFile from "zy-react-library/hooks/useGetFile";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo";
import { getFileUrl, getLabelName } from "zy-react-library/utils"; import { getFileUrl, getLabelName } from "zy-react-library/utils";
import HiddenFlowModal from "~/components/HiddenFlowModal"; import HiddenFlowModal from "~/components/HiddenFlowModal";
import { PLAN_ENUM } from "~/enumerate/constant"; import { PLAN_ENUM } from "~/enumerate/constant";
@ -19,7 +18,6 @@ import "./index.less";
function InspectionView(props) { function InspectionView(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const { loading: getFileLoading, getFile } = useGetFile(); const { loading: getFileLoading, getFile } = useGetFile();
const { getUserInfo } = useGetUserInfo();
const [info, setInfo] = useState({ const [info, setInfo] = useState({
inspectedPartyConfirmation: {}, inspectedPartyConfirmation: {},
@ -53,7 +51,6 @@ function InspectionView(props) {
}); });
const getData = async () => { const getData = async () => {
const userInfo = await getUserInfo();
const { data } = await props["inspectionView"]({ inspectionId: query.id }); const { data } = await props["inspectionView"]({ inspectionId: query.id });
for (let i = 0; i < data.content.length; i++) { for (let i = 0; i < data.content.length; i++) {
const files = await getFile({ const files = await getFile({
@ -62,12 +59,12 @@ function InspectionView(props) {
}); });
data.content[i].files = files; data.content[i].files = files;
} }
data.inspector.forEach(item => { data.inspector.forEach((item) => {
setCurrentInspectorDepartmentName(prev => [...prev, item.departmentName || ""]) setCurrentInspectorDepartmentName(prev => [...prev, item.departmentName || ""]);
}) });
data.inspectorVerificationList.forEach(item => { data.inspectorVerificationList.forEach((item) => {
setCurrentInspectorUserName(prev => [...prev, item.userName || ""]) setCurrentInspectorUserName(prev => [...prev, item.userName || ""]);
}) });
setInfo(data); setInfo(data);
const { data: hiddenList } = await props["hiddenList"]({ foreignKey: query.inspectionId, pageIndex: 1, pageSize: 999 }); const { data: hiddenList } = await props["hiddenList"]({ foreignKey: query.inspectionId, pageIndex: 1, pageSize: 999 });
setHiddenList(hiddenList); setHiddenList(hiddenList);
@ -77,10 +74,9 @@ function InspectionView(props) {
}, []); }, []);
return ( return (
<div> <Page headerTitle="查看">
<HeaderBack title="查看" />
<Spin spinning={props.inspection.inspectionLoading || getFileLoading}> <Spin spinning={props.inspection.inspectionLoading || getFileLoading}>
<div style={{ padding: 20, paddingBottom: 0 }} ref={contentRef}> <div ref={contentRef}>
<Divider orientation="left"> <Divider orientation="left">
{info.subject} {info.subject}
现场安全检查记录 现场安全检查记录
@ -127,7 +123,8 @@ function InspectionView(props) {
{ title: "隐患描述", dataIndex: "hiddenDesc" }, { title: "隐患描述", dataIndex: "hiddenDesc" },
{ title: "隐患部位", dataIndex: "hiddenPartName" }, { title: "隐患部位", dataIndex: "hiddenPartName" },
{ {
title: "操作", render: (_, record) => ( title: "操作",
render: (_, record) => (
<Space> <Space>
<Button <Button
type="link" type="link"
@ -149,7 +146,7 @@ function InspectionView(props) {
流程图 流程图
</Button> </Button>
</Space> </Space>
) ),
}, },
]} ]}
/> />
@ -245,7 +242,7 @@ function InspectionView(props) {
}} }}
/> />
)} )}
</div> </Page>
); );
} }

View File

@ -1,15 +1,7 @@
import HeaderBack from "zy-react-library/components/HeaderBack";
import InspectionList from "../../../Inspection/Inspection/List"; import InspectionList from "../../../Inspection/Inspection/List";
function InspectionRecords(props) { function InspectionRecords(props) {
return ( return (<InspectionList updatePermissionKey="inspection-qy-check-edit2" headerTitle="检查记录" {...props} />);
<div>
<HeaderBack title="检查记录" />
<div style={{ paddingBottom: 10 }}>
<InspectionList updatePermissionKey="inspection-qy-check-edit2" {...props} />
</div>
</div>
);
} }
export default InspectionRecords; export default InspectionRecords;

View File

@ -3,6 +3,7 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Modal, Space } from "antd"; import { Button, Form, Modal, Space } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useState } from "react"; import { useState } from "react";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -21,7 +22,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
options={[ options={[
{ {
@ -127,7 +128,7 @@ function List(props) {
/> />
) )
} }
</div> </Page>
); );
} }
@ -144,14 +145,14 @@ const PlanExecutionPersonnelModalComponent = (props) => {
title="计划执行人员" title="计划执行人员"
open open
maskClosable={false} maskClosable={false}
width={1000} width={800}
onCancel={props.onCancel} onCancel={props.onCancel}
footer={[ footer={[
<Button key="cancel" onClick={props.onCancel}>取消</Button>, <Button key="cancel" onClick={props.onCancel}>取消</Button>,
]} ]}
> >
<Search <Search
labelCol={{ span: 6 }} labelCol={{ span: 8 }}
options={[ options={[
{ name: "departmentId", label: "部门", render: <DepartmentSelectTree /> }, { name: "departmentId", label: "部门", render: <DepartmentSelectTree /> },
{ name: "userName", label: "人员" }, { name: "userName", label: "人员" },

View File

@ -5,6 +5,7 @@ import dayjs from "dayjs";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
@ -49,7 +50,7 @@ function List(props) {
}; };
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={!!query.headerTitle} headerTitle={query.headerTitle}>
<Search <Search
options={[ options={[
{ {
@ -208,7 +209,7 @@ function List(props) {
}} }}
/> />
)} )}
</div> </Page>
); );
} }
@ -271,17 +272,18 @@ const AddModalComponent = (props) => {
return ( return (
<Modal <Modal
title={props.id ? "编辑" : "新增"} title={props.id ? "编辑" : "新增"}
width={800} width={600}
open open
maskClosable={false} maskClosable={false}
onOk={form.submit} onOk={form.submit}
onCancel={props.onCancel} onCancel={props.onCancel}
loading={props.plan.planLoading} confirmLoading={props.plan.planLoading}
> >
<FormBuilder <FormBuilder
loading={props.plan.planLoading}
form={form} form={form}
showActionButtons={false} showActionButtons={false}
labelCol={{ span: 8 }} labelCol={{ span: 10 }}
span={24} span={24}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Divider, Space } from "antd"; import { Button, Divider, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -14,53 +14,50 @@ function PersonnelExecutionDetails(props) {
const { tableProps } = useTable(props["inspectionList"], { params: { status: "", entrance: "2", checkUserId: query.userId } }); const { tableProps } = useTable(props["inspectionList"], { params: { status: "", entrance: "2", checkUserId: query.userId } });
return ( return (
<div> <Page headerTitle="计划执行总次数" contentPadding="0 20px 20px 20px">
<HeaderBack title="计划执行总次数" /> <Divider orientation="left">计划信息</Divider>
<div style={{ padding: "0 20px 20px 20px" }}> <ViewInfo id={query.planId} />
<Divider orientation="left">计划信息</Divider> <Divider orientation="left">人员执行详情</Divider>
<ViewInfo id={query.planId} /> <Table
<Divider orientation="left">人员执行详情</Divider> headerTitle={query.userName}
<Table columns={[
headerTitle={query.userName} { title: "检查题目", dataIndex: "subject" },
columns={[ { title: "检查发起人", dataIndex: "inspectionOriginatorUserName" },
{ title: "检查题目", dataIndex: "subject" }, { title: "检查部门", dataIndex: "inspectionDepartmentName" },
{ title: "检查发起人", dataIndex: "inspectionOriginatorUserName" }, { title: "检查人员", dataIndex: "inspectionInspectorUserName" },
{ title: "检查部门", dataIndex: "inspectionDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "检查人员", dataIndex: "inspectionInspectorUserName" }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) },
{ title: "检查类型", dataIndex: "typeName" }, {
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, title: "检查状态",
{ dataIndex: "status",
title: "检查状态", render: (_, record) => (getLabelName({ list: INSPECTION_STATE_ENUM, status: record.status })),
dataIndex: "status", },
render: (_, record) => (getLabelName({ list: INSPECTION_STATE_ENUM, status: record.status })), { title: "发现隐患数", dataIndex: "hiddenNumber" },
}, {
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, title: "操作",
{ fixed: "right",
title: "操作", width: 100,
fixed: "right", render: (_, record) => (
width: 100, <Space>
render: (_, record) => ( <Button
<Space> type="link"
<Button onClick={() => {
type="link" props.history.push(`../../inspectionView?id=${record.id}&inspectionId=${record.inspectionId}`);
onClick={() => { }}
props.history.push(`../../inspectionView?id=${record.id}&inspectionId=${record.inspectionId}`); >
}} 查看
> </Button>
查看 </Space>
</Button> ),
</Space> },
), ]}
}, disabledResizer={true}
]} options={false}
disabledResizer={true} {...tableProps}
options={false} />
{...tableProps} </Page>
/>
</div>
</div>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form } from "antd"; import { Button, Form } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
@ -17,48 +17,45 @@ function PersonnelExecutionRecords(props) {
}); });
return ( return (
<div> <Page headerTitle="人员执行情况" contentPadding="0 20px 20px 20px">
<HeaderBack title="人员执行情况" /> <Search
<div style={{ padding: "0 20px 20px 20px" }}> labelCol={{ span: 4 }}
<Search options={[
labelCol={{ span: 4 }} { name: "departmentId", label: "部门", render: <DepartmentSelectTree /> },
options={[ { name: "userName", label: "人员" },
{ name: "departmentId", label: "部门", render: <DepartmentSelectTree /> }, ]}
{ name: "userName", label: "人员" }, form={form}
]} onFinish={getData}
form={form} />
onFinish={getData} <Table
/> columns={[
<Table { title: "部门", dataIndex: "departmentName" },
columns={[ { title: "岗位", dataIndex: "postName" },
{ title: "部门", dataIndex: "departmentName" }, { title: "姓名", dataIndex: "userName" },
{ title: "岗位", dataIndex: "postName" }, {
{ title: "姓名", dataIndex: "userName" }, title: "计划执行情况",
{ dataIndex: "planExecuteNum",
title: "计划执行情况", render: (_, record) => (`${record.actualExecCount}/${record.planExecuteNum}`),
dataIndex: "planExecuteNum", },
render: (_, record) => (`${record.actualExecCount}/${record.planExecuteNum}`), {
}, title: "操作",
{ fixed: "right",
title: "操作", width: 150,
fixed: "right", render: (_, record) => (
width: 150, <Button
render: (_, record) => ( type="link"
<Button onClick={() => {
type="link" props.history.push(`./personnelExecutionDetails?id=${record.id}&planId=${record.planId}&userId=${record.userId}&userName=${record.userName}`);
onClick={() => { }}
props.history.push(`./personnelExecutionDetails?id=${record.id}&planId=${record.planId}&userId=${record.userId}&userName=${record.userName}`); >
}} 人员执行详情
> </Button>
人员执行详情 ),
</Button> },
), ]}
}, {...tableProps}
]} />
{...tableProps} </Page>
/>
</div>
</div>
); );
} }

View File

@ -1,6 +1,6 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Divider, Space } from "antd"; import { Button, Divider, Space } from "antd";
import HeaderBack from "zy-react-library/components/HeaderBack"; import Page from "zy-react-library/components/Page";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
@ -16,52 +16,49 @@ function PlanExecutionDetails(props) {
}); });
return ( return (
<div> <Page headerTitle="计划执行总次数" contentPadding="0 20px 20px 20px">
<HeaderBack title="计划执行总次数" /> <Divider orientation="left">计划信息</Divider>
<div style={{ padding: "0 20px 20px 20px" }}> <ViewInfo id={query.planId} />
<Divider orientation="left">计划信息</Divider> <Divider orientation="left">计划执行详情</Divider>
<ViewInfo id={query.planId} /> <Table
<Divider orientation="left">计划执行详情</Divider> columns={[
<Table { title: "检查题目", dataIndex: "subject" },
columns={[ { title: "检查发起人", dataIndex: "inspectionOriginatorUserName" },
{ title: "检查题目", dataIndex: "subject" }, { title: "检查部门", dataIndex: "inspectionDepartmentName" },
{ title: "检查发起人", dataIndex: "inspectionOriginatorUserName" }, { title: "检查人员", dataIndex: "inspectionInspectorUserName" },
{ title: "检查部门", dataIndex: "inspectionDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "检查人员", dataIndex: "inspectionInspectorUserName" }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) },
{ title: "检查类型", dataIndex: "typeName" }, {
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, title: "检查状态",
{ dataIndex: "status",
title: "检查状态", render: (_, record) => (getLabelName({ list: INSPECTION_STATE_ENUM, status: record.status })),
dataIndex: "status", },
render: (_, record) => (getLabelName({ list: INSPECTION_STATE_ENUM, status: record.status })), { title: "发现隐患数", dataIndex: "hiddenNumber" },
}, {
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, title: "操作",
{ fixed: "right",
title: "操作", width: 100,
fixed: "right", render: (_, record) => (
width: 100, <Space>
render: (_, record) => ( <Button
<Space> type="link"
<Button onClick={() => {
type="link" props.history.push(`../../inspectionView?id=${record.id}&inspectionId=${record.inspectionId}`);
onClick={() => { }}
props.history.push(`../../inspectionView?id=${record.id}&inspectionId=${record.inspectionId}`); >
}} 查看
> </Button>
查看 </Space>
</Button> ),
</Space> },
), ]}
}, disabledResizer={true}
]} options={false}
disabledResizer={true} {...tableProps}
options={false} />
{...tableProps} </Page>
/>
</div>
</div>
); );
} }

View File

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

View File

@ -1,15 +1,7 @@
import HeaderBack from "zy-react-library/components/HeaderBack";
import InspectionList from "../../../Inspection/Inspection/List"; import InspectionList from "../../../Inspection/Inspection/List";
function InspectionRecords(props) { function InspectionRecords(props) {
return ( return (<InspectionList updatePermissionKey="inspection-jg-check-edit2" headerTitle="检查记录" {...props} />);
<div>
<HeaderBack title="检查记录" />
<div style={{ paddingBottom: 10 }}>
<InspectionList updatePermissionKey="inspection-jg-check-edit2" {...props} />
</div>
</div>
);
} }
export default InspectionRecords; export default InspectionRecords;

View File

@ -1,9 +1,7 @@
import ViewInfoA from "~/pages/Container/BranchCompany/Plan/ViewInfo"; import ViewInfoA from "~/pages/Container/BranchCompany/Plan/ViewInfo";
function ViewInfo(props) { function ViewInfo(props) {
return ( return (<ViewInfoA {...props} />);
<ViewInfoA {...props} />
);
} }
export default ViewInfo; export default ViewInfo;

View File

@ -0,0 +1,7 @@
import RecordsList from "~/pages/Container/Supervision/Inspection/Records/List";
function InspectionRecordsList(props) {
return <RecordsList {...props} />;
}
export default InspectionRecordsList;

View File

@ -1,6 +1,7 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form } from "antd"; import { Button, Form } from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
@ -39,7 +40,7 @@ function List(props) {
}); });
return ( return (
<div style={{ padding: 20 }}> <Page isShowAllAction={false}>
<Search <Search
values={{ dateType: "1" }} values={{ dateType: "1" }}
options={[ options={[
@ -71,7 +72,7 @@ function List(props) {
type="link" type="link"
onClick={() => { onClick={() => {
const dates = getDate(); const dates = getDate();
props.history.push(`../plan/management/list?corpId=${record.corpId}&startTime=${dates.startTime}&endTime=${dates.endTime}&entrance=statistics`); props.history.push(`./planList?corpId=${record.corpId}&startTime=${dates.startTime}&endTime=${dates.endTime}&entrance=statistics&headerTitle=计划总数`);
}} }}
> >
{record.planTotal} {record.planTotal}
@ -86,7 +87,7 @@ function List(props) {
type="link" type="link"
onClick={() => { onClick={() => {
const dates = getDate(); const dates = getDate();
props.history.push(`../plan/management/list?corpId=${record.corpId}&startTime=${dates.startTime}&endTime=${dates.endTime}&entrance=statistics&completedOnly=1`); props.history.push(`./planList?corpId=${record.corpId}&startTime=${dates.startTime}&endTime=${dates.endTime}&entrance=statistics&completedOnly=1&headerTitle=已完成计划数`);
}} }}
> >
{record.completedPlanCount} {record.completedPlanCount}
@ -106,7 +107,7 @@ function List(props) {
type="link" type="link"
onClick={() => { onClick={() => {
const dates = getDate(); const dates = getDate();
props.history.push(`../inspection/records/list?corpId=${record.corpId}&checkStartTime=${dates.startTime}&checkEndTime=${dates.endTime}&entrance=statistics`); props.history.push(`./inspectionRecordsList?corpId=${record.corpId}&checkStartTime=${dates.startTime}&checkEndTime=${dates.endTime}&entrance=statistics&headerTitle=检查总数`);
}} }}
> >
{record.inspectionTotal} {record.inspectionTotal}
@ -121,7 +122,7 @@ function List(props) {
type="link" type="link"
onClick={() => { onClick={() => {
const dates = getDate(); const dates = getDate();
props.history.push(`../inspection/records/list?corpId=${record.corpId}&checkStartTime=${dates.startTime}&checkEndTime=${dates.endTime}&entrance=statistics&planType=1`); props.history.push(`./inspectionRecordsList?corpId=${record.corpId}&checkStartTime=${dates.startTime}&checkEndTime=${dates.endTime}&entrance=statistics&planType=1&headerTitle=计划内检查数`);
}} }}
> >
{record.planInCount} {record.planInCount}
@ -136,7 +137,7 @@ function List(props) {
type="link" type="link"
onClick={() => { onClick={() => {
const dates = getDate(); const dates = getDate();
props.history.push(`../inspection/records/list?corpId=${record.corpId}&checkStartTime=${dates.startTime}&checkEndTime=${dates.endTime}&entrance=statistics&planType=0`); props.history.push(`./inspectionRecordsList?corpId=${record.corpId}&checkStartTime=${dates.startTime}&checkEndTime=${dates.endTime}&entrance=statistics&planType=0&headerTitle=计划外检查数`);
}} }}
> >
{record.planOutCount} {record.planOutCount}
@ -148,7 +149,7 @@ function List(props) {
]} ]}
{...tableProps} {...tableProps}
/> />
</div> </Page>
); );
} }

View File

@ -0,0 +1,7 @@
import ManagementList from "~/pages/Container/Supervision/Plan/Management/List";
function PlanList(props) {
return <ManagementList {...props} />;
}
export default PlanList;