mh_jy_safe_web/src/components/MainPage/SafeCheck.js
2025-08-25 10:08:30 +08:00

155 lines
3.7 KiB
JavaScript

// 核心库
import React, { Component } from "react";
import { connect } from "dva";
import { withRouter } from "dva/router";
import echarts from "echarts";
class SafeCheck extends Component {
constructor(props) {
super(props);
this.state = {
visible: false,
riskLevelData: [],
};
}
componentDidMount() {
// console.log(this.props.ListSafeCheckYearMonth, "000000");
let data = [];
data = this.props.ListSafeCheckYearMonth;
let xData = [];
let data1 = [];
let data2 = [];
let data3 = [];
let seriesName = [];
data.map((item) => {
// var yeM = item.YEAR.toString().substring(2)
// if (item.MONTH > 9) {
// xData.push(yeM + '' + item.MONTH);
// } else {
// xData.push(yeM + '0' + item.MONTH);
// }
// var yeM = item.YEAR.toString().substring(2)
// if (item.MONTH > 9) {
// xData.push(item.MONTH + '月');
// } else {
// xData.push(item.MONTH + '月');
// }
xData.push(item.YEAR + '年' + item.MONTH + '月');
seriesName = item.listSOURCENAME;
data1.push(item.listListCount);
});
for (var i = 0; i < data[0].listListCount.length; i++) {
for (var j = 0; j < data.length; j++) {
data2.push(data1[j][i]);
}
}
for (var i = 0; i < data2.length; i += data.length) {
data3.push(data2.slice(i, i + data.length));
}
let series = [];
for (let i = 0; i < data3.length; i++) {
series.push({
name: seriesName[i],
type: "bar",
stack: "总量",
data: data3[i],
barWidth: "40%",
});
}
//图标2
let dangerTotals = document.getElementById("safecheck");
if (dangerTotals) {
let myChart = echarts.init(dangerTotals);
myChart.setOption({
color: ["#4285F4", "#72b85b", "#c92a2a", "#ffa94d"],
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
transitionDuration: 0,
},
grid: {
left: "5%",
right: "5%",
bottom: "15%",
top: "5%",
containLabel: true,
z: 22,
},
xAxis: {
type: "category",
data: xData,
axisLine: {
lineStyle: {
color: "#0c3b71",
},
},
axisLabel: {
show: true,
color: "rgb(170,170,170)",
interval: 0,
textStyle: {
lineHeight: 14,
},
formatter: function (param) {
return param.split('年')[1]
}
},
},
legend: {
data: seriesName,
left: "center",
align: "left",
bottom: "2%",
textStyle: {
color: "#000",
},
itemWidth: 10,
itemHeight: 10,
// itemGap: 15,
},
yAxis: {
type: "value",
splitLine: {
show: true,
lineStyle: {
color: ["#f2f2f2"],
},
},
axisLine: {
lineStyle: {
color: "#0c3b71",
},
},
axisLabel: {
color: "rgb(170,170,170)",
formatter: "{value} ",
},
},
series: series,
});
}
}
render() {
return (
<React.Fragment>
<div
id="safecheck"
style={{ width: "100%", height: "75%" }}
></div>
</React.Fragment>
);
}
}
export default withRouter(connect(({ login }) => ({ login }))(SafeCheck));