432 lines
14 KiB
JavaScript
432 lines
14 KiB
JavaScript
|
|
import React from 'react'
|
|||
|
|
import { connect } from 'dva'
|
|||
|
|
import { initFilter, extendRule, extendInclude, getIsPC, openNotificationMobile } from "../../../utils/common"
|
|||
|
|
import { ChartBarShow_Vertical, LineShow } from "../../../utils/commonEcharsShow"
|
|||
|
|
import { notification, Button, Descriptions } from 'antd';
|
|||
|
|
import echarts from 'echarts';
|
|||
|
|
import styles from '../HI/StepForm.css';
|
|||
|
|
|
|||
|
|
const formItemLayout = {
|
|||
|
|
labelCol: { span: 6 },
|
|||
|
|
wrapperCol: { span: 14 },
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class BI051BSCompanyYear extends React.Component {
|
|||
|
|
|
|||
|
|
constructor(props) {
|
|||
|
|
super(props);
|
|||
|
|
this.state = {
|
|||
|
|
data: {
|
|||
|
|
titleDate: ' ',
|
|||
|
|
countPlan: ' ',
|
|||
|
|
countFinishIntTime: ' ',
|
|||
|
|
countFinishOutTime: ' ',
|
|||
|
|
countNotFinish: ' ',
|
|||
|
|
count1: 0,
|
|||
|
|
count2: 0,
|
|||
|
|
count3: 0,
|
|||
|
|
count4: 0,
|
|||
|
|
parm7: "",
|
|||
|
|
parm8: "",
|
|||
|
|
|
|||
|
|
count21: 0,
|
|||
|
|
count22: 0,
|
|||
|
|
count23: 0,
|
|||
|
|
parm27: "",
|
|||
|
|
|
|||
|
|
year: (new Date()).getFullYear(),
|
|||
|
|
company: '公司级'
|
|||
|
|
},
|
|||
|
|
listSafeCheckYear: [],
|
|||
|
|
listCheckTypeYear: [],
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
componenthidMount() {
|
|||
|
|
if (!getIsPC()) {
|
|||
|
|
openNotificationMobile('bottomRight', notification)
|
|||
|
|
this.state.displayStr = 'none';
|
|||
|
|
this.state.displayNum = 24;
|
|||
|
|
//alert('手机');
|
|||
|
|
} else {
|
|||
|
|
this.state.displayStr = '';
|
|||
|
|
this.state.displayNum = 16;
|
|||
|
|
//alert('PC');
|
|||
|
|
}
|
|||
|
|
this.loadData()
|
|||
|
|
|
|||
|
|
//定时器功能,暂时不开启
|
|||
|
|
// this.timerID = setInterval(() => this.getBaseInfoData(1, this.state.tableKey, 5), 120000);
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
componentDidMount() {
|
|||
|
|
this.loadData()
|
|||
|
|
}
|
|||
|
|
componentWillUnmount() {
|
|||
|
|
// this.timerID && clearTimeout(this.timerID);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//加载数据赋值
|
|||
|
|
loadData = () => {
|
|||
|
|
var orgId = this.props.login ? this.props.login.OrgId : '';
|
|||
|
|
let json = initFilter(orgId);
|
|||
|
|
this.props.dispatch({
|
|||
|
|
type: 'app/getDataByPost',
|
|||
|
|
payload: json,
|
|||
|
|
url: 'BI/BISafeYear/BISafeYearShow',
|
|||
|
|
onComplete: (data) => {
|
|||
|
|
if (data) {
|
|||
|
|
var count1 = 0
|
|||
|
|
var count2 = 0
|
|||
|
|
var count3 = 0
|
|||
|
|
var count4 = 0
|
|||
|
|
var parm7 = ""
|
|||
|
|
var parm8 = ""
|
|||
|
|
|
|||
|
|
var count21 = 0
|
|||
|
|
var count22 = 0
|
|||
|
|
var count23 = 0
|
|||
|
|
var parm27 = ""
|
|||
|
|
|
|||
|
|
//数量赋值
|
|||
|
|
if (data.listSummary != null && data.listSummary.length == 2) {
|
|||
|
|
data.listSummary.forEach((item) => {
|
|||
|
|
if (item.PART == 1) {
|
|||
|
|
count1 = item.Count1
|
|||
|
|
count2 = item.Count2
|
|||
|
|
count3 = item.Count3
|
|||
|
|
count4 = item.Count4
|
|||
|
|
parm7 = item.Parameter7
|
|||
|
|
parm8 = item.Parameter8
|
|||
|
|
} else if (item.PART == 3) {
|
|||
|
|
count21 = item.Count1
|
|||
|
|
count22 = item.Count2
|
|||
|
|
count23 = item.Count3
|
|||
|
|
parm27 = item.Parameter7
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
var year = (new Date()).getFullYear()
|
|||
|
|
if (data.listSafeCheckYear != null && data.listSafeCheckYear.length > 0)
|
|||
|
|
year = data.listSafeCheckYear[0].YEAR
|
|||
|
|
var companyName = (data.NAME == undefined || data.NAME == null) ? "公司级" : data.NAME
|
|||
|
|
this.setState({
|
|||
|
|
data: {
|
|||
|
|
count1: count1,
|
|||
|
|
count2: count2,
|
|||
|
|
count3: count3,
|
|||
|
|
count4: count4,
|
|||
|
|
parm7: parm7,
|
|||
|
|
parm8: parm8,
|
|||
|
|
|
|||
|
|
count21: count21,
|
|||
|
|
count22: count22,
|
|||
|
|
count23: count23,
|
|||
|
|
parm27: parm27,
|
|||
|
|
|
|||
|
|
listSafeCheckYear: data.listSafeCheckYear,
|
|||
|
|
listCheckTypeYear: data.listCheckTypeYear,
|
|||
|
|
year: year,
|
|||
|
|
company: companyName
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
ChartBarShow_Vertical(echarts, 'divRisk', data.listCheckTypeYear, '安全检查隐患整改统计图(近12个月)')
|
|||
|
|
|
|||
|
|
var dataXAxis = []
|
|||
|
|
var dataSeries = []
|
|||
|
|
if (data.listCheckTypeYear != null && data.listCheckTypeYear != undefined && data.listCheckTypeYear.length > 0) {
|
|||
|
|
data.listCheckTypeYear.forEach((item) => {
|
|||
|
|
dataXAxis.push(item.YEAR + "-" + item.MONTH)
|
|||
|
|
dataSeries.push(item.FINISHPERCENT)
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
LineShow(echarts, 'divRiskPercent', '安全检查隐患整改率(近12个月)', dataXAxis, dataSeries)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 搜索
|
|||
|
|
handleSearch = (item) => {
|
|||
|
|
this.getBaseInfoData(1, item, null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
closeModal = () => {
|
|||
|
|
this.setState({
|
|||
|
|
searchVisible: false,
|
|||
|
|
searchTodayVisible: false,
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// ChartBarShow_Vertical(echarts, divId, data, title) {
|
|||
|
|
// var element = document.getElementById(divId)
|
|||
|
|
// if (element != undefined && data != null && data.length > 0) {
|
|||
|
|
// var myChart = echarts.init(element);
|
|||
|
|
// var series = []
|
|||
|
|
// var xAxisData = []
|
|||
|
|
// var yAxisData1 = []
|
|||
|
|
// var yAxisData2 = []
|
|||
|
|
// var yAxisData3 = []
|
|||
|
|
|
|||
|
|
// data.forEach((item) => {
|
|||
|
|
// xAxisData.push(item.YEAR + "-" + item.MONTH)
|
|||
|
|
// yAxisData1.push(item.INTTIMECOUNT)
|
|||
|
|
// yAxisData2.push(item.OUTTIMECOUNT)
|
|||
|
|
// yAxisData3.push(item.NOTFINISHCOUN)
|
|||
|
|
// })
|
|||
|
|
|
|||
|
|
// var option = {
|
|||
|
|
// title: {
|
|||
|
|
// text: title,
|
|||
|
|
// left: 'center'
|
|||
|
|
// },
|
|||
|
|
// tooltip: {
|
|||
|
|
// trigger: 'axis',
|
|||
|
|
// axisPointer: {
|
|||
|
|
// type: 'shadow'
|
|||
|
|
// }
|
|||
|
|
// },
|
|||
|
|
// legend: {
|
|||
|
|
// bottom: '0px'
|
|||
|
|
// },
|
|||
|
|
// grid: {
|
|||
|
|
// left: '3%',
|
|||
|
|
// right: '4%',
|
|||
|
|
// bottom: '10%',
|
|||
|
|
// containLabel: true
|
|||
|
|
// },
|
|||
|
|
// xAxis: {
|
|||
|
|
// type: 'category',
|
|||
|
|
// data: xAxisData
|
|||
|
|
// },
|
|||
|
|
// yAxis: {
|
|||
|
|
// type: 'value'
|
|||
|
|
// },
|
|||
|
|
// series: [
|
|||
|
|
// {
|
|||
|
|
// name: '按期整改',
|
|||
|
|
// type: 'bar',
|
|||
|
|
// stack: 'total',
|
|||
|
|
// label: {
|
|||
|
|
// show: true
|
|||
|
|
// },
|
|||
|
|
// emphasis: {
|
|||
|
|
// focus: 'series'
|
|||
|
|
// },
|
|||
|
|
// data: yAxisData1
|
|||
|
|
// },
|
|||
|
|
// {
|
|||
|
|
// name: '延期整改',
|
|||
|
|
// type: 'bar',
|
|||
|
|
// stack: 'total',
|
|||
|
|
// label: {
|
|||
|
|
// show: true
|
|||
|
|
// },
|
|||
|
|
// emphasis: {
|
|||
|
|
// focus: 'series'
|
|||
|
|
// },
|
|||
|
|
// data: yAxisData2
|
|||
|
|
// },
|
|||
|
|
// {
|
|||
|
|
// name: '未完成',
|
|||
|
|
// type: 'bar',
|
|||
|
|
// stack: 'total',
|
|||
|
|
// label: {
|
|||
|
|
// show: true
|
|||
|
|
// },
|
|||
|
|
// emphasis: {
|
|||
|
|
// focus: 'series'
|
|||
|
|
// },
|
|||
|
|
// data: yAxisData3
|
|||
|
|
// }
|
|||
|
|
// ]
|
|||
|
|
// };
|
|||
|
|
// // 使用刚指定的配置项和数据显示图表。
|
|||
|
|
// myChart.setOption(option);
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// LineShow(echarts, divId, title, dataXAxis, dataSeries) {
|
|||
|
|
|
|||
|
|
// var chartDom = document.getElementById(divId);
|
|||
|
|
// if (chartDom != null && chartDom != undefined) {
|
|||
|
|
// var myChart = echarts.init(chartDom);
|
|||
|
|
// var option;
|
|||
|
|
// option = {
|
|||
|
|
// title: {
|
|||
|
|
// text: title,
|
|||
|
|
// left: 'center'
|
|||
|
|
// },
|
|||
|
|
// label: {
|
|||
|
|
// show: true,
|
|||
|
|
// position: 'top'
|
|||
|
|
// },
|
|||
|
|
// xAxis: {
|
|||
|
|
// type: 'category',
|
|||
|
|
// data: dataXAxis
|
|||
|
|
// },
|
|||
|
|
// yAxis: {
|
|||
|
|
// type: 'value'
|
|||
|
|
// },
|
|||
|
|
// series: [
|
|||
|
|
// {
|
|||
|
|
// data: dataSeries,
|
|||
|
|
// type: 'line'
|
|||
|
|
// }
|
|||
|
|
// ]
|
|||
|
|
// };
|
|||
|
|
|
|||
|
|
// option && myChart.setOption(option);
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
render() {
|
|||
|
|
const { data } = this.state;
|
|||
|
|
return <div>
|
|||
|
|
<div className={styles.routeHome}>
|
|||
|
|
<h1 className={styles.showPrintHead}> {data.company} <a href='#' style={{ fontWeight: '600', color: 'black' }}>{data.year}年度</a>安全检查情况综合统计分析</h1> {/* {this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS == "30" ? "矿山部" : "选矿部"} */}
|
|||
|
|
{/* <h3 style={{ textAlign: 'center' }}>({data.titleDate})</h3> */}
|
|||
|
|
<div style={{ width: '100%', height: '80px' }}>
|
|||
|
|
<ul className={styles.menuPie} >
|
|||
|
|
<li>计划检查数<br />{data.count1}</li>
|
|||
|
|
<li>按时已办<br />{data.count2}</li>
|
|||
|
|
<li>超时已办<br />{data.count3}</li>
|
|||
|
|
<li>未完成数<br /><a href='#' style={{ color: 'red' }}>{data.count4}</a></li>
|
|||
|
|
<li>完成率<br /><a href='#' style={{ color: 'red' }}>{data.parm7}</a></li>
|
|||
|
|
<li>及时完成率<br /><a href='#' style={{ color: 'red' }}>{data.parm8}</a></li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
<hr />
|
|||
|
|
{/* 表一 */}
|
|||
|
|
<div>
|
|||
|
|
<div style={{ float: 'left' }}>
|
|||
|
|
{
|
|||
|
|
data?.listSafeCheckYear ? (
|
|||
|
|
<ul className={styles.menuPie2} >
|
|||
|
|
{
|
|||
|
|
data.listSafeCheckYear.map((item) => {
|
|||
|
|
if (item.NAME != '合计') {
|
|||
|
|
return <li>
|
|||
|
|
{item.NAME} <br /> {item.COUNTTOTAL}
|
|||
|
|
</li>
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
</ul>
|
|||
|
|
) : (
|
|||
|
|
<ul className={styles.menuPie2} >
|
|||
|
|
<li>公司级</li>
|
|||
|
|
<li>部门级</li>
|
|||
|
|
<li>车间级</li>
|
|||
|
|
<li>班组级</li>
|
|||
|
|
</ul>
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
<div style={{ float: 'left' }}>
|
|||
|
|
<table className={styles.tableRow}>
|
|||
|
|
<tbody>
|
|||
|
|
<tr>
|
|||
|
|
<th>序号</th>
|
|||
|
|
<th>检查层级</th>
|
|||
|
|
<th>1月</th>
|
|||
|
|
<th>2月</th>
|
|||
|
|
<th>3月</th>
|
|||
|
|
<th>4月</th>
|
|||
|
|
<th>5月</th>
|
|||
|
|
<th>6月</th>
|
|||
|
|
<th>7月</th>
|
|||
|
|
<th>8月</th>
|
|||
|
|
<th>9月</th>
|
|||
|
|
<th>10月</th>
|
|||
|
|
<th>11月</th>
|
|||
|
|
<th>12月</th>
|
|||
|
|
<th>合计</th>
|
|||
|
|
</tr>
|
|||
|
|
{
|
|||
|
|
data?.listSafeCheckYear ? (data.listSafeCheckYear.map((item, i) => {
|
|||
|
|
if (item.NAME == '合计') {
|
|||
|
|
return <tr>
|
|||
|
|
<td colSpan={2}>{item.NAME}</td>
|
|||
|
|
<td>{item.COUNTJANUARY == 0 ? '' : item.COUNTJANUARY}</td>
|
|||
|
|
<td>{item.COUNTFEBRUARY == 0 ? '' : item.COUNTFEBRUARY}</td>
|
|||
|
|
<td>{item.COUNTMARCH == 0 ? '' : item.COUNTMARCH}</td>
|
|||
|
|
<td>{item.COUNTAPRIL == 0 ? '' : item.COUNTAPRIL}</td>
|
|||
|
|
<td>{item.COUNTMAY == 0 ? '' : item.COUNTMAY}</td>
|
|||
|
|
<td>{item.COUNTJUNE == 0 ? '' : item.COUNTJUNE}</td>
|
|||
|
|
<td>{item.COUNTJULY == 0 ? '' : item.COUNTJULY}</td>
|
|||
|
|
<td>{item.COUNTAUGUST == 0 ? '' : item.COUNTAUGUST}</td>
|
|||
|
|
<td>{item.COUNTSEPTEMBER == 0 ? '' : item.COUNTSEPTEMBER}</td>
|
|||
|
|
<td>{item.COUNTOCTOBER == 0 ? '' : item.COUNTOCTOBER}</td>
|
|||
|
|
<td>{item.COUNTNOVEMBER == 0 ? '' : item.COUNTNOVEMBER}</td>
|
|||
|
|
<td>{item.COUNTDECEMBER == 0 ? '' : item.COUNTDECEMBER}</td>
|
|||
|
|
<td>{item.COUNTTOTAL == 0 ? '' : item.COUNTTOTAL}</td>
|
|||
|
|
</tr>
|
|||
|
|
} else {
|
|||
|
|
return <tr>
|
|||
|
|
<td>{item.ROW_NO + 1}</td>
|
|||
|
|
<td>{item.NAME}</td>
|
|||
|
|
<td>{item.COUNTJANUARY}</td>
|
|||
|
|
<td>{item.COUNTFEBRUARY}</td>
|
|||
|
|
<td>{item.COUNTMARCH}</td>
|
|||
|
|
<td>{item.COUNTAPRIL}</td>
|
|||
|
|
<td>{item.COUNTMAY}</td>
|
|||
|
|
<td>{item.COUNTJUNE}</td>
|
|||
|
|
<td>{item.COUNTJULY}</td>
|
|||
|
|
<td>{item.COUNTAUGUST}</td>
|
|||
|
|
<td>{item.COUNTSEPTEMBER}</td>
|
|||
|
|
<td>{item.COUNTOCTOBER}</td>
|
|||
|
|
<td>{item.COUNTNOVEMBER}</td>
|
|||
|
|
<td>{item.COUNTDECEMBER}</td>
|
|||
|
|
<td>{item.COUNTTOTAL}</td>
|
|||
|
|
</tr>
|
|||
|
|
}
|
|||
|
|
})) : (
|
|||
|
|
<tr>
|
|||
|
|
<td colSpan={15}>数据加载中...</td>
|
|||
|
|
</tr>
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
</tbody>
|
|||
|
|
</table>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
{/* 表一 */}
|
|||
|
|
|
|||
|
|
<div >
|
|||
|
|
<div style={{ width: '100%', height: '450px', float: 'left', marginTop: '15px' }}> {/* */}
|
|||
|
|
<div style={{ height: '2px', width: '100%', border: '1px dashed rgba(0, 0, 0, 0.65)' }} ></div>
|
|||
|
|
|
|||
|
|
<div style={{ float: 'left', width: '150px' }}>
|
|||
|
|
<ul className={styles.menuPie2} style={{ marginTop: '80px' }} >
|
|||
|
|
<li>隐患数<br />{data.count21}</li>
|
|||
|
|
<li>延期整改数<br />{data.count22}</li>
|
|||
|
|
<li>按期整改数<br />{data.count23}</li>
|
|||
|
|
<li>整改率<br />{data.parm27}</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div id='divRisk' style={{ width: '40%', height: '430px', float: 'left', marginTop: '20px' }}>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div id='divRiskPercent' style={{ width: '40%', height: '430px', float: 'left', marginTop: '20px' }}>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div >
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
export default connect(({ login, app }) => ({ login, app }))(BI051BSCompanyYear)
|