|
|
|
|
@ -22,6 +22,7 @@ import eqicon4 from '@/assets/business_basic/eqicon4.png';
|
|
|
|
|
const RiskAssessment = () => {
|
|
|
|
|
const chartRef = useRef(null);
|
|
|
|
|
const pieChartRef = useRef(null);
|
|
|
|
|
const faultPieChartRef = useRef(null);
|
|
|
|
|
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
|
|
|
|
|
const [selectedRows, setSelectedRows] = useState([]);
|
|
|
|
|
const [loading, setLoading] = useState(false);
|
|
|
|
|
@ -100,6 +101,74 @@ const RiskAssessment = () => {
|
|
|
|
|
}
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
// 故障类型饼图初始化
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (faultPieChartRef.current) {
|
|
|
|
|
const faultPieChart = echarts.init(faultPieChartRef.current);
|
|
|
|
|
|
|
|
|
|
const faultPieOption = {
|
|
|
|
|
color: ['#FF3E48', '#FF8800', '#FFC403'],
|
|
|
|
|
legend: {
|
|
|
|
|
orient: 'vertical',
|
|
|
|
|
right: '10%',
|
|
|
|
|
top: 'center',
|
|
|
|
|
itemWidth: 8,
|
|
|
|
|
itemHeight: 8,
|
|
|
|
|
textStyle: {
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
color: '#333'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
series: [{
|
|
|
|
|
name: '设备故障类型',
|
|
|
|
|
type: 'pie',
|
|
|
|
|
radius: '70%',
|
|
|
|
|
center: ['35%', '50%'],
|
|
|
|
|
avoidLabelOverlap: false,
|
|
|
|
|
label: {
|
|
|
|
|
show: true,
|
|
|
|
|
position: 'outside',
|
|
|
|
|
formatter: '{b}: {c}',
|
|
|
|
|
fontSize: 12
|
|
|
|
|
},
|
|
|
|
|
emphasis: {
|
|
|
|
|
label: {
|
|
|
|
|
show: true,
|
|
|
|
|
fontSize: '14',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
labelLine: {
|
|
|
|
|
show: true
|
|
|
|
|
},
|
|
|
|
|
data: [
|
|
|
|
|
{ value: 120, name: '紧急' },
|
|
|
|
|
{ value: 80, name: '重要' },
|
|
|
|
|
{ value: 60, name: '一般' }
|
|
|
|
|
]
|
|
|
|
|
}]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
faultPieChart.setOption(faultPieOption);
|
|
|
|
|
|
|
|
|
|
// 响应式调整
|
|
|
|
|
const handleFaultPieResize = () => {
|
|
|
|
|
if (faultPieChart && !faultPieChart.isDisposed()) {
|
|
|
|
|
faultPieChart.resize();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
window.addEventListener('resize', handleFaultPieResize);
|
|
|
|
|
|
|
|
|
|
return () => {
|
|
|
|
|
window.removeEventListener('resize', handleFaultPieResize);
|
|
|
|
|
if (faultPieChart && !faultPieChart.isDisposed()) {
|
|
|
|
|
faultPieChart.dispose();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (chartRef.current) {
|
|
|
|
|
const chart = echarts.init(chartRef.current);
|
|
|
|
|
@ -610,7 +679,29 @@ const RiskAssessment = () => {
|
|
|
|
|
</div> */}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className={styles.middleBlock12}>
|
|
|
|
|
<div className={styles.block1Header}>
|
|
|
|
|
<div className={styles.block1Title}>
|
|
|
|
|
<div className={styles.titleIcon}></div>
|
|
|
|
|
设备故障类型分布
|
|
|
|
|
</div>
|
|
|
|
|
<Select
|
|
|
|
|
className={styles.customSelect}
|
|
|
|
|
style={{ width: 120 }}
|
|
|
|
|
defaultValue="全部区域"
|
|
|
|
|
// defaultValue="全部区域"
|
|
|
|
|
options={[
|
|
|
|
|
{ value: '全部区域', label: '全部区域' },
|
|
|
|
|
{ value: '部分区域', label: '部分区域' },
|
|
|
|
|
]}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* 设备故障类型饼图 */}
|
|
|
|
|
<div className={styles.deviceStatusChart} ref={faultPieChartRef}>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className={styles.middleBlock2}>
|
|
|
|
|
<div className={styles.middleBlock2Title}>
|
|
|
|
|
|