-
环保管理任务清单
-
此页面用于展示和管理环保相关的任务清单
- {/* 这里可以添加具体的任务清单表格和功能 */}
+
+
+
+
2) 环保管理任务清单
+
依据排污许可证副本中的环保要求,提供生成环保管理要求任务清单;
+
环保任务清单包括:大气排放口信息,大气污染物有组织排放许可年限值,大气污染物无组织排放年限制、企业大气排放总许可量;废水排放口、废水污染物排放许可限制;固体废物排放信息、自行贮存和自行利用/处置设施信息;工业噪声排放信息;
+
环境管理要求包括:自行检测及记录表、环境管理台账记录。
+
+
+
+
+ 共85条
+
+
+
+
+
+
+ ...
+
+
+
+
+
+ ...
+
+
+
+
);
diff --git a/src/pages/business_envInformation/module/secondary_menu/EnvironmentalTaskList.less b/src/pages/business_envInformation/module/secondary_menu/EnvironmentalTaskList.less
index f51b9bd..c9f43c6 100644
--- a/src/pages/business_envInformation/module/secondary_menu/EnvironmentalTaskList.less
+++ b/src/pages/business_envInformation/module/secondary_menu/EnvironmentalTaskList.less
@@ -1,26 +1,105 @@
-.container {
+.environmentalTaskListContainer {
width: 100%;
- height: 100%;
+ height: 72vh;
+ display: flex;
+ flex-direction: column;
+ background-color: #fff;
+ position: relative;
+}
+
+.environmentalTaskListContent {
+ flex: 1;
display: flex;
align-items: center;
justify-content: center;
- background-color: #fff;
- padding: 20px;
-
- .content {
- text-align: center;
-
- h2 {
- font-size: 24px;
- color: #333;
- margin-bottom: 16px;
- font-weight: 500;
- }
-
- p {
- font-size: 16px;
- color: #666;
- margin: 0;
- }
+ padding: 0px 20px;
+}
+
+.environmentalTaskListText {
+ max-width: 800px;
+ text-align: left;
+ line-height: 1.6;
+
+ h2 {
+ font-size: 20px;
+ color: #333;
+ margin-bottom: 20px;
+ font-weight: 600;
+ }
+
+ p {
+ font-size: 16px;
+ color: #333;
+ margin-bottom: 15px;
+ text-indent: 2em;
+ }
+}
+
+.environmentalTaskListPagination {
+ position: absolute;
+ bottom: 20px;
+ right: 20px;
+ display: flex;
+ align-items: center;
+ gap: 20px;
+ background: #fff;
+ padding: 10px 20px;
+ border-radius: 4px;
+ // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+}
+
+.paginationInfo {
+ font-size: 14px;
+ color: #666;
+}
+
+.paginationControls {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.pageSizeSelect {
+ padding: 4px 8px;
+ border: 1px solid #d9d9d9;
+ border-radius: 4px;
+ font-size: 12px;
+ background: #fff;
+}
+
+.pageNumbers {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+
+.pageButton, .pageNumber {
+ padding: 4px 8px;
+ border: 1px solid #d9d9d9;
+ background: #fff;
+ border-radius: 4px;
+ font-size: 12px;
+ cursor: pointer;
+ min-width: 32px;
+ height: 32px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ &:hover {
+ border-color: #1890ff;
+ color: #1890ff;
}
}
+
+.pageNumber.active {
+ background: #1890ff;
+ color: #fff;
+ border-color: #1890ff;
+}
+
+.pageEllipsis {
+ padding: 4px 8px;
+ font-size: 12px;
+ color: #666;
+}
diff --git a/src/pages/business_envInformation/module/secondary_menu/PermitStatistics.js b/src/pages/business_envInformation/module/secondary_menu/PermitStatistics.js
index 94a4739..fec1778 100644
--- a/src/pages/business_envInformation/module/secondary_menu/PermitStatistics.js
+++ b/src/pages/business_envInformation/module/secondary_menu/PermitStatistics.js
@@ -3,13 +3,24 @@ import { Form, Input, Button, DatePicker, Space, Modal, Select } from 'antd';
import { SearchOutlined, RedoOutlined, CloseOutlined, EyeOutlined, DeleteOutlined, PlusOutlined, UploadOutlined, EditOutlined, DownloadOutlined } from '@ant-design/icons';
import StandardTable from '@/components/StandardTable';
import styles from './PermitStatistics.less';
-import licence1 from '@/assets/business_envinformation/licence1.svg';
-import licence2 from '@/assets/business_envinformation/licence2.svg';
+import licence1 from '@/assets/business_envinformation/image1.svg';
+import licence2 from '@/assets/business_envinformation/image2.svg';
+import viewicon from '@/assets/business_envinformation/viewicon.svg';
+import editicon from '@/assets/business_envinformation/editicon.svg';
+import downloadicon from '@/assets/business_envinformation/downloadicon.svg';
+import deleteicon from '@/assets/business_envinformation/deleteicon.svg';
+
+
const PermitStatistics = () => {
const [form] = Form.useForm();
const [isModalVisible, setIsModalVisible] = useState(false);
const [currentImage, setCurrentImage] = useState(null);
+ const [pagination, setPagination] = useState({
+ current: 1,
+ pageSize: 10,
+ total: 14,
+ });
const [dataSource, setDataSource] = useState([
{
key: 1,
@@ -121,6 +132,50 @@ const PermitStatistics = () => {
original: '附件',
duplicate: '附件',
},
+ {
+ key: 11,
+ administrativeRegion: '深圳市',
+ permitNumber: '755123456',
+ industryCategory: '计算机科学与技术',
+ companyName: '深圳创新科技有限公司',
+ validityPeriod: '3年',
+ issueDate: '2025-09-01',
+ original: '附件',
+ duplicate: '附件',
+ },
+ {
+ key: 12,
+ administrativeRegion: '杭州市',
+ permitNumber: '571789012',
+ industryCategory: '电子商务',
+ companyName: '杭州数字贸易有限公司',
+ validityPeriod: '4年',
+ issueDate: '2025-09-05',
+ original: '附件',
+ duplicate: '附件',
+ },
+ {
+ key: 13,
+ administrativeRegion: '成都市',
+ permitNumber: '028345678',
+ industryCategory: '生物技术',
+ companyName: '成都生物科技股份有限公司',
+ validityPeriod: '5年',
+ issueDate: '2025-09-10',
+ original: '附件',
+ duplicate: '附件',
+ },
+ {
+ key: 14,
+ administrativeRegion: '武汉市',
+ permitNumber: '027456789',
+ industryCategory: '机械工程',
+ companyName: '武汉智能制造有限公司',
+ validityPeriod: '3年',
+ issueDate: '2025-09-15',
+ original: '附件',
+ duplicate: '附件',
+ },
]);
const columns = [
@@ -192,20 +247,28 @@ const PermitStatistics = () => {
align: 'center',
render: (_, record) => (
- handleView(record)}
/>
- handleEdit(record)}
/>
- handleDownload(record)}
/>
- handleDelete(record)}
/>
@@ -233,6 +296,11 @@ const PermitStatistics = () => {
// TODO: 实现编辑功能
};
+ const handleDownload = (record) => {
+ console.log('下载:', record);
+ // TODO: 实现下载功能
+ };
+
const handleDelete = (record) => {
console.log('删除:', record);
// TODO: 实现删除功能
@@ -253,6 +321,17 @@ const PermitStatistics = () => {
// TODO: 实现查询功能
};
+ const handleTableChange = (pagination) => {
+ setPagination(pagination);
+ };
+
+ const getCurrentPageData = () => {
+ const { current, pageSize } = pagination;
+ const start = (current - 1) * pageSize;
+ const end = start + pageSize;
+ return dataSource.slice(start, end);
+ };
+
return (
{/* 第一块:操作按钮和筛选条件 */}
@@ -308,14 +387,15 @@ const PermitStatistics = () => {
`共 ${total} 条`,
+ showSizeChanger: false,
}
}}
+ onChange={handleTableChange}
/>
diff --git a/src/pages/business_envInformation/module/secondary_menu/ProtectionFacilityMaintenance.js b/src/pages/business_envInformation/module/secondary_menu/ProtectionFacilityMaintenance.js
new file mode 100644
index 0000000..cc30a94
--- /dev/null
+++ b/src/pages/business_envInformation/module/secondary_menu/ProtectionFacilityMaintenance.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import { Button } from 'antd';
+import styles from './ProtectionFacilityMaintenance.less';
+
+const ProtectionFacilityMaintenance = () => {
+ return (
+
+ );
+};
+
+export default ProtectionFacilityMaintenance;
diff --git a/src/pages/business_envInformation/module/secondary_menu/ProtectionFacilityMaintenance.less b/src/pages/business_envInformation/module/secondary_menu/ProtectionFacilityMaintenance.less
new file mode 100644
index 0000000..d8128d4
--- /dev/null
+++ b/src/pages/business_envInformation/module/secondary_menu/ProtectionFacilityMaintenance.less
@@ -0,0 +1,49 @@
+.protectionFacilityMaintenance {
+ width: 100%;
+ height: 100%;
+ background-color: #fff;
+ padding: 20px;
+
+ .header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 20px;
+ padding-bottom: 15px;
+ border-bottom: 1px solid #e8e8e8;
+
+ .title {
+ font-size: 18px;
+ font-weight: 600;
+ color: #333;
+ }
+
+ .actions {
+ display: flex;
+ gap: 12px;
+ align-items: center;
+ }
+ }
+
+ .content {
+ .placeholder {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ height: 300px;
+ color: #666;
+ font-size: 16px;
+ }
+
+ .button {
+ margin-bottom: 20px;
+ }
+
+ .status {
+ font-size: 16px;
+ color: #666;
+ text-align: center;
+ }
+ }
+}
diff --git a/src/pages/business_envInformation/module/secondary_menu/WasteGasPollutionControl.js b/src/pages/business_envInformation/module/secondary_menu/WasteGasPollutionControl.js
new file mode 100644
index 0000000..4c3e1cb
--- /dev/null
+++ b/src/pages/business_envInformation/module/secondary_menu/WasteGasPollutionControl.js
@@ -0,0 +1,802 @@
+import React, { useState } from 'react';
+import { Form, Input, Button, DatePicker, Space, Modal, Select } from 'antd';
+import { SearchOutlined, RedoOutlined, CloseOutlined, EyeOutlined, DeleteOutlined, PlusOutlined, UploadOutlined, EditOutlined, DownloadOutlined } from '@ant-design/icons';
+import StandardTable from '@/components/StandardTable';
+import styles from './WasteGasPollutionControl.less';
+import licence1 from '@/assets/business_envinformation/image1.svg';
+import licence2 from '@/assets/business_envinformation/image2.svg';
+import viewicon from '@/assets/business_envinformation/viewicon.svg';
+import editicon from '@/assets/business_envinformation/editicon.svg';
+import downloadicon from '@/assets/business_envinformation/downloadicon.svg';
+import deleteicon from '@/assets/business_envinformation/deleteicon.svg';
+
+const WasteGasPollutionControl = () => {
+ const [form] = Form.useForm();
+ const [isModalVisible, setIsModalVisible] = useState(false);
+ const [currentImage, setCurrentImage] = useState(null);
+ const [pagination, setPagination] = useState({
+ current: 1,
+ pageSize: 10,
+ total: 12,
+ });
+ const [selectedRowKeys, setSelectedRowKeys] = useState([]);
+ const [dataSource, setDataSource] = useState([
+ {
+ key: 1,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 2,
+ recordTime: '2025-09-02',
+ recorder: '王嘉琪',
+ reviewer: '赵子能',
+ facilityName: '复方水杨酸甲酯乳膏(曼秀雷敦)',
+ code: '65.177.48.116',
+ equipmentModel: '3D8d4ffa-bD7e-AffF-ED68-839DAFe74c27',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '14:10',
+ endRunTime: '03:06',
+ isNormal: '异常',
+ pollutantFlueGasVolume: '2',
+ pollutantFactor: '烟尘2',
+ treatmentEfficiency: '93.81',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '59.12',
+ pressure: '95',
+ emissionTime: '100',
+ powerConsumption: '34',
+ byproductName: '二氧化碳',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-08-24 05:16',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 3,
+ recordTime: '2025-09-06',
+ recorder: '王嘉琪',
+ reviewer: '郑清予',
+ facilityName: '口炎清颗粒(大神)',
+ code: '111.161.135.125',
+ equipmentModel: '19b89E82-ae94-6bF7-2355-8DBC2d6a6009',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '12:26',
+ endRunTime: '03:26',
+ isNormal: '异常',
+ pollutantFlueGasVolume: '2',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '91.40',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '59.95',
+ pressure: '90',
+ emissionTime: '95',
+ powerConsumption: '55',
+ byproductName: '二氧化碳',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-08-30 18:34',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 4,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 5,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 6,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 7,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 8,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 9,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 10,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 11,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ {
+ key: 12,
+ recordTime: '2025-08-29',
+ recorder: '赵喜行',
+ reviewer: '郑叶飞',
+ facilityName: '塞隆风湿酒(同仁堂)',
+ code: '35.236.217.212',
+ equipmentModel: '6Ddb888D-3d7A-305E-3372-109F7154Ad3A',
+ parameterName: '重量',
+ designValue: '2',
+ unit: 't',
+ startRunTime: '00:46',
+ endRunTime: '03:55',
+ isNormal: '正常',
+ pollutantFlueGasVolume: '1',
+ pollutantFactor: '烟尘',
+ treatmentEfficiency: '95.32',
+ dataSource: '实时采集',
+ exhaustStackHeight: '2',
+ exhaustTemperature: '50.48',
+ pressure: '100',
+ emissionTime: '115',
+ powerConsumption: '39',
+ byproductName: '氮气',
+ byproductProduction: '2',
+ reagentName: '乳酸钠葡萄糖',
+ reagentAdditionTime: '2025-09-01 07:53',
+ reagentAdditionAmount: '2',
+ },
+ ]);
+
+ const getCurrentPageData = () => {
+ const { current, pageSize } = pagination;
+ const start = (current - 1) * pageSize;
+ const end = start + pageSize;
+ return dataSource.slice(start, end);
+ };
+
+ const columns = [
+ {
+ title: (
+
0}
+ onChange={(e) => handleSelectAll(e.target.checked)}
+ />
+ ),
+ key: 'selection',
+ width: 60,
+ align: 'center',
+ fixed: 'left',
+ render: (_, record) => (
+
{
+ if (e.target.checked) {
+ setSelectedRowKeys([...selectedRowKeys, record.key]);
+ } else {
+ setSelectedRowKeys(selectedRowKeys.filter(key => key !== record.key));
+ }
+ }}
+ />
+ ),
+ },
+ {
+ title: '记录时间',
+ dataIndex: 'recordTime',
+ key: 'recordTime',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '记录人',
+ dataIndex: 'recorder',
+ key: 'recorder',
+ width: 100,
+ align: 'center',
+ },
+ {
+ title: '审核人',
+ dataIndex: 'reviewer',
+ key: 'reviewer',
+ width: 100,
+ align: 'center',
+ },
+ {
+ title: '设施名称',
+ dataIndex: 'facilityName',
+ key: 'facilityName',
+ width: 200,
+ },
+ {
+ title: '编码',
+ dataIndex: 'code',
+ key: 'code',
+ width: 150,
+ },
+ {
+ title: '设备型号',
+ dataIndex: 'equipmentModel',
+ key: 'equipmentModel',
+ width: 200,
+ },
+ {
+ title: '参数名称',
+ dataIndex: 'parameterName',
+ key: 'parameterName',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '设计值',
+ dataIndex: 'designValue',
+ key: 'designValue',
+ width: 100,
+ align: 'center',
+ },
+ {
+ title: '单位',
+ dataIndex: 'unit',
+ key: 'unit',
+ width: 80,
+ align: 'center',
+ },
+ {
+ title: '开始运行时间',
+ dataIndex: 'startRunTime',
+ key: 'startRunTime',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '结束运行时间',
+ dataIndex: 'endRunTime',
+ key: 'endRunTime',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '是否正常',
+ dataIndex: 'isNormal',
+ key: 'isNormal',
+ width: 100,
+ align: 'center',
+ render: (text) => (
+
+ {text}
+
+ ),
+ },
+ {
+ title: '污染物烟气量(m³/h)',
+ dataIndex: 'pollutantFlueGasVolume',
+ key: 'pollutantFlueGasVolume',
+ width: 150,
+ align: 'center',
+ },
+ {
+ title: '污染因子',
+ dataIndex: 'pollutantFactor',
+ key: 'pollutantFactor',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '治理效率(%)',
+ dataIndex: 'treatmentEfficiency',
+ key: 'treatmentEfficiency',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '数据来源',
+ dataIndex: 'dataSource',
+ key: 'dataSource',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '排气筒高度(m)',
+ dataIndex: 'exhaustStackHeight',
+ key: 'exhaustStackHeight',
+ width: 130,
+ align: 'center',
+ },
+ {
+ title: '排气温度(℃)',
+ dataIndex: 'exhaustTemperature',
+ key: 'exhaustTemperature',
+ width: 130,
+ align: 'center',
+ },
+ {
+ title: '压力(kpa)',
+ dataIndex: 'pressure',
+ key: 'pressure',
+ width: 100,
+ align: 'center',
+ },
+ {
+ title: '排放时间(h)',
+ dataIndex: 'emissionTime',
+ key: 'emissionTime',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '耗电量(kWh)',
+ dataIndex: 'powerConsumption',
+ key: 'powerConsumption',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '副产物名称',
+ dataIndex: 'byproductName',
+ key: 'byproductName',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '副产物产生量(t)',
+ dataIndex: 'byproductProduction',
+ key: 'byproductProduction',
+ width: 140,
+ align: 'center',
+ },
+ {
+ title: '药剂名称',
+ dataIndex: 'reagentName',
+ key: 'reagentName',
+ width: 120,
+ align: 'center',
+ },
+ {
+ title: '药剂添加时间',
+ dataIndex: 'reagentAdditionTime',
+ key: 'reagentAdditionTime',
+ width: 150,
+ align: 'center',
+ },
+ {
+ title: '药剂添加量(t)',
+ dataIndex: 'reagentAdditionAmount',
+ key: 'reagentAdditionAmount',
+ width: 140,
+ align: 'center',
+ },
+ {
+ title: '操作',
+ key: 'action',
+ width: 140,
+ align: 'center',
+ fixed: 'right',
+ render: (_, record) => (
+
+
handleView(record)}
+ />
+
handleEdit(record)}
+ />
+
handleDownload(record)}
+ />
+
handleDelete(record)}
+ />
+
+ ),
+ },
+ ];
+
+ const handleSearch = (values) => {
+ console.log('搜索参数:', values);
+ // TODO: 实现搜索功能
+ };
+
+ const handleReset = () => {
+ form.resetFields();
+ // TODO: 重置搜索
+ };
+
+ const handleView = (record) => {
+ console.log('查看:', record);
+ // TODO: 实现查看功能
+ };
+
+ const handleEdit = (record) => {
+ console.log('编辑:', record);
+ // TODO: 实现编辑功能
+ };
+
+ const handleDownload = (record) => {
+ console.log('下载:', record);
+ // TODO: 实现下载功能
+ };
+
+ const handleDelete = (record) => {
+ console.log('删除:', record);
+ // TODO: 实现删除功能
+ };
+
+ const handleAdd = () => {
+ console.log('新增');
+ // TODO: 实现新增功能
+ };
+
+ const handleImport = () => {
+ console.log('导入');
+ // TODO: 实现导入功能
+ };
+
+ const handleQuery = () => {
+ console.log('查询');
+ // TODO: 实现查询功能
+ };
+
+ const handleTableChange = (pagination) => {
+ setPagination(pagination);
+ };
+
+ // 全选功能
+ const handleSelectAll = (checked) => {
+ if (checked) {
+ const allKeys = getCurrentPageData().map(item => item.key);
+ setSelectedRowKeys(allKeys);
+ } else {
+ setSelectedRowKeys([]);
+ }
+ };
+
+ // 批量操作
+ const handleBatchOperation = (operation) => {
+ console.log(`批量${operation}:`, selectedRowKeys);
+ // TODO: 实现批量操作功能
+ };
+
+ return (
+
+ {/* 第一块:操作按钮和筛选条件 */}
+
+
+ }
+ onClick={handleAdd}
+ className={styles.addButton}
+ >
+ 新增
+
+ }
+ onClick={handleImport}
+ className={styles.importButton}
+ >
+ 上传
+
+ }
+ onClick={() => handleBatchOperation('下载')}
+ className={styles.importButton}
+ disabled={selectedRowKeys.length === 0}
+ >
+ 批量下载
+
+ {/* */}
+
+
+
+ 筛选条件
+
+
+
+
+
+
+
+
+ {/* 第二块:表格 */}
+
+ `共 ${total} 条`,
+ showSizeChanger: false,
+ }
+ }}
+ onChange={handleTableChange}
+ />
+
+
+ {/* 图片弹窗 */}
+
setIsModalVisible(false)}
+ footer={null}
+ closeIcon={}
+ width="auto"
+ centered
+ styles={{
+ mask: { backgroundColor: '#10101080' },
+ content: { padding: 0, background: 'transparent', boxShadow: 'none' }
+ }}
+ >
+ {currentImage &&
}
+
+
+ );
+};
+
+export default WasteGasPollutionControl;
diff --git a/src/pages/business_envInformation/module/secondary_menu/WasteGasPollutionControl.less b/src/pages/business_envInformation/module/secondary_menu/WasteGasPollutionControl.less
new file mode 100644
index 0000000..0426160
--- /dev/null
+++ b/src/pages/business_envInformation/module/secondary_menu/WasteGasPollutionControl.less
@@ -0,0 +1,238 @@
+.wasteGasContainer {
+ width: 100%;
+ height: 100%;
+ // padding: 20px;
+ background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ margin: 0;
+ padding: 0;
+
+ .searchSection {
+ padding: 20px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 16px;
+
+ .leftButtons {
+ display: flex;
+ gap: 12px;
+
+ .addButton {
+ background-color: #52c41a;
+ border-color: #52c41a;
+ color: white;
+ height: 32px;
+ border-radius: 4px;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ &:hover {
+ background-color: #73d13d;
+ border-color: #73d13d;
+ }
+ }
+
+ .importButton {
+ background-color: white;
+ border-color: #d9d9d9;
+ color: #333;
+ height: 32px;
+ border-radius: 4px;
+
+ &:hover {
+ border-color: #40a9ff;
+ color: #40a9ff;
+ }
+ }
+ }
+
+ .rightControls {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+
+ .filterLabel {
+ color: #333;
+ font-size: 14px;
+ white-space: nowrap;
+ }
+
+ .queryButton {
+ background-color: #52c41a;
+ border-color: #52c41a;
+ color: white;
+ height: 28px;
+ border-radius: 4px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ &:hover {
+ background-color: #73d13d;
+ border-color: #73d13d;
+ }
+ }
+
+ .selectInput {
+ :global {
+ .ant-select-selector {
+ display: flex;
+ align-items: center;
+ height: 28px !important;
+ }
+
+ .ant-select-selection-item {
+ display: flex;
+ align-items: center;
+ line-height: 1;
+ }
+
+ .ant-select-selection-placeholder {
+ display: flex;
+ align-items: center;
+ line-height: 1;
+ }
+ }
+ }
+ }
+ }
+
+ .tableSection {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+ padding: 0 20px 0;
+
+ // 添加水平滚动条
+ overflow-x: auto;
+ overflow-y: hidden;
+ min-width: 0; // 确保可以收缩
+
+
+ :global {
+ .ant-spin-nested-loading {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+
+ .ant-spin-container {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+
+ .ant-table-wrapper {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+ overflow-x: auto; // 添加水平滚动
+
+ .ant-table {
+ flex: 1;
+ overflow: visible; // 改为visible让滚动条显示
+ margin: 0;
+ min-width: 3000px; // 增加最小宽度确保所有列都能显示
+
+ .ant-table-container {
+ overflow-x: auto;
+ min-width: 3000px;
+ }
+
+ .ant-table-content {
+ overflow-x: auto;
+ min-width: 3000px;
+ }
+
+ .ant-table-body {
+ overflow-x: auto;
+ min-width: 3000px;
+ }
+ }
+
+ .ant-table-pagination {
+ flex-shrink: 0;
+
+ }
+ }
+ }
+ }
+
+ .ant-table {
+ font-size: 12px;
+
+ .ant-table-thead > tr > th {
+ background-color: #fafafa;
+ font-weight: 400;
+ color: #000000D9;
+ border-right: none;
+ text-align: center;
+ white-space: nowrap; // 防止换行
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .ant-table-tbody > tr > td {
+ border-right: none;
+ color: #000000D9;
+ font-weight: 400;
+ text-align: center;
+ white-space: nowrap; // 防止换行
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .ant-table-tbody > tr:hover > td {
+ background-color: #f5f5f5;
+ }
+
+ // 固定列样式
+ .ant-table-thead > tr > th.ant-table-cell-fix-left,
+ .ant-table-tbody > tr > td.ant-table-cell-fix-left {
+ background-color: #fafafa;
+ z-index: 1;
+ }
+
+ .ant-table-thead > tr > th.ant-table-cell-fix-right,
+ .ant-table-tbody > tr > td.ant-table-cell-fix-right {
+ background-color: #fafafa;
+ z-index: 1;
+ }
+
+ // 固定列阴影效果
+ .ant-table-cell-fix-left {
+ box-shadow: 0px 0 4px 0px #00000040;
+ }
+
+ .ant-table-cell-fix-right {
+ box-shadow: 0px 0 4px 0px #00000040;
+ }
+
+ a {
+ color: #1890ff;
+ text-decoration: none;
+
+ &:hover {
+ color: #40a9ff;
+ }
+ }
+ }
+
+ .ant-pagination {
+ text-align: right;
+ margin-top: 25px !important;
+ }
+ }
+ }
+}
diff --git a/src/pages/business_envInformation/module/secondary_menu/WastewaterFacilityManagement.js b/src/pages/business_envInformation/module/secondary_menu/WastewaterFacilityManagement.js
new file mode 100644
index 0000000..a4d4558
--- /dev/null
+++ b/src/pages/business_envInformation/module/secondary_menu/WastewaterFacilityManagement.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import { Button } from 'antd';
+import styles from './WastewaterFacilityManagement.less';
+
+const WastewaterFacilityManagement = () => {
+ return (
+
+ );
+};
+
+export default WastewaterFacilityManagement;
diff --git a/src/pages/business_envInformation/module/secondary_menu/WastewaterFacilityManagement.less b/src/pages/business_envInformation/module/secondary_menu/WastewaterFacilityManagement.less
new file mode 100644
index 0000000..df76901
--- /dev/null
+++ b/src/pages/business_envInformation/module/secondary_menu/WastewaterFacilityManagement.less
@@ -0,0 +1,49 @@
+.wastewaterFacilityManagement {
+ width: 100%;
+ height: 100%;
+ background-color: #fff;
+ padding: 20px;
+
+ .header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 20px;
+ padding-bottom: 15px;
+ border-bottom: 1px solid #e8e8e8;
+
+ .title {
+ font-size: 18px;
+ font-weight: 600;
+ color: #333;
+ }
+
+ .actions {
+ display: flex;
+ gap: 12px;
+ align-items: center;
+ }
+ }
+
+ .content {
+ .placeholder {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ height: 300px;
+ color: #666;
+ font-size: 16px;
+ }
+
+ .button {
+ margin-bottom: 20px;
+ }
+
+ .status {
+ font-size: 16px;
+ color: #666;
+ text-align: center;
+ }
+ }
+}