rev 优化舞台监控

This commit is contained in:
USER-20220102CG\noblelift
2023-08-01 22:52:57 +08:00
parent 2938cb17a4
commit 5f9f4ba30c

View File

@@ -166,7 +166,7 @@ import deviceCrud from '@/api/acs/device/device'
import { getDeviceByCodes } from '@/api/acs/device/deviceStageMonitor'
import '@logicflow/core/dist/style/index.css'
import '@logicflow/extension/lib/style/index.css'
import {isEqual} from "lodash"
import { LogicFlow } from '@logicflow/core'
import { registerCustomElement } from '@/views/system/logicflow/editor/components/node'
@@ -789,35 +789,60 @@ export default {
let resion = {}
resion = lf.getGraphData().nodes.map(item => ({ id: item.id, device_code: item.properties.device }))
getDeviceByCodes(resion).then(res => {
console.log(res)
let startTime=new Date().getTime();
let arr=[];
let obj={};
if(window.lastArr){
res.forEach(i=>{
obj[i.id]=i
})
window.lastArr.forEach(old=>{
let _new=obj[old.id];
if(!isEqual(old,_new)){
arr.push(_new)
}
})
}
this.allDeviceMsg = res // 拿到所有节点的设备数据
// console.log('initStatus-res', res)
// 实时设置状态信息
for (var item of res) { // 循环并且设置属性值
for (var item of arr) { // 循环并且设置属性值
let temp={}
if (item.data !== undefined) {
if (item.data.isOnline !== undefined) {
lf.setProperties(item.id, {
isOnline: item.data.isOnline
})
temp.isOnline = item.data.isOnline
// lf.setProperties(item.id, {
// isOnline: item.data.isOnline
// })
}
if (item.data.hasGoods !== undefined) {
lf.setProperties(item.id, {
hasGoods: item.data.hasGoods
})
temp.hasGoods = item.data.hasGoods
// lf.setProperties(item.id, {
// hasGoods: item.data.hasGoods
// })
}
if (item.data.isError !== undefined) {
lf.setProperties(item.id, {
isError: item.data.isError
})
temp.isError = item.data.isError
// lf.setProperties(item.id, {
// isError: item.data.isError
// })
}
lf.setProperties(item.id , temp)
}
}
window.lastArr = res
// 设置动态实时显示设备信息
const { nodes } = lf.getSelectElements() // 获取选中的节点
// console.log(nodes)
if (nodes.length === 1) { // 因为是定时器,没有选中则不用实时更新显示数据
this.moveShow(nodes[0]) // 监控模式下不可能托选,因此就只有一个数据
}
let endTime=new Date().getTime();
console.log("time:",endTime - startTime)
})
},
dialogSave() {