added associated equipment data to CombinedEquipmentLoad in Web UI

pull/25/head
13621160019@163.com 2021-03-28 11:03:43 +08:00
parent cb856387b3
commit 776340e624
1 changed files with 47 additions and 1 deletions

View File

@ -33,6 +33,7 @@ import { comparisonTypeOptions } from '../common/ComparisonTypeOptions';
const DetailedDataTable = loadable(() => import('../common/DetailedDataTable'));
const AssociatedEquipmentTable = loadable(() => import('../common/AssociatedEquipmentTable'));
const CombinedEquipmentLoad = ({ setRedirect, setRedirectUrl, t }) => {
let current_moment = moment();
@ -87,6 +88,10 @@ const CombinedEquipmentLoad = ({ setRedirect, setRedirectUrl, t }) => {
const [detailedDataTableData, setDetailedDataTableData] = useState([]);
const [detailedDataTableColumns, setDetailedDataTableColumns] = useState([{dataField: 'startdatetime', text: t('Datetime'), sort: true}]);
const [associatedEquipmentTableData, setAssociatedEquipmentTableData] = useState([]);
const [associatedEquipmentTableColumns, setAssociatedEquipmentTableColumns] = useState([{dataField: 'name', text: t('Associated Equipment'), sort: true }]);
const [excelBytesBase64, setExcelBytesBase64] = useState(undefined);
useEffect(() => {
@ -291,6 +296,7 @@ const CombinedEquipmentLoad = ({ setRedirect, setRedirectUrl, t }) => {
// Reinitialize tables
setDetailedDataTableData([]);
setAssociatedEquipmentTableData([]);
let isResponseOK = false;
fetch(APIBaseURL + '/reports/combinedequipmentload?' +
@ -418,6 +424,43 @@ const CombinedEquipmentLoad = ({ setRedirect, setRedirectUrl, t }) => {
});
});
setDetailedDataTableColumns(detailed_column_list);
let associated_equipment_value_list = [];
if (json['associated_equipment']['associated_equipment_names_array'].length > 0) {
json['associated_equipment']['associated_equipment_names_array'][0].forEach((currentEquipmentName, equipmentIndex) => {
let associated_equipment_value = {};
associated_equipment_value['id'] = equipmentIndex;
associated_equipment_value['name'] = currentEquipmentName;
json['associated_equipment']['energy_category_names'].forEach((currentValue, energyCategoryIndex) => {
associated_equipment_value['a' + 2 * energyCategoryIndex] = json['associated_equipment']['sub_averages'][energyCategoryIndex][equipmentIndex].toFixed(2);
associated_equipment_value['a' + 2 * energyCategoryIndex + 1] = json['associated_equipment']['sub_maximums'][energyCategoryIndex][equipmentIndex].toFixed(2);
});
associated_equipment_value_list.push(associated_equipment_value);
});
};
setAssociatedEquipmentTableData(associated_equipment_value_list);
let associated_equipment_column_list = [];
associated_equipment_column_list.push({
dataField: 'name',
text: t('Associated Equipment'),
sort: true
});
json['associated_equipment']['energy_category_names'].forEach((currentValue, index) => {
let unit = json['associated_equipment']['units'][index];
associated_equipment_column_list.push({
dataField: 'a' + 2 * index,
text: currentValue + ' ' + t('Average Load') + ' (' + unit + '/H)',
sort: true
});
associated_equipment_column_list.push({
dataField: 'a' + (2 * index + 1),
text: currentValue + ' ' + t('Maximum Load') + ' (' + unit + '/H)',
sort: true
});
});
setAssociatedEquipmentTableColumns(associated_equipment_column_list);
setExcelBytesBase64(json['excel_bytes_base64']);
@ -642,6 +685,9 @@ const CombinedEquipmentLoad = ({ setRedirect, setRedirectUrl, t }) => {
<br />
<DetailedDataTable data={detailedDataTableData} title={t('Detailed Data')} columns={detailedDataTableColumns} pagesize={50} >
</DetailedDataTable>
<br />
<AssociatedEquipmentTable data={associatedEquipmentTableData} title={t('Associated Equipment Data')} columns={associatedEquipmentTableColumns}>
</AssociatedEquipmentTable>
</Fragment>
);