// 核心库 import React from 'react' import { connect } from 'dva' // 组件库 import { Form, Row, Col, Radio, DatePicker, Select } from 'antd' import { Search, IFComponent, LayoutCard } from '@woowalker/feui' import CommonChart from '../../Chart/CommonChart' // 工具库 import { initFilter, addRuleAndGroups } from '../../../utils/common' import moment from 'moment' import { cloneDeep } from 'lodash' const { Option } = Select const { RangePicker } = DatePicker const { GradientCard } = LayoutCard class KrEnergyClassStatisticsPage extends React.Component { constructor(props) { super(props) this.state = { radio: [], select: '', data: [], dateType: 2, searchRules: { rules: [] }, dateVlaue: [moment().add(-15, 'day'), moment()], chartData: {}, statisticalDatas: [] } } handleSearch = (value) => { this.setState({ searchRules: value }, this.getData) } getData = () => { const { searchRules, select, dateType, dateVlaue } = this.state const value = cloneDeep(searchRules) value.rules.push({ field: "Parameter1", operator: 0, value: this.props.data.id, isCustom: true, isSysParam: false, }) value.rules.push({ field: 'Parameter2', operator: 0, value: dateType, isCustom: true, isSysParam: false, }) value.rules.push({ field: 'Parameter3', operator: 0, value: dateVlaue.map(item => item.format('YYYY-MM-DD')).join(','), isCustom: true, isSysParam: false, }) value.rules.push({ field: 'Parameter4', operator: 0, value: select, isCustom: true, isSysParam: false, }) const { login, dispatch } = this.props const json = initFilter(login.OrgId) addRuleAndGroups(json, value) dispatch({ type: 'app/getDataByPost', url: 'KR/Statistics/GetEnergyClassStatisticsData', payload: json }).then(res => { if (res && res.radio) { const { chartData } = res this.setState({ ...res, chartData: { xAxis: chartData.XAxis[0].Data, yAxis: chartData.YAxis, data: chartData.Data } }) } }) }; handleChartChange = (e) => { this.setState({ select: this.state.searchRules.rules[0].value == 0 && e.target.value == "compre" ? "" : e.target.value }, this.getData) } handlePanelChange = (dateVlaue) => { if (this.state.dateType == 0) { if (dateVlaue[1].year() < dateVlaue[0].year()) { dateVlaue[1] = dateVlaue[0] } } this.setState({ dateVlaue }) } handleChange = (dateType) => { let dateVlaue = [] switch (dateType) { case 0: dateVlaue.push(moment('2020-01-01', 'YYYY-MM-DD')) dateVlaue.push(moment().set('month', 0).set('date', 1)) break case 1: dateVlaue.push(moment().add(-6, 'month').set('date', 1)) dateVlaue.push(moment().set('date', 1)) break case 2: dateVlaue.push(moment().add(-15, 'day')) dateVlaue.push(moment()) break default: break } this.setState({ dateType, dateVlaue }) } render() { const { select, dateType, chartData, statisticalDatas } = this.state const { formId, formCode } = this.props let datePicker = '' switch (dateType) { case 0: datePicker = ( ) break case 1: datePicker = ( ) break case 2: datePicker = ( ) break default: break } return ( <> , {datePicker} ]} /> { this.state.searchRules.rules.map((item, index) => { if (index == 0 && item.value == 1) { return 综合 } return null }) } { this.state.radio.map((item, index) => { return {item.NAME} }) } { statisticalDatas.map((item, index) => { return ( {`${item.Value}${item.Unit ? ' ' + item.Unit : ''}`}
{item.Value2}
) }) }
) } } export default connect(({ login, app }) => ({ login, app }))(KrEnergyClassStatisticsPage)