import ChartModule from '@/components/ManagementPage/chartModule'; import { queryEnergyChartList, queryProcessSection, } from '@/services/OperationManagement'; import { useParams, useRequest } from '@umijs/max'; import { Button, DatePicker, Table } from 'antd'; import dayjs from 'dayjs'; import SubTitle from '../../components/SubTitle'; import styles from './CostAnalysis.less'; const { RangePicker } = DatePicker; const CostAnalysis = () => { const { projectId } = useParams(); const defaultTime = { s_time: dayjs().subtract(7, 'day').format('YYYY-MM-DD 00:00:00'), e_time: dayjs().format('YYYY-MM-DD 23:59:59'), }; const columns = [ { title: '时间', dataIndex: 'data_time', }, { title: '能耗(kWh)', dataIndex: 'electric', }, { title: '药耗(kg)', dataIndex: 'medicine', }, { title: '进水水量(t)', dataIndex: 'waterIn', }, { title: '出水水量(t)', dataIndex: 'waterOut', }, ]; const { data, loading, run } = useRequest( (date) => queryEnergyChartList({ project_id: Number(projectId), start_time: date.s_time, end_time: date.e_time, order: 1, }), { defaultParams: [{ ...defaultTime }], formatResult: (data) => { const tempData = data.data; const arr = Object.values(tempData).find((arr) => arr); return { chartData: { yName: ['药耗(kg)', '能耗(kWh)', '水量(t)'], xData: arr?.map((item) => item.data_time), dataList: [ { type: 0, name: '能耗', yIndex: 1, data: tempData.electric?.map((item) => item.value), }, { type: 0, name: '药耗', data: tempData.medicine?.map((item) => item.value), }, { type: 0, name: '进水水量', yIndex: 2, data: tempData.waterIn?.map((item) => item.value), }, { type: 2, name: '出水水量', yIndex: 2, data: tempData.waterOut?.map((item) => item.value), }, ], }, tableData: tempData?.electric?.map((item, idx) => { return { key: `analy_table_${idx}`, // value: item.value?.toFixed(2) | '-', data_time: item.data_time, electric: formatElcData(tempData?.electric, item?.data_time), medicine: tempData.medicine ?.find((cur) => cur.data_time === item.data_time) ?.value?.toFixed(2) || '-', waterIn: tempData.waterIn ?.find((cur) => cur.data_time === item.data_time) ?.value?.toFixed(2) || '-', waterOut: tempData.waterOut ?.find((cur) => cur.data_time === item.data_time) ?.value?.toFixed(2) || '-', }; }), }; }, }, ); const ProcessSectionRequest = useRequest(queryProcessSection, { manual: true, onSuccess: (data) => { if (data.length > 0) { let section; section = data[0]; setTitle(section.name); } }, }); const formatElcData = (data, data_time) => { const value = data?.find((cur) => cur.data_time == data_time)?.value; return value === 0 ? '-' : value.toFixed(2); }; const handleTimeRangeChange = (range) => { if (range?.length === 2) { run({ s_time: dayjs(range[0]).format('YYYY-MM-DD 00:00:00'), e_time: dayjs(range[1]).format('YYYY-MM-DD HH:mm:ss'), }); } else { run(defaultTime); } }; const handleTimeBTNClick = (unit) => { run({ s_time: dayjs().subtract(1, unit).format('YYYY-MM-DD 00:00:00'), e_time: dayjs().format('YYYY-MM-DD HH:mm:ss'), }); }; return (