diff --git a/src/pages/business_basic/module/EvaluationReport.js b/src/pages/business_basic/module/EvaluationReport.js index 7818aa1..1d61812 100644 --- a/src/pages/business_basic/module/EvaluationReport.js +++ b/src/pages/business_basic/module/EvaluationReport.js @@ -1,6 +1,6 @@ import React, { useEffect, useRef, useState } from 'react'; -import { Card, Result, Select, Button, Segmented } from 'antd'; -import { CheckCircleOutlined, ExportOutlined, HeartFilled, LineHeightOutlined } from '@ant-design/icons'; +import { Card, Result, Select, Button, Segmented, Progress, Input } from 'antd'; +import { CheckCircleOutlined, ExportOutlined, HeartFilled, LineHeightOutlined, ExclamationCircleOutlined, SearchOutlined } from '@ant-design/icons'; import * as echarts from 'echarts'; import StandardTable from '@/components/StandardTable'; import styles from './EvaluationReport.less'; @@ -27,9 +27,10 @@ const EvaluationReport = () => { const [dataSource, setDataSource] = useState([]); const [pagination, setPagination] = useState({ current: 1, - pageSize: 5, + pageSize: 8, total: 0, }); + const [searchText, setSearchText] = useState(''); // 柱状图初始化 useEffect(() => { @@ -140,7 +141,7 @@ const EvaluationReport = () => { axisPointer: { type: 'shadow' }, - formatter: function(params) { + formatter: function (params) { return `${params[0].name}
使用次数: ${params[0].value}`; } } @@ -175,6 +176,7 @@ const EvaluationReport = () => { legend: { show: true, + top: '5%', left: 'center', itemWidth: 20, itemHeight: 8, @@ -187,7 +189,7 @@ const EvaluationReport = () => { left: '5%', right: '5%', bottom: '10%', - top: '15%', + top: '20%', containLabel: true }, xAxis: { @@ -444,7 +446,7 @@ const EvaluationReport = () => { width: 60, render: (text, record, index) => { const page = pagination.current || 1; - const pageSize = pagination.pageSize || 5; + const pageSize = pagination.pageSize || 8; const number = (page - 1) * pageSize + index + 1; return `0${number}`.slice(-2); } @@ -462,26 +464,27 @@ const EvaluationReport = () => { width: 110, }, { - title: '型号规格', + title: '类型', dataIndex: 'modelSpec', key: 'modelSpec', - width: 140, + width: 120, }, { title: '安装位置', dataIndex: 'installLocation', key: 'installLocation', - width: 200, + width: 100, }, { title: '状态', dataIndex: 'status', key: 'status', - width: 80, + width: 100, render: (text) => { const statusMap = { - '故障': { color: '#FF4D4F', bg: '#FFF2F0' }, - '预警': { color: '#FAAD14', bg: '#FFF3E9' }, + '报废': { color: '#FF3E48', bg: '#FFE0E2' }, + '待维修': { color: '#FF8800', bg: '#FFF3E9' }, + '已使用': { color: '#00AAFA', bg: '#DAF3FF' }, '正常': { color: '#44BB5F', bg: '#D8F7DE' } }; const status = statusMap[text] || { color: '#333', bg: '#F5F5F5' }; @@ -499,7 +502,7 @@ const EvaluationReport = () => { } }, { - title: '最后维护', + title: '最后维护时间', dataIndex: 'lastMaintenance', key: 'lastMaintenance', width: 150, @@ -510,9 +513,9 @@ const EvaluationReport = () => { width: 140, render: (_, record) => (
- -
), @@ -540,122 +544,162 @@ const EvaluationReport = () => { key: '1', id: '001', deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼1层大厅', - status: '故障', + deviceName: '干粉灭火器', + modelSpec: '灭火设备', + installLocation: '1层大厅', + status: '报废', lastMaintenance: '2025-09-10', }, { key: '2', id: '002', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼3层 东区', - status: '预警', + deviceId: 'HQ-XF-02-015', + deviceName: '室内消火栓', + modelSpec: '灭火设备', + installLocation: '3层东区', + status: '已使用', lastMaintenance: '2025-09-10', }, { key: '3', id: '003', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', + deviceId: 'HQ-XF-03-007', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下一层', status: '正常', lastMaintenance: '2025-09-10', }, { key: '4', id: '004', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '故障', + deviceId: 'HQ-XF-03-008', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下一层', + status: '待维修', lastMaintenance: '2025-09-10', }, { key: '5', id: '005', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '正常', + deviceId: 'HQ-XF-01-009', + deviceName: '干粉灭火器', + modelSpec: '灭火设备', + installLocation: '地下一层', + status: '报废', lastMaintenance: '2025-09-10', }, { key: '6', id: '006', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '预警', + deviceId: 'HQ-XF-01-010', + deviceName: '室内消火栓', + modelSpec: '灭火设备', + installLocation: '地下一层', + status: '已使用', lastMaintenance: '2025-09-10', }, { key: '7', id: '007', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '故障', + deviceId: 'HQ-XF-01-011', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下一层', + status: '待维修', lastMaintenance: '2025-09-10', }, { key: '8', id: '008', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', + deviceId: 'HQ-XF-01-012', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下一层', status: '正常', lastMaintenance: '2025-09-10', }, { key: '9', id: '009', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '预警', + deviceId: 'HQ-XF-01-013', + deviceName: '干粉灭火器', + modelSpec: '灭火设备', + installLocation: '地下一层', + status: '已使用', lastMaintenance: '2025-09-10', }, { key: '10', id: '010', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '故障', + deviceId: 'HQ-XF-01-014', + deviceName: '室内消火栓', + modelSpec: '灭火设备', + installLocation: '地下一层', + status: '待维修', lastMaintenance: '2025-09-10', }, { key: '11', id: '011', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', + deviceId: 'HQ-XF-01-015', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下一层', status: '正常', lastMaintenance: '2025-09-10', }, { key: '12', id: '012', - deviceId: 'HQ-XF-01-001', - deviceName: '消防水泵', - modelSpec: 'XBD5.0/30-125', - installLocation: '总部大楼地下一层', - status: '预警', + deviceId: 'HQ-XF-01-016', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下一层', + status: '已使用', lastMaintenance: '2025-09-10', }, + { + key: '13', + id: '013', + deviceId: 'HQ-XF-01-017', + deviceName: '干粉灭火器', + modelSpec: '灭火设备', + installLocation: '2层西区', + status: '报废', + lastMaintenance: '2024-08-15', + }, + { + key: '14', + id: '014', + deviceId: 'HQ-XF-02-018', + deviceName: '室内消火栓', + modelSpec: '灭火设备', + installLocation: '4层南区', + status: '报废', + lastMaintenance: '2024-07-20', + }, + { + key: '15', + id: '015', + deviceId: 'HQ-XF-03-019', + deviceName: '火警报警器', + modelSpec: '报警设备', + installLocation: '地下二层', + status: '报废', + lastMaintenance: '2024-06-10', + }, + { + key: '16', + id: '016', + deviceId: 'HQ-XF-01-020', + deviceName: '干粉灭火器', + modelSpec: '灭火设备', + installLocation: '5层北区', + status: '报废', + lastMaintenance: '2024-05-05', + }, ]; // 初始化数据 @@ -698,9 +742,16 @@ const EvaluationReport = () => { })); }; + // 搜索处理 + const handleSearchChange = (e) => { + setSearchText(e.target.value); + console.log('搜索:', e.target.value); + // TODO: 实现搜索逻辑,根据设备名称、编号等筛选数据 + }; + return (
- {/* 第二个div - 高度39% */} + {/* 第1个div - 高度39% */}
@@ -741,7 +792,7 @@ const EvaluationReport = () => {
- {/* 第三个div - 占满剩余位置 */} + {/* 第2个div - 占满剩余位置 */}
@@ -751,14 +802,57 @@ const EvaluationReport = () => {
近期维护提醒
-
+
+
+
+
SH-MHQ-023-C 干粉灭火器
+
位置: 4楼办公区丨维护类型: 季度检查
+
负责人: 张三
+
+
+
3天后到期
+
+
+
+
+
SH-XHS-045-D 室内消火栓
+
位置: 2楼东侧走廊丨维护类型: 水压测试
+
负责人: 李四
+
+
+
8天后到期
+
+
+
维护任务进度
-
+
+ {/* 进度条区域 */} +
+ +
月度维护计划
+ + +
季度维护计划
+ + + +
年度维护计划
+ + + + {/* 警告提示框 */} +
+ + 本月有5项维护任务即将到期 +
+ +
+
@@ -768,21 +862,35 @@ const EvaluationReport = () => {
-
消防设备台账
-
- -
- - +
消防设施与器材列表
+ + {/* 操作按钮 */} +
+
+ } + /> +
+
+ + +
+
+ {/* 表格 */}
tr:hover > td) { diff --git a/src/pages/business_basic/module/ResponsibilityImplementation.less b/src/pages/business_basic/module/ResponsibilityImplementation.less index 19e59b3..d94eca3 100644 --- a/src/pages/business_basic/module/ResponsibilityImplementation.less +++ b/src/pages/business_basic/module/ResponsibilityImplementation.less @@ -892,6 +892,8 @@ padding: 8px 12px; border-bottom: 1px solid #f0f0f0; text-align: center; + color: #666666; + // color: pink; } :global(.ant-table-tbody > tr:hover > td) { diff --git a/src/pages/business_basic/module/RiskAssessment.less b/src/pages/business_basic/module/RiskAssessment.less index a90b7c4..db5b47e 100644 --- a/src/pages/business_basic/module/RiskAssessment.less +++ b/src/pages/business_basic/module/RiskAssessment.less @@ -576,6 +576,7 @@ padding: 8px 12px; border-bottom: 1px solid #f0f0f0; text-align: center; + color: #666666; } :global(.ant-table-tbody > tr:hover > td) {