Added a total cost ratio chart

pull/52/head
tianlinzhong 2021-07-26 20:45:50 +08:00
parent 2cd13bc7d5
commit c6eef934dd
1 changed files with 35 additions and 0 deletions

View File

@ -84,6 +84,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
const [spaceLineChartData, setSpaceLineChartData] = useState({}); const [spaceLineChartData, setSpaceLineChartData] = useState({});
const [spaceLineChartOptions, setSpaceLineChartOptions] = useState([]); const [spaceLineChartOptions, setSpaceLineChartOptions] = useState([]);
const [childSpaceProportionList, setChildSpaceProportionList] = useState([]); const [childSpaceProportionList, setChildSpaceProportionList] = useState([]);
const [childSpacesProportionList, setChildSpacesProportionList] = useState([]);
const [parameterLineChartLabels, setParameterLineChartLabels] = useState([]); const [parameterLineChartLabels, setParameterLineChartLabels] = useState([]);
const [parameterLineChartData, setParameterLineChartData] = useState({}); const [parameterLineChartData, setParameterLineChartData] = useState({});
@ -341,6 +342,29 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
}); });
setChildSpaceProportionList(childSpaceProportionArray); setChildSpaceProportionList(childSpaceProportionArray);
let childSpacesProportionArray = [];
if (json['child_space']['child_space_names_array'].length > 0) {
let childSpacesProportionItem = {}
childSpacesProportionItem['data'] = []
json['child_space']['child_space_names_array'][0].forEach((currentSpaceName, spaceIndex) => {
let total = 0.0;
json['child_space']['energy_category_names'].forEach((currentValue, energyCategoryIndex) => {
total += json['child_space']['subtotals_array'][energyCategoryIndex][spaceIndex]
// total = total.toFixed()
});
let childSpacesProportionItemDataItem = {};
childSpacesProportionItemDataItem['id'] = spaceIndex;
childSpacesProportionItemDataItem['name'] = currentSpaceName;
childSpacesProportionItemDataItem['value'] = total;
childSpacesProportionItemDataItem['color'] = "#"+((1<<24)*Math.random()|0).toString(16);
childSpacesProportionItem['data'].push(childSpacesProportionItemDataItem);
});
childSpacesProportionItem['name'] = "";
childSpacesProportionItem['unit'] = "";
childSpacesProportionArray.push(childSpacesProportionItem);
};
setChildSpacesProportionList(childSpacesProportionArray);
let timestamps = {} let timestamps = {}
json['reporting_period']['timestamps'].forEach((currentValue, index) => { json['reporting_period']['timestamps'].forEach((currentValue, index) => {
timestamps['a' + index] = currentValue; timestamps['a' + index] = currentValue;
@ -670,6 +694,17 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
/> />
</Col> </Col>
))} ))}
{childSpacesProportionList.map(childSpacesProportionItem => (
<Col className="mb-3 pr-lg-2 mb-3">
<SharePie
data={childSpacesProportionItem['data']}
title={t('总成本占比',
{'CATEGORY': childSpacesProportionItem['name'],
'UNIT': childSpacesProportionItem['unit']
})}
/>
</Col>
))}
</Row> </Row>
<LineChart reportingTitle={t('Reporting Period Costs CATEGORY VALUE UNIT', { 'CATEGORY': null, 'VALUE': null, 'UNIT': null })} <LineChart reportingTitle={t('Reporting Period Costs CATEGORY VALUE UNIT', { 'CATEGORY': null, 'VALUE': null, 'UNIT': null })}
baseTitle='' baseTitle=''