From ab804e3b95fc40f0d602a642d0632945d2f3b021 Mon Sep 17 00:00:00 2001 From: fan <18706759286@163.com> Date: Thu, 14 Jan 2021 16:26:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=97=E4=BA=AC=E4=BA=8C=E5=8F=B7=E7=BA=BF?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E8=B0=83=E6=95=B4=20=E9=81=93=E5=B2=94?= =?UTF-8?q?=E9=95=BF=E9=97=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/config/skinCode/nanjing_02.js | 4 +++- src/jmapNew/shape/Section/index.js | 27 +++++++++++++++++++---- src/jmapNew/shape/Switch/index.js | 22 +++++++++++++----- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/jmapNew/config/skinCode/nanjing_02.js b/src/jmapNew/config/skinCode/nanjing_02.js index 87ff93445..4ba2d4617 100644 --- a/src/jmapNew/config/skinCode/nanjing_02.js +++ b/src/jmapNew/config/skinCode/nanjing_02.js @@ -159,7 +159,8 @@ class SkinCode extends defaultStyle { textPosition: 'inside', // 文字位置 textVerticalAlign: 'middle' // 文字垂直对齐方式 } - } + }, + switchFault: true // 南京二号线 道岔失败(长闪) }; this[deviceType.Signal] = { @@ -512,6 +513,7 @@ class SkinCode extends defaultStyle { this[deviceType.Switch] = { shapeFlash: true, // 道岔转动失去表示 道岔遮罩删除 + faultNoHandle: true, // 南京二 道岔长闪 道岔无状态 道岔区段 bc 闪烁 text: { show: true, // 道岔名称显示 position: 0, // 区段名称位置 1 上面 -1 下面 0 对称 diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js index 1f547e9c8..34ced7994 100644 --- a/src/jmapNew/shape/Section/index.js +++ b/src/jmapNew/shape/Section/index.js @@ -260,17 +260,36 @@ export default class Section extends Group { // 哈尔滨线路 南京二 道岔相关区段设置 默认颜色 if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) { const switchModel = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode]; + const sectionB = Vue.prototype.$jlmap.mapDevice[switchModel.sectionBCode]; + const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode]; if (switchModel && (switchModel.normalPosition === 1 || (switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse'))) { // 定位情况 - const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode]; sectionC && sectionC.instance && sectionC.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); - const sectionB = Vue.prototype.$jlmap.mapDevice[switchModel.sectionBCode]; sectionB && sectionB.instance && sectionB.instance.setState(sectionB, true); } else if (switchModel && switchModel.reversePosition === 1 || (switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal')) { // 反位情况 - const sectionB = Vue.prototype.$jlmap.mapDevice[switchModel.sectionBCode]; sectionB && sectionB.instance && sectionB.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); - const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode]; sectionC && sectionC.instance && sectionC.instance.setState(sectionC, true); } + if (this.style.Section.switchFault && switchModel.split) { + if (sectionB && sectionB.instance) { + sectionB.instance.setState(sectionB, true); + sectionB.instance.line.animateStyle(true, [ + { time: 0, styles: { stroke: this.style.Section.line.spareColor } }, + { time: 500, styles: { stroke: this.style.backgroundColor } }, + { time: 1000, styles: { stroke: this.style.Section.line.spareColor } } + ]); + } + if (sectionC && sectionC.instance) { + sectionC.instance.setState(sectionC, true); + sectionC.instance.line.animateStyle(true, [ + { time: 0, styles: { stroke: this.style.Section.line.spareColor } }, + { time: 500, styles: { stroke: this.style.backgroundColor } }, + { time: 1000, styles: { stroke: this.style.Section.line.spareColor } } + ]); + } + } else { + if (sectionB && sectionB.instance) { sectionB.instance.line.stopAnimation(true); } + if (sectionC && sectionC.instance) { sectionC.instance.line.stopAnimation(true); } + } } } /** 设置状态*/ diff --git a/src/jmapNew/shape/Switch/index.js b/src/jmapNew/shape/Switch/index.js index c88116a90..08c04a173 100644 --- a/src/jmapNew/shape/Switch/index.js +++ b/src/jmapNew/shape/Switch/index.js @@ -311,7 +311,7 @@ export default class Switch extends Group { } } // 南京二号线 A,B闪烁 - shapeFlashing() { + shapeFlashing(split) { let bColor = '#7F7F7F'; let aColor = '#7F7F7F'; if (this.switchPosition === 'normal') { @@ -319,17 +319,25 @@ export default class Switch extends Group { } else { bColor = '#FF0'; } - this.shapeModelB && this.shapeModelB.animateStyle(bColor, this.style.backgroundColor); + // 南京二号线道岔短闪两部分相位不同 this.shapeModelA && this.shapeModelA.animateStyle(aColor, this.style.backgroundColor); + setTimeout(() => { + this.shapeModelB && this.shapeModelB.animateStyle(bColor, this.style.backgroundColor); + }, 100); + if (split) { + this.shapeModelA.hide(); + this.shapeModelB.hide(); + this.shapeModelC.hide(); + } } /** 失去*/ - setLossAction() { + setLossAction(split) { this.shapeModelA.show(); this.shapeModelB.show(); this.shapeModelC.show(); this.shapeModelC.setColor(this.style.backgroundColor); this.shapeModelB.animateStyle(); - this.style.Switch.shapeFlash && this.shapeFlashing(); + this.style.Switch.shapeFlash && this.shapeFlashing(split); this.setTextColor(this.style.Switch.text.lossColor); this.style.Switch.text.faultFlashing && this.nameTextAnimation(); @@ -343,6 +351,10 @@ export default class Switch extends Group { setSwitchFault(split, normalPosition, reversePosition) { if (this.style.Switch.jointImg.faultStatus && split && !reversePosition && !normalPosition ) { // 宁波线失表状态 this.setForkAction(); // 道岔挤岔 + } else if (this.style.Switch.faultNoHandle ) { + this.shapeModelA.hide(); + this.shapeModelB.hide(); + this.shapeModelC.hide(); } else { if (this.model.switchFaultCode && split) { const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode); @@ -544,7 +556,7 @@ export default class Switch extends Group { this.switchPosition = 'reverse'; this.setInversionAction(model); /** 反位*/ } else { - this.setLossAction(); // 失去 + this.setLossAction(model.split); // 失去 } model.isCiConfirm && this.setCiConfirm(); // 道岔使能显示