import React from 'react' import { connect } from 'dva' import { initFilter, extendRule, extendOrder } from "../../../utils/common" import { ChartPieShow, ChartBarShow } from "../../../utils/commonEcharsShow" import { Table, Button,Input, Row, Col,Modal ,Icon,Progress} from 'antd'; import echarts from 'echarts'; import styles from '../HI/StepForm.css'; import moment from 'moment' import { T } from 'antd/lib/upload/utils'; import FormPage from '../../FormPage' class BI011FormRunAnalysis extends React.Component { constructor(props) { super(props); this.state = { visible: false, loading:false, noticeTitle: '', tmpData: {}, tableKey: "1", startTime: moment(new Date().setDate(1)).subtract(5,'months').format("YYYY-MM-DD"), endTime:moment(new Date()).format("YYYY-MM-DD"), timeType: 5, totalCount:0, finishCount:0, overtimeCount:0, unfinishCount:0, dtotalCount:0, dfinishCount:0, dovertimeCount:0, dunfinishCount:0, inputText:this.props.login.user.NAME, drate:'0%', dnormalRate:'0%', weekColor:'black', monthColor:'orange', threeMonthColor:'black', sixMonthColor:'black', yearColor:'black', retData:[], groupData:[], detailData:[], newData:[], detailDataH:[], displayHr:'none', displaydetail:'none', columns: [ { width: "30px", title: '月份', dataIndex: 'MONTHStr', key: 'MONTHStr', // render: (text, record) => ( // // this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME} // // ), }, { width: "30px", title: '任务数', dataIndex: 'TOTAL_QTY', key: 'TOTAL_QTY' },{ width: "30px", title: '完成率', dataIndex: 'FINISH_RATE', key: 'FINISH_RATE', render: (text, record) => ( // // this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME} // ), }, { width: "30px", title: '及时完成率', dataIndex: 'NORMAL_FINISH_RATE', key: 'NORMAL_FINISH_RATE', render: (text, record) => ( // // this.showEditModal(record.DEPARTMENT_ID,record.DEPARTMENT_NAME)}>{record.DEPARTMENT_NAME} // ), } ], detailColumns: [ // { // width: "55px", // title: '序号', // dataIndex: 'NUM', // key: 'NUM', // }, { width: "100px", title: '模块名称', dataIndex: 'MOUDLE_NAME', key: 'MOUDLE_NAME', // render: (text, record) => ( // // this.showFormModal(record.MOUDLE_NAME)}>{record.MOUDLE_NAME} // // ), }, { width: "60px", title: '总任务数', dataIndex: 'TOTAL_QTY', key: 'TOTAL_QTY' }, { width: "60px", title: '正常已办', dataIndex: 'FINISH_QTY', key: 'FINISH_QTY' }, { width: "60px", title: '超时已办', dataIndex: 'OVER_FINISH_QTY', key: 'OVER_FINISH_QTY' }, { width: "50px", title: '未完成', dataIndex: 'UNFINISH_QTY', key: 'UNFINISH_QTY', }, { width: "50px", title: '完成率', dataIndex: 'FINISH_RATE', key: 'FINISH_RATE', }, { width: "70px", title: '及时完成率', dataIndex: 'NORMAL_FINISH_RATE', key: 'NORMAL_FINISH_RATE', render: (text, record) => ( {record.NORMAL_FINISH_RATE}{"%"} ), } ], }; }; componentDidMount() { this.loadData() }; showEditModal = (departmentId, departmentName) => { const newtmpData = { data: { id: departmentId, name: departmentName, onCancel: this.handleCancel, tableKey: this.state.tableKey, homeReload: true }, formCode: "BI007_RUNANALYSIS", } this.setState({ id: departmentId, name: departmentName, noticeTitle: departmentName+"安全生产标准化运行情况", tmpData: newtmpData, currActivatedMenu: '' }, () => this.setState({ visible: true })); } showFormModal=(mouldName)=>{ const newtmpData = { data: { name: mouldName, onCancel: this.handleCancel, tableKey: this.state.tableKey, homeReload: true }, formCode: "BI008_RUNANALYSIS", } this.setState({ name: mouldName, noticeTitle: mouldName+"安全生产标准化运行情况", tmpData: newtmpData, currActivatedMenu: '' }, () => this.setState({ visible: true })); } // showEditModal = (dataId, formCode, TaskID, title, taskCode) => { // const newtmpData = { // data: { // id: dataId, TaskID: TaskID, onCancel: this.handleCancel, taskCode: taskCode, tableKey: this.state.tableKey, // homeReload: true // }, // formCode: formCode, // } // this.setState({ // noticeTitle: title, // taskCode: taskCode, // tmpData: newtmpData, // currActivatedMenu: '' // }, () => this.setState({ // visible: true // })); // } //加载数据赋值 loadData = () => { // this.ksRun(); this.getMould(this.props.login.user.NAME); // this.getDepartment(); } //矿山 ksRun = (data) => { // let data = { // "IsSuccessful": true, "Data": [{ "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-08-01 00:00:00", "MONTHStr": "2023年1月", "C_COUNT": 90, "D_COUNT":80}, // {"DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-09-01 00:00:00", "MONTHStr": "2023年2月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-10-01 00:00:00", "MONTHStr": "2023年3月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-11-01 00:00:00", "MONTHStr": "2023年4月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-12-01 00:00:00", "MONTHStr": "2023年5月", "C_COUNT": 70, "D_COUNT": 60}, // {"DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-09-01 00:00:00", "MONTHStr": "2023年6月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-10-01 00:00:00", "MONTHStr": "2023年7月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-11-01 00:00:00", "MONTHStr": "2023年8月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-12-01 00:00:00", "MONTHStr": "2023年9月","C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-11-01 00:00:00", "MONTHStr": "2023年10月", "C_COUNT": 70, "D_COUNT": 60}, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-12-01 00:00:00", "MONTHStr": "2023年11月", "C_COUNT": 70, "D_COUNT": 60 }, // { "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2022-01-01 00:00:00", "MONTHStr": "2023年12月", "C_COUNT": 70, "D_COUNT": 60 }], "TotalCount": 0, "ErrorMessage": null // } if (data) { let month = []; let company = []; let department = []; data.forEach(item => { month.push(item.MONTHStr); company.push(item.FINISH_RATE); department.push(item.NORMAL_FINISH_RATE); }) let myChart = echarts.init(document.getElementById('ksRun')); myChart.setOption({ title: { text: "任务及时完成率(近6个月)", left: 'center', top:'2%' }, tooltip: { trigger: 'axis', formatter: function (params) { let temp='' params.forEach(t=>{ temp=temp+t.marker + t.seriesName +":"+t.value+"%"+'
'; }) return temp; } }, legend: { // data: ['部门'], data: ['完成率', '及时完成率'], bottom: '5px' }, grid: { left: '3%', right: '4%', top: '12%', containLabel: true }, toolbox: { feature: { // saveAsImage: {} } }, xAxis: { type: 'category', boundaryGap: false, data: month, axisLine: { show: false, // lineStyle: { // color: 'rgba(192, 192, 102)' // } }, axisTick: { show: false }, axisLabel: { color: '#000', rotate: 40, formatter: function (value) { // 自定义文字超出部分 ... if (value.length > 10) { return `${value.slice(0, 10)}...`; } return value; } } }, yAxis: { axisLabel: { formatter: function (val) { return (val)+ '%'; } }, }, series: [ { name: '完成率', type: 'line', color: '#4b9bf3', data: company, smooth: true }, { name: '及时完成率', type: 'line', color: '#FCD149', data: department, smooth: true }, ] }) } } getMould=(inputText)=>{ this.setState({loading:true }) var orgId = this.props.login ? this.props.login.OrgId : ''; let json = initFilter(orgId,inputText,"","","",this.state.startTime,this.state.endTime); this.props.dispatch({ type: 'app/getDataByPost', payload: json, url: 'BI/BIStatiscialAnalysisController/GetPersonAnalyze', onComplete: (ret) => { if (ret) { this.setState({ retData:ret.groupData, totalCount:ret.TotalCount, finishCount:ret.doneCount, overtimeCount:ret.timeOverCount, unfinishCount:ret.unfinishCount, dovertimeCount:ret.timeOverWaitCount, loading:false }) this.ksRun(ret.groupDataLine); } else { this.setState({ retData:[], totalCount:0, finishCount:0, overtimeCount:0, unfinishCount:0, dovertimeCount:0, loading:false }) } } }) } closeModal = () => { // 退出弹窗 this.clearData(); } clearData = () => { let newtmpData = { ...this.state.tmpData } newtmpData["data"].id = ''; newtmpData["data"].homeReload = false; newtmpData.formCode = ''; this.setState({ visible: false, tmpData: newtmpData, }) } handleCancel = () => { // 退出弹窗 this.clearData(); } handleSearch = (evt) => { const { value } = evt.target this.setState({ inputText: value ? value : this.props.login.user.NAME }) } render() { const { startTime, endTime,finishCount,overtimeCount,totalCount,unfinishCount,inputText, weekColor,monthColor,threeMonthColor,sixMonthColor,yearColor,dovertimeCount } = this.state; let allFinishRate=(totalCount ===0||totalCount==undefined) ?0:((finishCount+overtimeCount)/totalCount * 100).toFixed(1); let finishRate=(totalCount ===0||totalCount==undefined)?0:(finishCount/totalCount * 100).toFixed(1); return
{/* className='route-home' ,boxShadow:'inset 0 0 10px #ccc' */}

任务完成情况统计分析(个人)

姓名:{inputText} 统计区间:{startTime} - {endTime}


{/*
*/} {/*

部门统计分析

*/} {/*

任务及时完成率(近12个月)

*/}


* 统计时间:{moment(new Date()).format("YYYY-MM-DD HH:mm:ss")}



} } export default connect(({ login, app,loading }) => ({ login, app ,loading}))(BI011FormRunAnalysis)