物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

95 lines
3.2 KiB

var animationHandler = (lfInstance, nodeId) => {
const nodeData = lfInstance.getNodeDataById(nodeId)
if (!nodeData) {
return;
}
const { dynamic } = nodeData.properties
if (dynamic) {
const { animationData } = dynamic
const { animationCombo } = animationData || {}
if (animationCombo) {
animationCombo.forEach((anim) => {
if (anim.dataPoint && anim.animationName === '旋转') {
const defaultValue = window.resolveScadaNewValue(anim.defaultValue || '[]')
// 必须是最新值
if (defaultValue === '') {
lfInstance.setProperties(nodeData.id, {
rotateAnimation: false,
animationTime: anim.animationTime,
})
return
}
if (anim.min === '' || anim.max === '') {
lfInstance.setProperties(nodeData.id, {
rotateAnimation: false,
animationTime: anim.animationTime,
})
return
}
if (Number(defaultValue) >= Number(anim.min) && defaultValue <= Number(anim.max)) {
// 数据点在一定范围内旋转
lfInstance.setProperties(nodeData.id, {
rotateAnimation: true,
animationTime: anim.animationTime,
})
}
else {
lfInstance.setProperties(nodeData.id, {
rotateAnimation: false,
animationTime: anim.animationTime,
})
}
} else if (anim.dataPoint && anim.animationName === '闪烁') {
const defaultValue = (window).resolveScadaNewValue(anim.defaultValue || '[]')
// 必须是最新值
if (defaultValue === '') {
lfInstance.setProperties(nodeData.id, {
blinkAnimation: false,
})
return
}
if (anim.min === '' || anim.max === '') {
lfInstance.setProperties(nodeData.id, {
blinkAnimation: false,
})
return
}
if (Number(defaultValue) >= Number(anim.min) && defaultValue <= Number(anim.max)) {
// 数据点在一定范围内闪烁
lfInstance.setProperties(nodeData.id, {
blinkAnimation: true,
})
}
else {
lfInstance.setProperties(nodeData.id, {
blinkAnimation: false,
})
}
} else if (!anim.dataPoint && anim.animationName === '旋转') {
// 清除动画绑定
lfInstance.setProperties(nodeData.id, {
rotateAnimation: false,
})
}
else if (!anim.dataPoint && anim.animationName === '闪烁') {
// 清除动画绑定
lfInstance.setProperties(nodeData.id, {
blinkAnimation: false,
})
}
})
const hasRotate = animationCombo.find((anim) => anim.animationName === '旋转')
const hasBlink = animationCombo.find((anim) => anim.animationName === '闪烁')
if (!hasRotate) {
lfInstance.setProperties(nodeData.id, {
rotateAnimation: false,
})
}
if (!hasBlink) {
lfInstance.setProperties(nodeData.id, {
blinkAnimation: false,
})
}
}
}
}