import React, { useState, useEffect, useRef, Component } from "react"; import { connect } from "dva"; import { initFilter, extendOrder, guid } from "../../../utils/common"; import { Row, Col, Modal, Table, Button, Select, DatePicker, message } from "antd"; import echarts from "echarts"; import moment from "moment"; import IconFont from "../../../utils/iconFont"; import { T } from "antd/lib/upload/utils"; // 年度安全检查统计 弹窗 年度安全检查统计 按月 按生产单元 class BI056Dilg3_2 extends React.Component { constructor(props) { super(props); this.state = { ColorShow:this.props.data.ColorShow,//: ["#c02e30", "#f7aa52", "#fbe06a", "#5185f3", "#EF9494", "#51b5f3"], barWidth: this.props.barWidth, isShow1: false, isShow2: false, dtStart: null,//开始时间 dtEnd: null,//结束时间 mineType: 0,//生产单元 detailForm: { formCode: "", title: "", }, Data: { axisLabelMonth: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], mineTypeName: ["露天矿", "选矿厂", "尾矿库", "职能部门"], listLegendName: [ ['巡回检查', '例行检查', '专业检查', '综合检查', '重大事故隐患专项排查'], ['巡回检查', '例行检查', '专业检查', '综合检查'], ['日常巡检', '防洪安全检查', '坝体安全检查', '库区安全检查', '重大事故隐患专项排查'], ['巡回检查', '例行检查', '专业检查', '综合检查', '重大事故隐患专项排查'] ], //每个生产单元 每种检查类型 1-12 月数量 checkTypeCount1: [[2, 3, 3, 5, 3, 2, 6, 2, 1, 0, 1, 2], [1, 2, 3, 3, 2, 4, 5, 3, 1, 0, 9, 8], [1, 2, 3, 4, 5, 3, 2, 4, 1, 1, 4, 0], [2, 1, 1, 0, 0, 3, 3, 2, 2, 0, 0, 1], [1, 1, 1, 3, 3, 1, 3, 1, 2, 2, 3, 4]], checkTypeCount2: [[2, 3, 6, 6, 3, 2, 6, 3, 8, 0, 1, 2], [1, 2, 7, 3, 5, 4, 5, 4, 1, 4, 9, 2], [1, 2, 8, 4, 5, 3, 2, 4, 3, 4, 0, 6], [2, 3, 1, 0, 3, 3, 3, 6, 3, 4, 6, 1]], checkTypeCount3: [[0, 0, 3, 3, 5, 5, 7, 7, 3, 4, 7, 1], [5, 7, 0, 0, 1, 1, 2, 1, 4, 0, 3, 6], [2, 2, 5, 7, 4, 0, 0, 4, 4, 0, 0, 4], [1, 5, 4, 2, 4, 0, 2, 0, 4, 0, 0, 4], [1, 1, 1, 0, 1, 0, 0, 5, 0, 0, 1, 0]], checkTypeCount4: [[4, 2, 2, 5, 4, 0, 2, 5, 0, 2, 4, 4], [4, 0, 4, 0, 0, 4, 0, 0, 4, 0, 4, 0], [1, 0, 3, 0, 1, 3, 0, 7, 2, 0, 3, 0], [1, 0, 3, 1, 1, 3, 3, 3, 2, 0, 3, 0], [1, 0, 3, 0, 1, 3, 0, 2, 2, 1, 0, 2]], } } } componenthidMount() { // this.getBaseInfoData(); this.getBaseInfoDataOnline(); } componentDidMount() { // this.getBaseInfoData(); this.getBaseInfoDataOnline(); } //获取数据 getBaseInfoDataOnline = (mineType) => { const json = initFilter(this.props.login.OrgId); extendOrder(json, "CREATE_TIME", 1); json.Parameter1 = mineType; this.props.dispatch({ type: "app/getDataByPost", url: "BI/BISafe/GetBI056_3_2", payload: json, onlyData: false, onComplete: (ret) => { if (ret && ret.IsSuccessful) { this.setState({ Data: Object.assign({}, this.state.Data, { "mineTypeName": ret.Data.lisMineTypeOrder, "listLegendName": ret.Data.lisMineCheckType, "checkTypeCount1": ret.Data.Count3_1.length >= 1 ? ret.Data.Count3_1[0] : null, "checkTypeCount2": ret.Data.Count3_1.length >= 2 ? ret.Data.Count3_1[1] : null, "checkTypeCount3": ret.Data.Count3_1.length >= 3 ? ret.Data.Count3_1[2] : null, "checkTypeCount4": ret.Data.Count3_1.length >= 4 ? ret.Data.Count3_1[3] : null }) }) this.getBaseInfoData(); } else { message.error("获取信息失败,请刷新后再试!"); } } }); }; getBaseInfoData = (mineType) => { this.CheckCount(this.state.Data, "div1", 1); this.CheckCount(this.state.Data, "div2", 2); this.CheckCount(this.state.Data, "div3", 3); this.CheckCount(this.state.Data, "div4", 4); }; // index 从1开始 CheckCount = (Data, divId, index) => { let divShow = document.getElementById(divId); if (divShow) { let myChart = echarts.init(divShow); const labelOption = { show: true, position: 'top', formatter: '{c}', textStyle: { fontSize: 12, // 字体大小 color: '#333', // 字体颜色 } }; var title = Data.mineTypeName[index - 1] var month = (new Date()).getMonth() + 1//取当前月 // mineTypeName[] mineTypeName: ["露天矿", "选矿厂", "尾矿库", "职能部门"], var dataList = [] switch (index) { case 1: dataList = Data.checkTypeCount1 break; case 2: dataList = Data.checkTypeCount2 break; case 3: dataList = Data.checkTypeCount3 break; case 4: dataList = Data.checkTypeCount4 break; } var LegendName = Data.listLegendName[index - 1] var seriesShow = [] for (let i = 0; i < LegendName.length; i++) { seriesShow.push({ name: LegendName[i], barWidth: this.state.barWidth, type: 'bar', barGap: 0, label: labelOption, emphasis: { focus: 'series' }, data: dataList[i],//.slice(0, month), itemStyle: { color: this.state.ColorShow[i] }, }) } myChart.setOption( { // 检查类型次数统计 title: { text: title, left: "center", }, tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' }, }, legend: { left: "center", align: "left", bottom: "2%", textStyle: { color: "#000", }, itemWidth: 10, itemHeight: 10, data: Data.legendName }, xAxis: [ { type: 'category', axisTick: { show: false }, data: Data.axisLabelMonth, axisLine: { lineStyle: { color: "#0c3b71", }, }, axisLabel: { show: true, color: "rgb(170,170,170)", interval: 0, textStyle: { lineHeight: 14, }, }, }, ], yAxis: [ { type: 'value' } ], series: seriesShow }, true ); } }; render() { return (

); } } export default connect(({ login, app }) => ({ login, app }))(BI056Dilg3_2);