feat: 个人最佳趋势改为折线图 + 底部最佳趋势日期 + 修复

- 趋势组件 trend-chart 新增 chartType(line/bar),line 模式用内联 SVG 渲染折线+渐变面积(无 canvas)
- 记录页个人最佳趋势改用折线图,峰值信息移到图表下方对称高亮块显示最佳趋势产生日期
- 修复1: linePoints 漏存绝对坐标 y 导致运行时 toFixed 崩溃
- 修复2: 折线模式漏渲染数据点数值(valueText),现圆点上方显示且 0 值不显示
This commit is contained in:
2026-08-04 15:46:18 +08:00
parent 187c426243
commit ca1793b4c0
8 changed files with 222 additions and 31 deletions
+77
View File
@@ -92,3 +92,80 @@
color: var(--primary);
font-weight: 600;
}
/* ---- Line mode ---- */
.trend-chart.line {
/* extra top room so the value caption above the highest dot isn't clipped */
padding-top: 30rpx;
}
.trend-line {
position: relative;
width: 100%;
}
.trend-line-img {
display: block;
width: 100%;
}
.trend-line-dot {
position: absolute;
width: 16rpx;
height: 16rpx;
margin-left: -8rpx;
margin-top: -8rpx;
border-radius: 50%;
background: var(--primary);
border: 3rpx solid var(--card-bg, #FFFFFF);
box-sizing: border-box;
}
.trend-chart.peak .trend-line-dot {
background: var(--primary);
}
.trend-line-dot.highlight {
width: 20rpx;
height: 20rpx;
margin-left: -10rpx;
margin-top: -10rpx;
box-shadow: 0 0 14rpx rgba(var(--primary-rgb), 0.6);
}
/* value caption floats above the dot so it never eats into the line */
.trend-line-value {
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
margin-bottom: 6rpx;
font-size: 16rpx;
color: var(--text-secondary);
line-height: 1;
white-space: nowrap;
}
.trend-line-dot.highlight .trend-line-value {
color: var(--primary);
font-weight: 600;
}
.trend-line-labels {
position: relative;
height: 28rpx;
margin-top: 10rpx;
}
.trend-line-label {
position: absolute;
transform: translateX(-50%);
font-size: 20rpx;
color: var(--text-secondary);
white-space: nowrap;
}
.trend-line-label.highlight {
color: var(--primary);
font-weight: 600;
}