diff --git a/src/components/other/index.vue b/src/components/other/index.vue index 3a0d219..658613c 100644 --- a/src/components/other/index.vue +++ b/src/components/other/index.vue @@ -967,104 +967,14 @@ function fullscreenChart() { // 切换检测指标 function selectCharts(e) { prDev.value = e; - const id = props.modelValue; - // 不再需要 dataTypeId,一次查询返回所有数据 - if (!id) { - return; + + // 直接使用已有的图表数据重新绘制,避免重复请求和抖动 + if (chartsDatas.value && chartsDatas.value.length > 0) { + // 使用 updateCharts 而不是 drawCharts,避免重新创建图表实例 + setTimeout(() => { + drawCharts(2); + }, 50); } - getDeviceHistory(); - pondDeviceInfo({ id }).then((res: any) => { - if (res.code == 200) { - const oxyIds = []; - // setTimeout(() => { - // showTour.value = res.data.length == 0 ? true : false; - // steps.value = [ - // { - // content: "请添加设备", - // target: "addDevice", - // }, - // ]; - // }, 500); - res.data.listDetector.forEach((item: any) => { - oxyIds.push(item.id); - let num = 3; - const msg = item.warnCodeInfo?.warnDescription || ''; - const showPh = !alarmJudgeCode(item.warnCodeInfo?.warnCode, 1); - const showSa = !alarmJudgeCode(item.warnCodeInfo?.warnCode, 2); - if (msg) { - item.isPh = showPh; - item.isSa = showSa; - } else { - item.isPh = showPh == false ? false : item.valuePH ? item.valuePH : false; - item.isSa = - showSa == false ? false : item.valueSalinity ? item.valueSalinity : false; - } - if (item.isPh) { - num += 1; - } - if (item.isSa) { - num += 1; - } - item.num = num; - item.status = Number(item.deviceCount) == 0 ? 0 : msg ? 2 : 1; - // if(item.warnCodeInfo.warnCode==6){ - // item.status = 2 - // item.warnCodeInfo.warnDescription = "" - // } - - // 判断设备是否离线,异常、断电 0 6 11 - const code0 = alarmJudgeCode(item.warnCodeInfo?.warnCode, 0); - const code6 = alarmJudgeCode(item.warnCodeInfo?.warnCode, 6); - const code11 = alarmJudgeCode(item.warnCodeInfo?.warnCode, 15); - const code17 = alarmJudgeCode(item.warnCodeInfo?.warnCode, 17); - item.up = true; - if (code0 || code6 || code11 || code17) { - item.up = false; - } - }); - pondDeviceRes.value = res.data; - keepNightOpen.value = res.data.keepNightOpen === 1; // 将后端的 0/1 转换为布尔值 - doList.value = res.data.listDetector; - if (res.data.listDetector && res.data.listDetector.length > 0) { - firstDoId.value = res.data.listDetector[0].id - ? res.data.listDetector[0].id - : undefined; - doDev.value = doDev.value - ? doDev.value - : res.data.listDetector[0].id - ? res.data.listDetector[0].id - : undefined; - if (doDev.value) { - if (!oxyIds.includes(doDev.value)) { - doDev.value = res.data.listDetector[0].id - ? res.data.listDetector[0].id - : undefined; - oxyWarnLower.value = res.data.listDetector[0].oxyWarnLower - ? res.data.listDetector[0].oxyWarnLower - : undefined; - tempWarnUpper.value = res.data.listDetector[0].tempWarnUpper - ? res.data.listDetector[0].tempWarnUpper - : undefined; - tempWarnLower.value = res.data.listDetector[0].tempWarnLower - ? res.data.listDetector[0].tempWarnLower - : undefined; - } else { - res.data.listDetector.forEach((r) => { - if (r.id == doDev.value) { - oxyWarnLower.value = r.oxyWarnLower ? r.oxyWarnLower : undefined; - tempWarnUpper.value = r.tempWarnUpper ? r.tempWarnUpper : undefined; - tempWarnLower.value = r.tempWarnLower ? r.tempWarnLower : undefined; - } - }); - } - } - } - emit("getPondInfo", { res: res.data }); - setTimeout(() => { - drawCharts(2); - }, 200); - } - }); } // 参数设置 function setParams(id: number, name: string, type: number) {