diff --git a/src/views/DashEntry/DashEntry.vue b/src/views/DashEntry/DashEntry.vue index f6922b06..3a187081 100644 --- a/src/views/DashEntry/DashEntry.vue +++ b/src/views/DashEntry/DashEntry.vue @@ -281,7 +281,32 @@ const riskTrendOptions = computed(() => { // 计算最大值用于设置Y轴范围 const allValues = [...highRiskData, ...warningData, ...normalData] const maxValue = Math.max(...allValues, 10) - const yAxisMax = Math.ceil(maxValue / 50) * 50 + 50 + + // 动态计算Y轴最大值,根据数据范围自动向上取整到合适的量级 + let yAxisMax: number + if (maxValue === 0) { + yAxisMax = 10 + } else if (maxValue <= 10) { + yAxisMax = Math.ceil(maxValue) + } else if (maxValue <= 50) { + // 对于10-50的数据,向上取整到10的倍数 + yAxisMax = Math.ceil(maxValue / 10) * 10 + } else if (maxValue <= 100) { + // 对于50-100的数据,向上取整到10的倍数 + yAxisMax = Math.ceil(maxValue / 10) * 10 + } else if (maxValue <= 500) { + // 对于100-500的数据,向上取整到50的倍数 + yAxisMax = Math.ceil(maxValue / 50) * 50 + } else if (maxValue <= 1000) { + // 对于500-1000的数据,向上取整到100的倍数 + yAxisMax = Math.ceil(maxValue / 100) * 100 + } else { + // 对于大于1000的数据,向上取整到500的倍数 + yAxisMax = Math.ceil(maxValue / 500) * 500 + } + + // 计算合适的刻度间隔,确保显示6-8个刻度 + const interval = Math.max(Math.ceil(yAxisMax / 6), 1) return { tooltip: { @@ -306,7 +331,7 @@ const riskTrendOptions = computed(() => { type: 'value', min: 0, max: yAxisMax, - interval: Math.ceil(yAxisMax / 6) + interval: interval }, series: [ {