2270 lines
72 KiB
JavaScript
2270 lines
72 KiB
JavaScript
import React, { useState, useEffect, useRef, Component } from "react";
|
|
import { connect } from "dva";
|
|
import { initFilter, extendOrder, guid } from "../../../utils/common";
|
|
import {
|
|
Table,
|
|
Row,
|
|
Col,
|
|
Button,
|
|
Select,
|
|
DatePicker,
|
|
message,
|
|
Modal,
|
|
} from "antd";
|
|
import echarts from "echarts";
|
|
import moment from "moment";
|
|
import IconFont from "../../../utils/iconFont";
|
|
class BI014RiskPerformanceModel extends React.Component {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
level1Color: "#c02e30",
|
|
level2Color: "#f7aa52",
|
|
level3Color: "#fbe06a",
|
|
level4Color: "#5185f3",
|
|
isShow1: false,
|
|
isShow2: false,
|
|
detailForm: {
|
|
formCode: "",
|
|
title: "",
|
|
},
|
|
ret: {
|
|
IsSuccessful: true,
|
|
Data: {
|
|
DATECOUNTS: [
|
|
{ DATE: "2024-01-31 23:59:59", COUNT: 50, TYPE: 1 },
|
|
{ DATE: "2024-01-31 23:59:59", COUNT: 414, TYPE: 0 },
|
|
{ DATE: "2024-02-29 23:59:59", COUNT: 62, TYPE: 1 },
|
|
{ DATE: "2024-02-29 23:59:59", COUNT: 514, TYPE: 0 },
|
|
{ DATE: "2024-03-31 23:59:59", COUNT: 62, TYPE: 1 },
|
|
{ DATE: "2024-03-31 23:59:59", COUNT: 614, TYPE: 0 },
|
|
{ DATE: "2024-04-30 23:59:59", COUNT: 70, TYPE: 1 },
|
|
{ DATE: "2024-04-30 23:59:59", COUNT: 714, TYPE: 0 },
|
|
{ DATE: "2024-05-31 23:59:59", COUNT: 80, TYPE: 1 },
|
|
{ DATE: "2024-05-31 23:59:59", COUNT: 814, TYPE: 0 },
|
|
// { DATE: "2024-06-30 23:59:59", COUNT: 80, TYPE: 1 },
|
|
// { DATE: "2024-06-30 23:59:59", COUNT: 914, TYPE: 0 },
|
|
// { DATE: "2024-07-31 23:59:59", COUNT: 94, TYPE: 1 },
|
|
// { DATE: "2024-07-31 23:59:59", COUNT: 954, TYPE: 0 },
|
|
// { DATE: "2024-08-31 23:59:59", COUNT: 102, TYPE: 1 },
|
|
// { DATE: "2024-08-31 23:59:59", COUNT: 984, TYPE: 0 },
|
|
// { DATE: "2024-09-30 23:59:59", COUNT: 102, TYPE: 1 },
|
|
// { DATE: "2024-09-30 23:59:59", COUNT: 1014, TYPE: 0 },
|
|
// { DATE: "2024-10-31 23:59:59", COUNT: 112, TYPE: 1 },
|
|
// { DATE: "2024-10-31 23:59:59", COUNT: 1024, TYPE: 0 },
|
|
// { DATE: "2024-11-30 23:59:59", COUNT: 113, TYPE: 1 },
|
|
// { DATE: "2024-11-30 23:59:59", COUNT: 1114, TYPE: 0 },
|
|
// { DATE: "2024-12-31 23:59:59", COUNT: 116, TYPE: 1 },
|
|
// { DATE: "2024-12-31 23:59:59", COUNT: 1154, TYPE: 0 },
|
|
],
|
|
CHARTFXDJ1:
|
|
{
|
|
NAME: ["一级", "二级", "三级", "四级"],
|
|
LEVEL1: [3, 8, 181, 1112],
|
|
},
|
|
CHARTFXDJ2: [
|
|
{ name: "一级", value: 3 },
|
|
{ name: "二级", value: 8 },
|
|
{ name: "三级", value: 181 },
|
|
{ name: "四级", value: 1112 },
|
|
],
|
|
CHARTLIST: [
|
|
{
|
|
NAME: ["露天矿", "选矿厂", "尾矿库", "职能部门"],
|
|
LEVEL1: [1, 0, 1, 1],
|
|
LEVEL2: [0, 3, 2, 2],
|
|
LEVEL3: [1, 3, 70, 105],
|
|
LEVEL4: [203, 223, 211, 475],
|
|
},
|
|
|
|
{
|
|
NAME: [
|
|
"容器爆炸",
|
|
"淹溺",
|
|
"物体打击",
|
|
"高处坠落",
|
|
"火灾",
|
|
"起重伤害",
|
|
"其他爆炸",
|
|
"中毒和窒息",
|
|
"放炮",
|
|
"冒顶片帮",
|
|
"坍塌",
|
|
"车辆伤害",
|
|
"触电",
|
|
"其他伤害",
|
|
"机械伤害",
|
|
"灼烫",
|
|
"火药爆炸",
|
|
],
|
|
LEVEL1: [
|
|
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0,
|
|
],
|
|
LEVEL2: [
|
|
3, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0,
|
|
],
|
|
LEVEL3: [
|
|
95, 46, 15, 10, 7, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1, 0, 0
|
|
],
|
|
LEVEL4: [
|
|
260, 200, 120, 50, 20, 15, 10, 5, 4, 3, 2, 1, 1, 1, 1, 1, 0
|
|
],
|
|
},
|
|
|
|
{
|
|
NAME: [
|
|
"安全环保管理部",
|
|
"选矿部",
|
|
"机电设备管理办公室",
|
|
"矿山部",
|
|
"财务部",
|
|
"非金属资源部筹备组",
|
|
"企业管理部",
|
|
"技术管理部",
|
|
],
|
|
LEVEL1: [0, 1, 0, 1, 0, 0, 1, 0],
|
|
LEVEL2: [0, 2, 0, 3, 0, 0, 1, 0],
|
|
LEVEL3: [56, 109, 273, 381, 74, 135, 215, 335],
|
|
LEVEL4: [23, 168, 250, 390, 62, 117, 244, 367],
|
|
},
|
|
|
|
{
|
|
NAME: ["公司", "部门", "车间", "班组"],
|
|
LEVEL1: [2, 1, 0, 0],
|
|
LEVEL2: [2, 2, 2, 2],
|
|
LEVEL3: [343, 121, 396, 78],
|
|
LEVEL4: [215, 331, 37, 292],
|
|
},
|
|
{
|
|
NAME: [
|
|
"破碎车间",
|
|
"磨重车间",
|
|
"尾矿库库区",
|
|
"钨细泥回收车间",
|
|
"高压配电室",
|
|
"炸药库区",
|
|
"修理场",
|
|
"矿山",
|
|
"加油站-采场",
|
|
"排土场",
|
|
],
|
|
LEVEL1: [1, 0, 0, 1, 0, 1, 0, 0, 0, 0],
|
|
LEVEL2: [2, 0, 0, 2, 1, 1, 0, 0, 0, 2],
|
|
LEVEL3: [220, 182, 171, 164, 134, 120, 102, 101, 83, 64],
|
|
LEVEL4: [250, 212, 201, 154, 144, 121, 117, 111, 93, 67],
|
|
},
|
|
],
|
|
TEAMLIST: [
|
|
{
|
|
NAME: ["生产班", "民爆储存库班组", "穿孔班组", "爆破班组", "综合班组"],
|
|
LEVEL1: [1, 0, 1, 1, 0],
|
|
LEVEL2: [0, 1, 1, 2, 0],
|
|
LEVEL3: [10, 13, 20, 35, 33],
|
|
LEVEL4: [18, 33, 43, 21, 27],
|
|
},
|
|
{
|
|
NAME: ["破碎车间", "磨重车间", "破碎一班", "破碎二班", "破碎三班", "磨重一班", "磨重二班", "磨重三班"],
|
|
LEVEL1: [1, 3, 0, 0, 0, 0, 0, 0],
|
|
LEVEL2: [2, 4, 0, 0, 0, 0, 1, 1],
|
|
LEVEL3: [3, 5, 1, 3, 7, 22, 43, 1],
|
|
LEVEL4: [4, 6, 7, 26, 8, 18, 21, 24],
|
|
},
|
|
{
|
|
NAME: ["尾矿一班", "尾矿二班", "尾矿三班", "尾矿机修班"],
|
|
LEVEL1: [0, 0, 0, 0],
|
|
LEVEL2: [0, 0, 0, 0],
|
|
LEVEL3: [1, 3, 70, 105],
|
|
LEVEL4: [23, 13, 21, 15],
|
|
},
|
|
{
|
|
NAME: ["保安班", "小车班", "食堂", "化验班", "采制样班"],
|
|
LEVEL1: [0, 0, 0, 0, 0],
|
|
LEVEL2: [0, 0, 0, 0, 0],
|
|
LEVEL3: [1, 3, 70, 15, 23],
|
|
LEVEL4: [13, 14, 17, 28, 11],
|
|
},
|
|
],
|
|
AREALIST: [
|
|
{
|
|
NAME: ["电焊作业区", "修理场", "炸药库", "矿山", "加油站-采场"],
|
|
LEVEL1: [1, 0, 1, 1, 0],
|
|
LEVEL2: [0, 1, 1, 2, 0],
|
|
LEVEL3: [10, 13, 20, 35, 33],
|
|
LEVEL4: [18, 33, 43, 21, 27],
|
|
},
|
|
{
|
|
NAME: ["破碎车间", "磨重车间", "尾矿库库区", "钨细泥回收车间", "综合回收车间", "尾矿库截洪单元"],
|
|
LEVEL1: [0, 0, 0, 0, 0, 0],
|
|
LEVEL2: [0, 0, 0, 0, 1, 1],
|
|
LEVEL3: [1, 3, 7, 22, 43, 1],
|
|
LEVEL4: [7, 26, 8, 18, 21, 24],
|
|
},
|
|
{
|
|
NAME: ["尾矿库库区", "高压配电室", "炸药库区", "尾矿机修区"],
|
|
LEVEL1: [0, 0, 0, 0],
|
|
LEVEL2: [0, 0, 0, 0],
|
|
LEVEL3: [1, 3, 70, 105],
|
|
LEVEL4: [23, 13, 21, 15],
|
|
},
|
|
{
|
|
NAME: ["保安办公室", "停车场", "食堂", "化验室", "排土场"],
|
|
LEVEL1: [0, 0, 0, 0, 0],
|
|
LEVEL2: [0, 0, 0, 0, 0],
|
|
LEVEL3: [1, 3, 70, 15, 23],
|
|
LEVEL4: [13, 14, 17, 28, 11],
|
|
},
|
|
],
|
|
RISKTYPELIST: [
|
|
{
|
|
NAME: ["容器爆炸", "淹溺", "物体打击", "高处坠落", "起重伤害", "其他爆炸", "冒顶片帮", "火药爆炸"],
|
|
LEVEL1: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL2: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL3: [70, 65, 54, 48, 33, 27, 16, 7],
|
|
LEVEL4: [70, 65, 54, 48, 33, 27, 16, 7]
|
|
},
|
|
{
|
|
NAME: ["其他伤害", "机械伤害", "灼烫", "容器爆炸", "中毒和窒息", "起重伤害", "冒顶片帮", "触电"],
|
|
LEVEL1: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL2: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL3: [71, 66, 55, 49, 34, 28, 17, 8],
|
|
LEVEL4: [69, 64, 53, 47, 32, 26, 15, 6]
|
|
},
|
|
{
|
|
NAME: ["其他伤害", "车辆伤害", "火药爆炸", "高处坠落", "坍塌", "触电", "机械伤害", "灼烫"],
|
|
LEVEL1: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL2: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL3: [70, 65, 54, 48, 33, 27, 16, 7],
|
|
LEVEL4: [70, 65, 54, 48, 33, 27, 16, 7]
|
|
},
|
|
{
|
|
NAME: ["机械伤害", "容器爆炸", "物体打击", "高处坠落", "火灾", "其他爆炸", "中毒和窒息", "触电"],
|
|
LEVEL1: [0, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL2: [1, 0, 0, 0, 0, 0, 0, 0],
|
|
LEVEL3: [70, 65, 54, 48, 33, 27, 16, 7],
|
|
LEVEL4: [70, 65, 54, 48, 33, 27, 16, 7]
|
|
},
|
|
],
|
|
CHARTZYRW1:
|
|
{
|
|
NAME: ["许可作业", "关键任务", "一般任务"],
|
|
LEVEL1: [67, 81, 191],
|
|
}
|
|
,
|
|
CHARTZYRW2: [
|
|
{ name: "许可作业", value: 67 },
|
|
{ name: "关键任务", value: 81 },
|
|
{ name: "一般任务", value: 191 },
|
|
],
|
|
},
|
|
TotalCount: 0,
|
|
MessageType: 0,
|
|
},
|
|
};
|
|
}
|
|
|
|
componentDidMount() {
|
|
this.getBaseInfoDataOnline();
|
|
}
|
|
|
|
//获取数据
|
|
getBaseInfoDataOnline = (mineType) => {
|
|
const json2 = initFilter(this.props.login.OrgId);
|
|
extendOrder(json2, "CREATE_TIME", 1);
|
|
json2.Parameter1 = mineType;
|
|
this.props.dispatch({
|
|
type: "app/getDataByPost",
|
|
url: "BI/BIController/getRiskPerformanceData",
|
|
payload: json2,
|
|
onlyData: false,
|
|
onComplete: (ret) => {
|
|
this.state.ret = ret;
|
|
this.chart4(ret?.Data.DATECOUNTS);
|
|
this.chartFXDJ1(ret?.Data.CHARTFXDJ1);
|
|
this.chartFXDJ2(ret?.Data.CHARTFXDJ2);
|
|
this.chartSCDY(ret?.Data.CHARTLIST[0]);
|
|
this.chartFXLB1(ret?.Data.CHARTLIST[1]);
|
|
this.chartCJ(ret?.Data.CHARTLIST[3]);
|
|
this.chartZRDW(ret?.Data.CHARTLIST[2]);
|
|
this.chartQY(ret?.Data.CHARTLIST[4]);
|
|
this.chartZYRW1(ret?.Data.CHARTZYRW1);
|
|
this.chartZYRW2(ret?.Data.CHARTZYRW2);
|
|
},
|
|
});
|
|
};
|
|
getBaseInfoData = (mineType) => {
|
|
this.chart4(this.state.ret.Data.DATECOUNTS);
|
|
this.chartFXDJ1(this.state.ret.Data.CHARTFXDJ1);
|
|
this.chartFXDJ2(this.state.ret.Data.CHARTFXDJ2);
|
|
this.chartSCDY(this.state.ret.Data.CHARTLIST[0]);
|
|
this.chartFXLB1(this.state.ret.Data.CHARTLIST[1]);
|
|
this.chartCJ(this.state.ret.Data.CHARTLIST[3]);
|
|
this.chartZRDW(this.state.ret.Data.CHARTLIST[2]);
|
|
this.chartQY(this.state.ret.Data.CHARTLIST[4]);
|
|
this.chartZYRW1(this.state.ret.Data.CHARTZYRW1);
|
|
this.chartZYRW2(this.state.ret.Data.CHARTZYRW2);
|
|
};
|
|
chart4 = (data) => {
|
|
let riskArr = [];
|
|
let hazardArr = [];
|
|
let dates = [];
|
|
for (let i = 0; i < data.length; i++) {
|
|
if (data[i].TYPE == 0) {
|
|
riskArr.push(data[i].COUNT);
|
|
dates.push(moment(data[i].DATE).format("MM"));
|
|
} else {
|
|
hazardArr.push(data[i].COUNT);
|
|
}
|
|
}
|
|
let currMonth = dates.length;
|
|
let color = [
|
|
"#0090FF",
|
|
"#36CE9E",
|
|
"#FFC005",
|
|
"#FF515A",
|
|
"#8B5CFF",
|
|
"#00CA69",
|
|
];
|
|
const hexToRgba = (hex, opacity) => {
|
|
let rgbaColor = "";
|
|
let reg = /^#[\da-f]{6}$/i;
|
|
if (reg.test(hex)) {
|
|
rgbaColor = `rgba(${parseInt("0x" + hex.slice(1, 3))},${parseInt(
|
|
"0x" + hex.slice(3, 5)
|
|
)},${parseInt("0x" + hex.slice(5, 7))},${opacity})`;
|
|
}
|
|
return rgbaColor;
|
|
};
|
|
for (let i = 1; i < 13 - currMonth; i++) {
|
|
dates.push(moment(dates[dates.length]).add(i, "months").format("MM"));
|
|
}
|
|
let chart4s = document.getElementById("chart4");
|
|
if (chart4s) {
|
|
let myChart = echarts.init(chart4s);
|
|
myChart.setOption(
|
|
{
|
|
color: color,
|
|
grid: {
|
|
left: "10%",
|
|
right: "5%",
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
},
|
|
// title: {
|
|
// text: "月度风险辨识统计走势",
|
|
// left: "center",
|
|
// top: "2%",
|
|
// },
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
type: "shadow",
|
|
},
|
|
},
|
|
xAxis: {
|
|
type: "category",
|
|
data: dates,
|
|
boundaryGap: false,
|
|
axisLabel: {
|
|
formatter: "{value}月",
|
|
textStyle: {
|
|
color: "#333",
|
|
},
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: "#D9D9D9",
|
|
},
|
|
},
|
|
},
|
|
yAxis: {
|
|
type: "value",
|
|
axisLabel: {
|
|
textStyle: {
|
|
color: "#666",
|
|
},
|
|
},
|
|
nameTextStyle: {
|
|
color: "#666",
|
|
fontSize: 12,
|
|
lineHeight: 40,
|
|
},
|
|
splitLine: {
|
|
lineStyle: {
|
|
type: "dashed",
|
|
color: "#E9E9E9",
|
|
},
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
},
|
|
axisTick: {
|
|
show: false,
|
|
},
|
|
},
|
|
series: [
|
|
{
|
|
name: "危险源/风险库",
|
|
data: riskArr,
|
|
type: "line",
|
|
smooth: true,
|
|
symbolSize: 8,
|
|
zlevel: 3,
|
|
lineStyle: {
|
|
normal: {
|
|
color: color[0],
|
|
shadowBlur: 3,
|
|
shadowColor: hexToRgba(color[0], 0.5),
|
|
shadowOffsetY: 8,
|
|
},
|
|
},
|
|
areaStyle: {
|
|
normal: {
|
|
color: new echarts.graphic.LinearGradient(
|
|
0,
|
|
0,
|
|
0,
|
|
1,
|
|
[
|
|
{
|
|
offset: 0,
|
|
color: hexToRgba(color[0], 0.3),
|
|
},
|
|
{
|
|
offset: 1,
|
|
color: hexToRgba(color[0], 0.1),
|
|
},
|
|
],
|
|
false
|
|
),
|
|
shadowColor: hexToRgba(color[0], 0.1),
|
|
shadowBlur: 10,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "职业危害库",
|
|
data: hazardArr,
|
|
type: "line",
|
|
smooth: true,
|
|
symbolSize: 8,
|
|
zlevel: 3,
|
|
lineStyle: {
|
|
normal: {
|
|
color: color[1],
|
|
shadowBlur: 3,
|
|
shadowColor: hexToRgba(color[1], 0.5),
|
|
shadowOffsetY: 8,
|
|
},
|
|
},
|
|
areaStyle: {
|
|
normal: {
|
|
color: new echarts.graphic.LinearGradient(
|
|
0,
|
|
0,
|
|
0,
|
|
1,
|
|
[
|
|
{
|
|
offset: 0,
|
|
color: hexToRgba(color[1], 0.3),
|
|
},
|
|
{
|
|
offset: 1,
|
|
color: hexToRgba(color[1], 0.1),
|
|
},
|
|
],
|
|
false
|
|
),
|
|
shadowColor: hexToRgba(color[1], 0.1),
|
|
shadowBlur: 10,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartFXDJ1 = (Data) => {
|
|
let chartFXDJ1 = document.getElementById("chartFXDJ1");
|
|
if (chartFXDJ1) {
|
|
let myChart = echarts.init(chartFXDJ1);
|
|
myChart.setOption(
|
|
{
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
grid: {
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
itemStyle: {
|
|
color: function (params) {
|
|
switch (params.dataIndex) {
|
|
case 0:
|
|
return "#c02e30"; // 第一个柱子颜色
|
|
case 1:
|
|
return "#f7aa52"; // 第二个柱子颜色
|
|
case 2:
|
|
return "#fbe06a"; // 第三个柱子颜色
|
|
case 3:
|
|
return "#5185f3"; // 第四个柱子颜色
|
|
}
|
|
}
|
|
},
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartFXDJ2 = (Data) => {
|
|
let that = this;
|
|
let chartFXDJ2 = document.getElementById("chartFXDJ2");
|
|
if (chartFXDJ2) {
|
|
let myChart = echarts.init(chartFXDJ2);
|
|
myChart.setOption(
|
|
{
|
|
tooltip: {
|
|
trigger: "item",
|
|
formatter: "{b} : ({d}%)",
|
|
},
|
|
legend: {
|
|
left: "0%",
|
|
bottom: "10%",
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
series: [
|
|
{
|
|
type: "pie",
|
|
radius: '55%',
|
|
center: ["50%", "45%"],
|
|
data: Data,
|
|
itemStyle: {
|
|
color: function (params) {
|
|
switch (params.dataIndex) {
|
|
case 0:
|
|
return "#c02e30"; // 第一个柱子颜色
|
|
case 1:
|
|
return "#f7aa52"; // 第二个柱子颜色
|
|
case 2:
|
|
return "#fbe06a"; // 第三个柱子颜色
|
|
case 3:
|
|
return "#5185f3"; // 第四个柱子颜色
|
|
}
|
|
}
|
|
},
|
|
emphasis: {
|
|
itemStyle: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
},
|
|
label: {
|
|
show: true, // 开启标签显示
|
|
formatter: '{d}%', // 格式化标签文本,仅显示数值
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartSCDY = (Data) => {
|
|
let chartSCDY = document.getElementById("chartSCDY");
|
|
let myChart = echarts.init(chartSCDY);
|
|
myChart.setOption(
|
|
{
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
};
|
|
|
|
chartFXLB1 = (Data) => {
|
|
let chartFXLB1 = document.getElementById("chartFXLB1");
|
|
let myChart = echarts.init(chartFXLB1);
|
|
myChart.setOption(
|
|
{
|
|
// title: {
|
|
// text: "风险类别(等级)",
|
|
// left: "center",
|
|
// },
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["露天矿", "选矿厂", "尾矿库", "职能部门"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "5%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: {
|
|
type: "category",
|
|
data: Data.NAME.slice(0, 10),
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 20,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: "value",
|
|
},
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "露天矿",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL3.slice(0, 10),
|
|
itemStyle: { color: this.state.level3Color },
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "选矿厂",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL1.slice(0, 10),
|
|
itemStyle: { color: this.state.level1Color },
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "尾矿库",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL2.slice(0, 10),
|
|
itemStyle: { color: this.state.level2Color },
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "职能部门",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL4.slice(0, 10),
|
|
itemStyle: { color: this.state.level4Color },
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
};
|
|
chartZRDW = (Data) => {
|
|
let chartZRDW = document.getElementById("chartZRDW");
|
|
if (chartZRDW) {
|
|
let myChart = echarts.init(chartZRDW);
|
|
myChart.setOption(
|
|
{
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 20,
|
|
formatter: function (value) {
|
|
return value;
|
|
},
|
|
},
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartCJ = (Data) => {
|
|
let chartCJ = document.getElementById("chartCJ");
|
|
if (chartCJ) {
|
|
let myChart = echarts.init(chartCJ);
|
|
myChart.setOption(
|
|
{
|
|
// title: {
|
|
// text: "层级(等级)",
|
|
// left: "center",
|
|
// },
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartQY = (Data) => {
|
|
let chartQY = document.getElementById("chartQY");
|
|
if (chartQY) {
|
|
let myChart = echarts.init(chartQY);
|
|
myChart.setOption(
|
|
{
|
|
// title: {
|
|
// text: "区域(生产单元+等级)",
|
|
// left: "center",
|
|
// },
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: {
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 20,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: "value",
|
|
},
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
stack: "总量",
|
|
label: {
|
|
show: true,
|
|
position: "insideRight",
|
|
},
|
|
data: Data.LEVEL4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartZYRW1 = (Data) => {
|
|
let chartZYRW1 = document.getElementById("chartZYRW1");
|
|
if (chartZYRW1) {
|
|
let myChart = echarts.init(chartZYRW1);
|
|
myChart.setOption(
|
|
{
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
grid: {
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
itemStyle: {
|
|
color: function (params) {
|
|
switch (params.dataIndex) {
|
|
case 0:
|
|
return "#f7aa52"; // 第一个柱子颜色
|
|
case 1:
|
|
return "#fbe06a"; // 第二个柱子颜色
|
|
case 2:
|
|
return "#5185f3"; // 第三个柱子颜色
|
|
}
|
|
}
|
|
},
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chartZYRW2 = (Data) => {
|
|
let that = this;
|
|
let chartZYRW2 = document.getElementById("chartZYRW2");
|
|
if (chartZYRW2) {
|
|
let myChart = echarts.init(chartZYRW2);
|
|
myChart.setOption(
|
|
{
|
|
tooltip: {
|
|
trigger: "item",
|
|
formatter: "{b} : ({d}%)",
|
|
},
|
|
legend: {
|
|
left: "0%",
|
|
bottom: "10%",
|
|
data: ["许可作业", "关键任务", "一般任务"],
|
|
},
|
|
series: [
|
|
{
|
|
type: "pie",
|
|
radius: '55%',
|
|
center: ["50%", "45%"],
|
|
data: Data,
|
|
itemStyle: {
|
|
color: function (params) {
|
|
switch (params.dataIndex) {
|
|
case 0:
|
|
return "#f7aa52"; // 第一个柱子颜色
|
|
case 1:
|
|
return "#fbe06a"; // 第二个柱子颜色
|
|
case 2:
|
|
return "#5185f3"; // 第三个柱子颜色
|
|
}
|
|
}
|
|
},
|
|
emphasis: {
|
|
itemStyle: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
},
|
|
label: {
|
|
show: true, // 开启标签显示
|
|
formatter: '{d}%', // 格式化标签文本,仅显示数值
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
subtractRandomNotLessThanSelf = (obj) => {
|
|
function getRandomNotLessThan(num) {
|
|
return Math.floor(Math.random() * num);
|
|
}
|
|
for (let key in obj) {
|
|
if (Array.isArray(obj[key])) {
|
|
obj[key] = obj[key].map((number) => {
|
|
if (typeof number === "number") {
|
|
const randomSubtraction = getRandomNotLessThan(number);
|
|
return Math.floor(number - randomSubtraction); // 确保结果也为整数
|
|
} else {
|
|
return number;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
return obj;
|
|
};
|
|
chart21 = (Data, Title, Stack1, Stack2, Stack3, Stack4) => {
|
|
let chart21s = document.getElementById("chart21");
|
|
if (chart21s) {
|
|
let myChart = echarts.init(chart21s);
|
|
myChart.setOption(
|
|
{
|
|
title: {
|
|
text: Title,
|
|
left: "center",
|
|
},
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 30,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
stack: Stack1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
stack: Stack2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
stack: Stack3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
stack: Stack4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chart22 = (Data, Title, Stack1, Stack2, Stack3, Stack4) => {
|
|
let chart22s = document.getElementById("chart22");
|
|
if (chart22s) {
|
|
let myChart = echarts.init(chart22s);
|
|
myChart.setOption(
|
|
{
|
|
title: {
|
|
text: Title,
|
|
left: "center",
|
|
},
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 30,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
stack: Stack1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
stack: Stack2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
stack: Stack3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
stack: Stack4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chart23 = (Data, Title, Stack1, Stack2, Stack3, Stack4) => {
|
|
let chart23s = document.getElementById("chart23");
|
|
if (chart23s) {
|
|
let myChart = echarts.init(chart23s);
|
|
myChart.setOption(
|
|
{
|
|
title: {
|
|
text: Title,
|
|
left: "center",
|
|
},
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 30,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
stack: Stack1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
stack: Stack2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
stack: Stack3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
stack: Stack4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chart24 = (Data, Title, Stack1, Stack2, Stack3, Stack4) => {
|
|
let chart24s = document.getElementById("chart24");
|
|
if (chart24s) {
|
|
let myChart = echarts.init(chart24s);
|
|
myChart.setOption(
|
|
{
|
|
title: {
|
|
text: Title,
|
|
left: "center",
|
|
},
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 30,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
barWidth: 20,
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
stack: Stack1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
stack: Stack2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
stack: Stack3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
barWidth: 20,
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
stack: Stack4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
chart25 = (Data, Title) => {
|
|
let chart25s = document.getElementById("chart25");
|
|
if (chart25s) {
|
|
let myChart = echarts.init(chart25s);
|
|
myChart.setOption(
|
|
{
|
|
// title: {
|
|
// text: Title,
|
|
// left: "center",
|
|
// },
|
|
tooltip: {
|
|
trigger: "axis",
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
left: "center",
|
|
align: "left",
|
|
bottom: "2%",
|
|
textStyle: {
|
|
color: "#000",
|
|
},
|
|
itemWidth: 10,
|
|
itemHeight: 10,
|
|
data: ["一级", "二级", "三级", "四级"],
|
|
},
|
|
grid: {
|
|
left: "3%",
|
|
right: "3%",
|
|
bottom: "12%",
|
|
top: "10%",
|
|
containLabel: true,
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: "category",
|
|
data: Data.NAME,
|
|
axisLabel: {
|
|
interval: 0,
|
|
rotate: 20,
|
|
formatter: function (value) {
|
|
return value
|
|
}
|
|
}
|
|
},
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: "value",
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
name: "一级",
|
|
type: "bar",
|
|
data: Data.LEVEL1,
|
|
itemStyle: { color: this.state.level1Color },
|
|
stack: "总量",
|
|
barWidth: 20,
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "二级",
|
|
type: "bar",
|
|
data: Data.LEVEL2,
|
|
itemStyle: { color: this.state.level2Color },
|
|
stack: "总量",
|
|
barWidth: 20,
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "三级",
|
|
type: "bar",
|
|
data: Data.LEVEL3,
|
|
itemStyle: { color: this.state.level3Color },
|
|
stack: "总量",
|
|
barWidth: 20,
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "四级",
|
|
type: "bar",
|
|
data: Data.LEVEL4,
|
|
itemStyle: { color: this.state.level4Color },
|
|
stack: "总量",
|
|
barWidth: 20,
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top', // 或者 'inside'(内部)、'insideLeft'、'insideRight' 等其他位置
|
|
formatter: '{c}', // 使用变量 {c} 表示数值,也可以自定义格式化函数
|
|
textStyle: {
|
|
fontSize: 12, // 字体大小
|
|
color: '#333', // 字体颜色
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
};
|
|
//显示详情弹窗
|
|
showDetailModal = (formCode) => {
|
|
var titleTemp ="";
|
|
if (formCode == "风险类别1") {
|
|
titleTemp += "风险类别";
|
|
this.chart25(this.state.ret.Data.CHARTLIST[1]);
|
|
this.setState({ isShow2: true })
|
|
} else if (formCode == "风险类别2") {
|
|
titleTemp += "风险类别";
|
|
this.chart21(this.state.ret.Data.RISKTYPELIST[0], "露天矿", "1", "1", "1", "1");
|
|
this.chart22(this.state.ret.Data.RISKTYPELIST[1], "选矿厂", "1", "1", "1", "1");
|
|
this.chart23(this.state.ret.Data.RISKTYPELIST[2], "尾矿库", "1", "1", "1", "1");
|
|
this.chart24(this.state.ret.Data.RISKTYPELIST[3], "职能部门", "1", "1", "1", "1");
|
|
this.setState({ isShow1: true })
|
|
}
|
|
else if (formCode == "生产单元") {
|
|
this.setState({ isShow1: true })
|
|
titleTemp += "生产单元";
|
|
this.chart21(this.state.ret.Data.SCDYLIST[0], "露天矿", "1", "2", "3", "4");
|
|
this.chart22(this.state.ret.Data.SCDYLIST[1], "选矿厂", "1", "2", "3", "4");
|
|
this.chart23(this.state.ret.Data.SCDYLIST[2], "尾矿库", "1", "2", "3", "4");
|
|
this.chart24(this.state.ret.Data.SCDYLIST[3], "职能部门", "1", "2", "3", "4");
|
|
} else if (formCode == "层级") {
|
|
this.setState({ isShow1: true })
|
|
titleTemp += "层级";
|
|
this.chart21(this.state.ret.Data.CJLIST[0], "公司", "1", "2", "3", "4");
|
|
this.chart22(this.state.ret.Data.CJLIST[1], "部门", "1", "2", "3", "4");
|
|
this.chart23(this.state.ret.Data.CJLIST[2], "车间", "1", "2", "3", "4");
|
|
this.chart24(this.state.ret.Data.CJLIST[3], "班组", "1", "2", "3", "4");
|
|
} else if (formCode == "责任单位") {
|
|
this.setState({ isShow1: true })
|
|
titleTemp += "责任单位";
|
|
this.chart21(this.state.ret.Data.TEAMLIST[0], "露天矿", "1", "1", "1", "1");
|
|
this.chart22(this.state.ret.Data.TEAMLIST[1], "选矿厂", "1", "1", "1", "1");
|
|
this.chart23(this.state.ret.Data.TEAMLIST[2], "尾矿库", "1", "1", "1", "1");
|
|
this.chart24(this.state.ret.Data.TEAMLIST[3], "职能部门", "1", "1", "1", "1");
|
|
} else if (formCode == "区域") {
|
|
this.setState({ isShow1: true })
|
|
titleTemp += "区域";
|
|
this.chart21(this.state.ret.Data.AREALIST[0], "露天矿", "1", "1", "1", "1");
|
|
this.chart22(this.state.ret.Data.AREALIST[1], "选矿厂", "1", "1", "1", "1");
|
|
this.chart23(this.state.ret.Data.AREALIST[2], "尾矿库", "1", "1", "1", "1");
|
|
this.chart24(this.state.ret.Data.AREALIST[3], "职能部门", "1", "1", "1", "1");
|
|
}
|
|
|
|
const newtmpData = {
|
|
data: {
|
|
id: guid(),
|
|
mineType: this.state.mineType,
|
|
onCancel: this.handleCancel,
|
|
homeReload: true,
|
|
},
|
|
formCode: formCode,
|
|
};
|
|
this.setState({ tmpData: newtmpData }, () => {
|
|
var detailForm = {
|
|
formCode: formCode,
|
|
title: titleTemp,
|
|
};
|
|
this.setState({
|
|
detailForm: detailForm,
|
|
});
|
|
});
|
|
};
|
|
//详情弹窗关闭(隐藏)
|
|
detailFormClose = () => {
|
|
var detailForm = {
|
|
formCode: "",
|
|
title: "",
|
|
};
|
|
this.setState({
|
|
isShow1: false,
|
|
isShow2: false,
|
|
detailForm: detailForm,
|
|
});
|
|
};
|
|
|
|
render() {
|
|
return (
|
|
<div
|
|
style={{
|
|
backgroundColor: "#fff",
|
|
top: "0",
|
|
bottom: "0",
|
|
left: "0",
|
|
right: "0",
|
|
margin: "auto",
|
|
// borderStyle: "solid",
|
|
// borderColor: "#ccc",
|
|
// borderWidth: "1px",
|
|
}}
|
|
>
|
|
<div style={{ display: "inline-block" }}>
|
|
<Modal
|
|
visible={this.state.isShow1}
|
|
title={this.state.detailForm.title}
|
|
maskClosable={false}
|
|
closeModal={this.detailFormClose}
|
|
onCancel={this.detailFormClose}
|
|
footer={null}
|
|
width="1300px"
|
|
getContainer={false}
|
|
>
|
|
<Row gutter={12} style={{ marginTop: "5px" }}>
|
|
<Col span={12}>
|
|
<div id="chart21" style={{ width: "500px", height: "300px", flex: 1 }}></div>
|
|
<div id="chart23" style={{ width: "500px", height: "300px", flex: 1 }}></div>
|
|
</Col>
|
|
<Col span={12}>
|
|
<div id="chart22" style={{ width: "500px", height: "300px", flex: 1 }}></div>
|
|
<div id="chart24" style={{ width: "500px", height: "300px", flex: 1 }}></div>
|
|
</Col>
|
|
</Row>
|
|
</Modal>
|
|
<Modal
|
|
visible={this.state.isShow2}
|
|
title={this.state.detailForm.title}
|
|
maskClosable={false}
|
|
closeModal={this.detailFormClose}
|
|
onCancel={this.detailFormClose}
|
|
footer={null}
|
|
width="1300px"
|
|
getContainer={false}
|
|
>
|
|
<div id="chart25" style={{ width: "1200px", height: "700px", flex: 1 }}></div>
|
|
</Modal>
|
|
</div>
|
|
<Row gutter={12} style={{ marginTop: "5px" }}>
|
|
<Col span={1}></Col>
|
|
<Col span={11} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">风险等级</div>
|
|
</div>
|
|
</div>
|
|
<div id="chartFXDJ1" style={{ width: "45%", height: "330px", float: "left" }}></div>
|
|
<div id="chartFXDJ2" style={{ width: "45%", height: "330px", float: "left" }}></div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
<Col span={10} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">月度风险辨识统计走势</div>
|
|
</div>
|
|
</div>
|
|
<div id="chart4" style={{ width: "100%", height: "330px" }}></div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
</Row>
|
|
<Row gutter={12} style={{ marginTop: "30px" }}>
|
|
<Col span={1}></Col>
|
|
<Col span={11} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">生产单元</div>
|
|
</div>
|
|
<div onClick={() => this.showDetailModal("生产单元")}>
|
|
<IconFont
|
|
type="icon-24gl-expand2"
|
|
className="home-always-icon"
|
|
></IconFont>
|
|
</div>
|
|
</div>
|
|
<div id="chartSCDY" style={{ width: "100%", height: "330px" }}></div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
<Col span={10} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">层级</div>
|
|
</div>
|
|
<div onClick={() => this.showDetailModal("层级")}>
|
|
<IconFont
|
|
type="icon-24gl-expand2"
|
|
className="home-always-icon"
|
|
></IconFont>
|
|
</div>
|
|
</div>
|
|
<div className="risk-chart" style={{ height: "330px" }}>
|
|
<div id="chartCJ" style={{ width: "100%", flex: 1 }}></div>
|
|
</div>
|
|
</Col>
|
|
</Row>
|
|
<Row gutter={12} style={{ marginTop: "30px" }}>
|
|
<Col span={1}></Col>
|
|
<Col span={11} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">责任单位</div>
|
|
</div>
|
|
<div onClick={() => this.showDetailModal("责任单位")}>
|
|
<IconFont
|
|
type="icon-24gl-expand2"
|
|
className="home-always-icon"
|
|
></IconFont>
|
|
</div>
|
|
</div>
|
|
<div className="risk-chart" style={{ height: "330px" }}>
|
|
<div id="chartZRDW" style={{ width: "100%", flex: 1 }}></div>
|
|
</div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
<Col span={10} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">区域</div>
|
|
</div>
|
|
<div onClick={() => this.showDetailModal("区域")}>
|
|
<IconFont
|
|
type="icon-24gl-expand2"
|
|
className="home-always-icon"
|
|
></IconFont>
|
|
</div>
|
|
</div>
|
|
<div id="chartQY" style={{ width: "100%", height: "330px" }}></div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
</Row>
|
|
<Row gutter={12} style={{ marginTop: "30px" }}>
|
|
<Col span={1}></Col>
|
|
<Col span={11} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">风险类别</div>
|
|
</div>
|
|
<div onClick={() => this.showDetailModal("风险类别2")}>
|
|
<IconFont
|
|
type="icon-24gl-expand2"
|
|
className="home-always-icon"
|
|
></IconFont>
|
|
</div>
|
|
</div>
|
|
<div className="risk-chart" style={{ height: "330px" }}>
|
|
<div id="chartFXLB1" style={{ width: "100%", flex: 1 }}></div>
|
|
</div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
<Col span={10} className="risk-model-col" style={{ padding: 0 }}>
|
|
<div className="home-always-title">
|
|
<div className="home-always-left">
|
|
<div className="home-always-badge"></div>
|
|
<div className="home-always-name">作业任务</div>
|
|
</div>
|
|
</div>
|
|
<div id="chartZYRW1" style={{ width: "45%", height: "330px", float: "left" }}></div>
|
|
<div id="chartZYRW2" style={{ width: "45%", height: "330px", float: "left" }}></div>
|
|
</Col>
|
|
<Col span={1}></Col>
|
|
</Row>
|
|
<br />
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
export default connect(({ login, app }) => ({ login, app }))(
|
|
BI014RiskPerformanceModel
|
|
);
|