fix: 曲线图数据切换时抖动问题修复。

This commit is contained in:
tianyongbao
2026-01-19 21:56:19 +08:00
parent 718cbce591
commit 14b966187c

View File

@@ -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) {