"use client"
import {useState} from "react"
import {
Button,
Card,
Col,
DatePicker,
Descriptions,
Form,
Input,
Modal,
Popconfirm,
Progress,
Row,
Select,
Space,
Table,
Tag,
} from "antd"
import {DeleteOutlined, EditOutlined, EyeOutlined, PlusOutlined} from "@ant-design/icons"
import {Radar} from "@ant-design/plots"
import dayjs from "dayjs"
import globalMessage from "@/app/_modules/globalMessage";
const { Option } = Select
const { TextArea } = Input
// 模拟风险档案数据
const mockRiskData = [
{
id: "R001",
title: "解放路段高压管线风险",
location: "解放路与建设路交叉口",
riskType: "管线老化",
riskLevel: "高",
riskScore: 85,
assessmentDate: "2024-01-15",
assessor: "张三",
status: "待处理",
description: "高压管线使用年限超过20年,存在老化风险",
impactArea: "500m范围内",
affectedPopulation: 2000,
economicLoss: 500000,
mitigationMeasures: "定期检测,制定更换计划",
monitoringFrequency: "每月",
lastUpdate: "2024-01-15",
factors: {
管线状态: 80,
环境因素: 70,
人员密度: 90,
设备完好性: 75,
管理水平: 85,
},
},
{
id: "R002",
title: "人民路段泄漏风险",
location: "人民路中段",
riskType: "泄漏隐患",
riskLevel: "中",
riskScore: 65,
assessmentDate: "2024-01-10",
assessor: "李四",
status: "监控中",
description: "管道接头处存在微量泄漏风险",
impactArea: "200m范围内",
affectedPopulation: 800,
economicLoss: 200000,
mitigationMeasures: "加强巡检,安装泄漏检测设备",
monitoringFrequency: "每周",
lastUpdate: "2024-01-12",
factors: {
管线状态: 60,
环境因素: 65,
人员密度: 70,
设备完好性: 80,
管理水平: 75,
},
},
{
id: "R003",
title: "建设路段压力风险",
location: "建设路北段",
riskType: "压力异常",
riskLevel: "低",
riskScore: 35,
assessmentDate: "2024-01-08",
assessor: "王五",
status: "已控制",
description: "调压设备运行正常,风险可控",
impactArea: "100m范围内",
affectedPopulation: 300,
economicLoss: 50000,
mitigationMeasures: "定期维护调压设备",
monitoringFrequency: "每季度",
lastUpdate: "2024-01-10",
factors: {
管线状态: 40,
环境因素: 35,
人员密度: 30,
设备完好性: 45,
管理水平: 40,
},
},
]
export default function RiskArchive() {
const [isModalVisible, setIsModalVisible] = useState(false)
const [isDetailModalVisible, setIsDetailModalVisible] = useState(false)
const [editingRecord, setEditingRecord] = useState(null)
const [viewingRecord, setViewingRecord] = useState(null)
const [form] = Form.useForm()
const handleAdd = () => {
setEditingRecord(null)
form.resetFields()
setIsModalVisible(true)
}
const handleEdit = (record: any) => {
setEditingRecord(record)
form.setFieldsValue({
...record,
assessmentDate: record.assessmentDate ? dayjs(record.assessmentDate) : null,
})
setIsModalVisible(true)
}
const handleView = (record: any) => {
setViewingRecord(record)
setIsDetailModalVisible(true)
}
const handleDelete = (id: string) => {
globalMessage.success("删除成功")
}
const handleModalOk = () => {
form.validateFields().then((values) => {
if (editingRecord) {
globalMessage.success("更新成功")
} else {
globalMessage.success("添加成功")
}
setIsModalVisible(false)
form.resetFields()
})
}
const getRiskLevelColor = (level: string) => {
switch (level) {
case "高":
return "red"
case "中":
return "orange"
case "低":
return "blue"
default:
return "default"
}
}
const getStatusColor = (status: string) => {
switch (status) {
case "待处理":
return "red"
case "监控中":
return "orange"
case "已控制":
return "green"
default:
return "default"
}
}
const getRiskScoreColor = (score: number) => {
if (score >= 80) return "#f5222d"
if (score >= 60) return "#faad14"
if (score >= 40) return "#52c41a"
return "#1890ff"
}
const columns = [
{ title: "风险编号", dataIndex: "id", key: "id", width: 100 },
{ title: "风险标题", dataIndex: "title", key: "title", width: 200 },
{ title: "位置", dataIndex: "location", key: "location", width: 150 },
{ title: "风险类型", dataIndex: "riskType", key: "riskType", width: 120 },
{
title: "风险等级",
dataIndex: "riskLevel",
key: "riskLevel",
width: 100,
render: (level: string) =>