import React, { useState, useEffect } from 'react'; import { Card, Table, Button, Modal, Form, Input, Select, message, Space, Tag, Rate, Progress } from 'antd'; import { PlusOutlined, EditOutlined, DeleteOutlined, EyeOutlined, ExclamationCircleOutlined } from '@ant-design/icons'; import './RiskAssessment.less'; const { Option } = Select; const RiskAssessment = () => { const [form] = Form.useForm(); const [dataSource, setDataSource] = useState([]); const [loading, setLoading] = useState(false); const [modalVisible, setModalVisible] = useState(false); const [editingRecord, setEditingRecord] = useState(null); const [pagination, setPagination] = useState({ current: 1, pageSize: 10, total: 0, }); // 模拟数据 const mockData = [ { id: 1, riskName: '化学品泄漏风险', riskType: '环境风险', riskLevel: '高', probability: 4, impact: 5, riskScore: 20, assessor: '张三', assessDate: '2024-01-15', status: '待处理', description: '生产过程中化学品可能发生泄漏,造成环境污染', controlMeasures: '加强设备维护,安装泄漏检测装置', }, { id: 2, riskName: '设备故障风险', riskType: '设备风险', riskLevel: '中', probability: 3, impact: 3, riskScore: 9, assessor: '李四', assessDate: '2024-01-10', status: '已处理', description: '关键设备可能发生故障,影响生产安全', controlMeasures: '定期维护保养,建立备件库存', }, { id: 3, riskName: '人员操作风险', riskType: '人员风险', riskLevel: '低', probability: 2, impact: 2, riskScore: 4, assessor: '王五', assessDate: '2024-01-08', status: '监控中', description: '操作人员误操作可能导致安全事故', controlMeasures: '加强培训,完善操作规程', }, ]; useEffect(() => { fetchData(); }, [pagination.current, pagination.pageSize]); const fetchData = async () => { setLoading(true); try { // 模拟API调用 setTimeout(() => { setDataSource(mockData); setPagination(prev => ({ ...prev, total: mockData.length })); setLoading(false); }, 500); } catch (error) { message.error('获取数据失败'); setLoading(false); } }; const handleAdd = () => { setEditingRecord(null); form.resetFields(); setModalVisible(true); }; const handleEdit = (record) => { setEditingRecord(record); form.setFieldsValue(record); setModalVisible(true); }; const handleDelete = (record) => { Modal.confirm({ title: '确认删除', content: `确定要删除风险评估"${record.riskName}"吗?`, onOk: () => { setDataSource(dataSource.filter(item => item.id !== record.id)); message.success('删除成功'); }, }); }; const handleView = (record) => { Modal.info({ title: '查看风险评估详情', content: (
风险名称:{record.riskName}
风险类型:{record.riskType}
风险等级:
发生概率:
影响程度:
风险评分:{record.riskScore}
评估人:{record.assessor}
评估日期:{record.assessDate}
处理状态:
风险描述:{record.description}
控制措施:{record.controlMeasures}