diff --git a/config/routes.js b/config/routes.js
index 23201b1..07820dd 100644
--- a/config/routes.js
+++ b/config/routes.js
@@ -37,6 +37,12 @@ export default [
name: 'safeMajorHazard',
component: './safe_majorHazard/SafeMajorHazardList',
},
+ // 风险分级管控
+ {
+ path: '/topnavbar00/hrefficiency/riskclassification',
+ name: 'riskclassification',
+ component: './risk_classification/RiskClassificationControl',
+ },
// 系统管理
{
path: '/topnavbar00/hrefficiency/system',
diff --git a/src/assets/img/riskclassification.svg b/src/assets/img/riskclassification.svg
new file mode 100644
index 0000000..e71bf0c
--- /dev/null
+++ b/src/assets/img/riskclassification.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/pages/nav_system_content/SystemContentList.js b/src/pages/nav_system_content/SystemContentList.js
index bd298ed..0aa5ae4 100644
--- a/src/pages/nav_system_content/SystemContentList.js
+++ b/src/pages/nav_system_content/SystemContentList.js
@@ -12,6 +12,7 @@ import menuTitle from '@/assets/img/智能管控平台.svg'
import menuTitle1 from '@/assets/img/智能管控平台-1.svg'
import fireHydrant from '@/assets/img/fireHydrant.svg'
import fireHydrant1 from '@/assets/img/fireHydrant1.svg'
+import riskClassification from '@/assets/img/riskclassification.svg'
import trouble from '@/assets/img/trouble.svg'
import book from '@/assets/img/book.svg'
import danger from '@/assets/img/danger.svg'
@@ -104,6 +105,12 @@ const SystemContentList = (props) => {
"key": "/topnavbar00/hrefficiency/safeMajorHazard",
"label": "重大危险源管理"
},
+ {
+ "path": "/topnavbar00/hrefficiency/riskclassification",
+ icon: ,
+ "key": "/topnavbar00/hrefficiency/riskclassification",
+ "label": "风险分级管控"
+ },
{
"path": "/topnavbar00/hrefficiency/hiddentrouble",
icon:
,
@@ -377,6 +384,10 @@ const SystemContentList = (props) => {
else if (item.key === '/topnavbar00/hrefficiency/safetraining' && typeof bookLight !== 'undefined') {
iconSrc = bookLight;
}
+ // 风险分级管控 菜单图标 激活态使用 riskclassification
+ else if (item.key === '/topnavbar00/hrefficiency/riskclassification' && typeof riskClassification !== 'undefined') {
+ iconSrc = riskClassification;
+ }
// 人员定位激活态使用personnelPosition2
else if (item.key === '/topnavbar00/hrefficiency/personnellocation' && typeof personnelPosition2 !== 'undefined') {
iconSrc = personnelPosition2;
diff --git a/src/pages/risk_classification/RiskClassificationControl.js b/src/pages/risk_classification/RiskClassificationControl.js
new file mode 100644
index 0000000..4a92118
--- /dev/null
+++ b/src/pages/risk_classification/RiskClassificationControl.js
@@ -0,0 +1,527 @@
+import React, { useState, useEffect } from 'react';
+import { Card, Row, Col, Select, Table, Pagination, Statistic, Badge } from 'antd';
+import { CaretRightOutlined } from '@ant-design/icons';
+import ReactECharts from 'echarts-for-react';
+import './RiskClassificationControl.less';
+
+const { Option } = Select;
+
+// 模拟风险等级数据
+const riskLevelData = [
+ { level: '极高风险', count: 35, color: '#ff4d4f', icon: '🔴' },
+ { level: '高风险', count: 12, color: '#fa8c16', icon: '🟠' },
+ { level: '中风险', count: 60, color: '#faad14', icon: '🟡' },
+ { level: '低风险', count: 42, color: '#40a9ff', icon: '🔵' },
+];
+
+// 模拟风险评估分析数据
+const riskAnalysisData = {
+ xAxis: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+ 极高风险: [12, 15, 10, 8, 14, 16, 9, 13, 11, 15, 14, 12],
+ 高风险: [8, 10, 12, 15, 14, 10, 8, 12, 14, 10, 8, 12],
+ 中风险: [18, 20, 22, 25, 24, 20, 18, 22, 24, 20, 18, 22],
+ 低风险: [15, 18, 20, 16, 14, 18, 20, 16, 14, 18, 20, 16],
+};
+
+// 模拟风险清单数据
+const riskListData = [
+ {
+ key: '1',
+ riskName: '化学品储存区窜雾风险',
+ riskType: '设备设施',
+ riskLevel: '极高风险',
+ assessmentMethod: 'LEC分析',
+ area: '生产罐区1',
+ department: '设备部',
+ responsiblePerson: '张明',
+ monitoringFrequency: '每日',
+ status: '整改',
+ updateTime: '2025-03-01',
+ },
+ {
+ key: '2',
+ riskName: '化学品储存区泄漏风险',
+ riskType: '设备设施',
+ riskLevel: '高风险',
+ assessmentMethod: 'LEC分析',
+ area: '生产罐区1',
+ department: '设备部',
+ responsiblePerson: '张明',
+ monitoringFrequency: '每日',
+ status: '预警',
+ updateTime: '2025-03-01',
+ },
+ {
+ key: '3',
+ riskName: '化学品储存区腐蚀风险',
+ riskType: '设备设施',
+ riskLevel: '中风险',
+ assessmentMethod: 'LEC分析',
+ area: '生产罐区1',
+ department: '设备部',
+ responsiblePerson: '张明',
+ monitoringFrequency: '每日',
+ status: '预警',
+ updateTime: '2025-03-01',
+ },
+ {
+ key: '4',
+ riskName: '化学品储存区温湿度异常',
+ riskType: '设备设施',
+ riskLevel: '低风险',
+ assessmentMethod: 'LEC分析',
+ area: '生产罐区1',
+ department: '设备部',
+ responsiblePerson: '张明',
+ monitoringFrequency: '每日',
+ status: '正常',
+ updateTime: '2025-03-01',
+ },
+ {
+ key: '5',
+ riskName: '化学品储存区通风不良',
+ riskType: '设备设施',
+ riskLevel: '低风险',
+ assessmentMethod: 'LEC分析',
+ area: '生产罐区1',
+ department: '设备部',
+ responsiblePerson: '张明',
+ monitoringFrequency: '每日',
+ status: '正常',
+ updateTime: '2025-03-01',
+ },
+];
+
+// 获取风险等级对应的标签样式
+const getRiskLevelTag = (level) => {
+ switch (level) {
+ case '极高风险':
+ return
{b}: {c} ({d}%)',
+ },
+ legend: {
+ orient: 'vertical',
+ right: 10,
+ top: 'center',
+ data: ['低风险', '中风险', '高风险', '极高风险'],
+ },
+ series: [
+ {
+ name: '风险类型',
+ type: 'pie',
+ radius: ['40%', '70%'],
+ center: ['35%', '50%'],
+ avoidLabelOverlap: false,
+ itemStyle: {
+ borderRadius: 10,
+ borderColor: '#fff',
+ borderWidth: 2,
+ },
+ label: {
+ show: false,
+ position: 'center',
+ },
+ emphasis: {
+ label: {
+ show: true,
+ fontSize: 20,
+ fontWeight: 'bold',
+ },
+ },
+ labelLine: {
+ show: false,
+ },
+ data: [
+ { value: 42, name: '低风险', itemStyle: { color: '#40a9ff' } },
+ { value: 60, name: '中风险', itemStyle: { color: '#faad14' } },
+ { value: 12, name: '高风险', itemStyle: { color: '#fa8c16' } },
+ { value: 35, name: '极高风险', itemStyle: { color: '#ff4d4f' } },
+ ],
+ },
+ ],
+ };
+
+ // 风险清单表格列配置
+ const columns = [
+ {
+ title: '风险名称',
+ dataIndex: 'riskName',
+ key: 'riskName',
+ },
+ {
+ title: '风险类别',
+ dataIndex: 'riskType',
+ key: 'riskType',
+ },
+ {
+ title: '风险等级',
+ dataIndex: 'riskLevel',
+ key: 'riskLevel',
+ render: (level) => getRiskLevelTag(level),
+ },
+ {
+ title: '评估方法',
+ dataIndex: 'assessmentMethod',
+ key: 'assessmentMethod',
+ },
+ {
+ title: '所在区域',
+ dataIndex: 'area',
+ key: 'area',
+ },
+ {
+ title: '责任部门',
+ dataIndex: 'department',
+ key: 'department',
+ },
+ {
+ title: '责任人',
+ dataIndex: 'responsiblePerson',
+ key: 'responsiblePerson',
+ },
+ {
+ title: '管控频次',
+ dataIndex: 'monitoringFrequency',
+ key: 'monitoringFrequency',
+ },
+ {
+ title: '管控状态',
+ dataIndex: 'status',
+ key: 'status',
+ render: (status) => getStatusTag(status),
+ },
+ {
+ title: '更新时间',
+ dataIndex: 'updateTime',
+ key: 'updateTime',
+ },
+ {
+ title: '操作',
+ key: 'action',
+ render: () => (
+
+ 查看详情