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
}