fix: 近30日趋势显示30天数据点而非4周

- 新增getXLabels30()函数,生成近30天的日期标签
- AQI柱状图近30日改为30根柱子对应30天(替代原来的4周标签)
- 普通指标折线图近30日显示30个数据点+30天日期标签
This commit is contained in:
liuyunqin
2026-06-04 14:48:23 +08:00
parent 701eb1562f
commit 0f6f38c4db
@@ -367,6 +367,14 @@ function getXLabels7() {
}
return labels;
}
function getXLabels30() {
var labels = [], now = new Date(2026, 5, 4);
for (var i = 29; i >= 0; i--) {
var d = new Date(now); d.setDate(d.getDate() - i);
labels.push((d.getMonth()+1) + '/' + d.getDate());
}
return labels;
}
/* X 坐标计算 */
function calcXPositions(count) {
@@ -460,14 +468,13 @@ function renderTrend(metricName, period) {
// AQI 非 24h → 柱状堆积图
if (cfg.isAQI && period !== '24h') {
var labels = period === '7d' ? getXLabels7() : Array.from({length:4}, function(_, i) { return '第' + (i+1) + '周'; });
var labels = period === '7d' ? getXLabels7() : getXLabels30();
return renderAQIBarChart(timeData, labels);
}
var points = timeData.points;
var n = points.length;
var labels = cfg.isAQI ? (period === '24h' ? xLabels24 : getXLabels7()) : (period === '24h' ? xLabels24 : getXLabels7());
if (period === '30d' && n === 30) labels = (function() { var l = [], now = new Date(2026,5,4); for (var i = 29; i >= 0; i--) { var d = new Date(now); d.setDate(d.getDate() - i); l.push((d.getMonth()+1) + '/' + d.getDate()); } return l; })();
var labels = period === '24h' ? xLabels24 : (period === '7d' ? getXLabels7() : getXLabels30());
var xPositions = calcXPositions(n);
var yMax = cfg.yMax;