Commit e6992e87d96e531b42d5656c1d2e4ea8b5b6b171
1 parent
819b08d0
fix: implement dynamic effect priority
Showing
1 changed file
with
65 additions
and
39 deletions
| ... | ... | @@ -5579,7 +5579,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5579 | 5579 | const { dataSources = [] } = currentNodeData |
| 5580 | 5580 | const { additional = {} } = dataSources[0] || {} |
| 5581 | 5581 | const { [enumBindKey.EFFECT_SCOPE]: effectScope = 1000 } = additional |
| 5582 | - console.log(additional) | |
| 5583 | 5582 | linkageIntervalSelect(effectScope) |
| 5584 | 5583 | form.val(CONTAINER_FILTER, additional) |
| 5585 | 5584 | } |
| ... | ... | @@ -7267,7 +7266,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7267 | 7266 | } |
| 7268 | 7267 | |
| 7269 | 7268 | function getValue() { |
| 7270 | - console.log(form.val(componentFilter)) | |
| 7271 | 7269 | return form.val(componentFilter) |
| 7272 | 7270 | } |
| 7273 | 7271 | |
| ... | ... | @@ -12626,7 +12624,7 @@ class HandleDataSource { |
| 12626 | 12624 | const seriesValue = [] |
| 12627 | 12625 | const chartOption = { |
| 12628 | 12626 | title: { |
| 12629 | - subtext: realDataList.length ? '' :'暂无数据', | |
| 12627 | + subtext: realDataList.length ? '' : '暂无数据', | |
| 12630 | 12628 | x: 'center', |
| 12631 | 12629 | y: 'center', |
| 12632 | 12630 | itemGap: -20, |
| ... | ... | @@ -12672,11 +12670,9 @@ class HandleDataSource { |
| 12672 | 12670 | ], |
| 12673 | 12671 | dataZoom: [ |
| 12674 | 12672 | { |
| 12675 | - xAxisIndex: 0, | |
| 12676 | 12673 | show: true, |
| 12677 | 12674 | type: 'slider', |
| 12678 | - startValue: 0, | |
| 12679 | - endValue: showNumberOf | |
| 12675 | + // endValue: showNumberOf | |
| 12680 | 12676 | } |
| 12681 | 12677 | ] |
| 12682 | 12678 | } |
| ... | ... | @@ -12730,17 +12726,21 @@ class HandleDataSource { |
| 12730 | 12726 | ], |
| 12731 | 12727 | dataZoom: [ |
| 12732 | 12728 | { |
| 12733 | - startValue: seriesValue.length - 1 > showNumberOf | |
| 12734 | - ? oldStartValue === seriesValue.length - 1 | |
| 12735 | - ? 0 | |
| 12736 | - : oldStartValue + 1 | |
| 12737 | - : 0, | |
| 12738 | - endValue: seriesValue.length - 1 > showNumberOf | |
| 12739 | - ? oldEndValue === seriesValue.length - 1 | |
| 12740 | - ? showNumberOf | |
| 12741 | - : oldEndValue + 1 | |
| 12742 | - : showNumberOf | |
| 12729 | + show: true, | |
| 12730 | + type: 'slider', | |
| 12743 | 12731 | } |
| 12732 | + // { | |
| 12733 | + // startValue: seriesValue.length - 1 > showNumberOf | |
| 12734 | + // ? oldStartValue === seriesValue.length - 1 | |
| 12735 | + // ? 0 | |
| 12736 | + // : oldStartValue + 1 | |
| 12737 | + // : 0, | |
| 12738 | + // endValue: seriesValue.length - 1 > showNumberOf | |
| 12739 | + // ? oldEndValue === seriesValue.length - 1 | |
| 12740 | + // ? showNumberOf | |
| 12741 | + // : oldEndValue + 1 | |
| 12742 | + // : showNumberOf | |
| 12743 | + // } | |
| 12744 | 12744 | ] |
| 12745 | 12745 | }) |
| 12746 | 12746 | } |
| ... | ... | @@ -12768,7 +12768,7 @@ class HandleDataSource { |
| 12768 | 12768 | const seriesValue = [] |
| 12769 | 12769 | const chartOption = { |
| 12770 | 12770 | title: { |
| 12771 | - subtext: historyDataList.length ? '' :'暂无数据', | |
| 12771 | + subtext: historyDataList.length ? '' : '暂无数据', | |
| 12772 | 12772 | x: 'center', |
| 12773 | 12773 | y: 'center', |
| 12774 | 12774 | itemGap: -20, |
| ... | ... | @@ -12815,11 +12815,11 @@ class HandleDataSource { |
| 12815 | 12815 | ], |
| 12816 | 12816 | dataZoom: [ |
| 12817 | 12817 | { |
| 12818 | - xAxisIndex: 0, | |
| 12819 | - show: false, | |
| 12818 | + // xAxisIndex: 0, | |
| 12819 | + show: true, | |
| 12820 | 12820 | type: 'slider', |
| 12821 | - startValue: 0, | |
| 12822 | - endValue: showNumberOf | |
| 12821 | + // startValue: 0, | |
| 12822 | + // endValue: showNumberOf | |
| 12823 | 12823 | } |
| 12824 | 12824 | ] |
| 12825 | 12825 | } |
| ... | ... | @@ -12860,9 +12860,9 @@ class HandleDataSource { |
| 12860 | 12860 | } |
| 12861 | 12861 | |
| 12862 | 12862 | instance.setOption(chartOption) |
| 12863 | - instance.on('mouseover', stop) | |
| 12864 | - instance.on('mouseout', goMove) | |
| 12865 | - autoMove() | |
| 12863 | + // instance.on('mouseover', stop) | |
| 12864 | + // instance.on('mouseout', goMove) | |
| 12865 | + // autoMove() | |
| 12866 | 12866 | } |
| 12867 | 12867 | |
| 12868 | 12868 | /** |
| ... | ... | @@ -13141,7 +13141,7 @@ class HandleDynamicEffect { |
| 13141 | 13141 | |
| 13142 | 13142 | /** |
| 13143 | 13143 | * @description 动效节点映射 |
| 13144 | - * @type {Map<string, Map<string, any>>} | |
| 13144 | + * @type {Map<string, {display: boolean, value: Map<string, any>}>} | |
| 13145 | 13145 | */ |
| 13146 | 13146 | actNodeMapping = new Map() |
| 13147 | 13147 | |
| ... | ... | @@ -13223,9 +13223,9 @@ class HandleDynamicEffect { |
| 13223 | 13223 | this.enableActList.forEach(each => { |
| 13224 | 13224 | const { id, type, attr, deviceId, slaveDeviceId } = each |
| 13225 | 13225 | |
| 13226 | - if (!this.actNodeMapping.has(id)) this.actNodeMapping.set(id, new Map()) | |
| 13226 | + if (!this.actNodeMapping.has(id)) this.actNodeMapping.set(id, { display: true, value: new Map() }) | |
| 13227 | 13227 | const temp = this.actNodeMapping.get(id) |
| 13228 | - temp.set(type, each) | |
| 13228 | + temp.value.set(type, each) | |
| 13229 | 13229 | |
| 13230 | 13230 | const cmdId = this.DispatchInstance.getCmdId(id) |
| 13231 | 13231 | |
| ... | ... | @@ -13303,6 +13303,11 @@ class HandleDynamicEffect { |
| 13303 | 13303 | rotate(message) { |
| 13304 | 13304 | const { subscriptionId, data } = message |
| 13305 | 13305 | const node = this.getNodeByCmdId(subscriptionId) |
| 13306 | + const key = node.id + DispatchCenter.enumDynamicEffectType.ROTATE | |
| 13307 | + if (!this.validatePriority(node.id)) { | |
| 13308 | + this.delUpdateFn(key) | |
| 13309 | + return | |
| 13310 | + } | |
| 13306 | 13311 | const { flag } = this.validate(subscriptionId, DispatchCenter.enumDynamicEffectType.ROTATE, data) |
| 13307 | 13312 | let deg = 0 |
| 13308 | 13313 | const updateFn = () => { |
| ... | ... | @@ -13311,16 +13316,14 @@ class HandleDynamicEffect { |
| 13311 | 13316 | let style = node.getStyle() |
| 13312 | 13317 | const reg = /rotation=(-?)\w+(;?)/g |
| 13313 | 13318 | style = style.replace(reg, '') |
| 13314 | - style += `rotation=${deg}` | |
| 13319 | + style += `rotation=${deg};` | |
| 13315 | 13320 | node.setStyle(style) |
| 13316 | 13321 | this.graph.updateCellStyles(style, node) |
| 13317 | 13322 | } |
| 13318 | - const key = node.id + DispatchCenter.enumDynamicEffectType.ROTATE | |
| 13319 | 13323 | if (!flag) { |
| 13320 | 13324 | this.delUpdateFn(key) |
| 13321 | 13325 | return |
| 13322 | 13326 | } |
| 13323 | - console.log(this.actNodeMapping) | |
| 13324 | 13327 | this.insertContinueUpdateFn(node, updateFn, key) |
| 13325 | 13328 | } |
| 13326 | 13329 | |
| ... | ... | @@ -13335,19 +13338,29 @@ class HandleDynamicEffect { |
| 13335 | 13338 | if (!flag) return |
| 13336 | 13339 | const node = this.getNodeByCmdId(subscriptionId) |
| 13337 | 13340 | let isShow = false |
| 13338 | - if (node.visible && condition.type === HandleDynamicEffect.enumDisplayType.SHOW) { | |
| 13339 | - return | |
| 13340 | - } else if (condition.type === HandleDynamicEffect.enumDisplayType.SHOW) { | |
| 13341 | + if (condition.type === HandleDynamicEffect.enumDisplayType.SHOW) { | |
| 13341 | 13342 | isShow = true |
| 13342 | 13343 | } else if (condition.type === HandleDynamicEffect.enumDisplayType.HIDDEN) { |
| 13343 | 13344 | isShow = false |
| 13344 | 13345 | } |
| 13345 | 13346 | const updateFn = () => { |
| 13347 | + // let style = node.getStyle() | |
| 13348 | + // const reg = /opacity=(-?)\w+(;?)/g | |
| 13349 | + // style = style.replace(reg, '') | |
| 13350 | + // style += `opacity=${isShow ? 100 : 0};` | |
| 13351 | + // console.log(style) | |
| 13352 | + // node.setStyle(style) | |
| 13353 | + | |
| 13354 | + if (!isShow) { | |
| 13355 | + Object.keys(HandleDynamicEffect.enumActType).forEach(key => { | |
| 13356 | + const delKey = node.id + key | |
| 13357 | + this.delUpdateFn(delKey) | |
| 13358 | + }) | |
| 13359 | + const temp = this.actNodeMapping.get(node.id) | |
| 13360 | + temp.display = false | |
| 13361 | + } | |
| 13362 | + | |
| 13346 | 13363 | node.setVisible(isShow) |
| 13347 | - node.setAttribute('display', isShow) | |
| 13348 | - console.log('isShow', isShow) | |
| 13349 | - console.log(node.style) | |
| 13350 | - console.log(node) | |
| 13351 | 13364 | } |
| 13352 | 13365 | this.insertOnceUpdateFn(node, updateFn) |
| 13353 | 13366 | } |
| ... | ... | @@ -13360,13 +13373,17 @@ class HandleDynamicEffect { |
| 13360 | 13373 | flash(message) { |
| 13361 | 13374 | const { subscriptionId, data } = message |
| 13362 | 13375 | const node = this.getNodeByCmdId(subscriptionId) |
| 13376 | + const key = node.id + DispatchCenter.enumDynamicEffectType.FLASH | |
| 13377 | + if (!this.validatePriority(node.id)) { | |
| 13378 | + this.delUpdateFn(key) | |
| 13379 | + return | |
| 13380 | + } | |
| 13363 | 13381 | const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.FLASH, data) |
| 13364 | 13382 | let flashFlag = false |
| 13365 | 13383 | const updateFn = () => { |
| 13366 | 13384 | node.setVisible(flashFlag) |
| 13367 | 13385 | flashFlag = !flashFlag |
| 13368 | 13386 | } |
| 13369 | - const key = node.id + DispatchCenter.enumDynamicEffectType.FLASH | |
| 13370 | 13387 | if (!flag) { |
| 13371 | 13388 | flashFlag = true |
| 13372 | 13389 | this.insertOnceUpdateFn(node, updateFn) |
| ... | ... | @@ -13435,7 +13452,7 @@ class HandleDynamicEffect { |
| 13435 | 13452 | getBindData(subscriptionId, actionType) { |
| 13436 | 13453 | const nodeId = this.getNodeIdByCmdId(subscriptionId) |
| 13437 | 13454 | const temp = this.actNodeMapping.get(nodeId) |
| 13438 | - return temp.get(actionType) | |
| 13455 | + return temp.value.get(actionType) | |
| 13439 | 13456 | } |
| 13440 | 13457 | |
| 13441 | 13458 | /** |
| ... | ... | @@ -13457,6 +13474,15 @@ class HandleDynamicEffect { |
| 13457 | 13474 | return this.DispatchInstance.contentAllCell.find(item => item.id === nodeId) |
| 13458 | 13475 | } |
| 13459 | 13476 | |
| 13477 | + /** | |
| 13478 | + * @description 验证优先级 | |
| 13479 | + * @param {string} nodeId | |
| 13480 | + * @returns | |
| 13481 | + */ | |
| 13482 | + validatePriority(nodeId) { | |
| 13483 | + return this.actNodeMapping.get(nodeId).display | |
| 13484 | + } | |
| 13485 | + | |
| 13460 | 13486 | } |
| 13461 | 13487 | |
| 13462 | 13488 | class UpdateQueue { | ... | ... |