const DataSummary = {
|
_selectFactorId: ['1', '2', '3'],
|
_factorDatas: undefined,
|
/**
|
* 输出一组数据的总结
|
* 包括均值和范围
|
* @param factorDatas @see FactorDatas
|
*/
|
summary(elementId, factorDatas) {
|
if (factorDatas) {
|
this._factorDatas = factorDatas;
|
}
|
|
const summarys = [];
|
for (const key in this._factorDatas.factor) {
|
const f = this._factorDatas.factor[key];
|
if (
|
this._selectFactorId.indexOf(f.factorId) == -1 ||
|
this.notRequiredFactor(f.factorName)
|
)
|
continue;
|
const datas = f.datas;
|
const { min, max, avg } = this._avgAndRange(datas);
|
// summarys.set(
|
// f.factorName,
|
// `${f.factorName}均值为 ${avg}μg/m<sup>3</sup>, 浓度范围为 ${min}-${max}μg/m<sup>3</sup>`
|
// );
|
const unit = Util.factorUnit['type0'][f.factorId];
|
summarys.push(
|
`${f.factorName}: 均值为 ${avg}${unit},范围为 ${min}-${max}${unit}`
|
);
|
}
|
let html = '';
|
summarys.forEach((s) => {
|
html += `<div>${s}</div>`;
|
});
|
$('#history_table_summary').html(html);
|
|
return summarys;
|
},
|
onChangeFactor(elementId, index, add) {
|
if (add) {
|
this._selectFactorId.push(index);
|
} else {
|
var i = this._selectFactorId.indexOf(index);
|
this._selectFactorId.splice(i, 1);
|
}
|
|
return this.summary(elementId);
|
},
|
|
/**
|
* 不需要显示的监测因子
|
* @param {*} factorName
|
* @returns
|
*/
|
notRequiredFactor(factorName) {
|
return factorName == 'LNG' || factorName == 'LAT';
|
},
|
|
_avgAndRange(datas) {
|
let min, max;
|
let total = 0;
|
let count = 0;
|
datas.forEach((d) => {
|
if (min == undefined || min > d.factorData) {
|
min = d.factorData;
|
}
|
if (max == undefined || max < d.factorData) {
|
max = d.factorData;
|
}
|
total += d.factorData;
|
count++;
|
});
|
let avg = 0;
|
if (count > 0) {
|
avg = Math.round((total / count) * 10) / 10;
|
}
|
return { min, max, avg };
|
},
|
};
|