From b923b35d1450dbdfd9cd8c3f720c2f6ecf6f7061 Mon Sep 17 00:00:00 2001 From: wangyunfei <1224056307@qq,com> Date: Thu, 23 Oct 2025 17:53:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=BA=94=E6=80=A5=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/yjzygl/iconsc.svg | 4 + .../EmergencyResource.js | 47 +- .../EmergencyResource.less | 1 + .../components/AtmospherePollutantLibrary.js | 513 --------- .../AtmospherePollutantLibrary.less | 218 ---- .../components/ComplianceManagement.js | 62 - .../components/ComplianceManagement.less | 85 -- .../components/EmergencyResource.less | 2 + .../EnvironmentalPersonnelManagement.js | 1025 ----------------- .../EnvironmentalPersonnelManagement.less | 536 --------- .../components/EquipmentManagement.js | 58 - .../components/EquipmentManagement.less | 119 -- .../components/EvaluationReport.js | 57 - .../components/EvaluationReport.less | 119 -- .../components/OnlineMonitoring.js | 716 ------------ .../components/OnlineMonitoring.less | 919 --------------- .../components/PollutionSourceManagement.js | 656 ----------- .../components/PollutionSourceManagement.less | 590 ---------- .../DischargePermitManagement.js | 345 ------ .../DischargePermitManagement.less | 160 --- .../secondary_menu/EnvironmentalTaskList.js | 42 - .../secondary_menu/EnvironmentalTaskList.less | 105 -- .../secondary_menu/InformationDisclosure.js | 13 - .../secondary_menu/InformationDisclosure.less | 15 - .../secondary_menu/PermitManagement.js | 286 ----- .../secondary_menu/PermitManagement.less | 137 --- .../secondary_menu/PermitStatistics.js | 421 ------- .../secondary_menu/PermitStatistics.less | 187 --- .../ProtectionFacilityMaintenance.js | 578 ---------- .../ProtectionFacilityMaintenance.less | 205 ---- .../secondary_menu/RegulationCompliance.js | 592 ---------- .../secondary_menu/RegulationCompliance.less | 204 ---- .../secondary_menu/SupervisionInspection.js | 13 - .../secondary_menu/SupervisionInspection.less | 15 - .../WasteGasPollutionControl.js | 803 ------------- .../WasteGasPollutionControl.less | 205 ---- .../WastewaterFacilityManagement.js | 746 ------------ .../WastewaterFacilityManagement.less | 206 ---- .../components/secondary_menu/yjdw.js | 280 ++++- .../components/secondary_menu/yjdw.less | 138 ++- .../components/secondary_menu/yjssd.js | 280 ++++- .../components/secondary_menu/yjssd.less | 138 ++- .../components/secondary_menu/yjwz.js | 280 ++++- .../components/secondary_menu/yjwz.less | 140 ++- .../components/secondary_menu/yjxf.js | 280 ++++- .../components/secondary_menu/yjxf.less | 138 ++- .../components/secondary_menu/yjxfd.js | 286 +++++ .../components/secondary_menu/yjxfd.less | 122 ++ .../components/secondary_menu/yjzbry.js | 9 +- .../components/secondary_menu/yjzbry.less | 32 + .../components/secondary_menu/yjzj.js | 280 ++++- .../components/secondary_menu/yjzj.less | 138 ++- .../components/secondary_menu/zbhy.js | 280 ++++- .../components/secondary_menu/zbhy.less | 138 ++- 54 files changed, 2911 insertions(+), 11053 deletions(-) create mode 100644 src/assets/yjzygl/iconsc.svg delete mode 100644 src/pages/business_emergencyResource/components/AtmospherePollutantLibrary.js delete mode 100644 src/pages/business_emergencyResource/components/AtmospherePollutantLibrary.less delete mode 100644 src/pages/business_emergencyResource/components/ComplianceManagement.js delete mode 100644 src/pages/business_emergencyResource/components/ComplianceManagement.less delete mode 100644 src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.js delete mode 100644 src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.less delete mode 100644 src/pages/business_emergencyResource/components/EquipmentManagement.js delete mode 100644 src/pages/business_emergencyResource/components/EquipmentManagement.less delete mode 100644 src/pages/business_emergencyResource/components/EvaluationReport.js delete mode 100644 src/pages/business_emergencyResource/components/EvaluationReport.less delete mode 100644 src/pages/business_emergencyResource/components/OnlineMonitoring.js delete mode 100644 src/pages/business_emergencyResource/components/OnlineMonitoring.less delete mode 100644 src/pages/business_emergencyResource/components/PollutionSourceManagement.js delete mode 100644 src/pages/business_emergencyResource/components/PollutionSourceManagement.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.less delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.js delete mode 100644 src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.less create mode 100644 src/pages/business_emergencyResource/components/secondary_menu/yjxfd.js create mode 100644 src/pages/business_emergencyResource/components/secondary_menu/yjxfd.less diff --git a/src/assets/yjzygl/iconsc.svg b/src/assets/yjzygl/iconsc.svg new file mode 100644 index 0000000..4687031 --- /dev/null +++ b/src/assets/yjzygl/iconsc.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/pages/business_emergencyResource/EmergencyResource.js b/src/pages/business_emergencyResource/EmergencyResource.js index 6e4f908..6b0f7bb 100644 --- a/src/pages/business_emergencyResource/EmergencyResource.js +++ b/src/pages/business_emergencyResource/EmergencyResource.js @@ -1,12 +1,6 @@ import React, { useState } from 'react'; import { Card, Row, Col, Statistic, Progress, Button, Space } from 'antd'; import styles from './EmergencyResource.less'; -import ComplianceManagement from './components/ComplianceManagement'; //合规性管理 -import OnlineMonitoring from './components/OnlineMonitoring'; //在线监测预警 -import EnvironmentalPersonnelManagement from './components/EnvironmentalPersonnelManagement'; //环保人员管理 -import EvaluationReport from './components/EvaluationReport'; //评估报告 -import EquipmentManagement from './components/EquipmentManagement'; //环保设备设施管理 -import PollutionSourceManagement from './components/PollutionSourceManagement'; //污染源管理 import EmergencyMap from './components/EmergencyMap'; //应急一张图 import EmergencyResource from './components/EmergencyResource'; //应急资源 import EmergencyRescue from './components/EmergencyRescue'; //应急处置救援 @@ -14,7 +8,7 @@ import EmergencyRescue from './components/EmergencyRescue'; //应急处置救援 const SafeMajorHazardList = () => { - const [activeModule, setActiveModule] = useState('organization'); + const [activeModule, setActiveModule] = useState('emergencyMap'); const handleModuleClick = (module) => { setActiveModule(module) @@ -23,18 +17,6 @@ const SafeMajorHazardList = () => { const renderModule = () => { switch (activeModule) { - case 'organization': - return ; - case 'equipment': - return ; - case 'firefighting': - return ; - case 'other': - return ; - case 'equipmentManagement': - return ; - case 'pollutionSource': - return ; case 'emergencyMap': return ; case 'emergencyResource': @@ -42,7 +24,7 @@ const SafeMajorHazardList = () => { case 'emergencyRescue': return ; default: - return ; + return ; } }; @@ -50,31 +32,6 @@ const SafeMajorHazardList = () => { return (
- - - - - - -
-
- - {/* 第二块:表格 */} -
- `共 ${total} 条`, - showSizeChanger: false, - } - }} - onChange={handleTableChange} - // scroll={{ x: 3000}} - /> -
- - {/* 图片弹窗 */} - setIsModalVisible(false)} - footer={null} - closeIcon={} - width="auto" - centered - styles={{ - mask: { backgroundColor: '#10101080' }, - content: { padding: 0, background: 'transparent', boxShadow: 'none' } - }} - > - {currentImage && 许可证} - - - ); -}; - -export default AtmospherePollutantLibrary; diff --git a/src/pages/business_emergencyResource/components/AtmospherePollutantLibrary.less b/src/pages/business_emergencyResource/components/AtmospherePollutantLibrary.less deleted file mode 100644 index d1550dc..0000000 --- a/src/pages/business_emergencyResource/components/AtmospherePollutantLibrary.less +++ /dev/null @@ -1,218 +0,0 @@ -.atmospherePollutantLibrary { - width: 100%; - height: 100%; - // padding: 20px; - // background-color: #fff; - display: flex; - flex-direction: column; - margin: 0; - padding: 0; - - .pageHeader { - margin-bottom: 15px; - background: #fff; - padding: 15px 15px 15px 20px; - border-radius: 2px; - color: #333333; - font-size: 16px; - font-weight: 500; - } - - .searchSection { - background: #fff; - padding: 20px; - display: flex; - justify-content: space-between; - align-items: center; - - .leftButtons { - display: flex; - gap: 12px; - - .addButton { - background-color: #00D48A; - color: #fff; - height: 28px; - border-radius: 4px; - display: flex; - align-items: center; - gap: 4px; - - &:hover { - background-color: #00D48A; - border-color: #00D48A; - } - } - - .importButton { - display: flex; - align-items: center; - background-color: #fff; - border-color: #D7D7D7; - color: #333; - height: 28px; - 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; - padding: 0 25px 0; - background-color: #fff; - overflow: 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; - } - } - } - - .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: 70px !important; - } - } - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/ComplianceManagement.js b/src/pages/business_emergencyResource/components/ComplianceManagement.js deleted file mode 100644 index e44970b..0000000 --- a/src/pages/business_emergencyResource/components/ComplianceManagement.js +++ /dev/null @@ -1,62 +0,0 @@ -import React, { useState } from 'react'; -import styles from './ComplianceManagement.less'; -import PermitManagement from './secondary_menu/PermitManagement'; // 排污许可 -import RegulationCompliance from './secondary_menu/RegulationCompliance'; // 法规符合性 -import SupervisionInspection from './secondary_menu/SupervisionInspection'; // 监督检查 -import InformationDisclosure from './secondary_menu/InformationDisclosure'; // 信息公开及绿色通道 - -const ComplianceManagement = () => { - const [activeMenu, setActiveMenu] = useState('permit'); - - const menuItems = [ - { key: 'permit', label: '排污许可' }, - { key: 'regulation', label: '法规符合性' }, - { key: 'inspection', label: '监督检查' }, - { key: 'disclosure', label: '信息公开及绿色通道' } - ]; - - const handleMenuClick = (key) => { - setActiveMenu(key); - }; - - const renderContent = () => { - switch (activeMenu) { - case 'permit': - return ; - case 'regulation': - return ; - case 'inspection': - return ; - case 'disclosure': - return ; - default: - return ; - } - }; - - return ( -
- {/* 左侧菜单 */} -
- {menuItems.map(item => ( -
handleMenuClick(item.key)} - > - {activeMenu === item.key &&
} - {item.label} -
- ))} -
- - {/* 右侧内容区 */} -
- {renderContent()} -
-
- ); -}; - -export default ComplianceManagement; - diff --git a/src/pages/business_emergencyResource/components/ComplianceManagement.less b/src/pages/business_emergencyResource/components/ComplianceManagement.less deleted file mode 100644 index b58637a..0000000 --- a/src/pages/business_emergencyResource/components/ComplianceManagement.less +++ /dev/null @@ -1,85 +0,0 @@ -.container { - width: 100%; - height: 100%; - display: flex; - gap: 10px; - padding-left: 5px; - // padding-right: 5px; - padding-top: 10px; - padding-bottom: 10px; - background-color: #f5f5f5; - - // 左侧菜单 - .leftMenu { - display: flex; - flex-direction: column; - // gap: 1px; - flex-shrink: 0; - background-color: #fff; - - .menuItem { - width: 180px; - height: 50px; - background-color: #FFFFFF; - border-radius: 4px; - display: flex; - align-items: center; - position: relative; - cursor: pointer; - transition: all 0.3s ease; - padding-left: 20px; - - .menuText { - font-size: 14px; - color: #999999; - font-weight: 400; - transition: color 0.3s ease; - } - - // 激活状态的指示器(左侧长条) - .activeIndicator { - position: absolute; - left: 3px; - width: 17.34765625px; - height: 1.97802734375px; - border-radius: 6px; - background-color: #009D6F; - transform: rotate(-90deg); - } - - // 激活状态样式 - &.active { - background-color: #D4FFEC; - - .menuText { - color: #009D6F; - } - } - - // 鼠标悬停效果 - &:hover:not(.active) { - background-color: #f9f9f9; - } - } - } - - // 右侧内容区 - .rightContent { - flex: 1; - // background-color: #FFFFFF; - border-radius: 4px; - // padding: 20px; - overflow: auto; - - .contentPlaceholder { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - font-size: 18px; - color: #666666; - } - } -} - diff --git a/src/pages/business_emergencyResource/components/EmergencyResource.less b/src/pages/business_emergencyResource/components/EmergencyResource.less index 7c83a57..d64cace 100644 --- a/src/pages/business_emergencyResource/components/EmergencyResource.less +++ b/src/pages/business_emergencyResource/components/EmergencyResource.less @@ -39,4 +39,6 @@ .contentArea { flex: 1; background-color: #EBF0FE; + margin-left: 5px; + // margin-top: 10px; } \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.js b/src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.js deleted file mode 100644 index 805e60e..0000000 --- a/src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.js +++ /dev/null @@ -1,1025 +0,0 @@ - -import React, { useState, useEffect } from 'react'; -import moment from 'moment'; -import { Card, Result, Select, Button, Drawer, Upload, Input, Modal, Form, DatePicker, Row, Col } from 'antd'; -import { CheckCircleOutlined, ExportOutlined, PlusOutlined, UploadOutlined, UserOutlined } from '@ant-design/icons'; -import StandardTable from '@/components/StandardTable'; -import styles from './EnvironmentalPersonnelManagement.less'; -// import './EnvironmentalPersonnelManagement.less'; - -import img1 from '@/assets/safe_majorHazard/online_monitoring/img1.png'; -import img2 from '@/assets/safe_majorHazard/online_monitoring/img2.png'; -import img3 from '@/assets/safe_majorHazard/online_monitoring/img3.png'; -import map1 from '@/assets/safe_majorHazard/online_monitoring/map.png'; -import risk1 from '@/assets/safe_majorHazard/online_monitoring/risk1.png'; -import risk2 from '@/assets/safe_majorHazard/online_monitoring/risk2.png'; -import risk3 from '@/assets/safe_majorHazard/online_monitoring/risk3.png'; -// import eqicon1 from '@/assets/business_basic/eqicon1.png'; -// import eqicon2 from '@/assets/business_basic/eqicon2.png'; -// import eqicon3 from '@/assets/business_basic/eqicon3.png'; -// import eqicon4 from '@/assets/business_basic/eqicon4.png'; -import viewIcon from '@/assets/business_envinformation/viewicon.svg'; -import editIcon from '@/assets/business_envinformation/editicon.svg'; -import deleteIcon from '@/assets/business_envinformation/deleteicon.svg'; -import personnelIcon from '@/assets/business_envinformation/personnel.svg'; - - - - - -const EnvironmentalPersonnelManagement = () => { - const [selectedRowKeys, setSelectedRowKeys] = useState([]); - const [selectedRows, setSelectedRows] = useState([]); - const [loading, setLoading] = useState(false); - const [dataSource, setDataSource] = useState([]); - const [pagination, setPagination] = useState({ - current: 1, - pageSize: 10, - total: 0, - }); - const [drawerVisible, setDrawerVisible] = useState(false); - const [selectedRecord, setSelectedRecord] = useState(null); - const [modalVisible, setModalVisible] = useState(false); - const [form] = Form.useForm(); - const [editDrawerVisible, setEditDrawerVisible] = useState(false); - const [editForm] = Form.useForm(); - - - - - // 表格列定义 - const columns = [ - { - title: '序号', - dataIndex: 'id', - key: 'id', - width: 80, - render: (text, record, index) => { - const page = pagination.current || 1; - const pageSize = pagination.pageSize || 10; - const number = (page - 1) * pageSize + index + 1; - return number; - } - }, - { - title: '姓名', - dataIndex: 'name', - key: 'name', - width: 120, - }, - { - title: '部门', - dataIndex: 'department', - key: 'department', - width: 120, - filters: [ - { text: '环保管理', value: '环保管理' }, - { text: '技术部', value: '技术部' }, - { text: '生产部', value: '生产部' }, - { text: '质量部', value: '质量部' }, - ], - onFilter: (value, record) => record.department === value, - }, - { - title: '岗位', - dataIndex: 'position', - key: 'position', - width: 120, - filters: [ - { text: '污水化验', value: '污水化验' }, - { text: '环境监测', value: '环境监测' }, - { text: '环保工程师', value: '环保工程师' }, - { text: '安全员', value: '安全员' }, - { text: '技术员', value: '技术员' }, - ], - onFilter: (value, record) => record.position === value, - }, - { - title: '入职时间', - dataIndex: 'joinDate', - key: 'joinDate', - width: 120, - sorter: (a, b) => { - // 将日期字符串转换为Date对象进行比较 - const dateA = new Date(a.joinDate); - const dateB = new Date(b.joinDate); - return dateA - dateB; - }, - }, - { - title: '岗位职责', - dataIndex: 'responsibility', - key: 'responsibility', - width: 200, - }, - { - title: '联系方式', - dataIndex: 'contact', - key: 'contact', - width: 150, - }, - { - title: '操作', - key: 'action', - width: 180, - render: (_, record) => ( -
- 查看 handleView(record)} - /> - 编辑 handleEdit(record)} - /> - 删除 -
- ), - }, - ]; - - // 模拟数据 - const mockData = [ - { - key: '1', - id: '001', - name: '吴振峰', - department: '环保管理', - position: '污水运行', - joinDate: '2025-09-02', - responsibility: '保障污水设备运行、处理故障', - contact: '13321493732', - employeeId: '434545', - gender: '男', - birthDate: '2025-08-08', - idCard: '340802199809050811', - address: '西辛南区46号楼2单元101室', - other: '暂无' - }, - { - key: '2', - id: '002', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138002', - }, - { - key: '3', - id: '003', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138003', - }, - { - key: '4', - id: '004', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138004', - }, - { - key: '5', - id: '005', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138005', - }, - { - key: '6', - id: '006', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138006', - }, - { - key: '7', - id: '007', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138007', - }, - { - key: '8', - id: '008', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138008', - }, - { - key: '9', - id: '009', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138009', - }, - { - key: '10', - id: '010', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138010', - }, - { - key: '11', - id: '011', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138011', - }, - { - key: '12', - id: '012', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138012', - }, - { - key: '13', - id: '013', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138013', - }, - { - key: '14', - id: '014', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138014', - }, - { - key: '15', - id: '015', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138015', - }, - { - key: '16', - id: '016', - name: '张一龙', - department: '环保管理', - position: '污水化验', - joinDate: '2025-08-25', - responsibility: '定期采样分析', - contact: '13800138016', - }, - ]; - - // 初始化数据 - useEffect(() => { - setPagination(prev => ({ ...prev, total: mockData.length })); - }, []); - - // 根据分页获取当前页数据 - const getCurrentPageData = () => { - const { current, pageSize } = pagination; - const startIndex = (current - 1) * pageSize; - const endIndex = startIndex + pageSize; - return mockData.slice(startIndex, endIndex); - }; - - // 表格选择变化 - const onSelectChange = (newSelectedRowKeys, newSelectedRows) => { - setSelectedRowKeys(newSelectedRowKeys); - setSelectedRows(newSelectedRows); - }; - - // 新增设备按钮点击事件 - const handleAddDevice = () => { - console.log('新增设备'); - // TODO: 实现新增设备逻辑 - }; - - // 导出数据按钮点击事件 - const handleExportData = () => { - console.log('导出数据'); - // TODO: 实现导出数据逻辑 - }; - - // 分页变化处理 - const handleTableChange = (pagination) => { - setPagination(prev => ({ - ...prev, - current: pagination.current, - pageSize: pagination.pageSize, - })); - }; - - // 查看详情 - const handleView = (record) => { - setSelectedRecord(record); - setDrawerVisible(true); - }; - - // 关闭抽屉 - const handleCloseDrawer = () => { - setDrawerVisible(false); - setSelectedRecord(null); - }; - - // 打开新增模态框 - const handleOpenModal = () => { - setModalVisible(true); - }; - - // 关闭新增模态框 - const handleCloseModal = () => { - setModalVisible(false); - form.resetFields(); - }; - - // 保存新增数据 - const handleSave = () => { - form.validateFields().then(values => { - console.log('新增数据:', values); - // TODO: 实现保存逻辑 - setModalVisible(false); - form.resetFields(); - }).catch(error => { - console.log('表单验证失败:', error); - }); - }; - - // 打开编辑抽屉 - const handleEdit = (record) => { - console.log('点击编辑按钮,记录:', record); - setSelectedRecord(record); - setEditDrawerVisible(true); - console.log('设置编辑抽屉可见:', true); - // 设置表单初始值 - editForm.setFieldsValue({ - name: record.name, - employeeId: record.employeeId, - department: record.department, - position: record.position, - gender: record.gender, - address: record.address, - birthDate: record.birthDate ? moment(record.birthDate) : null, - joinDate: record.joinDate ? moment(record.joinDate) : null, - idCard: record.idCard, - contact: record.contact, - responsibility: record.responsibility, - other: record.other - }); - }; - - // 关闭编辑抽屉 - const handleCloseEditDrawer = () => { - setEditDrawerVisible(false); - setSelectedRecord(null); - editForm.resetFields(); - }; - - // 保存编辑数据 - const handleEditSave = () => { - editForm.validateFields().then(values => { - console.log('编辑数据:', values); - // TODO: 实现保存逻辑 - setEditDrawerVisible(false); - editForm.resetFields(); - }).catch(error => { - console.log('表单验证失败:', error); - }); - }; - - return ( -
- {/* 第一个div - 高度20% */} -
-
-
- {/* 块1 */} -
-
-
环保总人数
-
258
-
截止到 2025-09-11 07:35
-
-
- - {/* 块2 */} -
-
-
管理岗人数
-
58
-
截止到 2025-09-11 07:35
-
-
- - {/* 块3 */} -
-
-
污水运行人数
-
51
-
截止到 2025-09-11 07:35
-
-
- - {/* 块4 */} -
-
-
污水化验人数
-
28
-
截止到 2025-09-11 07:35
-
-
- - {/* 块5 */} -
-
-
危废管理人员
-
50
-
截止到 2025-09-11 07:35
-
-
- - {/* 块6 */} -
-
-
一般固体废物管理人员
-
58
-
截止到 2025-09-11 07:35
-
-
- -
-
-
- - - - {/* 第三个div - 占满剩余位置 */} -
-
- {/* 第一行 - 表单控件 */} -
- - -
- 筛选条件 - - - -
-
- - {/* 第二行 - 表格 */} -
- - `共 ${total} 条`, - }} - /> -
-
-
- - {/* 侧边抽屉 */} - 查看} - placement="right" - onClose={handleCloseDrawer} - open={drawerVisible} - width={600} - closable={false} - bodyStyle={{ fontSize: '12px' }} - > - {selectedRecord && ( -
- {/* 姓名和头像区域 */} -
-
-

- {selectedRecord.name} -

- - {/* 基本信息 - 两列布局 */} -
-
-
- 工号: - {selectedRecord.employeeId} -
-
- 部门: - {selectedRecord.department} -
-
- 岗位: - {selectedRecord.position} -
-
- 性别: - {selectedRecord.gender} -
-
- 住址: - {selectedRecord.address} -
-
- -
-
- 出生日期: - {selectedRecord.birthDate} -
-
- 入职时间: - {selectedRecord.joinDate} -
-
- 身份证号: - {selectedRecord.idCard} -
-
- 联系方式: - {selectedRecord.contact} -
-
-
-
- - {/* 头像上传区域 */} -
-
- personnel -
-
上传
-
-
- - {/* 岗位职责 */} -
-
- 岗位职责 -
- -
- - {/* 其他 */} -
-
- 其他 -
- -
-
- )} -
- - {/* 新增模态框 */} - - 取消 - , - - ]} - closable={true} - > -
- {/* 第一行:姓名 + 出生日期 */} -
-
- 姓名 - - - -
-
- 出生日期 - - - -
-
- - {/* 第二行:工号 + 入职时间 */} -
-
- 工号 - - - -
-
- 入职时间 - - - -
-
- - {/* 第三行:部门 + 身份证号 */} -
-
- 部门 - - - -
-
- 身份证号 - - - -
-
- - {/* 第四行:岗位 + 联系方式 */} -
-
- 岗位 - - - -
-
- 联系方式 - - - -
-
- - {/* 第五行:性别 + 照片 */} -
-
- 性别 - - - -
-
- 照片 - -
-
- - {/* 第六行:住址 */} -
- 住址 - - - -
- - {/* 岗位职责 */} - 岗位职责} - name="responsibility" - rules={[{ required: true, message: '请输入岗位职责' }]} - > - - - - {/* 其他 */} - 其他} - name="other" - > - - -
-
- - {/* 编辑抽屉 */} - 编辑} - placement="right" - onClose={handleCloseEditDrawer} - open={editDrawerVisible} - width={600} - closable={false} - destroyOnClose={true} - bodyStyle={{ fontSize: '12px' }} - footer={[ - , - - ]} - > - {selectedRecord && ( -
- {/* 姓名和头像区域 */} -
-
-

- {selectedRecord.name} -

- - {/* 基本信息 - 两列布局 */} -
-
-
- 工号: - {selectedRecord.employeeId} -
-
- 部门: - {selectedRecord.department} -
-
- 岗位: - {selectedRecord.position} -
-
- 性别: - {selectedRecord.gender} -
-
- 住址: - {selectedRecord.address} -
-
- -
-
- 出生日期: - {selectedRecord.birthDate} -
-
- 入职时间: - {selectedRecord.joinDate} -
-
- 身份证号: - {selectedRecord.idCard} -
-
- 联系方式: - {selectedRecord.contact} -
-
-
-
- - {/* 头像上传区域 */} -
-
- personnel -
-
上传
-
-
- - {/* 岗位职责 */} -
-
- 岗位职责 -
- -
- - {/* 其他 */} -
-
- 其他 -
- -
-
- )} -
-
- ); -}; - -export default EnvironmentalPersonnelManagement; diff --git a/src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.less b/src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.less deleted file mode 100644 index 744c04b..0000000 --- a/src/pages/business_emergencyResource/components/EnvironmentalPersonnelManagement.less +++ /dev/null @@ -1,536 +0,0 @@ - - - -// 表单输入框样式 -.formInput { - :global(.ant-input) { - color: #333333 !important; - font-size: 12px !important; - } - - :global(.ant-select-selector) { - color: #333333 !important; - font-size: 12px !important; - } - - :global(.ant-picker-input input) { - color: #333333 !important; - font-size: 12px !important; - } -} - - -.Rcontainer { - padding: 8px 6px 0px 6px; - height: 100%; - display: flex; - flex-direction: column; - gap: 10px; - - // 第一个div - 高度20% - .RcontainerTop { - height: 18%; - // background-color: #fff; - border-radius: 4px; - display: flex; - flex-direction: column; - - .sectionContent { - height: 100%; - display: flex; - flex-direction: column; - // padding: 15px; - - .blocksContainer { - flex: 1; - display: flex; - gap: 10px; - height: 100%; - - .blockItem { - flex: 1; - height: 100%; - display: flex; - // background: linear-gradient(170.5deg, #F5F7FF 6.87%, #FFFFFF 47.65%); - border-radius: 4px; - // border: 2px solid #FFFFFF; - - // 块1 - 蓝色渐变 + SVG背景 - &.block1 { - background: - url('@/assets/business_envinformation/background1.svg'), - - linear-gradient(180deg, #DBEBFF 0%, #DBEBFF 12.5%, rgba(255, 255, 255, 0.700824) 56%, rgba(255, 255, 255, 0.01) 100%), - linear-gradient(0deg, #FFFFFF, #FFFFFF); - // linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)); - background-size: 100% 100%; - background-repeat: no-repeat; - background-position: center; - } - - // 块2 - 黄色渐变 - &.block2 { - background: - url('@/assets/business_envinformation/background2.svg'), - linear-gradient(180deg, #FFFEDB 0%, #F5FFDB 19.23%, #FFFFFF 55.77%, #FFFFFF 100%); - background-size: 100% 100%; - background-repeat: no-repeat; - background-position: center; - } - - // 块3 - 绿色渐变 - &.block3 { - background: - url('@/assets/business_envinformation/background3.svg'), - linear-gradient(180deg, #8CFFCD 0%, #C0FFE4 12.5%, #FFFFFF 56%, #FFFFFF 100%); - background-size: 100% 100%; - background-repeat: no-repeat; - background-position: center; - } - - // 块4 - 青色渐变 - &.block4 { - background: - url('@/assets/business_envinformation/background4.svg'), - linear-gradient(180deg, #C5FFFC 0%, #C0FFFC 12.5%, #FFFFFF 56%, #FFFFFF 100%); - background-size: 100% 100%; - background-repeat: no-repeat; - background-position: center; - } - - // 块5 - 红色渐变 - &.block5 { - background: - url('@/assets/business_envinformation/background5.svg'), - linear-gradient(180deg, #FFD2D2 0%, #FFD9D9 12.5%, #FFFFFF 56%, #FFFFFF 100%); - background-size: 100% 100%; - background-repeat: no-repeat; - background-position: center; - } - - // 块6 - 紫色渐变 - &.block6 { - background: - url('@/assets/business_envinformation/background6.svg'), - linear-gradient(180deg, #F2D7FF 0%, #F4DDFF 12.5%, #FFFFFF 56%, #FFFFFF 100%); - background-size: 100% 100%; - background-repeat: no-repeat; - background-position: center; - } - - .blockLeft { - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - justify-content: center; - padding: 15px; - padding-left: 20px; - gap: 8px; - - .blockTitle { - font-family: PingFang SC; - font-weight: 400; - font-size: 12px; - color: #333333; - line-height: 1.2; - } - - .blockNumber { - font-family: PingFang SC; - font-weight: 700; - font-size: 24px; - color: #333333; - line-height: 1.2; - - // 特定数字颜色 - &.number258 { - color: #0080FF; - } - - &.number58 { - color: #EFB700; - } - - &.number51 { - color: #00DA86; - } - - &.number28 { - color: #00DA86; - } - - &.number50 { - color: #FD0404; - } - - &.number58Second { - color: #A318E4; - } - } - - .blockTime { - font-family: PingFang SC; - font-weight: 400; - font-size: 10px; - color: #999999; - line-height: 1.2; - } - - .blockChange { - font-family: PingFang SC; - font-weight: 400; - font-size: 12px; - color: #1269FF; - line-height: 1.2; - display: flex; - align-items: center; - gap: 4px; - - .arrow { - font-size: 14px; - font-weight: bold; - } - - .checkIcon { - font-size: 16px; - color: #1269FF; - } - } - } - - .blockRight { - flex: 1; - height: 100%; - background-color: transparent; - border-radius: 0 4px 4px 0; - display: flex; - align-items: center; - justify-content: center; - - .blockImage { - // width: 80%; - height: 65%; - // height: 80%; - object-fit: contain; - margin-right: -5px; - } - } - } - } - } - } - - - // 第三个div - 占满剩余位置 - .RcontainerBottom { - flex: 1; // 占满剩余空间 - display: flex; - flex-direction: column; - background-color: #fff; - padding: 15px; - - .sectionContent { - height: 100%; - display: flex; - flex-direction: column; - gap: 15px; - - // 第一行 - 表单控件 - .formRow { - display: flex; - align-items: center; - gap: 15px; - flex-shrink: 0; - - .addButton { - display: flex; - align-items: center; - gap: 4px; - height: 28px; - border: 1px solid #00D48A; - border-radius: 2px; - color: #fff; - font-weight: 400; - font-size: 12px; - padding: 0 10px; - background: #00D48A; - cursor: pointer; - transition: all 0.2s ease; - - &:hover { - background-color: #00B875; - border-color: #00B875; - } - - .buttonIcon { - font-size: 16px; - font-weight: bold; - } - } - - .rightControls { - display: flex; - align-items: center; - gap: 15px; - margin-left: auto; - - .filterLabel { - font-size: 13px; - color: #333333; - white-space: nowrap; - } - - // Select组件样式 - :global(.ant-select) { - font-size: 12px; - height: 28px !important; - } - - :global(.ant-select .ant-select-selector) { - height: 28px !important; - font-size: 12px; - border-radius: 2px !important; - display: flex !important; - align-items: center !important; - padding: 0 11px !important; - } - - :global(.ant-select .ant-select-selection-item) { - line-height: 1.5714285714285714; - font-size: 12px; - } - - :global(.ant-select .ant-select-selection-placeholder) { - line-height: 1.5714285714285714; - font-size: 12px; - color: #00000040 !important; - } - - .searchInput { - width: 150px; - height: 28px; - border: 1px solid #d9d9d9; - border-radius: 2px; - padding: 0 12px; - font-size: 12px; - - &:focus { - border-color: #2E4CD4; - outline: none; - } - - &::placeholder { - color: #00000040; - } - } - - .queryButton, .resetButton { - height: 28px; - border: 1px solid #d9d9d9; - border-radius: 4px; - padding: 0 16px; - font-size: 12px; - cursor: pointer; - transition: all 0.2s ease; - - &:hover { - border-color: #2E4CD4; - color: #2E4CD4; - } - } - - .queryButton { - background-color: #00D48A; - color: #fff; - border-color: #00D48A; - - &:hover { - background-color: #00B875; - border-color: #00B875; - color: #fff; - } - } - - .resetButton { - background-color: #fff; - color: #666; - - &:hover { - background-color: #f5f5f5; - } - } - } - } - - // 第二行 - 表格 - .tableSection { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - - :global { - .ant-spin-nested-loading { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - - .ant-spin-container { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - - .ant-table-wrapper { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - - .ant-table { - flex: 1; - overflow: auto; - } - - .ant-table-pagination { - flex-shrink: 0; - margin: 16px 0 0 0; - padding: 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; - } - - .ant-table-tbody > tr > td { - border-right: none; - color: #000000D9; - font-weight: 400; - text-align: center; - } - - .ant-table-tbody > tr:hover > td { - background-color: #f5f5f5; - } - - a { - color: #1890ff; - text-decoration: none; - - &:hover { - color: #40a9ff; - } - } - } - - .ant-pagination { - text-align: right; - } - } - } - } - } -} - -// 操作按钮图标样式 -.eye-icon { - width: 20px; - height: 12.5px; - position: relative; - display: inline-block; - - &::before { - content: ''; - position: absolute; - width: 20px; - height: 12.5px; - border: 2px solid #86F278; - border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; - top: 0; - left: 0; - transform: rotate(-180deg); - opacity: 1; - } - - &::after { - content: ''; - position: absolute; - width: 6px; - height: 6px; - background-color: #86F278; - border-radius: 50%; - top: 3.5px; - left: 7px; - transform: rotate(-180deg); - } -} - -.edit-icon { - width: 16px; - height: 16px; - position: relative; - display: inline-block; - - &::before { - content: ''; - position: absolute; - width: 12px; - height: 2px; - background-color: #1890ff; - top: 3px; - left: 2px; - transform: rotate(45deg); - } - - &::after { - content: ''; - position: absolute; - width: 2px; - height: 12px; - background-color: #1890ff; - top: 2px; - left: 7px; - transform: rotate(45deg); - } -} - -.delete-icon { - width: 16px; - height: 16px; - position: relative; - display: inline-block; - - &::before { - content: ''; - position: absolute; - width: 12px; - height: 2px; - background-color: #ff4d4f; - top: 7px; - left: 2px; - transform: rotate(45deg); - } - - &::after { - content: ''; - position: absolute; - width: 12px; - height: 2px; - background-color: #ff4d4f; - top: 7px; - left: 2px; - transform: rotate(-45deg); - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/EquipmentManagement.js b/src/pages/business_emergencyResource/components/EquipmentManagement.js deleted file mode 100644 index fea3dd2..0000000 --- a/src/pages/business_emergencyResource/components/EquipmentManagement.js +++ /dev/null @@ -1,58 +0,0 @@ -import React, { useState } from 'react'; -import { Tabs } from 'antd'; -import styles from './EquipmentManagement.less'; - -// 导入子页面组件 -import WasteGasPollutionControl from './secondary_menu/WasteGasPollutionControl'; -import WastewaterFacilityManagement from './secondary_menu/WastewaterFacilityManagement'; -import ProtectionFacilityMaintenance from './secondary_menu/ProtectionFacilityMaintenance'; - -const EquipmentManagement = () => { - const [activeTab, setActiveTab] = useState('waste-gas-control'); - - // 标签页配置 - const tabItems = [ - { - key: 'waste-gas-control', - label: '废气污染防治信息', - children: - }, - { - key: 'wastewater-facility', - label: '废水设置运行管理', - children: - }, - { - key: 'protection-facility', - label: '防护设施检维修管理', - children: - } - ]; - - // 标签页切换处理 - const handleTabChange = (key) => { - setActiveTab(key); - }; - - return ( -
- -
- ); -}; - -export default EquipmentManagement; - diff --git a/src/pages/business_emergencyResource/components/EquipmentManagement.less b/src/pages/business_emergencyResource/components/EquipmentManagement.less deleted file mode 100644 index e844009..0000000 --- a/src/pages/business_emergencyResource/components/EquipmentManagement.less +++ /dev/null @@ -1,119 +0,0 @@ -.container { - width: 100%; - height: 100%; - padding: 16px; - // background-color: #f5f5f5; - - .tabs { - height: 100%; - background-color: transparent; - border-radius: 8px; - // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - - :global(.ant-tabs-nav) { - margin: 0; - padding: 0 0px; - background-color: transparent; - border-bottom: none; - } - - :global(.ant-tabs-tab) { - padding: 16px 24px !important; - font-size: 14px !important; - font-weight: 400 !important; - color: #AFAFAF !important; - background: transparent !important; - border: none !important; - position: relative; - - &:hover { - color: #AFAFAF !important; - background-color: transparent !important; - } - - &.ant-tabs-tab-active { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - - - } - } - - // 额外的全局样式覆盖,确保优先级足够高 - :global(.ant-tabs-tab.ant-tabs-tab-active) { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - } - - // 更强的选择器优先级 - :global(.ant-tabs .ant-tabs-tab.ant-tabs-tab-active) { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - } - - // 针对可能的嵌套结构 - :global(.ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active) { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - } - - // // 覆盖 Ant Design 5.x 的高优先级样式 - // :global(.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - // color: #009D6F !important; - // text-shadow: none !important; - // } - - // 使用更高优先级的选择器 - :global(.ant-tabs.ant-tabs-top .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - color: #009D6F !important; - text-shadow: none !important; - } - - // 针对 CSS 模块的覆盖 - :global(.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - color: #009D6F !important; - text-shadow: none !important; - } - - // 最高优先级覆盖 - :global(.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - color: #009D6F !important; - text-shadow: none !important; - } - - // 覆盖Ant Design的默认下划线 - :global(.ant-tabs-ink-bar) { - background: none !important; - &::after { - content: ''; - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%) rotate(180deg); - width: 38.36132812500014px; - height: 3.3613271713256965px; - background-color: #009D6F; - opacity: 1; - border-radius: 2px; - z-index: 1; - } - } - - :global(.ant-tabs-content-holder) { - height: calc(100% - 60px); - // padding: 20px; - - .ant-tabs-content { - height: 100%; - - .ant-tabs-tabpane { - height: 100%; - } - } - } - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/EvaluationReport.js b/src/pages/business_emergencyResource/components/EvaluationReport.js deleted file mode 100644 index 3015091..0000000 --- a/src/pages/business_emergencyResource/components/EvaluationReport.js +++ /dev/null @@ -1,57 +0,0 @@ -import React, { useState } from 'react'; -import { Tabs } from 'antd'; -import styles from './EvaluationReport.less'; - -// 导入子页面组件 -import PermitStatistics from './secondary_menu/PermitStatistics'; -import EnvironmentalTaskList from './secondary_menu/EnvironmentalTaskList'; -import DischargePermitManagement from './secondary_menu/DischargePermitManagement'; - -const EvaluationReport = () => { - const [activeTab, setActiveTab] = useState('permit-statistics'); - - // 标签页配置 - const tabItems = [ - { - key: 'permit-statistics', - label: '许可证信息统计表', - children: - }, - { - key: 'environmental-task-list', - label: '环保管理任务清单', - children: - }, - { - key: 'discharge-permit-management', - label: '排污许可执行管理', - children: - } - ]; - - // 标签页切换处理 - const handleTabChange = (key) => { - setActiveTab(key); - }; - - return ( -
- -
- ); -}; - -export default EvaluationReport; diff --git a/src/pages/business_emergencyResource/components/EvaluationReport.less b/src/pages/business_emergencyResource/components/EvaluationReport.less deleted file mode 100644 index e844009..0000000 --- a/src/pages/business_emergencyResource/components/EvaluationReport.less +++ /dev/null @@ -1,119 +0,0 @@ -.container { - width: 100%; - height: 100%; - padding: 16px; - // background-color: #f5f5f5; - - .tabs { - height: 100%; - background-color: transparent; - border-radius: 8px; - // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - - :global(.ant-tabs-nav) { - margin: 0; - padding: 0 0px; - background-color: transparent; - border-bottom: none; - } - - :global(.ant-tabs-tab) { - padding: 16px 24px !important; - font-size: 14px !important; - font-weight: 400 !important; - color: #AFAFAF !important; - background: transparent !important; - border: none !important; - position: relative; - - &:hover { - color: #AFAFAF !important; - background-color: transparent !important; - } - - &.ant-tabs-tab-active { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - - - } - } - - // 额外的全局样式覆盖,确保优先级足够高 - :global(.ant-tabs-tab.ant-tabs-tab-active) { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - } - - // 更强的选择器优先级 - :global(.ant-tabs .ant-tabs-tab.ant-tabs-tab-active) { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - } - - // 针对可能的嵌套结构 - :global(.ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active) { - color: #009D6F !important; - background-color: #fff !important; - border-bottom: none !important; - } - - // // 覆盖 Ant Design 5.x 的高优先级样式 - // :global(.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - // color: #009D6F !important; - // text-shadow: none !important; - // } - - // 使用更高优先级的选择器 - :global(.ant-tabs.ant-tabs-top .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - color: #009D6F !important; - text-shadow: none !important; - } - - // 针对 CSS 模块的覆盖 - :global(.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - color: #009D6F !important; - text-shadow: none !important; - } - - // 最高优先级覆盖 - :global(.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn) { - color: #009D6F !important; - text-shadow: none !important; - } - - // 覆盖Ant Design的默认下划线 - :global(.ant-tabs-ink-bar) { - background: none !important; - &::after { - content: ''; - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%) rotate(180deg); - width: 38.36132812500014px; - height: 3.3613271713256965px; - background-color: #009D6F; - opacity: 1; - border-radius: 2px; - z-index: 1; - } - } - - :global(.ant-tabs-content-holder) { - height: calc(100% - 60px); - // padding: 20px; - - .ant-tabs-content { - height: 100%; - - .ant-tabs-tabpane { - height: 100%; - } - } - } - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/OnlineMonitoring.js b/src/pages/business_emergencyResource/components/OnlineMonitoring.js deleted file mode 100644 index 3e4b6b5..0000000 --- a/src/pages/business_emergencyResource/components/OnlineMonitoring.js +++ /dev/null @@ -1,716 +0,0 @@ - -import React, { useEffect, useRef, useState } from 'react'; -import { Card, Result, Select, Button } from 'antd'; -import * as echarts from 'echarts'; -import StandardTable from '@/components/StandardTable'; -import styles from './OnlineMonitoring.less'; - -import alarm0 from '@/assets/safe_majorHazard/online_monitoring/alarm0.png'; -import alarm1 from '@/assets/safe_majorHazard/online_monitoring/alarm1.png'; -import alarm2 from '@/assets/safe_majorHazard/online_monitoring/alarm2.png'; -import alarm3 from '@/assets/safe_majorHazard/online_monitoring/alarm3.png'; -import exportIcon from '@/assets/safe_majorHazard/online_monitoring/export.png'; -import deleteIcon from '@/assets/safe_majorHazard/online_monitoring/delete.png'; - -const OnlineMonitoring = () => { - const chartRef = useRef(null); - const [selectedRowKeys, setSelectedRowKeys] = useState([]); - const [selectedRows, setSelectedRows] = useState([]); - const [loading, setLoading] = useState(false); - const [dataSource, setDataSource] = useState([]); - const [pagination, setPagination] = useState({ - current: 1, - pageSize: 5, - total: 0, - }); - - useEffect(() => { - if (chartRef.current) { - const chart = echarts.init(chartRef.current); - - const option = { - color: ['#04A7F3', '#E7C42C', '#EC6941'], - - legend: { - data: ['液位', '温度', '压力'], - top: "-3px", - left: "center", - itemGap: 40, // 图例间距 - textStyle: { - fontSize: 10 - } - }, - grid: { - left: '2%', - right: '4%', - bottom: '2%', - top: '12%', - containLabel: true - }, - xAxis: { - type: 'category', - boundaryGap: false, - data: ['0:00', '2:00', '4:00', '6:00', '8:00', '10:00', '12:00', '14:00', '16:00', '18:00', '20:00', '22:00', '24:00'], - axisLabel: { - fontSize: 10 - } - }, - yAxis: { - type: 'value', - min: 0, - max: 500, - axisLabel: { - formatter: '{value}', - fontSize: 10 - } - }, - series: [ - { - name: '液位', - type: 'line', - smooth: true, - lineStyle: { - width: 1.5, - color: '#04A7F3' - }, - areaStyle: { - color: { - type: 'linear', - x: 0, - y: 0, - x2: 0, - y2: 1, - colorStops: [ - { offset: 0, color: 'rgba(4, 167, 243, 0.3)' }, - { offset: 1, color: 'rgba(4, 167, 243, 0)' } - ] - } - }, - symbol: 'none', // 不显示数据点 - data: [120, 200, 150, 300, 250, 400, 350, 280, 320, 180, 220, 160, 140] - }, - { - name: '温度', - type: 'line', - smooth: true, - lineStyle: { - width: 1.5, - color: '#E7C42C' - }, - areaStyle: { - color: { - type: 'linear', - x: 0, - y: 0, - x2: 0, - y2: 1, - colorStops: [ - { offset: 0, color: 'rgba(231, 196, 44, 0.3)' }, - { offset: 1, color: 'rgba(231, 196, 44, 0)' } - ] - } - }, - symbol: 'none', - data: [80, 120, 100, 180, 160, 220, 200, 150, 170, 90, 110, 85, 75] - }, - { - name: '压力', - type: 'line', - smooth: true, - lineStyle: { - width: 1.5, - color: '#EC6941' - }, - areaStyle: { - color: { - type: 'linear', - x: 0, - y: 1, - x2: 0, - y2: 0, - colorStops: [ - { offset: 0, color: 'rgba(236, 105, 65, 0)' }, - { offset: 1, color: 'rgba(236, 105, 65, 0.3)' } - ] - } - }, - symbol: 'none', - data: [200, 300, 250, 450, 400, 430, 480, 420, 480, 280, 320, 260, 240] - } - ] - }; - - chart.setOption(option); - - // 响应式调整 - 使用ResizeObserver监听容器尺寸变化 - let resizeTimer = null; - const handleResize = () => { - // 防抖处理,避免频繁调用resize - if (resizeTimer) { - clearTimeout(resizeTimer); - } - resizeTimer = setTimeout(() => { - chart.resize(); - }, 100); - }; - - // 监听窗口大小变化 - window.addEventListener('resize', handleResize); - - // 监听容器尺寸变化(解决菜单栏伸缩时的自适应问题) - let resizeObserver = null; - if (window.ResizeObserver) { - resizeObserver = new ResizeObserver(() => { - // 使用setTimeout确保DOM更新完成后再调整图表 - setTimeout(() => { - handleResize(); - }, 0); - }); - resizeObserver.observe(chartRef.current); - } - - return () => { - window.removeEventListener('resize', handleResize); - if (resizeObserver) { - resizeObserver.disconnect(); - } - if (resizeTimer) { - clearTimeout(resizeTimer); - } - chart.dispose(); - }; - } - }, []); - - // 表格列定义 - const columns = [ - { - title: '编号', - dataIndex: 'id', - key: 'id', - width: 80, - render: (text, record, index) => { - const page = pagination.current || 1; - const pageSize = pagination.pageSize || 5; - const number = (page - 1) * pageSize + index + 1; - return `0${number}`.slice(-2); - } - }, - { - title: '报警时间', - dataIndex: 'alarmTime', - key: 'alarmTime', - width: 150, - }, - { - title: '报警传感器名称', - dataIndex: 'sensorName', - key: 'sensorName', - width: 150, - }, - { - title: '报警类型', - dataIndex: 'alarmType', - key: 'alarmType', - width: 120, - }, - { - title: '报警内容', - dataIndex: 'alarmContent', - key: 'alarmContent', - width: 200, - }, - { - title: '优先级', - dataIndex: 'priority', - key: 'priority', - width: 80, - render: (text) => { - const colorMap = { - '高': '#FF4D4F', - '中': '#FAAD14', - '低': '#52C41A' - }; - return {text}; - } - }, - { - title: '处理状态', - dataIndex: 'status', - key: 'status', - width: 100, - render: (text) => { - const statusMap = { - '未处理': { color: '#FF4D4F', bg: '#FFF2F0' }, - '处理中': { color: '#FAAD14', bg: '#FFFBE6' }, - '已处理': { color: '#52C41A', bg: '#F6FFED' } - }; - const status = statusMap[text] || { color: '#333', bg: '#F5F5F5' }; - return ( - - {text} - - ); - } - }, - { - title: '处理时间', - dataIndex: 'processTime', - key: 'processTime', - width: 150, - }, - { - title: '处理人', - dataIndex: 'processor', - key: 'processor', - width: 100, - }, - { - title: '操作', - key: 'action', - width: 120, - render: (_, record) => ( -
- -
- ), - }, - ]; - - // 模拟数据 - const mockData = [ - { - key: '1', - id: '001', - alarmTime: '2024-01-15 08:30:25', - sensorName: 'LNG储罐', - alarmType: '温度超限', - alarmContent: '储罐温度超过安全阈值', - priority: '高', - status: '未处理', - processTime: '-', - processor: '-', - }, - { - key: '2', - id: '002', - alarmTime: '2024-01-15 09:15:10', - sensorName: 'LNG储罐', - alarmType: '压力异常', - alarmContent: '管道压力异常波动', - priority: '中', - status: '处理中', - processTime: '2024-01-15 09:20:00', - processor: '张三', - }, - { - key: '3', - id: '003', - alarmTime: '2024-01-15 10:45:30', - sensorName: 'LNG储罐', - alarmType: '液位异常', - alarmContent: '储罐液位低于警戒线', - priority: '高', - status: '已处理', - processTime: '2024-01-15 11:00:15', - processor: '李四', - }, - { - key: '4', - id: '004', - alarmTime: '2024-01-15 11:20:45', - sensorName: 'LNG储罐', - alarmType: '气体泄漏', - alarmContent: '检测到可燃气体泄漏', - priority: '高', - status: '未处理', - processTime: '-', - processor: '-', - }, - { - key: '5', - id: '005', - alarmTime: '2024-01-15 12:10:20', - sensorName: 'LNG储罐', - alarmType: '设备振动', - alarmContent: '设备异常振动', - priority: '低', - status: '已处理', - processTime: '2024-01-15 12:30:00', - processor: '王五', - }, - { - key: '6', - id: '006', - alarmTime: '2024-01-15 13:25:15', - sensorName: 'LNG管道', - alarmType: '流量异常', - alarmContent: '管道流量异常波动', - priority: '中', - status: '未处理', - processTime: '-', - processor: '-', - }, - { - key: '7', - id: '007', - alarmTime: '2024-01-15 14:10:30', - sensorName: 'LNG储罐', - alarmType: '温度异常', - alarmContent: '储罐温度异常升高', - priority: '高', - status: '处理中', - processTime: '2024-01-15 14:15:00', - processor: '赵六', - }, - { - key: '8', - id: '008', - alarmTime: '2024-01-15 15:45:20', - sensorName: 'LNG管道', - alarmType: '压力超限', - alarmContent: '管道压力超过安全阈值', - priority: '高', - status: '已处理', - processTime: '2024-01-15 16:00:00', - processor: '孙七', - }, - { - key: '9', - id: '009', - alarmTime: '2024-01-15 16:30:45', - sensorName: 'LNG储罐', - alarmType: '液位超限', - alarmContent: '储罐液位超过警戒线', - priority: '中', - status: '未处理', - processTime: '-', - processor: '-', - }, - { - key: '10', - id: '010', - alarmTime: '2024-01-15 17:15:10', - sensorName: 'LNG管道', - alarmType: '泄漏检测', - alarmContent: '检测到轻微气体泄漏', - priority: '低', - status: '已处理', - processTime: '2024-01-15 17:30:00', - processor: '周八', - }, - { - key: '11', - id: '011', - alarmTime: '2024-01-15 18:20:35', - sensorName: 'LNG储罐', - alarmType: '设备故障', - alarmContent: '储罐阀门异常关闭', - priority: '高', - status: '处理中', - processTime: '2024-01-15 18:25:00', - processor: '吴九', - }, - { - key: '12', - id: '012', - alarmTime: '2024-01-15 19:05:50', - sensorName: 'LNG管道', - alarmType: '温度异常', - alarmContent: '管道温度异常下降', - priority: '中', - status: '未处理', - processTime: '-', - processor: '-', - }, - ]; - - // 初始化数据 - useEffect(() => { - setPagination(prev => ({ ...prev, total: mockData.length })); - }, []); - - // 根据分页获取当前页数据 - const getCurrentPageData = () => { - const { current, pageSize } = pagination; - const startIndex = (current - 1) * pageSize; - const endIndex = startIndex + pageSize; - return mockData.slice(startIndex, endIndex); - }; - - // 表格选择变化 - const onSelectChange = (newSelectedRowKeys, newSelectedRows) => { - setSelectedRowKeys(newSelectedRowKeys); - setSelectedRows(newSelectedRows); - }; - - // 分页变化处理 - const handleTableChange = (pagination) => { - setPagination(prev => ({ - ...prev, - current: pagination.current, - pageSize: pagination.pageSize, - })); - }; - - // 导出功能 - const handleExport = () => { - console.log('导出数据'); - // 这里可以添加导出逻辑 - }; - - // 批量删除功能 - const handleBatchDelete = () => { - if (selectedRowKeys.length === 0) { - console.log('没有选中任何行'); - // 可以在这里添加提示用户选择行的逻辑 - return; - } - console.log('批量删除', selectedRowKeys); - // 这里可以添加批量删除逻辑 - }; - - return ( -
-
-
-
-
-
- alarm0 -
- -
-
总报警
-
1456
-
-
- 未处理 6 -
-
- 处理中 10 -
-
-
-
-
-
- alarm1 -
-
-
一级报警
-
357
-
-
- 未处理 6 -
-
- 处理中 10 -
-
-
-
-
-
- alarm2 -
-
-
二级报警
-
401
-
-
- 未处理 6 -
-
- 处理中 10 -
-
-
-
-
-
- alarm3 -
-
-
三级报警
-
556
-
-
- 未处理 6 -
-
- 处理中 10 -
-
-
-
-
-
-
-
-
-
预警看板
-
-
-
检测对象
- - - - - - -
-
-
-
- {/*
超标污染物数量
*/} - {chartReady && ( - - )} -
-
62%
-
超标污染物数量
-
-
-
- {/*
超标污染物种类
*/} - {chartReady && ( - - )} -
-
25%
-
超标污染物种类
-
-
-
-
- - {/* 超标排放统计 */} -
-
-
超标排放统计
-
- - -
-
-
- {chartReady && ( - - )} -
-
- - {/* 环境分类卡片 */} -
- -
-
AIR POLLUSION
-
-
-
-
大气环境
-
大气环境
-
-
特征污染物名录库
-
- icon_factory -
-
-
-
WATER POLLUSION
-
-
-
-
水环境
-
水环境
-
-
特征污染物名录库
-
- icon_water -
-
-
-
SOILPOLLUSION
-
-
-
-
土壤及地下水
-
土壤及地下水
-
-
特征污染物名录库
-
- icon_soil - -
-
-
-
- - {/* 污染源管理表格区域 */} -
-
- 污染源管理 -
- - -
-
- - ({ - name: record.name, - }), - }} - pagination={{ - showTotal: (total, range) => `共 ${total} 条`, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: ['5', '10', '20', '50', '100'], - defaultPageSize: 5, - size: 'small', - }} - /> -
-
- ); -}; - -export default PollutionSourceManagement; - diff --git a/src/pages/business_emergencyResource/components/PollutionSourceManagement.less b/src/pages/business_emergencyResource/components/PollutionSourceManagement.less deleted file mode 100644 index 7f48f4c..0000000 --- a/src/pages/business_emergencyResource/components/PollutionSourceManagement.less +++ /dev/null @@ -1,590 +0,0 @@ -.pollutionDashboard { - width: 100%; - min-height: 75vh; - // background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); - padding: 15px; - box-sizing: border-box; - - // 顶部统计区域 - .statsSection { - display: flex; - gap: 15px; - margin-bottom: 15px; - height: 35vh; - align-items: stretch; - - // 污染物排放统计卡片 - .pollutantStatsCard { - width: 37%; - height: 100%; - background: url('@/assets/business_envinformation/background7.svg'), - linear-gradient(180deg, #E2FFF5 0%, rgba(255, 255, 255, 0.6) 51.44%), - linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)); - background-repeat: no-repeat; - border-radius: 2px; - padding: 10px 20px; - display: flex; - flex-direction: column; - - .cardTitle { - background: transparent; - color: #000000; - font-weight: 500; - font-size: 16px; - padding: 0; - margin: 0 0 15px 0; - border: none; - display: flex; - align-items: center; - justify-content: space-between; - } - } - - // 超标排放统计卡片 - .exceedanceStatsCard { - width: 40%; - height: 100%; - background: url('@/assets/business_envinformation/background8.svg'), - linear-gradient(180.21deg, rgba(255, 227, 227, 0.58) 0.18%, #FFFFFF 53.1%), - linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)); - background-repeat: no-repeat; - border-radius: 2px; - padding: 10px 20px; - display: flex; - flex-direction: column; - - .cardTitle { - background: transparent; - color: #000000; - font-weight: 500; - font-size: 16px; - padding: 0; - margin: 0 0 15px 0; - border: none; - display: flex; - align-items: center; - justify-content: space-between; - } - - .filterGroup { - display: flex; - gap: 10px; - } - - .exceedanceTimeFilter, - .exceedanceCategoryFilter { - width: 100px; - flex-shrink: 0; - - :global(.ant-select-selector) { - border-radius: 2px; - border: 1px solid #FFC3C3; - background: #FFDEDEB2; - transition: all 0.3s ease; - } - } - } - - // 卡片头部筛选器 - .cardHeader { - display: flex; - justify-content: space-between; - align-items: center; - gap: 10px; - margin-bottom: 0; - - .cardTitle { - background: transparent; - color: #000000; - font-weight: 500; - font-size: 16px; - padding: 0; - margin: 0; - border: none; - flex-shrink: 0; - } - - .filterGroup { - display: flex; - gap: 10px; - } - - .timeFilter, - .categoryFilter { - width: 100px; - flex-shrink: 0; - - :global(.ant-select-selector) { - border-radius: 2px; - border: 1px solid #73E9C6; - background: #C0FFE9AB; - transition: all 0.3s ease; - } - } - } - - // 图表容器 - .chartsContainer { - display: flex; - gap: 20px; - justify-content: space-between; - background: transparent; - flex: 1; - - .pieChartContainer { - flex: 1; - text-align: center; - position: relative; - background: transparent; - height: 100%; - min-height: 200px; - - .chartTitle { - font-size: 14px; - color: #666; - margin-bottom: 10px; - font-weight: 500; - background: transparent; - } - - .chartCenterContent { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 10; - background: transparent; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - } - - .chartValue { - font-size: 18px; - font-weight: bold; - color: #FF2F2F; - background: transparent; - margin: 0; - line-height: 1; - } - - .chartLabel { - font-size: 12px; - font-weight: 500; - color: #000000; - background: transparent; - margin: 0; - margin-top: 2px; - line-height: 1; - } - } - } - - // 条形图容器 - .barChartContainer { - flex: 1; - margin-top: 10px; - } - - // 环境分类卡片区域 - .environmentalCategories { - flex: 1; // 撑满剩余宽度 - height: 100%; - display: flex; - flex-direction: column; - gap: 15px; - // background-color: pink; - - .categoryCard1 { - flex: 1; - background: linear-gradient(90deg, rgba(27, 201, 181, 0.2) 0%, rgba(58, 255, 216, 0) 100%); - position: relative; - padding: 5px 15px; - - .airPollutionText { - position: absolute; - top: 2px; - left: 12px; - background: linear-gradient(183.17deg, rgba(0, 255, 217, 0.1) 2.62%, rgba(0, 153, 131, 0.1) 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 600; - font-style: normal; - font-size: 22px; - line-height: 22px; - letter-spacing: 0%; - z-index: 1; - pointer-events: none; - } - } - - .categoryCard2 { - flex: 1; - background: linear-gradient(90deg, rgba(36, 149, 255, 0.2) 0%, rgba(85, 164, 255, 0) 100%); - position: relative; - padding: 5px 15px; - - .waterPollutionText { - position: absolute; - top: 2px; - left: 12px; - background: linear-gradient(183.17deg, rgba(0, 170, 255, 0.1) 2.62%, rgba(89, 186, 255, 0.1) 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 600; - font-style: normal; - font-size: 22px; - line-height: 22px; - letter-spacing: 0%; - z-index: 1; - pointer-events: none; - } - } - - .categoryCard3 { - flex: 1; - background: linear-gradient(90deg, rgba(25, 60, 234, 0.2) 0%, rgba(139, 193, 255, 0) 100%); - position: relative; - cursor: pointer; - padding: 5px 15px; - - .soilPollutionText { - position: absolute; - top: 2px; - left: 12px; - background: linear-gradient(183.17deg, rgba(0, 89, 255, 0.1) 2.62%, rgba(89, 117, 255, 0.1) 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 600; - font-style: normal; - font-size: 22px; - line-height: 22px; - letter-spacing: 0%; - z-index: 1; - pointer-events: none; - } - } - - .categoryContent { - display: flex; - justify-content: space-between; - align-items: center; - - .categoryInfo { - flex: 1; - - .titleContainer { - display: flex; - flex-direction: column; - margin-bottom: 5px; - } - - .categoryTitle { - font-size: 16px; - font-weight: 600; - color: #333; - margin-bottom: 0px; - - &.atmosphereGradient { - background: linear-gradient(183.17deg, #0EE5C5 2.62%, #08C2C2 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 700; - font-size: 24px; - line-height: 22px; - letter-spacing: 0%; - margin-top: 10px; - } - - &.atmosphereMirror { - background: linear-gradient(183.17deg, rgba(168, 255, 242, 0) 2.62%, rgba(86, 237, 214, 0) 65.7%, #00D9B9 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 700; - font-size: 24px; - line-height: 22px; - letter-spacing: 0%; - margin-top: 0px; - transform: scaleY(-1); - } - - &.waterGradient { - background: linear-gradient(183.17deg, #40AFFF 2.62%, #00B3FF 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 700; - font-size: 24px; - line-height: 22px; - letter-spacing: 0%; - margin-top: 10px; - } - - &.waterMirror { - background: linear-gradient(183.17deg, rgba(64, 175, 255, 0) 2.62%, rgba(0, 179, 255, 0) 65.7%, #00B3FF 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 700; - font-size: 24px; - line-height: 22px; - letter-spacing: 0%; - margin-top: 0px; - transform: scaleY(-1); - } - - &.soilGradient { - background: linear-gradient(183.17deg, #6E90FF 2.62%, #3D90EF 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 700; - font-size: 24px; - line-height: 22px; - letter-spacing: 0%; - margin-top: 10px; - } - - &.soilMirror { - background: linear-gradient(183.17deg, rgba(110, 144, 255, 0) 2.62%, rgba(61, 144, 239, 0) 65.7%, #3D90EF 132.53%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - font-family: 'Alimama ShuHeiTi', sans-serif; - font-weight: 700; - font-size: 24px; - line-height: 22px; - letter-spacing: 0%; - margin-top: 0px; - transform: scaleY(-1); - } - } - - .categorySubtitle { - font-size: 12px; - color: #666; - - &.pollutantSubtitle { - color: rgba(51, 51, 51, 1); - font-family: 'Alibaba PuHuiTi', sans-serif; - font-weight: 500; - font-size: 14px; - line-height: 22px; - letter-spacing: 4%; - margin-top: -20px; - } - } - } - - .categoryIcon { - width: 40px; - height: 40px; - display: flex; - align-items: center; - justify-content: center; - margin-right: 5px; - // border-radius: 50%; - // background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - - .factoryIcon, - .waterIcon, - .soilIcon { - font-size: 20px; - filter: grayscale(0); - } - } - } - } - } - - // 表格卡片 - .tableCard { - background: #fff; - border-radius: 2px; - // box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); - // border: 1px solid rgba(255, 255, 255, 0.2); - // backdrop-filter: blur(10px); - padding: 20px; - - .cardTitle { - // background: linear-gradient(90deg, #667eea 0%, #764ba2 100%); - color: rgba(0, 0, 0, 1); - font-weight: 500; - font-size: 16px; - padding: 12px 16px; - margin: -20px -20px 10px -20px; - // border-radius: 12px 12px 0 0; - // border-bottom: 2px solid #e8f4fd; - display: flex; - justify-content: space-between; - align-items: center; - - .titleButtons { - display: flex; - gap: 10px; - align-items: center; - - .titleAddButton { - background: rgba(0, 212, 138, 1); - border: none; - border-radius: 4px; - color: #fff; - font-weight: 500; - transition: all 0.3s ease; - height: 32px; - padding: 4px 15px; - font-size: 14px; - - &:hover { - transform: translateY(-1px); - box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); - } - } - - .titleReportButton { - border-radius: 4px; - border: 1px solid #d9d9d9; - background: #fff; - color: #666; - transition: all 0.3s ease; - height: 32px; - padding: 4px 15px; - font-size: 14px; - - &:hover { - border-color: #40a9ff; - color: #40a9ff; - transform: translateY(-1px); - } - } - } - } - } - - - // 自定义Tooltip样式 - .customTooltip { - background: rgba(0, 0, 0, 0.8); - border-radius: 8px; - padding: 10px; - color: white; - font-size: 12px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); - - .tooltipLabel { - font-weight: 600; - margin-bottom: 5px; - color: #fff; - } - - .tooltipStatus { - color: #ff6b6b; - margin-bottom: 3px; - } - - .tooltipExceedance { - color: #ffd93d; - margin-bottom: 3px; - } - - .tooltipType { - color: #a8e6cf; - font-size: 11px; - } - } - - // 响应式设计 - @media (max-width: 1200px) { - .statsSection { - grid-template-columns: 1fr 1fr; - grid-template-rows: auto auto; - - .environmentalCategories { - grid-column: 1 / -1; - flex-direction: row; - gap: 15px; - - .categoryCard { - flex: 1; - } - } - } - } - - @media (max-width: 768px) { - padding: 10px; - - .statsSection { - grid-template-columns: 1fr; - gap: 15px; - - .environmentalCategories { - flex-direction: column; - } - } - - } - - // 表格样式优化 - :global(.ant-table) { - // border-radius: 8px; - overflow: hidden; - // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - font-size: 12px; - color: rgba(0, 0, 0, 0.85); - - :global(.ant-table-thead > tr > th) { - // background: linear-gradient(90deg, #f8f9fa 0%, #e9ecef 100%); - // border-bottom: 2px solid #dee2e6; - font-weight: 400; - - } - - :global(.ant-table-tbody > tr) { - // transition: all 0.3s ease; - } - - :global(.ant-table-tbody > tr > td) { - // border-bottom: 1px solid #f0f0f0; - } - } - - // 分页器样式 - // :global(.ant-pagination) { - // margin-top: 20px; - // text-align: center; - - // :global(.ant-pagination-item) { - // border-radius: 6px; - // border: 1px solid #d9d9d9; - // transition: all 0.3s ease; - - // &.ant-pagination-item-active { - // background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - // border-color: #667eea; - // color: white; - // } - // } - - // :global(.ant-pagination-prev), - // :global(.ant-pagination-next) { - // border-radius: 6px; - // border: 1px solid #d9d9d9; - // transition: all 0.3s ease; - // } - // } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.js b/src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.js deleted file mode 100644 index 765d995..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.js +++ /dev/null @@ -1,345 +0,0 @@ -import React, { useState } from 'react'; -import { Button, Input, Select } from 'antd'; -import { SearchOutlined, RedoOutlined, UploadOutlined, DownloadOutlined, DeleteOutlined } from '@ant-design/icons'; -import StandardTable from '@/components/StandardTable'; -import styles from './DischargePermitManagement.less'; -// import attachment from '@/assets/business_envinformation/attachment.svg'; -import downloadicon from '@/assets/business_envinformation/downloadicon.svg'; -import deleteicon from '@/assets/business_envinformation/deleteicon.svg'; - - - - -const DischargePermitManagement = () => { - const [activeTab, setActiveTab] = useState('actual'); - - // 实际排放数据 - const actualEmissionData = [ - { key: 1, emissionType: '前林市', pollutant: '51669811', outletType: '信用风险管理与法律防', outletName: '北京那蓝国际贸易有限公司', permittedEmission: '5年', annualTotal: '2025-08-15' }, - { key: 2, emissionType: '拉萨市', pollutant: '34887875', outletType: '涉外警务', outletName: '中瀚石林企业咨询(上海)有限公司', permittedEmission: '5年', annualTotal: '2025-08-15' }, - { key: 3, emissionType: '长家界市', pollutant: '12345678', outletType: '环境设计', outletName: '上海环境科技有限公司', permittedEmission: '5年', annualTotal: '2025-08-15' }, - { key: 4, emissionType: '北京市', pollutant: '87654321', outletType: '污染治理', outletName: '北京环保科技有限公司', permittedEmission: '5年', annualTotal: '2025-08-15' }, - { key: 5, emissionType: '上海市', pollutant: '11223344', outletType: '排放监测', outletName: '上海监测技术有限公司', permittedEmission: '5年', annualTotal: '2025-08-15' }, - { key: 6, emissionType: '广州市', pollutant: '55667788', outletType: '工业废水', outletName: '广州环保科技股份有限公司', permittedEmission: '3年', annualTotal: '2025-09-10' }, - { key: 7, emissionType: '深圳市', pollutant: '99887766', outletType: '生活污水', outletName: '深圳水务集团有限公司', permittedEmission: '4年', annualTotal: '2025-07-20' }, - { key: 8, emissionType: '杭州市', pollutant: '33445566', outletType: '农业面源', outletName: '杭州农业科技有限公司', permittedEmission: '2年', annualTotal: '2025-10-05' }, - { key: 9, emissionType: '南京市', pollutant: '77889900', outletType: '工业废气', outletName: '南京工业集团股份有限公司', permittedEmission: '6年', annualTotal: '2025-06-15' }, - { key: 10, emissionType: '武汉市', pollutant: '11223355', outletType: '交通污染', outletName: '武汉交通发展有限公司', permittedEmission: '3年', annualTotal: '2025-11-20' }, - { key: 11, emissionType: '成都市', pollutant: '66778899', outletType: '建筑扬尘', outletName: '成都建筑工程有限公司', permittedEmission: '5年', annualTotal: '2025-05-30' }, - { key: 12, emissionType: '西安市', pollutant: '44556677', outletType: '餐饮油烟', outletName: '西安餐饮管理有限公司', permittedEmission: '4年', annualTotal: '2025-12-10' } - ]; - - // 超标排放数据 - const excessiveEmissionData = [ - { key: 1, emissionType: '俞林市', pollutant: '51669811', outletType: '信用风险管理与法律防', outletName: '北京那蓝国际贸易有限公司', permittedEmission: '5年', annualTotal: '2025-08-15' }, - { key: 2, emissionType: '拉萨市', pollutant: '34887875', outletType: '涉外警务', outletName: '中瀚石林企业咨询(上海)有限公司', permittedEmission: '5年', annualTotal: '2025-08-09' }, - { key: 3, emissionType: '长家界市', pollutant: '1716652546', outletType: '环境设计', outletName: '水木晨曦(北京)科技有限公司', permittedEmission: '5年', annualTotal: '2025-08-17' }, - { key: 4, emissionType: '潭市', pollutant: '384654762', outletType: '电子竞技运动与管理', outletName: '亚商桥(北京)咨询有限公司', permittedEmission: '5年', annualTotal: '2025-08-18' }, - { key: 5, emissionType: '次州市', pollutant: '34669295254', outletType: '精算学', outletName: '中讯通讯科技有限公司', permittedEmission: '5年', annualTotal: '2025-08-13' }, - { key: 6, emissionType: '驻马店市', pollutant: '4347052411', outletType: '数字媒体艺术', outletName: '嘉实瑞沃德(北京)商贸有限公司', permittedEmission: '5年', annualTotal: '2025-08-21' }, - { key: 7, emissionType: '三亚市', pollutant: '388946891', outletType: '技术侦察学', outletName: '中大国际文化有限公司', permittedEmission: '5年', annualTotal: '2025-08-17' }, - { key: 8, emissionType: '巢湖市', pollutant: '7190228566', outletType: '财政学', outletName: '嘉实瑞沃德(北京)商贸有限公司', permittedEmission: '5年', annualTotal: '2025-08-20' }, - { key: 9, emissionType: '东营市', pollutant: '6656363924', outletType: '保险学', outletName: '北京济丰国际医院管理有限公司', permittedEmission: '5年', annualTotal: '2025-08-27' }, - { key: 10, emissionType: '九龙', pollutant: '622145211', outletType: '英语', outletName: '北京庆奔科贸有限公司', permittedEmission: '5年', annualTotal: '2025-08-28' }, - { key: 11, emissionType: '深圳市', pollutant: '99887766', outletType: '生活污水', outletName: '深圳水务集团有限公司', permittedEmission: '4年', annualTotal: '2025-07-20' }, - { key: 12, emissionType: '杭州市', pollutant: '33445566', outletType: '农业面源', outletName: '杭州农业科技有限公司', permittedEmission: '2年', annualTotal: '2025-10-05' } - ]; - - // 污染治理设备异常情况数据 - const equipmentAbnormalData = [ - { key: 1, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 2, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 3, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 4, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 5, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 6, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 7, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 8, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 9, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 10, emissionType: '类型1', pollutant: '10:15:10—10:50:10', outletType: '管道', outletName: '老化', permittedEmission: '因子名称', annualTotal: '管口5m内' }, - { key: 11, emissionType: '类型2', pollutant: '11:20:15—11:45:30', outletType: '风机', outletName: '磨损', permittedEmission: '因子名称2', annualTotal: '风机10m内' }, - { key: 12, emissionType: '类型3', pollutant: '14:30:20—15:10:40', outletType: '泵站', outletName: '堵塞', permittedEmission: '因子名称3', annualTotal: '泵站15m内' } - ]; - - // 实际排放和超标排放的表格列定义 - const normalColumns = [ - { - title: '序号', - dataIndex: 'key', - key: 'key', - width: 80, - align: 'center', - }, - { - title: '排放物类型', - dataIndex: 'emissionType', - key: 'emissionType', - width: 100, - }, - { - title: '污染物', - dataIndex: 'pollutant', - key: 'pollutant', - width: 100, - }, - { - title: '排放口类型', - dataIndex: 'outletType', - key: 'outletType', - width: 160, - }, - { - title: '排放口编号/排放口名称', - dataIndex: 'outletName', - key: 'outletName', - width: 220, - }, - { - title: '许可排放量(吨)', - dataIndex: 'permittedEmission', - key: 'permittedEmission', - width: 120, - }, - { - title: '年度合计', - dataIndex: 'annualTotal', - key: 'annualTotal', - width: 120, - }, - { - title: '第一季度', - key: 'q1', - width: 80, - render: () => 附件, - }, - { - title: '二季度', - key: 'q2', - width: 80, - render: () => 附件, - }, - { - title: '三季度', - key: 'q3', - width: 80, - render: () => 附件, - }, - { - title: '四季度', - key: 'q4', - width: 80, - render: () => 附件, - }, - { - title: '操作', - key: 'action', - width: 100, - render: (_, record) => ( -
- 下载 - 删除 -
- ), - }, - ]; - - // 污染治理设备异常情况的表格列定义 - const equipmentColumns = [ - { - title: '序号', - dataIndex: 'key', - key: 'key', - width: 80, - align: 'center', - }, - { - title: '故障类型', - dataIndex: 'emissionType', - key: 'emissionType', - width: 100, - }, - { - title: '超标时段(开始时段—结束时段)', - dataIndex: 'pollutant', - key: 'pollutant', - width: 200, - }, - { - title: '故障设施', - dataIndex: 'outletType', - key: 'outletType', - width: 100, - }, - { - title: '故障原因', - dataIndex: 'outletName', - key: 'outletName', - width: 100, - }, - { - title: '排放因子', - dataIndex: 'permittedEmission', - key: 'permittedEmission', - width: 100, - }, - { - title: '排放范围', - dataIndex: 'annualTotal', - key: 'annualTotal', - width: 120, - }, - { - title: '排放因子浓度(mg/m³或dB(A))', - key: 'concentration', - width: 200, - render: () => '2025-08-15', - }, - { - title: '应对', - key: 'response', - width: 80, - render: () => '—', - }, - { - title: '操作', - key: 'action', - width: 120, - render: (_, record) => ( -
- 下载 - 删除 -
- ), - }, - ]; - - // 获取当前标签页的数据 - const getCurrentData = () => { - switch (activeTab) { - case 'actual': - return actualEmissionData; - case 'excessive': - return excessiveEmissionData; - case 'equipment': - return equipmentAbnormalData; - default: - return actualEmissionData; - } - }; - - // 获取当前标签页的列定义 - const getCurrentColumns = () => { - switch (activeTab) { - case 'actual': - case 'excessive': - return normalColumns; - case 'equipment': - return equipmentColumns; - default: - return normalColumns; - } - }; - - // 分页配置 - const pagination = { - current: 1, - pageSize: 10, - total: 12, - showTotal: (total) => `共 ${total} 条`, - showSizeChanger: true, - showQuickJumper: true, - }; - - return ( -
-
-
- - - -
- -
- 筛选条件 - - - - -
-
- -
- -
-
- ); -}; - -export default DischargePermitManagement; \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.less b/src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.less deleted file mode 100644 index 6bb0c75..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/DischargePermitManagement.less +++ /dev/null @@ -1,160 +0,0 @@ -.dischargePermitManagement { - width: 100%; - height: 100%; - background-color: #fff; - padding: 20px; - - .tabContainer { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 15px; - padding: 0 ; - // border-bottom: 1px solid #e8e8e8; - - .tabButtons { - display: flex; - gap: 0; - background-color: #F4F4F4; - border-radius: 4px; - padding: 4px 8px; - align-items: center; - - .tabButton { - padding: 8px 20px; - border: none; - background-color: transparent; - color: #666; - font-size: 14px; - font-weight: 500; - cursor: pointer; - border-radius: 4px; - transition: all 0.3s ease; - height: auto; - line-height: 1.4; - - &:hover { - color: #1890ff; - background-color: rgba(24, 144, 255, 0.1); - } - - &.active { - background-color: #03C598; - color: #fff; - } - } - } - - .filterSection { - display: flex; - align-items: center; - gap: 12px; - border-radius: 4px; - - .filterLabel { - font-size: 14px; - color: #333; - } - - .filterSelect { - min-width: 120px; - } - - .filterInput { - min-width: 200px; - border-radius: 4px; - } - - .queryBtn { - background-color: #00D48A; - border-color: #00D48A; - border-radius: 4px; - - &:hover { - background-color: #389e0d; - border-color: #389e0d; - } - } - - .resetBtn, .uploadBtn { - background-color: #fff; - color: #666; - border-color: #d9d9d9; - border-radius: 4px; - - - &:hover { - border-color: #1890ff; - color: #1890ff; - } - } - } - } - - .tableContent { - width: 100%; - - // 覆盖表头样式 - :global { - .ant-table-thead > tr > th { - font-weight: 400 !important; - font-size: 12px !important; - color: #333 !important; - text-align: center !important; - background-color: #FAFAFA !important; - } - - .ant-table-tbody > tr > td { - font-size: 12px; - color: #333; - text-align: center; - } - - .ant-table-wrapper { - width: 100%; - max-width: 100%; - } - } - - .attachmentLink { - color: #1890ff; - text-decoration: none; - font-size: 12px; - - &:hover { - text-decoration: underline; - } - } - - .actionButtons { - display: flex; - gap: 20px; - justify-content: center; - align-items: center; - - .downloadIcon, .deleteIcon { - width: 20px; - height: 20px; - cursor: pointer; - transition: all 0.3s ease; - - &:hover { - transform: scale(1.1); - opacity: 0.8; - } - } - - .downloadIcon { - &:hover { - filter: brightness(1.2); - } - } - - .deleteIcon { - &:hover { - filter: brightness(1.2) saturate(1.5); - } - } - } - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.js b/src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.js deleted file mode 100644 index f4e6367..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.js +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import styles from './EnvironmentalTaskList.less'; - -const EnvironmentalTaskList = () => { - return ( -
-
-
-

2) 环保管理任务清单

-

依据排污许可证副本中的环保要求,提供生成环保管理要求任务清单;

-

环保任务清单包括:大气排放口信息,大气污染物有组织排放许可年限值,大气污染物无组织排放年限制、企业大气排放总许可量;废水排放口、废水污染物排放许可限制;固体废物排放信息、自行贮存和自行利用/处置设施信息;工业噪声排放信息;

-

环境管理要求包括:自行检测及记录表、环境管理台账记录。

-
-
-
-
- 共85条 -
-
- -
- - - ... - - - - - - ... - - -
-
-
-
- ); -}; - -export default EnvironmentalTaskList; diff --git a/src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.less b/src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.less deleted file mode 100644 index c9f43c6..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/EnvironmentalTaskList.less +++ /dev/null @@ -1,105 +0,0 @@ -.environmentalTaskListContainer { - width: 100%; - height: 72vh; - display: flex; - flex-direction: column; - background-color: #fff; - position: relative; -} - -.environmentalTaskListContent { - flex: 1; - display: flex; - align-items: center; - justify-content: center; - 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_emergencyResource/components/secondary_menu/InformationDisclosure.js b/src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.js deleted file mode 100644 index 4366372..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import styles from './InformationDisclosure.less'; - -const InformationDisclosure = () => { - return ( -
-
待开发
-
- ); -}; - -export default InformationDisclosure; - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.less b/src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.less deleted file mode 100644 index 022f9de..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/InformationDisclosure.less +++ /dev/null @@ -1,15 +0,0 @@ -.container { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - background-color: #fff; - - .content { - font-size: 24px; - color: #999999; - font-weight: 400; - } -} - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.js b/src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.js deleted file mode 100644 index f8e20d1..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.js +++ /dev/null @@ -1,286 +0,0 @@ -import React, { useState } from 'react'; -import { Form, Input, Button, DatePicker, Space, Modal } from 'antd'; -import { SearchOutlined, RedoOutlined, CloseOutlined, EyeOutlined, DeleteOutlined } from '@ant-design/icons'; -import StandardTable from '@/components/StandardTable'; -import styles from './PermitManagement.less'; -import licence1 from '@/assets/business_envinformation/licence1.svg'; -import licence2 from '@/assets/business_envinformation/licence2.svg'; - -const PermitManagement = () => { - const [form] = Form.useForm(); - const [isModalVisible, setIsModalVisible] = useState(false); - const [currentImage, setCurrentImage] = useState(null); - const [dataSource, setDataSource] = useState([ - { - key: 1, - companyName: '北京某某环保有限公司', - permitNumber: 'PWX-BJ-2023-001', - issueOrg: '北京市生态环境局', - expireDate: '2025-12-31', - original: '已上传', - duplicate: '已上传', - }, - { - key: 2, - companyName: '上海某某化工有限公司', - permitNumber: 'PWX-SH-2023-002', - issueOrg: '上海市生态环境局', - expireDate: '2025-10-15', - original: '已上传', - duplicate: '已上传', - }, - { - key: 3, - companyName: '广州某某制造有限公司', - permitNumber: 'PWX-GZ-2023-003', - issueOrg: '广州市生态环境局', - expireDate: '2026-03-20', - original: '未上传', - duplicate: '已上传', - }, - { - key: 4, - companyName: '深圳某某电子有限公司', - permitNumber: 'PWX-SZ-2023-004', - issueOrg: '深圳市生态环境局', - expireDate: '2025-08-10', - original: '已上传', - duplicate: '未上传', - }, - { - key: 5, - companyName: '成都某某科技有限公司', - permitNumber: 'PWX-CD-2023-005', - issueOrg: '成都市生态环境局', - expireDate: '2026-01-25', - original: '已上传', - duplicate: '已上传', - }, - { - key: 6, - companyName: '武汉某某工业有限公司', - permitNumber: 'PWX-WH-2023-006', - issueOrg: '武汉市生态环境局', - expireDate: '2025-11-30', - original: '已上传', - duplicate: '已上传', - }, - { - key: 7, - companyName: '杭州某某环保有限公司', - permitNumber: 'PWX-HZ-2023-007', - issueOrg: '杭州市生态环境局', - expireDate: '2026-05-15', - original: '未上传', - duplicate: '已上传', - }, - { - key: 8, - companyName: '南京某某化学有限公司', - permitNumber: 'PWX-NJ-2023-008', - issueOrg: '南京市生态环境局', - expireDate: '2025-09-20', - original: '已上传', - duplicate: '已上传', - }, - { - key: 9, - companyName: '重庆某某重工有限公司', - permitNumber: 'PWX-CQ-2023-009', - issueOrg: '重庆市生态环境局', - expireDate: '2026-02-28', - original: '已上传', - duplicate: '未上传', - }, - { - key: 10, - companyName: '天津某某制药有限公司', - permitNumber: 'PWX-TJ-2023-010', - issueOrg: '天津市生态环境局', - expireDate: '2025-07-10', - original: '已上传', - duplicate: '已上传', - }, - { - key: 11, - companyName: '西安某某材料有限公司', - permitNumber: 'PWX-XA-2023-011', - issueOrg: '西安市生态环境局', - expireDate: '2026-04-05', - original: '未上传', - duplicate: '已上传', - }, - { - key: 12, - companyName: '青岛某某机械有限公司', - permitNumber: 'PWX-QD-2023-012', - issueOrg: '青岛市生态环境局', - expireDate: '2025-12-15', - original: '已上传', - duplicate: '已上传', - }, - ]); - - const columns = [ - { - title: '序号', - dataIndex: 'key', - key: 'key', - width: 80, - align: 'center', - }, - { - title: '企业名称', - dataIndex: 'companyName', - key: 'companyName', - width: 200, - }, - { - title: '排污许可证号', - dataIndex: 'permitNumber', - key: 'permitNumber', - width: 180, - }, - { - title: '颁发机构', - dataIndex: 'issueOrg', - key: 'issueOrg', - width: 180, - }, - { - title: '到期时间', - dataIndex: 'expireDate', - key: 'expireDate', - width: 120, - sorter: (a, b) => new Date(a.expireDate) - new Date(b.expireDate), - showSorterTooltip: false, - }, - { - title: '正本', - dataIndex: 'original', - key: 'original', - width: 100, - align: 'center', - render: () => { setCurrentImage(licence1); setIsModalVisible(true); }}>附件 - }, - { - title: '副本', - dataIndex: 'duplicate', - key: 'duplicate', - width: 100, - align: 'center', - render: () => { setCurrentImage(licence2); setIsModalVisible(true); }}>附件 - }, - { - title: '操作', - key: 'action', - width: 150, - align: 'center', - render: (_, record) => ( - - handleView(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 handleDelete = (record) => { - console.log('删除:', record); - // TODO: 实现删除功能 - }; - - return ( -
- {/* 第一块:搜索表单 */} -
-
- - - - - - - - - - - - - - - -
-
- - {/* 第二块:表格 */} -
- `共 ${total} 条`, - } - }} - /> -
- - {/* 图片弹窗 */} - setIsModalVisible(false)} - footer={null} - closeIcon={} - width="auto" - centered - styles={{ - mask: { backgroundColor: '#10101080' }, - content: { padding: 0, background: 'transparent', boxShadow: 'none' } - }} - > - {currentImage && 许可证} - -
- ); -}; - -export default PermitManagement; - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.less b/src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.less deleted file mode 100644 index b200e6c..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/PermitManagement.less +++ /dev/null @@ -1,137 +0,0 @@ -.permitContainer { - width: 100%; - height: 100%; - // padding: 20px; - background-color: #fff; - display: flex; - flex-direction: column; - margin: 0; - padding: 0; - - .searchSection { - // margin-bottom: 20px; - padding: 20px; - // background-color: #fafafa; - // border-radius: 2px; - - :global { - .ant-form-inline { - display: flex; - - .ant-form-item { - margin-right: 16px; - margin-bottom: 0; - } - - .ant-form-item:nth-last-child(2) { - margin-left: auto; - } - - .ant-form-item:last-child { - margin-right: 0; - } - } - - .ant-form-item-label { - font-weight: 500; - - label { - color: #666666; - font-size: 13px; - } - } - - .ant-input::placeholder, - .ant-picker-input input::placeholder { - color: #00000040; - font-size: 13px; - } - } - } - - .tableSection { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - padding: 0 20px 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; - - .ant-table { - flex: 1; - overflow: auto; - margin: 0; - } - - .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; - } - - .ant-table-tbody > tr > td { - border-right: none; - color: #000000D9; - font-weight: 400; - text-align: center; - } - - .ant-table-tbody > tr:hover > td { - background-color: #f5f5f5; - } - - a { - color: #1890ff; - text-decoration: none; - - &:hover { - color: #40a9ff; - } - } - } - - .ant-pagination { - text-align: right; - margin-top: 70px !important; - } - } - } -} - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.js b/src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.js deleted file mode 100644 index fec1778..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.js +++ /dev/null @@ -1,421 +0,0 @@ -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 './PermitStatistics.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 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, - administrativeRegion: '榆林市', - permitNumber: '51669811', - industryCategory: '信用风险管理与法律防', - companyName: '北京那蓝国际贸易有限公司', - validityPeriod: '5年', - issueDate: '2025-08-15', - original: '附件', - duplicate: '附件', - }, - { - key: 2, - administrativeRegion: '拉萨市', - permitNumber: '34887875', - industryCategory: '涉外警务', - companyName: '中潮石林企业咨询(上海)有限公司北京分公司', - validityPeriod: '5年', - issueDate: '2025-08-09', - original: '附件', - duplicate: '附件', - }, - { - key: 3, - administrativeRegion: '长家界市', - permitNumber: '1716652546', - industryCategory: '环境设计', - companyName: '水木晨曦(北京)科技有限公司', - validityPeriod: '5年', - issueDate: '2025-08-17', - original: '附件', - duplicate: '附件', - }, - { - key: 4, - administrativeRegion: '马潭市', - permitNumber: '384654762', - industryCategory: '电子竞技运动与管理', - companyName: '亚商桥(北京)咨询有限公司', - validityPeriod: '5年', - issueDate: '2025-08-17', - original: '附件', - duplicate: '附件', - }, - { - key: 5, - administrativeRegion: '交州市', - permitNumber: '34669295254', - industryCategory: '精算学', - companyName: '中讯通讯科技有限公司', - validityPeriod: '5年', - issueDate: '2025-08-13', - original: '附件', - duplicate: '附件', - }, - { - key: 6, - administrativeRegion: '驻马店市', - permitNumber: '4347052411', - industryCategory: '数字媒体艺术', - companyName: '嘉实瑞沃德(北京)商贸有限公司', - validityPeriod: '5年', - issueDate: '2025-08-21', - original: '附件', - duplicate: '附件', - }, - { - key: 7, - administrativeRegion: '三亚市', - permitNumber: '388946691', - industryCategory: '技术侦察学', - companyName: '中大国际文化有限公司', - validityPeriod: '5年', - issueDate: '2025-08-17', - original: '附件', - duplicate: '附件', - }, - { - key: 8, - administrativeRegion: '美湖市', - permitNumber: '7190228566', - industryCategory: '财政学', - companyName: '嘉实瑞沃德(北京)商贸有限公司', - validityPeriod: '5年', - issueDate: '2025-08-20', - original: '附件', - duplicate: '附件', - }, - { - key: 9, - administrativeRegion: '东营市', - permitNumber: '6656363924', - industryCategory: '保险学', - companyName: '北京清丰国际医院管理有限公司', - validityPeriod: '5年', - issueDate: '2025-06-27', - original: '附件', - duplicate: '附件', - }, - { - key: 10, - administrativeRegion: '九龙', - permitNumber: '622145211', - industryCategory: '英语', - companyName: '北京庆奔科贸有限公司', - validityPeriod: '5年', - issueDate: '2025-08-28', - 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 = [ - { - title: '序号', - dataIndex: 'key', - key: 'key', - width: 80, - align: 'center', - }, - { - title: '行政区', - dataIndex: 'administrativeRegion', - key: 'administrativeRegion', - width: 120, - }, - { - title: '许可证编号', - dataIndex: 'permitNumber', - key: 'permitNumber', - width: 130, - }, - { - title: '行业类别', - dataIndex: 'industryCategory', - key: 'industryCategory', - width: 200, - }, - { - title: '企业名称', - dataIndex: 'companyName', - key: 'companyName', - width: 230, - }, - { - title: '有效期限', - dataIndex: 'validityPeriod', - key: 'validityPeriod', - width: 80, - align: 'center', - }, - { - title: '发证日期', - dataIndex: 'issueDate', - key: 'issueDate', - width: 120, - align: 'center', - }, - { - title: '正本', - dataIndex: 'original', - key: 'original', - width: 80, - align: 'center', - render: () => { setCurrentImage(licence1); setIsModalVisible(true); }}>附件 - }, - { - title: '副本', - dataIndex: 'duplicate', - key: 'duplicate', - width: 120, - align: 'center', - render: () => { setCurrentImage(licence2); setIsModalVisible(true); }}>附件 - }, - { - title: '操作', - key: 'action', - width: 140, - align: 'center', - 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 getCurrentPageData = () => { - const { current, pageSize } = pagination; - const start = (current - 1) * pageSize; - const end = start + pageSize; - return dataSource.slice(start, end); - }; - - return ( -
- {/* 第一块:操作按钮和筛选条件 */} -
-
- - -
- -
- 筛选条件 - - - -
-
- - {/* 第二块:表格 */} -
- `共 ${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 PermitStatistics; diff --git a/src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.less b/src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.less deleted file mode 100644 index 54aa30e..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/PermitStatistics.less +++ /dev/null @@ -1,187 +0,0 @@ -.permitContainer { - 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; - - :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; - - .ant-table { - flex: 1; - overflow: auto; - margin: 0; - } - - .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; - } - - .ant-table-tbody > tr > td { - border-right: none; - color: #000000D9; - font-weight: 400; - text-align: center; - } - - .ant-table-tbody > tr:hover > td { - background-color: #f5f5f5; - } - - a { - color: #1890ff; - text-decoration: none; - - &:hover { - color: #40a9ff; - } - } - } - - .ant-pagination { - text-align: right; - margin-top: 70px !important; - } - } - } -} diff --git a/src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.js b/src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.js deleted file mode 100644 index a83b5c2..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.js +++ /dev/null @@ -1,578 +0,0 @@ -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 './ProtectionFacilityMaintenance.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 ProtectionFacilityMaintenance = () => { - const [form] = Form.useForm(); - const [isModalVisible, setIsModalVisible] = useState(false); - const [currentImage, setCurrentImage] = useState(null); - const [pagination, setPagination] = useState({ - current: 1, - pageSize: 10, - total: 13, - }); - const [selectedRowKeys, setSelectedRowKeys] = useState([]); - const [dataSource, setDataSource] = useState([ - { - key: 1, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - facilityCode: '35.236.217.212', - startTime: '2025-08-23 06:18', - endTime: '2025-08-23 06:18', - pollutantType: '123', - concentration: '39', - unit: 'm³/d', - dischargeDestination: '大气', - eventReason: '从病虫害探测、土壤墒情监测智能...', - isReported: '已报告', - responseMeasures: '2025-08-23 06:18', - }, - { - key: 2, - recordTime: '2025-09-02', - recorder: '王嘉骐', - reviewer: '赵子峰', - facilityName: '复方水杨酸甲酯乳膏(曼秀雷敦)', - facilityCode: '65.177.48.116', - startTime: '2025-09-07 17:48', - endTime: '2025-09-07 17:48', - pollutantType: '大气污染物', - concentration: '52', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '从病虫害探测、土壤墒情监测智能...', - isReported: '已报告', - responseMeasures: '2025-09-07 17:48', - }, - { - key: 3, - recordTime: '2025-09-06', - recorder: '王嘉琪', - reviewer: '郑清予', - facilityName: '口炎清颗粒(大神)', - facilityCode: '111.161.135.125', - startTime: '2025-09-04 13:08', - endTime: '2025-09-04 13:08', - pollutantType: '污水', - concentration: '28', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '从病虫害探测、土壤墒情监测智能...', - isReported: '已报告', - responseMeasures: '2025-09-04 13:08', - }, - { - key: 4, - recordTime: '2025-08-22', - recorder: '王佛瑶', - reviewer: '赵玉', - facilityName: '烧烫伤膏(茂祥)', - facilityCode: '162.208.135.147', - startTime: '2025-08-28 22:40', - endTime: '2025-08-28 22:40', - pollutantType: '污水', - concentration: '46', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '近期,高铁"熊孩子"事件频出,...', - isReported: '已报告', - responseMeasures: '2025-08-28 22:40', - }, - { - key: 5, - recordTime: '2025-08-31', - recorder: '吴子萱', - reviewer: '钱品妍', - facilityName: '云南白药(云南白药)', - facilityCode: '138.6.246.181', - startTime: '2025-09-17 19:48', - endTime: '2025-09-17 19:48', - pollutantType: '污水', - concentration: '37', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '刘某及同伴三人前往该射击俱乐部...', - isReported: '已报告', - responseMeasures: '2025-09-17 19:48', - }, - { - key: 6, - recordTime: '2025-08-29', - recorder: '何风景', - reviewer: '赵海洲', - facilityName: '麝香壮骨膏(修正)', - facilityCode: '134.80.173.128', - startTime: '2025-09-02 22:21', - endTime: '2025-09-02 22:21', - pollutantType: '污水', - concentration: '53', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '一位网友在社交平台发布的视频显...', - isReported: '未报告', - responseMeasures: '2025-09-02 22:21', - }, - { - key: 7, - recordTime: '2025-08-28', - recorder: '李琳颖', - reviewer: '李建刚', - facilityName: '复方醋酸甲羟孕酮胶囊(妇复春)', - facilityCode: '218.169.25.43', - startTime: '2025-09-06 16:27', - endTime: '2025-09-06 16:27', - pollutantType: '污水', - concentration: '24', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '盛夏时节,四川绵竹市汉旺镇一株...', - isReported: '未报告', - responseMeasures: '2025-09-06 16:27', - }, - { - key: 8, - recordTime: '2025-08-22', - recorder: '赵午光', - reviewer: '钱泽西', - facilityName: '桂龙药膏', - facilityCode: '54.218.80.84', - startTime: '2025-09-12 22:50', - endTime: '2025-09-12 22:50', - pollutantType: '污水', - concentration: '47', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '随着"热射病"这一高温疾病快速...', - isReported: '未报告', - responseMeasures: '2025-09-12 22:50', - }, - { - key: 9, - recordTime: '2025-08-21', - recorder: '王凤娇', - reviewer: '李金泽', - facilityName: '和兴白花油(和兴白花油)', - facilityCode: '222.1.18.173', - startTime: '2025-09-10 04:28', - endTime: '2025-09-10 04:28', - pollutantType: '污水', - concentration: '33', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '夏粮丰,全年稳。国家粮食和物资...', - isReported: '未报告', - responseMeasures: '2025-09-10 04:28', - }, - { - key: 10, - recordTime: '2025-09-09', - recorder: '赵涛', - reviewer: '何能', - facilityName: '茶苯海明含片(贻晗柠)', - facilityCode: '136.200.182.22', - startTime: '2025-08-30 07:15', - endTime: '2025-08-30 07:15', - pollutantType: '污水', - concentration: '34', - unit: 'm³/d', - dischargeDestination: '河流', - eventReason: '近日,一则"携程推出火车卧铺女...', - isReported: '未报告', - responseMeasures: '2025-08-30 07:15', - }, - { - key: 11, - recordTime: '2025-09-15', - recorder: '李小明', - reviewer: '王建国', - facilityName: '阿莫西林胶囊(华北制药)', - facilityCode: '192.168.1.100', - startTime: '2025-09-15 14:30', - endTime: '2025-09-15 16:45', - pollutantType: '大气污染物', - concentration: '68', - unit: 'mg/m³', - dischargeDestination: '大气', - eventReason: '设备故障导致废气处理系统异常运行...', - isReported: '已报告', - responseMeasures: '2025-09-15 16:45', - }, - { - key: 12, - recordTime: '2025-09-18', - recorder: '张美丽', - reviewer: '刘德华', - facilityName: '布洛芬缓释胶囊(中美史克)', - facilityCode: '10.0.0.25', - startTime: '2025-09-18 09:20', - endTime: '2025-09-18 11:30', - pollutantType: '污水', - concentration: '42', - unit: 'mg/L', - dischargeDestination: '污水处理厂', - eventReason: '管道泄漏导致废水直接排放...', - isReported: '未报告', - responseMeasures: '2025-09-18 11:30', - }, - { - key: 13, - recordTime: '2025-09-20', - recorder: '陈志强', - reviewer: '周杰伦', - facilityName: '头孢拉定胶囊(石药集团)', - facilityCode: '172.16.0.88', - startTime: '2025-09-20 20:15', - endTime: '2025-09-20 22:00', - pollutantType: '噪声', - concentration: '85', - unit: 'dB', - dischargeDestination: '环境', - eventReason: '夜间施工未采取降噪措施...', - isReported: '已报告', - responseMeasures: '2025-09-20 22:00', - }, - ]); - - 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: 'facilityCode', - key: 'facilityCode', - width: 150, - align: 'center', - }, - { - title: '异常情况起始时刻', - dataIndex: 'startTime', - key: 'startTime', - width: 160, - align: 'center', - }, - { - title: '异常情况终止时刻', - dataIndex: 'endTime', - key: 'endTime', - width: 160, - align: 'center', - }, - { - title: '污染物种类', - dataIndex: 'pollutantType', - key: 'pollutantType', - width: 120, - align: 'center', - }, - { - title: '污染物排放浓度', - dataIndex: 'concentration', - key: 'concentration', - width: 140, - align: 'center', - }, - { - title: '浓度单位', - dataIndex: 'unit', - key: 'unit', - width: 100, - align: 'center', - }, - { - title: '排放去向', - dataIndex: 'dischargeDestination', - key: 'dischargeDestination', - width: 100, - align: 'center', - }, - { - title: '事件原因', - dataIndex: 'eventReason', - key: 'eventReason', - width: 180, - }, - { - title: '是否报告', - dataIndex: 'isReported', - key: 'isReported', - width: 100, - align: 'center', - render: (text) => ( - - {text} - - ), - }, - { - title: '应对措施', - dataIndex: 'responseMeasures', - key: 'responseMeasures', - width: 150, - align: 'center', - }, - { - title: '操作', - key: 'action', - width: 100, - align: 'center', - fixed: 'right', - render: (_, 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 ( -
- {/* 第一块:操作按钮和筛选条件 */} -
-
- - - -
- -
- 筛选条件 - - - -
-
- - {/* 第二块:表格 */} -
- `共 ${total} 条`, - showSizeChanger: false, - } - }} - onChange={handleTableChange} - scroll={{ x: 3000 }} - /> -
- - {/* 图片弹窗 */} - setIsModalVisible(false)} - footer={null} - closeIcon={} - width="auto" - centered - styles={{ - mask: { backgroundColor: '#10101080' }, - content: { padding: 0, background: 'transparent', boxShadow: 'none' } - }} - > - {currentImage && 许可证} - -
- ); -}; - -export default ProtectionFacilityMaintenance; diff --git a/src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.less b/src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.less deleted file mode 100644 index 38c8a2e..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/ProtectionFacilityMaintenance.less +++ /dev/null @@ -1,205 +0,0 @@ -.protectionFacilityContainer { - 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; - padding: 0 20px 0; - overflow: 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; - } - } - } - - .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_emergencyResource/components/secondary_menu/RegulationCompliance.js b/src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.js deleted file mode 100644 index 8dcaeff..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.js +++ /dev/null @@ -1,592 +0,0 @@ -import React, { useState } from 'react'; -import { Form, Input, Button, DatePicker, Select, Drawer, Descriptions, Tag } from 'antd'; -import styles from './RegulationCompliance.less'; -import stipulation1 from '@/assets/business_envinformation/stipulation1.svg'; - -const RegulationCompliance = () => { - const [form] = Form.useForm(); - const [drawerVisible, setDrawerVisible] = useState(false); - const [selectedRegulation, setSelectedRegulation] = useState(null); - - const handleSearch = (values) => { - console.log('搜索参数:', values); - // TODO: 实现搜索功能 - }; - - const handleReset = () => { - form.resetFields(); - // TODO: 重置搜索 - }; - - // 显示抽屉详情 - const showDrawer = (regulation) => { - setSelectedRegulation(regulation); - setDrawerVisible(true); - }; - - // 关闭抽屉 - const onCloseDrawer = () => { - setDrawerVisible(false); - setSelectedRegulation(null); - }; - - // 模拟法规数据(实际应该从后端获取) - const mockRegulationDetail = { - name: '2025排污许可条例', - publishDate: '2025-08-24', - department: '环保部门名称', - content: '在此输入具体的法规内容...', - status: '有效', - category: '排污许可', - version: '1.0', - updateTime: '2025-08-24' - }; - - - return ( -
- {/* 第一块:搜索表单 */} -
-
- - - - - - - - - - - - - - - -
-
- - {/* 第二块:表格区域 */} -
-
- {/* 法规合规管理块1 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-24 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块2 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-25 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块3 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-26 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块4 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-27 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块5 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-28 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块6 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-29 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块7 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-30 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块8 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-08-31 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块9 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-09-01 -
-
- 发布部门    环保部门名称9 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块10 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-09-02 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块11 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-09-03 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
- - {/* 法规合规管理块12 */} -
- {/* 第一行:法规名称 */} -
- 法规图标 - 2025排污许可条例 -
- - {/* 第二行:发布时间和发布部门 */} -
-
- 发布时间    2025-09-04 -
-
- 发布部门    环保部门名称 -
-
- - {/* 第三行:操作按钮 */} -
-
showDrawer(mockRegulationDetail)} - style={{ cursor: 'pointer' }} - > - - - -
-
- - - -
-
-
-
-
- - {/* 静态分页组件 */} -
-
- 共85条 - {/* */} - - - ... - - - - - - ... - - -
-
- - {/* 抽屉详情 */} - - {selectedRegulation && ( - - - {selectedRegulation.name} - - - {selectedRegulation.publishDate} - - - {selectedRegulation.department} - - - {selectedRegulation.status} - - - {selectedRegulation.category} - - - {selectedRegulation.version} - - - {selectedRegulation.updateTime} - - -
- {selectedRegulation.content} -
-
-
- )} -
-
- ); -}; - -export default RegulationCompliance; - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.less b/src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.less deleted file mode 100644 index f26410a..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/RegulationCompliance.less +++ /dev/null @@ -1,204 +0,0 @@ -.regulationContainer { - width: 100%; - height: 100%; - - display: flex; - flex-direction: column; - - .searchSection { - padding: 20px; - background-color: #fff; - - :global { - .ant-form-inline { - display: flex; - - .ant-form-item { - margin-right: 16px; - margin-bottom: 0; - } - - .ant-form-item:nth-last-child(2) { - margin-left: auto; - } - - .ant-form-item:last-child { - margin-right: 0; - } - } - - .ant-form-item-label { - font-weight: 500; - - label { - color: #666666; - font-size: 13px; - } - } - - .ant-input::placeholder, - .ant-picker-input input::placeholder { - color: #00000040; - font-size: 13px; - } - } - } - - .tableSection { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - padding: 20px; - - .blocksContainer { - display: grid; - grid-template-columns: repeat(4, 1fr); - grid-template-rows: repeat(3, 1fr); - gap: 20px; - margin-bottom: 20px; - } - - .regulationBlock { - background-color: #fff; - // border: 1px solid #EEEEEE; - border-radius: 2px; - // padding: 8px 16px; - display: flex; - flex-direction: column; - justify-content: space-between; - min-height: 120px; - } - - - .regulationTitle { - font-size: 14px; - font-weight: 500; - color: #333333; - padding: 8px 16px; - border: 1px solid #EEEEEE; - border-bottom: none; - margin-bottom: 0; - display: flex; - align-items: center; - } - - .regulationInfo { - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - padding-left: 15px; - border: 1px solid #EEEEEE; - border-bottom: none; - margin-bottom: 0; - } - - .publishDate { - font-size: 12px; - color: #666666; - font-weight: 400; - margin-bottom: 6px; - - } - - .publishDepartment { - font-size: 12px; - color: #666666; - font-weight: 400; - - } - - .actionButtons { - display: flex; - - justify-content: center; - gap: 8px; - width: 100%; - // margin-bottom: 0; - border: 1px solid #EEEEEE; - border-bottom: none; - // padding-top: 4px; - } - - .actionButton { - width: calc(50% - 4px); - height: 24px; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - border-radius: 2px; - transition: background-color 0.2s; - - &:hover { - background-color: #f5f5f5; - } - } - - } - - .paginationContainer { - position: fixed; - bottom: 10px; - right: 10px; - z-index: 1000; - } - - .pagination { - display: flex; - align-items: center; - gap: 8px; - // background: #fff; - padding: 8px 30px; - border-radius: 4px; - // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - } - - .totalItems { - font-size: 12px; - color: #666; - margin-right: 8px; - } - - .pageSizeSelect { - font-size: 12px; - border: 1px solid #d9d9d9; - border-radius: 2px; - padding: 2px 6px; - margin-right: 8px; - background: #fff; - } - - .pageButton { - width: 28px; - height: 28px; - border: 1px solid #d9d9d9; - background: #fff; - color: #333; - font-size: 12px; - border-radius: 2px; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s; - - &:hover { - border-color: #00D48A; - color: #00D48A; - } - - &.active { - background: #00D48A; - border-color: #00D48A; - color: #fff; - } - } - - .ellipsis { - font-size: 12px; - color: #999; - padding: 0 4px; - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.js b/src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.js deleted file mode 100644 index da0cca8..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import styles from './SupervisionInspection.less'; - -const SupervisionInspection = () => { - return ( -
-
待开发
-
- ); -}; - -export default SupervisionInspection; - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.less b/src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.less deleted file mode 100644 index 022f9de..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/SupervisionInspection.less +++ /dev/null @@ -1,15 +0,0 @@ -.container { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - background-color: #fff; - - .content { - font-size: 24px; - color: #999999; - font-weight: 400; - } -} - diff --git a/src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.js b/src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.js deleted file mode 100644 index 4c079d0..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.js +++ /dev/null @@ -1,803 +0,0 @@ -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 ( -
- {/* 第一块:操作按钮和筛选条件 */} -
-
- - - - {/* */} -
- -
- 筛选条件 - - - -
-
- - {/* 第二块:表格 */} -
- `共 ${total} 条`, - showSizeChanger: false, - } - }} - onChange={handleTableChange} - scroll={{ x: 3000 }} - /> -
- - {/* 图片弹窗 */} - 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_emergencyResource/components/secondary_menu/WasteGasPollutionControl.less b/src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.less deleted file mode 100644 index 7b23dad..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/WasteGasPollutionControl.less +++ /dev/null @@ -1,205 +0,0 @@ -.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; - padding: 0 20px 0; - overflow: 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; - } - } - } - - .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_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.js b/src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.js deleted file mode 100644 index b830f24..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.js +++ /dev/null @@ -1,746 +0,0 @@ -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 './WastewaterFacilityManagement.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 WastewaterFacilityManagement = () => { - 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', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 2, - recordTime: '2025-09-02', - recorder: '王嘉祺', - reviewer: '赵子峰', - facilityName: '复方水杨酸甲酯乳膏(曼秀雷敦)', - code: '65.177.48.116', - facilityModel: '3D8d4ffa-bD7e-AffF-ED68-839DAFe74c27', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '14:10', - endRunTime: '03:06', - isNormal: '异常', - pollutantOutletFlow: '2', - pollutantFactor: '烟尘2', - treatmentEfficiency: '93.81', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '59.12', - treatmentMethod: '95', - powerConsumption: '34', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-08-24 05:16', - reagentAdditionAmount: '2', - }, - { - key: 3, - recordTime: '2025-09-06', - recorder: '王嘉琪', - reviewer: '郑清予', - facilityName: '口炎清颗粒(大神)', - code: '111.161.135.125', - facilityModel: '19b89EB2-ae94-6bF7-2355-6DBC2d6a6009', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '12:26', - endRunTime: '03:26', - isNormal: '异常', - pollutantOutletFlow: '2', - pollutantFactor: '烟尘', - treatmentEfficiency: '91.40', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '59.95', - treatmentMethod: '90', - powerConsumption: '56', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-08-30 18:34', - reagentAdditionAmount: '2', - }, - { - key: 4, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 5, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 6, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 7, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 8, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 9, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 10, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 11, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - reagentName: '乳酸钠葡萄糖', - reagentAdditionTime: '2025-09-01 07:53', - reagentAdditionAmount: '2', - }, - { - key: 12, - recordTime: '2025-08-29', - recorder: '赵吾行', - reviewer: '郑叶飞', - facilityName: '塞隆风湿酒(同仁堂)', - code: '35.236.217.212', - facilityModel: '6Ddb888D-3d7A-3e5E-3372-109F7154A03A', - parameterName: '重量', - designValue: '2', - unit: 't', - startRunTime: '00:46', - endRunTime: '03:55', - isNormal: '正常', - pollutantOutletFlow: '1', - pollutantFactor: '烟尘', - treatmentEfficiency: '95.32', - dataSource: '实时采集', - dischargeDestination: '2', - sludgeProduction: '50.48', - treatmentMethod: '100', - powerConsumption: '39', - 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: 'facilityModel', - key: 'facilityModel', - 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: 'pollutantOutletFlow', - key: 'pollutantOutletFlow', - 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: '排放去向', - dataIndex: 'dischargeDestination', - key: 'dischargeDestination', - width: 120, - align: 'center', - }, - { - title: '污泥产生量(t)', - dataIndex: 'sludgeProduction', - key: 'sludgeProduction', - width: 130, - align: 'center', - }, - { - title: '处理方式', - dataIndex: 'treatmentMethod', - key: 'treatmentMethod', - width: 120, - align: 'center', - }, - { - title: '耗电量(kWh)', - dataIndex: 'powerConsumption', - key: 'powerConsumption', - width: 120, - 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 ( -
- {/* 第一块:操作按钮和筛选条件 */} -
-
- - - - {/* */} -
- -
- 筛选条件 - - - -
-
- - {/* 第二块:表格 */} -
- `共 ${total} 条`, - showSizeChanger: false, - } - }} - onChange={handleTableChange} - scroll={{ x: 3000 }} - /> -
- - {/* 图片弹窗 */} - setIsModalVisible(false)} - footer={null} - closeIcon={} - width="auto" - centered - styles={{ - mask: { backgroundColor: '#10101080' }, - content: { padding: 0, background: 'transparent', boxShadow: 'none' } - }} - > - {currentImage && 许可证} - -
- ); -}; - -export default WastewaterFacilityManagement; \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.less b/src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.less deleted file mode 100644 index 6d2aaec..0000000 --- a/src/pages/business_emergencyResource/components/secondary_menu/WastewaterFacilityManagement.less +++ /dev/null @@ -1,206 +0,0 @@ -.wastewaterFacilityContainer { - 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; - padding: 0 20px 0; - overflow: 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; - } - } - } - - .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; - } - } - } -} \ No newline at end of file diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js b/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js index 9a9ef1f..48a4d2d 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js @@ -1,11 +1,283 @@ -import React from 'react'; -import styles from './yjdw.less'; +import React, { useState, useEffect } from 'react'; +import { Input, Button, Select, message, Modal } from 'antd'; +import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import StandardTable from '@/components/StandardTable'; +import styles from './yjzbry.less'; + +import iconsc from '@/assets/yjzygl/iconsc.svg'; + +const { Option } = Select; const Yjdw = () => { + const [loading, setLoading] = useState(false); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 10, + total: 48, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `共${total}条`, + }); + + // 模拟数据 + const [dataSource, setDataSource] = useState([ + { + key: '1', + number: '01', + unitName: '文登市兴文新材料有限公司', + name: '国云海', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '2', + number: '02', + unitName: '文登市兴文新材料有限公司', + name: '陈志强', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '3', + number: '03', + unitName: '合湾新材科技有限公司', + name: '侯文涛', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '4', + number: '04', + unitName: '山东万图高分子材料股份有限公司', + name: '宋东', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '5', + number: '05', + unitName: '合鸿新材科技有限公司', + name: '王一声', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '6', + number: '06', + unitName: '山东万图高分子材料股份有限公司', + name: '赵小敏', + position: '班长', + mobile: '17898786567', + email: '1878987633@qq.com', + dutyTime: '夜班', + }, + ]); + + // 表格列配置 + const columns = [ + { + title: '编号', + dataIndex: 'number', + key: 'number', + width: 80, + }, + { + title: '单位名称', + dataIndex: 'unitName', + key: 'unitName', + width: 200, + }, + { + title: '姓名', + dataIndex: 'name', + key: 'name', + width: 100, + }, + { + title: '职务', + dataIndex: 'position', + key: 'position', + width: 120, + }, + { + title: '手机号', + dataIndex: 'mobile', + key: 'mobile', + width: 130, + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email', + width: 180, + }, + { + title: '值班时间', + dataIndex: 'dutyTime', + key: 'dutyTime', + width: 100, + }, + { + title: '操作', + key: 'action', + width: 120, + render: (text, record) => ( +
+ + +
+ ), + }, + ]; + + // 搜索处理 + const handleSearch = () => { + setLoading(true); + // 模拟搜索请求 + setTimeout(() => { + setLoading(false); + message.success('查询完成'); + }, 1000); + }; + + // 新增处理 + const handleAdd = () => { + message.info('新增功能待实现'); + }; + + // 批量删除处理 + const handleBatchDelete = () => { + if (selectedRowKeys.length === 0) { + message.warning('请选择要删除的数据'); + return; + } + Modal.confirm({ + title: '确认删除', + content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, + onOk() { + setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); + setSelectedRowKeys([]); + message.success('删除成功'); + }, + }); + }; + + // 编辑处理 + const handleEdit = (record) => { + message.info(`编辑 ${record.name} 的信息`); + }; + + // 删除处理 + const handleDelete = (record) => { + Modal.confirm({ + title: '确认删除', + content: `确定要删除 ${record.name} 吗?`, + onOk() { + setDataSource(dataSource.filter(item => item.key !== record.key)); + message.success('删除成功'); + }, + }); + }; + + // 分页处理 + const handleTableChange = (pagination) => { + setPagination(pagination); + }; + return (
-
- 应急队伍内容 + {/* 页面标题 */} +
+
+

应急值班人员

+
+ + {/* 搜索和操作区域 */} +
+
+ + +
+
+ + +
+
+ + {/* 数据表格 */} +
+
); diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjdw.less b/src/pages/business_emergencyResource/components/secondary_menu/yjdw.less index 2714b8d..bc8e592 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjdw.less +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjdw.less @@ -1,10 +1,138 @@ .container { padding: 20px; - background-color: #EBF0FE; - min-height: 100vh; + background: #fff; + height:100vh; } -.content { - color: #333333; - font-size: 14px; +.header { + display: flex; + align-items: center; + // background-color: pink; + margin-bottom: 15px; + + .titleBar { + width: 3px; + height: 16px; + background: #2E4CD4; + margin-right: 12px; + } + + .title { + margin: 0; + font-size: 14px; + font-weight: 500; + color: #333; + } +} + +.searchBar { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 5px; + + + .searchLeft { + display: flex; + align-items: center; + gap: 12px; + } + + .searchRight { + display: flex; + align-items: center; + gap: 12px; + } +} + +// 自定义按钮样式 +.customButton { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + border-radius: 2px !important; + height: 30px !important; + width: 75px; + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &:hover { + background-color: #1e3bb8 !important; + border-color: #1e3bb8 !important; + } + + &:focus { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + } +} + +// // 所有按钮统一样式 +// .ant-btn { +// border-radius: 4px !important; +// height: 28px !important; +// display: flex !important; +// align-items: center !important; +// justify-content: center !important; +// } + +.tableContainer { + background: #fff; + border-radius: 0px; + overflow: hidden; + + .actionButtons { + display: flex; + gap: 8px; + font-size: 10px; + justify-content: center; + + .ant-btn-link { + padding: 0; + height: auto; + font-size: 10px; + } + } +} + +// 表格样式优化 +.tableContainer { + :global { + .ant-table-thead > tr > th { + background: #F5F5FA; + font-weight: 500; + color: #333333; + font-size: 14px; + text-align: center; + } + + .ant-table-tbody > tr > td { + color: #666666; + font-size: 13px; + text-align: center; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } + + .ant-pagination { + margin-top: 10px; + text-align: right; + } + + // 覆盖操作列按钮样式 + .ant-btn.ant-btn-sm { + font-size: 13px !important; + height: 20px !important; + padding: 0px 4px !important; + } + + .ant-btn-link.ant-btn-sm { + font-size: 13px !important; + height: auto !important; + padding: 0 !important; + } + } } diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js b/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js index a98df6a..4f2d294 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js @@ -1,11 +1,283 @@ -import React from 'react'; -import styles from './yjssd.less'; +import React, { useState, useEffect } from 'react'; +import { Input, Button, Select, message, Modal } from 'antd'; +import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import StandardTable from '@/components/StandardTable'; +import styles from './yjzbry.less'; + +import iconsc from '@/assets/yjzygl/iconsc.svg'; + +const { Option } = Select; const Yjssd = () => { + const [loading, setLoading] = useState(false); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 10, + total: 48, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `共${total}条`, + }); + + // 模拟数据 + const [dataSource, setDataSource] = useState([ + { + key: '1', + number: '01', + unitName: '文登市兴文新材料有限公司', + name: '国云海', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '2', + number: '02', + unitName: '文登市兴文新材料有限公司', + name: '陈志强', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '3', + number: '03', + unitName: '合湾新材科技有限公司', + name: '侯文涛', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '4', + number: '04', + unitName: '山东万图高分子材料股份有限公司', + name: '宋东', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '5', + number: '05', + unitName: '合鸿新材科技有限公司', + name: '王一声', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '6', + number: '06', + unitName: '山东万图高分子材料股份有限公司', + name: '赵小敏', + position: '班长', + mobile: '17898786567', + email: '1878987633@qq.com', + dutyTime: '夜班', + }, + ]); + + // 表格列配置 + const columns = [ + { + title: '编号', + dataIndex: 'number', + key: 'number', + width: 80, + }, + { + title: '单位名称', + dataIndex: 'unitName', + key: 'unitName', + width: 200, + }, + { + title: '姓名', + dataIndex: 'name', + key: 'name', + width: 100, + }, + { + title: '职务', + dataIndex: 'position', + key: 'position', + width: 120, + }, + { + title: '手机号', + dataIndex: 'mobile', + key: 'mobile', + width: 130, + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email', + width: 180, + }, + { + title: '值班时间', + dataIndex: 'dutyTime', + key: 'dutyTime', + width: 100, + }, + { + title: '操作', + key: 'action', + width: 120, + render: (text, record) => ( +
+ + +
+ ), + }, + ]; + + // 搜索处理 + const handleSearch = () => { + setLoading(true); + // 模拟搜索请求 + setTimeout(() => { + setLoading(false); + message.success('查询完成'); + }, 1000); + }; + + // 新增处理 + const handleAdd = () => { + message.info('新增功能待实现'); + }; + + // 批量删除处理 + const handleBatchDelete = () => { + if (selectedRowKeys.length === 0) { + message.warning('请选择要删除的数据'); + return; + } + Modal.confirm({ + title: '确认删除', + content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, + onOk() { + setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); + setSelectedRowKeys([]); + message.success('删除成功'); + }, + }); + }; + + // 编辑处理 + const handleEdit = (record) => { + message.info(`编辑 ${record.name} 的信息`); + }; + + // 删除处理 + const handleDelete = (record) => { + Modal.confirm({ + title: '确认删除', + content: `确定要删除 ${record.name} 吗?`, + onOk() { + setDataSource(dataSource.filter(item => item.key !== record.key)); + message.success('删除成功'); + }, + }); + }; + + // 分页处理 + const handleTableChange = (pagination) => { + setPagination(pagination); + }; + return (
-
- 应急疏散点内容 + {/* 页面标题 */} +
+
+

应急值班人员

+
+ + {/* 搜索和操作区域 */} +
+
+ + +
+
+ + +
+
+ + {/* 数据表格 */} +
+
); diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjssd.less b/src/pages/business_emergencyResource/components/secondary_menu/yjssd.less index 2714b8d..bc8e592 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjssd.less +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjssd.less @@ -1,10 +1,138 @@ .container { padding: 20px; - background-color: #EBF0FE; - min-height: 100vh; + background: #fff; + height:100vh; } -.content { - color: #333333; - font-size: 14px; +.header { + display: flex; + align-items: center; + // background-color: pink; + margin-bottom: 15px; + + .titleBar { + width: 3px; + height: 16px; + background: #2E4CD4; + margin-right: 12px; + } + + .title { + margin: 0; + font-size: 14px; + font-weight: 500; + color: #333; + } +} + +.searchBar { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 5px; + + + .searchLeft { + display: flex; + align-items: center; + gap: 12px; + } + + .searchRight { + display: flex; + align-items: center; + gap: 12px; + } +} + +// 自定义按钮样式 +.customButton { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + border-radius: 2px !important; + height: 30px !important; + width: 75px; + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &:hover { + background-color: #1e3bb8 !important; + border-color: #1e3bb8 !important; + } + + &:focus { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + } +} + +// // 所有按钮统一样式 +// .ant-btn { +// border-radius: 4px !important; +// height: 28px !important; +// display: flex !important; +// align-items: center !important; +// justify-content: center !important; +// } + +.tableContainer { + background: #fff; + border-radius: 0px; + overflow: hidden; + + .actionButtons { + display: flex; + gap: 8px; + font-size: 10px; + justify-content: center; + + .ant-btn-link { + padding: 0; + height: auto; + font-size: 10px; + } + } +} + +// 表格样式优化 +.tableContainer { + :global { + .ant-table-thead > tr > th { + background: #F5F5FA; + font-weight: 500; + color: #333333; + font-size: 14px; + text-align: center; + } + + .ant-table-tbody > tr > td { + color: #666666; + font-size: 13px; + text-align: center; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } + + .ant-pagination { + margin-top: 10px; + text-align: right; + } + + // 覆盖操作列按钮样式 + .ant-btn.ant-btn-sm { + font-size: 13px !important; + height: 20px !important; + padding: 0px 4px !important; + } + + .ant-btn-link.ant-btn-sm { + font-size: 13px !important; + height: auto !important; + padding: 0 !important; + } + } } diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js b/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js index a2ca013..6076af3 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js @@ -1,11 +1,283 @@ -import React from 'react'; -import styles from './yjwz.less'; +import React, { useState, useEffect } from 'react'; +import { Input, Button, Select, message, Modal } from 'antd'; +import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import StandardTable from '@/components/StandardTable'; +import styles from './yjzbry.less'; + +import iconsc from '@/assets/yjzygl/iconsc.svg'; + +const { Option } = Select; const Yjwz = () => { + const [loading, setLoading] = useState(false); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 10, + total: 48, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `共${total}条`, + }); + + // 模拟数据 + const [dataSource, setDataSource] = useState([ + { + key: '1', + number: '01', + unitName: '文登市兴文新材料有限公司', + name: '国云海', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '2', + number: '02', + unitName: '文登市兴文新材料有限公司', + name: '陈志强', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '3', + number: '03', + unitName: '合湾新材科技有限公司', + name: '侯文涛', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '4', + number: '04', + unitName: '山东万图高分子材料股份有限公司', + name: '宋东', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '5', + number: '05', + unitName: '合鸿新材科技有限公司', + name: '王一声', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '6', + number: '06', + unitName: '山东万图高分子材料股份有限公司', + name: '赵小敏', + position: '班长', + mobile: '17898786567', + email: '1878987633@qq.com', + dutyTime: '夜班', + }, + ]); + + // 表格列配置 + const columns = [ + { + title: '编号', + dataIndex: 'number', + key: 'number', + width: 80, + }, + { + title: '单位名称', + dataIndex: 'unitName', + key: 'unitName', + width: 200, + }, + { + title: '姓名', + dataIndex: 'name', + key: 'name', + width: 100, + }, + { + title: '职务', + dataIndex: 'position', + key: 'position', + width: 120, + }, + { + title: '手机号', + dataIndex: 'mobile', + key: 'mobile', + width: 130, + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email', + width: 180, + }, + { + title: '值班时间', + dataIndex: 'dutyTime', + key: 'dutyTime', + width: 100, + }, + { + title: '操作', + key: 'action', + width: 120, + render: (text, record) => ( +
+ + +
+ ), + }, + ]; + + // 搜索处理 + const handleSearch = () => { + setLoading(true); + // 模拟搜索请求 + setTimeout(() => { + setLoading(false); + message.success('查询完成'); + }, 1000); + }; + + // 新增处理 + const handleAdd = () => { + message.info('新增功能待实现'); + }; + + // 批量删除处理 + const handleBatchDelete = () => { + if (selectedRowKeys.length === 0) { + message.warning('请选择要删除的数据'); + return; + } + Modal.confirm({ + title: '确认删除', + content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, + onOk() { + setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); + setSelectedRowKeys([]); + message.success('删除成功'); + }, + }); + }; + + // 编辑处理 + const handleEdit = (record) => { + message.info(`编辑 ${record.name} 的信息`); + }; + + // 删除处理 + const handleDelete = (record) => { + Modal.confirm({ + title: '确认删除', + content: `确定要删除 ${record.name} 吗?`, + onOk() { + setDataSource(dataSource.filter(item => item.key !== record.key)); + message.success('删除成功'); + }, + }); + }; + + // 分页处理 + const handleTableChange = (pagination) => { + setPagination(pagination); + }; + return (
-
- 应急物资内容 + {/* 页面标题 */} +
+
+

应急值班人员

+
+ + {/* 搜索和操作区域 */} +
+
+ + +
+
+ + +
+
+ + {/* 数据表格 */} +
+
); diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjwz.less b/src/pages/business_emergencyResource/components/secondary_menu/yjwz.less index 2714b8d..8fabfea 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjwz.less +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjwz.less @@ -1,10 +1,138 @@ -.container { +.containerwz { padding: 20px; - background-color: #EBF0FE; - min-height: 100vh; + background: #fff; + height:100vh; } -.content { - color: #333333; - font-size: 14px; +.header { + display: flex; + align-items: center; + // background-color: pink; + margin-bottom: 15px; + + .titleBar { + width: 3px; + height: 16px; + background: #2E4CD4; + margin-right: 12px; + } + + .title { + margin: 0; + font-size: 14px; + font-weight: 500; + color: #333; + } +} + +.searchBar { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 5px; + + + .searchLeft { + display: flex; + align-items: center; + gap: 12px; + } + + .searchRight { + display: flex; + align-items: center; + gap: 12px; + } +} + +// 自定义按钮样式 +.customButton { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + border-radius: 2px !important; + height: 30px !important; + width: 75px; + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &:hover { + background-color: #1e3bb8 !important; + border-color: #1e3bb8 !important; + } + + &:focus { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + } +} + +// // 所有按钮统一样式 +// .ant-btn { +// border-radius: 4px !important; +// height: 28px !important; +// display: flex !important; +// align-items: center !important; +// justify-content: center !important; +// } + +.tableContainer { + background: #fff; + border-radius: 0px; + overflow: hidden; + + .actionButtons { + display: flex; + gap: 8px; + font-size: 10px; + justify-content: center; + + .ant-btn-link { + padding: 0; + height: auto; + font-size: 10px; + } + } +} + +// 表格样式优化 +.tableContainer { + :global { + .ant-table-thead > tr > th { + background: #F5F5FA; + font-weight: 500; + color: #333333; + font-size: 14px; + text-align: center; + } + + .ant-table-tbody > tr > td { + color: #666666; + font-size: 13px; + text-align: center; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } + + .ant-pagination { + margin-top: 10px; + text-align: right; + } + + // 覆盖操作列按钮样式 + .ant-btn.ant-btn-sm { + font-size: 13px !important; + height: 20px !important; + padding: 0px 4px !important; + } + + .ant-btn-link.ant-btn-sm { + font-size: 13px !important; + height: auto !important; + padding: 0 !important; + } + } } diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjxf.js b/src/pages/business_emergencyResource/components/secondary_menu/yjxf.js index 42ecc10..134ae07 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjxf.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjxf.js @@ -1,11 +1,283 @@ -import React from 'react'; -import styles from './yjxf.less'; +import React, { useState, useEffect } from 'react'; +import { Input, Button, Select, message, Modal } from 'antd'; +import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import StandardTable from '@/components/StandardTable'; +import styles from './yjzbry.less'; + +import iconsc from '@/assets/yjzygl/iconsc.svg'; + +const { Option } = Select; const Yjxf = () => { + const [loading, setLoading] = useState(false); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 10, + total: 48, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `共${total}条`, + }); + + // 模拟数据 + const [dataSource, setDataSource] = useState([ + { + key: '1', + number: '01', + unitName: '文登市兴文新材料有限公司', + name: '国云海', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '2', + number: '02', + unitName: '文登市兴文新材料有限公司', + name: '陈志强', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '3', + number: '03', + unitName: '合湾新材科技有限公司', + name: '侯文涛', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '4', + number: '04', + unitName: '山东万图高分子材料股份有限公司', + name: '宋东', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '5', + number: '05', + unitName: '合鸿新材科技有限公司', + name: '王一声', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '6', + number: '06', + unitName: '山东万图高分子材料股份有限公司', + name: '赵小敏', + position: '班长', + mobile: '17898786567', + email: '1878987633@qq.com', + dutyTime: '夜班', + }, + ]); + + // 表格列配置 + const columns = [ + { + title: '编号', + dataIndex: 'number', + key: 'number', + width: 80, + }, + { + title: '单位名称', + dataIndex: 'unitName', + key: 'unitName', + width: 200, + }, + { + title: '姓名', + dataIndex: 'name', + key: 'name', + width: 100, + }, + { + title: '职务', + dataIndex: 'position', + key: 'position', + width: 120, + }, + { + title: '手机号', + dataIndex: 'mobile', + key: 'mobile', + width: 130, + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email', + width: 180, + }, + { + title: '值班时间', + dataIndex: 'dutyTime', + key: 'dutyTime', + width: 100, + }, + { + title: '操作', + key: 'action', + width: 120, + render: (text, record) => ( +
+ + +
+ ), + }, + ]; + + // 搜索处理 + const handleSearch = () => { + setLoading(true); + // 模拟搜索请求 + setTimeout(() => { + setLoading(false); + message.success('查询完成'); + }, 1000); + }; + + // 新增处理 + const handleAdd = () => { + message.info('新增功能待实现'); + }; + + // 批量删除处理 + const handleBatchDelete = () => { + if (selectedRowKeys.length === 0) { + message.warning('请选择要删除的数据'); + return; + } + Modal.confirm({ + title: '确认删除', + content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, + onOk() { + setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); + setSelectedRowKeys([]); + message.success('删除成功'); + }, + }); + }; + + // 编辑处理 + const handleEdit = (record) => { + message.info(`编辑 ${record.name} 的信息`); + }; + + // 删除处理 + const handleDelete = (record) => { + Modal.confirm({ + title: '确认删除', + content: `确定要删除 ${record.name} 吗?`, + onOk() { + setDataSource(dataSource.filter(item => item.key !== record.key)); + message.success('删除成功'); + }, + }); + }; + + // 分页处理 + const handleTableChange = (pagination) => { + setPagination(pagination); + }; + return (
-
- 应急消防点内容 + {/* 页面标题 */} +
+
+

应急值班人员

+
+ + {/* 搜索和操作区域 */} +
+
+ + +
+
+ + +
+
+ + {/* 数据表格 */} +
+
); diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjxf.less b/src/pages/business_emergencyResource/components/secondary_menu/yjxf.less index 2714b8d..bc8e592 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjxf.less +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjxf.less @@ -1,10 +1,138 @@ .container { padding: 20px; - background-color: #EBF0FE; - min-height: 100vh; + background: #fff; + height:100vh; } -.content { - color: #333333; - font-size: 14px; +.header { + display: flex; + align-items: center; + // background-color: pink; + margin-bottom: 15px; + + .titleBar { + width: 3px; + height: 16px; + background: #2E4CD4; + margin-right: 12px; + } + + .title { + margin: 0; + font-size: 14px; + font-weight: 500; + color: #333; + } +} + +.searchBar { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 5px; + + + .searchLeft { + display: flex; + align-items: center; + gap: 12px; + } + + .searchRight { + display: flex; + align-items: center; + gap: 12px; + } +} + +// 自定义按钮样式 +.customButton { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + border-radius: 2px !important; + height: 30px !important; + width: 75px; + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &:hover { + background-color: #1e3bb8 !important; + border-color: #1e3bb8 !important; + } + + &:focus { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + } +} + +// // 所有按钮统一样式 +// .ant-btn { +// border-radius: 4px !important; +// height: 28px !important; +// display: flex !important; +// align-items: center !important; +// justify-content: center !important; +// } + +.tableContainer { + background: #fff; + border-radius: 0px; + overflow: hidden; + + .actionButtons { + display: flex; + gap: 8px; + font-size: 10px; + justify-content: center; + + .ant-btn-link { + padding: 0; + height: auto; + font-size: 10px; + } + } +} + +// 表格样式优化 +.tableContainer { + :global { + .ant-table-thead > tr > th { + background: #F5F5FA; + font-weight: 500; + color: #333333; + font-size: 14px; + text-align: center; + } + + .ant-table-tbody > tr > td { + color: #666666; + font-size: 13px; + text-align: center; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } + + .ant-pagination { + margin-top: 10px; + text-align: right; + } + + // 覆盖操作列按钮样式 + .ant-btn.ant-btn-sm { + font-size: 13px !important; + height: 20px !important; + padding: 0px 4px !important; + } + + .ant-btn-link.ant-btn-sm { + font-size: 13px !important; + height: auto !important; + padding: 0 !important; + } + } } diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjxfd.js b/src/pages/business_emergencyResource/components/secondary_menu/yjxfd.js new file mode 100644 index 0000000..971b63a --- /dev/null +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjxfd.js @@ -0,0 +1,286 @@ +import React, { useState, useEffect } from 'react'; +import { Input, Button, Select, message, Modal } from 'antd'; +import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import StandardTable from '@/components/StandardTable'; +import styles from './yjxfd.less'; + +import iconsc from '@/assets/yjzygl/iconsc.svg'; + +const { Option } = Select; + +const Yjxfd = () => { + const [loading, setLoading] = useState(false); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 10, + total: 48, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `共${total}条`, + }); + + // 模拟数据 + const [dataSource, setDataSource] = useState([ + { + key: '1', + number: '01', + unitName: '文登市兴文新材料有限公司', + name: '国云海', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '2', + number: '02', + unitName: '文登市兴文新材料有限公司', + name: '陈志强', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '3', + number: '03', + unitName: '合湾新材科技有限公司', + name: '侯文涛', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '4', + number: '04', + unitName: '山东万图高分子材料股份有限公司', + name: '宋东', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '5', + number: '05', + unitName: '合鸿新材科技有限公司', + name: '王一声', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '6', + number: '06', + unitName: '山东万图高分子材料股份有限公司', + name: '赵小敏', + position: '班长', + mobile: '17898786567', + email: '1878987633@qq.com', + dutyTime: '夜班', + }, + ]); + + // 表格列配置 + const columns = [ + { + title: '编号', + dataIndex: 'number', + key: 'number', + width: 80, + }, + { + title: '单位名称', + dataIndex: 'unitName', + key: 'unitName', + width: 200, + }, + { + title: '姓名', + dataIndex: 'name', + key: 'name', + width: 100, + }, + { + title: '职务', + dataIndex: 'position', + key: 'position', + width: 120, + }, + { + title: '手机号', + dataIndex: 'mobile', + key: 'mobile', + width: 130, + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email', + width: 180, + }, + { + title: '值班时间', + dataIndex: 'dutyTime', + key: 'dutyTime', + width: 100, + }, + { + title: '操作', + key: 'action', + width: 120, + render: (text, record) => ( +
+ + +
+ ), + }, + ]; + + // 搜索处理 + const handleSearch = () => { + setLoading(true); + // 模拟搜索请求 + setTimeout(() => { + setLoading(false); + message.success('查询完成'); + }, 1000); + }; + + // 新增处理 + const handleAdd = () => { + message.info('新增功能待实现'); + }; + + // 批量删除处理 + const handleBatchDelete = () => { + if (selectedRowKeys.length === 0) { + message.warning('请选择要删除的数据'); + return; + } + Modal.confirm({ + title: '确认删除', + content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, + onOk() { + setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); + setSelectedRowKeys([]); + message.success('删除成功'); + }, + }); + }; + + // 编辑处理 + const handleEdit = (record) => { + message.info(`编辑 ${record.name} 的信息`); + }; + + // 删除处理 + const handleDelete = (record) => { + Modal.confirm({ + title: '确认删除', + content: `确定要删除 ${record.name} 吗?`, + onOk() { + setDataSource(dataSource.filter(item => item.key !== record.key)); + message.success('删除成功'); + }, + }); + }; + + // 分页处理 + const handleTableChange = (pagination) => { + setPagination(pagination); + }; + + return ( +
+ {/* 页面标题 */} +
+
+

应急消防电

+
+ + {/* 搜索和操作区域 */} +
+
+ + +
+
+ + +
+
+ + {/* 数据表格 */} +
+ +
+
+ ); +}; + +export default Yjxfd; diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjxfd.less b/src/pages/business_emergencyResource/components/secondary_menu/yjxfd.less new file mode 100644 index 0000000..641628d --- /dev/null +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjxfd.less @@ -0,0 +1,122 @@ +.container { + padding: 20px; + background: #f5f5f5; + min-height: 100vh; +} + +.header { + margin-bottom: 20px; + display: flex; + align-items: center; +} + +.titleBar { + width: 4px; + height: 20px; + background: #1890ff; + margin-right: 10px; +} + +.title { + margin: 0; + font-size: 18px; + font-weight: 500; + color: #333; +} + +.searchBar { + background: #fff; + padding: 20px; + border-radius: 6px; + margin-bottom: 20px; + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.searchLeft { + display: flex; + align-items: center; + gap: 12px; +} + +.searchRight { + display: flex; + align-items: center; + gap: 12px; +} + +.customButton { + height: 30px !important; + border-radius: 2px !important; + display: flex !important; + align-items: center !important; + justify-content: center !important; +} + +.tableContainer { + background: #fff; + border-radius: 6px; + padding: 20px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.actionButtons { + display: flex; + gap: 8px; +} + +.actionButtons .ant-btn-link { + padding: 0; + height: auto; + line-height: 1; +} + +.actionButtons .ant-btn-link:hover { + background: transparent; +} + +// 覆盖全局按钮样式 +:global(.ant-btn) { + height: 28px !important; + border-radius: 2px !important; +} + +:global(.ant-select) { + .ant-select-selector { + height: 30px !important; + border-radius: 2px !important; + } +} + +:global(.ant-input) { + height: 30px !important; + border-radius: 2px !important; +} + +:global(.ant-table) { + .ant-table-thead > tr > th { + background: #fafafa; + font-weight: 500; + color: #333; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } +} + +:global(.ant-pagination) { + margin-top: 16px; + text-align: right; +} + +:global(.ant-pagination-item) { + border-radius: 2px; +} + +:global(.ant-pagination-prev), +:global(.ant-pagination-next) { + border-radius: 2px; +} diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjzbry.js b/src/pages/business_emergencyResource/components/secondary_menu/yjzbry.js index 659d641..4520ca8 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjzbry.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjzbry.js @@ -4,6 +4,8 @@ import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant import StandardTable from '@/components/StandardTable'; import styles from './yjzbry.less'; +import iconsc from '@/assets/yjzygl/iconsc.svg'; + const { Option } = Select; const Yjzbry = () => { @@ -222,9 +224,9 @@ const Yjzbry = () => {
+ + + + + + +
+
+ + +
+
+ + {/* 数据表格 */} +
+
); diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjzj.less b/src/pages/business_emergencyResource/components/secondary_menu/yjzj.less index 2714b8d..bc8e592 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjzj.less +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjzj.less @@ -1,10 +1,138 @@ .container { padding: 20px; - background-color: #EBF0FE; - min-height: 100vh; + background: #fff; + height:100vh; } -.content { - color: #333333; - font-size: 14px; +.header { + display: flex; + align-items: center; + // background-color: pink; + margin-bottom: 15px; + + .titleBar { + width: 3px; + height: 16px; + background: #2E4CD4; + margin-right: 12px; + } + + .title { + margin: 0; + font-size: 14px; + font-weight: 500; + color: #333; + } +} + +.searchBar { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 5px; + + + .searchLeft { + display: flex; + align-items: center; + gap: 12px; + } + + .searchRight { + display: flex; + align-items: center; + gap: 12px; + } +} + +// 自定义按钮样式 +.customButton { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + border-radius: 2px !important; + height: 30px !important; + width: 75px; + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &:hover { + background-color: #1e3bb8 !important; + border-color: #1e3bb8 !important; + } + + &:focus { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + } +} + +// // 所有按钮统一样式 +// .ant-btn { +// border-radius: 4px !important; +// height: 28px !important; +// display: flex !important; +// align-items: center !important; +// justify-content: center !important; +// } + +.tableContainer { + background: #fff; + border-radius: 0px; + overflow: hidden; + + .actionButtons { + display: flex; + gap: 8px; + font-size: 10px; + justify-content: center; + + .ant-btn-link { + padding: 0; + height: auto; + font-size: 10px; + } + } +} + +// 表格样式优化 +.tableContainer { + :global { + .ant-table-thead > tr > th { + background: #F5F5FA; + font-weight: 500; + color: #333333; + font-size: 14px; + text-align: center; + } + + .ant-table-tbody > tr > td { + color: #666666; + font-size: 13px; + text-align: center; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } + + .ant-pagination { + margin-top: 10px; + text-align: right; + } + + // 覆盖操作列按钮样式 + .ant-btn.ant-btn-sm { + font-size: 13px !important; + height: 20px !important; + padding: 0px 4px !important; + } + + .ant-btn-link.ant-btn-sm { + font-size: 13px !important; + height: auto !important; + padding: 0 !important; + } + } } diff --git a/src/pages/business_emergencyResource/components/secondary_menu/zbhy.js b/src/pages/business_emergencyResource/components/secondary_menu/zbhy.js index 1ddae32..a323b67 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/zbhy.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/zbhy.js @@ -1,11 +1,283 @@ -import React from 'react'; -import styles from './zbhy.less'; +import React, { useState, useEffect } from 'react'; +import { Input, Button, Select, message, Modal } from 'antd'; +import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import StandardTable from '@/components/StandardTable'; +import styles from './yjzbry.less'; + +import iconsc from '@/assets/yjzygl/iconsc.svg'; + +const { Option } = Select; const Zbhy = () => { + const [loading, setLoading] = useState(false); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [pagination, setPagination] = useState({ + current: 1, + pageSize: 10, + total: 48, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `共${total}条`, + }); + + // 模拟数据 + const [dataSource, setDataSource] = useState([ + { + key: '1', + number: '01', + unitName: '文登市兴文新材料有限公司', + name: '国云海', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '2', + number: '02', + unitName: '文登市兴文新材料有限公司', + name: '陈志强', + position: '生产班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '3', + number: '03', + unitName: '合湾新材科技有限公司', + name: '侯文涛', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '白班', + }, + { + key: '4', + number: '04', + unitName: '山东万图高分子材料股份有限公司', + name: '宋东', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '5', + number: '05', + unitName: '合鸿新材科技有限公司', + name: '王一声', + position: '班长', + mobile: '17898786567', + email: '1878967633@qq.com', + dutyTime: '夜班', + }, + { + key: '6', + number: '06', + unitName: '山东万图高分子材料股份有限公司', + name: '赵小敏', + position: '班长', + mobile: '17898786567', + email: '1878987633@qq.com', + dutyTime: '夜班', + }, + ]); + + // 表格列配置 + const columns = [ + { + title: '编号', + dataIndex: 'number', + key: 'number', + width: 80, + }, + { + title: '单位名称', + dataIndex: 'unitName', + key: 'unitName', + width: 200, + }, + { + title: '姓名', + dataIndex: 'name', + key: 'name', + width: 100, + }, + { + title: '职务', + dataIndex: 'position', + key: 'position', + width: 120, + }, + { + title: '手机号', + dataIndex: 'mobile', + key: 'mobile', + width: 130, + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email', + width: 180, + }, + { + title: '值班时间', + dataIndex: 'dutyTime', + key: 'dutyTime', + width: 100, + }, + { + title: '操作', + key: 'action', + width: 120, + render: (text, record) => ( +
+ + +
+ ), + }, + ]; + + // 搜索处理 + const handleSearch = () => { + setLoading(true); + // 模拟搜索请求 + setTimeout(() => { + setLoading(false); + message.success('查询完成'); + }, 1000); + }; + + // 新增处理 + const handleAdd = () => { + message.info('新增功能待实现'); + }; + + // 批量删除处理 + const handleBatchDelete = () => { + if (selectedRowKeys.length === 0) { + message.warning('请选择要删除的数据'); + return; + } + Modal.confirm({ + title: '确认删除', + content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, + onOk() { + setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); + setSelectedRowKeys([]); + message.success('删除成功'); + }, + }); + }; + + // 编辑处理 + const handleEdit = (record) => { + message.info(`编辑 ${record.name} 的信息`); + }; + + // 删除处理 + const handleDelete = (record) => { + Modal.confirm({ + title: '确认删除', + content: `确定要删除 ${record.name} 吗?`, + onOk() { + setDataSource(dataSource.filter(item => item.key !== record.key)); + message.success('删除成功'); + }, + }); + }; + + // 分页处理 + const handleTableChange = (pagination) => { + setPagination(pagination); + }; + return (
-
- 周边医院内容 + {/* 页面标题 */} +
+
+

应急值班人员

+
+ + {/* 搜索和操作区域 */} +
+
+ + +
+
+ + +
+
+ + {/* 数据表格 */} +
+
); diff --git a/src/pages/business_emergencyResource/components/secondary_menu/zbhy.less b/src/pages/business_emergencyResource/components/secondary_menu/zbhy.less index 2714b8d..bc8e592 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/zbhy.less +++ b/src/pages/business_emergencyResource/components/secondary_menu/zbhy.less @@ -1,10 +1,138 @@ .container { padding: 20px; - background-color: #EBF0FE; - min-height: 100vh; + background: #fff; + height:100vh; } -.content { - color: #333333; - font-size: 14px; +.header { + display: flex; + align-items: center; + // background-color: pink; + margin-bottom: 15px; + + .titleBar { + width: 3px; + height: 16px; + background: #2E4CD4; + margin-right: 12px; + } + + .title { + margin: 0; + font-size: 14px; + font-weight: 500; + color: #333; + } +} + +.searchBar { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 5px; + + + .searchLeft { + display: flex; + align-items: center; + gap: 12px; + } + + .searchRight { + display: flex; + align-items: center; + gap: 12px; + } +} + +// 自定义按钮样式 +.customButton { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + border-radius: 2px !important; + height: 30px !important; + width: 75px; + display: flex !important; + align-items: center !important; + justify-content: center !important; + + &:hover { + background-color: #1e3bb8 !important; + border-color: #1e3bb8 !important; + } + + &:focus { + background-color: #2E4CD4 !important; + border-color: #2E4CD4 !important; + } +} + +// // 所有按钮统一样式 +// .ant-btn { +// border-radius: 4px !important; +// height: 28px !important; +// display: flex !important; +// align-items: center !important; +// justify-content: center !important; +// } + +.tableContainer { + background: #fff; + border-radius: 0px; + overflow: hidden; + + .actionButtons { + display: flex; + gap: 8px; + font-size: 10px; + justify-content: center; + + .ant-btn-link { + padding: 0; + height: auto; + font-size: 10px; + } + } +} + +// 表格样式优化 +.tableContainer { + :global { + .ant-table-thead > tr > th { + background: #F5F5FA; + font-weight: 500; + color: #333333; + font-size: 14px; + text-align: center; + } + + .ant-table-tbody > tr > td { + color: #666666; + font-size: 13px; + text-align: center; + } + + .ant-table-tbody > tr:hover > td { + background: #f5f5f5; + } + + .ant-pagination { + margin-top: 10px; + text-align: right; + } + + // 覆盖操作列按钮样式 + .ant-btn.ant-btn-sm { + font-size: 13px !important; + height: 20px !important; + padding: 0px 4px !important; + } + + .ant-btn-link.ant-btn-sm { + font-size: 13px !important; + height: auto !important; + padding: 0 !important; + } + } } From 60afa8d935ebb3c91c2488dd50a473465bd31f9c Mon Sep 17 00:00:00 2001 From: wangyunfei <1224056307@qq,com> Date: Thu, 23 Oct 2025 18:12:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=BA=94=E6=80=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/secondary_menu/yjdw.js | 4 +-- .../components/secondary_menu/yjssd.js | 4 +-- .../components/secondary_menu/yjwz.js | 32 +++++++++---------- .../components/secondary_menu/yjwz.less | 2 +- .../components/secondary_menu/yjzbry.less | 2 +- .../components/secondary_menu/yjzj.js | 4 +-- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js b/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js index 48a4d2d..be260b9 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjdw.js @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import { Input, Button, Select, message, Modal } from 'antd'; import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; import StandardTable from '@/components/StandardTable'; -import styles from './yjzbry.less'; +import styles from './yjdw.less'; import iconsc from '@/assets/yjzygl/iconsc.svg'; @@ -216,7 +216,7 @@ const Yjdw = () => { {/* 页面标题 */}
-

应急值班人员

+

应急队伍

{/* 搜索和操作区域 */} diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js b/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js index 4f2d294..fa01e41 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjssd.js @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import { Input, Button, Select, message, Modal } from 'antd'; import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; import StandardTable from '@/components/StandardTable'; -import styles from './yjzbry.less'; +import styles from './yjssd.less'; import iconsc from '@/assets/yjzygl/iconsc.svg'; @@ -216,7 +216,7 @@ const Yjssd = () => { {/* 页面标题 */}
-

应急值班人员

+

应急疏散点

{/* 搜索和操作区域 */} diff --git a/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js b/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js index 6076af3..ba7ac98 100644 --- a/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js +++ b/src/pages/business_emergencyResource/components/secondary_menu/yjwz.js @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import { Input, Button, Select, message, Modal } from 'antd'; import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; import StandardTable from '@/components/StandardTable'; -import styles from './yjzbry.less'; +import styles from './yjdw.less'; import iconsc from '@/assets/yjzygl/iconsc.svg'; @@ -135,17 +135,17 @@ const Yjwz = () => { width: 120, render: (text, record) => (
- -
- -