diff --git a/src/views/iot/deviceParamAnalysis/index.vue b/src/views/iot/deviceParamAnalysis/index.vue index cccd34b3..0353ca11 100644 --- a/src/views/iot/deviceParamAnalysis/index.vue +++ b/src/views/iot/deviceParamAnalysis/index.vue @@ -59,7 +59,13 @@ />
- + +
@@ -120,6 +126,7 @@ const selectedModelId = ref(undefined) const selectedParam = ref(null) const chartLoading = ref(false) +const chartState = ref<'idle' | 'loading' | 'empty' | 'ready'>('idle') const chartXAxis = ref([]) const chartSeries = ref<{ name: string; data: Array }[]>([]) const chartRenderKey = ref(0) @@ -251,6 +258,7 @@ const loadTree = async () => { selectedParam.value = null selectedDeviceId.value = undefined selectedModelId.value = undefined + chartState.value = 'idle' chartXAxis.value = [] chartSeries.value = [] } @@ -300,6 +308,7 @@ const fetchChart = async () => { return date.includes(':') ? date : `${date} ${suffix}` } + chartState.value = 'loading' chartLoading.value = true resetChartData() try { @@ -313,6 +322,7 @@ const fetchChart = async () => { if (!rows.length) { chartXAxis.value = [] chartSeries.value = [] + chartState.value = 'empty' return } @@ -356,8 +366,11 @@ const fetchChart = async () => { const values = keys.map((k) => toNumber(firstRow[k])) chartSeries.value = [{ name: param?.label || '参数', data: values }] } + + chartState.value = chartXAxis.value.length && chartSeries.value.length ? 'ready' : 'empty' } catch { message.error('获取图表数据失败') + chartState.value = 'idle' } finally { chartLoading.value = false }