Commit e6992e87d96e531b42d5656c1d2e4ea8b5b6b171

Authored by ww
1 parent 819b08d0

fix: implement dynamic effect priority

@@ -5579,7 +5579,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -5579,7 +5579,6 @@ DataFormatPanel.prototype.addDataFont = function (container) {
5579 const { dataSources = [] } = currentNodeData 5579 const { dataSources = [] } = currentNodeData
5580 const { additional = {} } = dataSources[0] || {} 5580 const { additional = {} } = dataSources[0] || {}
5581 const { [enumBindKey.EFFECT_SCOPE]: effectScope = 1000 } = additional 5581 const { [enumBindKey.EFFECT_SCOPE]: effectScope = 1000 } = additional
5582 - console.log(additional)  
5583 linkageIntervalSelect(effectScope) 5582 linkageIntervalSelect(effectScope)
5584 form.val(CONTAINER_FILTER, additional) 5583 form.val(CONTAINER_FILTER, additional)
5585 } 5584 }
@@ -7267,7 +7266,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { @@ -7267,7 +7266,6 @@ DataFormatPanel.prototype.addDataFont = function (container) {
7267 } 7266 }
7268 7267
7269 function getValue() { 7268 function getValue() {
7270 - console.log(form.val(componentFilter))  
7271 return form.val(componentFilter) 7269 return form.val(componentFilter)
7272 } 7270 }
7273 7271
@@ -12626,7 +12624,7 @@ class HandleDataSource { @@ -12626,7 +12624,7 @@ class HandleDataSource {
12626 const seriesValue = [] 12624 const seriesValue = []
12627 const chartOption = { 12625 const chartOption = {
12628 title: { 12626 title: {
12629 - subtext: realDataList.length ? '' :'暂无数据', 12627 + subtext: realDataList.length ? '' : '暂无数据',
12630 x: 'center', 12628 x: 'center',
12631 y: 'center', 12629 y: 'center',
12632 itemGap: -20, 12630 itemGap: -20,
@@ -12672,11 +12670,9 @@ class HandleDataSource { @@ -12672,11 +12670,9 @@ class HandleDataSource {
12672 ], 12670 ],
12673 dataZoom: [ 12671 dataZoom: [
12674 { 12672 {
12675 - xAxisIndex: 0,  
12676 show: true, 12673 show: true,
12677 type: 'slider', 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,17 +12726,21 @@ class HandleDataSource {
12730 ], 12726 ],
12731 dataZoom: [ 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,7 +12768,7 @@ class HandleDataSource {
12768 const seriesValue = [] 12768 const seriesValue = []
12769 const chartOption = { 12769 const chartOption = {
12770 title: { 12770 title: {
12771 - subtext: historyDataList.length ? '' :'暂无数据', 12771 + subtext: historyDataList.length ? '' : '暂无数据',
12772 x: 'center', 12772 x: 'center',
12773 y: 'center', 12773 y: 'center',
12774 itemGap: -20, 12774 itemGap: -20,
@@ -12815,11 +12815,11 @@ class HandleDataSource { @@ -12815,11 +12815,11 @@ class HandleDataSource {
12815 ], 12815 ],
12816 dataZoom: [ 12816 dataZoom: [
12817 { 12817 {
12818 - xAxisIndex: 0,  
12819 - show: false, 12818 + // xAxisIndex: 0,
  12819 + show: true,
12820 type: 'slider', 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,9 +12860,9 @@ class HandleDataSource {
12860 } 12860 }
12861 12861
12862 instance.setOption(chartOption) 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,7 +13141,7 @@ class HandleDynamicEffect {
13141 13141
13142 /** 13142 /**
13143 * @description 动效节点映射 13143 * @description 动效节点映射
13144 - * @type {Map<string, Map<string, any>>} 13144 + * @type {Map<string, {display: boolean, value: Map<string, any>}>}
13145 */ 13145 */
13146 actNodeMapping = new Map() 13146 actNodeMapping = new Map()
13147 13147
@@ -13223,9 +13223,9 @@ class HandleDynamicEffect { @@ -13223,9 +13223,9 @@ class HandleDynamicEffect {
13223 this.enableActList.forEach(each => { 13223 this.enableActList.forEach(each => {
13224 const { id, type, attr, deviceId, slaveDeviceId } = each 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 const temp = this.actNodeMapping.get(id) 13227 const temp = this.actNodeMapping.get(id)
13228 - temp.set(type, each) 13228 + temp.value.set(type, each)
13229 13229
13230 const cmdId = this.DispatchInstance.getCmdId(id) 13230 const cmdId = this.DispatchInstance.getCmdId(id)
13231 13231
@@ -13303,6 +13303,11 @@ class HandleDynamicEffect { @@ -13303,6 +13303,11 @@ class HandleDynamicEffect {
13303 rotate(message) { 13303 rotate(message) {
13304 const { subscriptionId, data } = message 13304 const { subscriptionId, data } = message
13305 const node = this.getNodeByCmdId(subscriptionId) 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 const { flag } = this.validate(subscriptionId, DispatchCenter.enumDynamicEffectType.ROTATE, data) 13311 const { flag } = this.validate(subscriptionId, DispatchCenter.enumDynamicEffectType.ROTATE, data)
13307 let deg = 0 13312 let deg = 0
13308 const updateFn = () => { 13313 const updateFn = () => {
@@ -13311,16 +13316,14 @@ class HandleDynamicEffect { @@ -13311,16 +13316,14 @@ class HandleDynamicEffect {
13311 let style = node.getStyle() 13316 let style = node.getStyle()
13312 const reg = /rotation=(-?)\w+(;?)/g 13317 const reg = /rotation=(-?)\w+(;?)/g
13313 style = style.replace(reg, '') 13318 style = style.replace(reg, '')
13314 - style += `rotation=${deg}` 13319 + style += `rotation=${deg};`
13315 node.setStyle(style) 13320 node.setStyle(style)
13316 this.graph.updateCellStyles(style, node) 13321 this.graph.updateCellStyles(style, node)
13317 } 13322 }
13318 - const key = node.id + DispatchCenter.enumDynamicEffectType.ROTATE  
13319 if (!flag) { 13323 if (!flag) {
13320 this.delUpdateFn(key) 13324 this.delUpdateFn(key)
13321 return 13325 return
13322 } 13326 }
13323 - console.log(this.actNodeMapping)  
13324 this.insertContinueUpdateFn(node, updateFn, key) 13327 this.insertContinueUpdateFn(node, updateFn, key)
13325 } 13328 }
13326 13329
@@ -13335,19 +13338,29 @@ class HandleDynamicEffect { @@ -13335,19 +13338,29 @@ class HandleDynamicEffect {
13335 if (!flag) return 13338 if (!flag) return
13336 const node = this.getNodeByCmdId(subscriptionId) 13339 const node = this.getNodeByCmdId(subscriptionId)
13337 let isShow = false 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 isShow = true 13342 isShow = true
13342 } else if (condition.type === HandleDynamicEffect.enumDisplayType.HIDDEN) { 13343 } else if (condition.type === HandleDynamicEffect.enumDisplayType.HIDDEN) {
13343 isShow = false 13344 isShow = false
13344 } 13345 }
13345 const updateFn = () => { 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 node.setVisible(isShow) 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 this.insertOnceUpdateFn(node, updateFn) 13365 this.insertOnceUpdateFn(node, updateFn)
13353 } 13366 }
@@ -13360,13 +13373,17 @@ class HandleDynamicEffect { @@ -13360,13 +13373,17 @@ class HandleDynamicEffect {
13360 flash(message) { 13373 flash(message) {
13361 const { subscriptionId, data } = message 13374 const { subscriptionId, data } = message
13362 const node = this.getNodeByCmdId(subscriptionId) 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 const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.FLASH, data) 13381 const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.FLASH, data)
13364 let flashFlag = false 13382 let flashFlag = false
13365 const updateFn = () => { 13383 const updateFn = () => {
13366 node.setVisible(flashFlag) 13384 node.setVisible(flashFlag)
13367 flashFlag = !flashFlag 13385 flashFlag = !flashFlag
13368 } 13386 }
13369 - const key = node.id + DispatchCenter.enumDynamicEffectType.FLASH  
13370 if (!flag) { 13387 if (!flag) {
13371 flashFlag = true 13388 flashFlag = true
13372 this.insertOnceUpdateFn(node, updateFn) 13389 this.insertOnceUpdateFn(node, updateFn)
@@ -13435,7 +13452,7 @@ class HandleDynamicEffect { @@ -13435,7 +13452,7 @@ class HandleDynamicEffect {
13435 getBindData(subscriptionId, actionType) { 13452 getBindData(subscriptionId, actionType) {
13436 const nodeId = this.getNodeIdByCmdId(subscriptionId) 13453 const nodeId = this.getNodeIdByCmdId(subscriptionId)
13437 const temp = this.actNodeMapping.get(nodeId) 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,6 +13474,15 @@ class HandleDynamicEffect {
13457 return this.DispatchInstance.contentAllCell.find(item => item.id === nodeId) 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 class UpdateQueue { 13488 class UpdateQueue {