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
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,
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|