diff --git a/src/jmapNew/config/skinCode/nanjing_02.js b/src/jmapNew/config/skinCode/nanjing_02.js index aad24a098..51f977979 100644 --- a/src/jmapNew/config/skinCode/nanjing_02.js +++ b/src/jmapNew/config/skinCode/nanjing_02.js @@ -144,8 +144,13 @@ class SkinCode extends defaultStyle { display: false // 列车实时位置显示 }, cross:{ // 岔心 + speedOffset:{ + x:0, + y:50 + }, centerSquare:{ - defaultColor:'#000' + defaultColor:'#000', + blockColor:'#00F' }, crossSection:{ fillColor:'#ff0', diff --git a/src/jmapNew/shape/Section/ELines.js b/src/jmapNew/shape/Section/ELines.js index fa7ceb92c..af662373e 100644 --- a/src/jmapNew/shape/Section/ELines.js +++ b/src/jmapNew/shape/Section/ELines.js @@ -141,9 +141,27 @@ export default class ELines extends Group { } }); + this.crossSpeedText = new Text({ + zlevel: this.zlevel, + z: this.z + 8, + style: { + x: result.x + style.Section.cross.speedOffset.x, + y: result.y + style.Section.cross.speedOffset.y, + fontWeight: style.Section.cross.text.fontWeight, + fontSize: style.Section.cross.text.fontSize, + fontFamily: style.Section.cross.text.fontFamily || style.fontFamily, + text: '', + textFill:style.Section.cross.text.fontColor, + textAlign: style.Section.cross.text.textAlign, + textPosition: style.Section.cross.text.textPosition, + textVerticalAlign: style.Section.cross.text.textVerticalAlign + } + }); + this.add(this.crossSection); this.add(this.centerSquare); this.add(this.crossText); + this.add(this.crossSpeedText); } createLine() { @@ -359,6 +377,16 @@ export default class ELines extends Group { this.crossSection && this.crossSection.setStyle({lineWidth:0, fill:this.model.style.Section.cross.crossSection.fillColor}); } + setCrossBlock() { + this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.blockColor}); + } + setCrossUnBlock() { + this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.defaultColor}); + } + setCrossSpeedUpperLimit(speedLimit) { + this.crossSpeedText && this.crossSpeedText.setStyle({text:speedLimit}); + } + setZleve(lev) { this.section && this.section.attr('z', lev); } diff --git a/src/jmapNew/shape/Section/EMouse.js b/src/jmapNew/shape/Section/EMouse.js index 3ec99a1e4..0cc1470f0 100644 --- a/src/jmapNew/shape/Section/EMouse.js +++ b/src/jmapNew/shape/Section/EMouse.js @@ -129,8 +129,6 @@ class EMouse extends Group { this.add(this.lineBorder); this.lineBorder.hide(); } - } else if (this.device.crossSection) { - debugger; } } diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js index 3eb66aa24..ceb7c15e6 100644 --- a/src/jmapNew/shape/Section/index.js +++ b/src/jmapNew/shape/Section/index.js @@ -86,12 +86,14 @@ export default class Section extends Group { /** 设置区段恢复默认状态*/ recover() { if (this.line) { + this.line.setCrossUnBlock(); this.line.stopAnimation(true); this.sectionBlock && this.sectionBlock.hide(); // 因此特殊区段 this.line.setStyle({ stroke: this.style.Section.line.spareColor, lineWidth: this.style.Section.line.width }); + this.line.setCrossSpeedUpperLimit(''); } this.name && this.name.recover(); this.speedLimit && this.speedLimit.hide(); @@ -180,6 +182,9 @@ export default class Section extends Group { lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth }); } + if (this.style.Section.cross && this.model.type == '04') { + this.line.setCrossBlock(); + } if (this.style.Section.block && this.style.Section.block.blockGlint && this.line) { this.line.animateStyle(true, [ { time: 1000, styles: { stroke: this.style.backgroundColor } }, @@ -246,13 +251,15 @@ export default class Section extends Group { setSpeedUpperLimit(speedUpLimit) { if (this.style.Section.line.speedLimitColor) { // 宁波三号线 独有 this.line.setStyle({stroke: this.style.Section.line.speedLimitColor}); - } else if (this.style.Section.speedLimitName.nameAlone && this.model.type == '03') { // 南京2,道岔区段只显示一个名称 - const switchModel = Vue.prototype.$jlmap.mapDevice[this.model.relSwitchCode]; - if (switchModel && switchModel.sectionACode == this._code) { - this.speedLimit && this.speedLimit.show(); - this.speedLimitName && this.speedLimitName.show(speedUpLimit); - } - } else { + } else if (this.style.Section.speedLimitName.nameAlone && this.model.type == '03') { // 南京2,道岔区段只显示一个名称 + const switchModel = Vue.prototype.$jlmap.mapDevice[this.model.relSwitchCode]; + if (switchModel && switchModel.sectionACode == this._code) { + this.speedLimit && this.speedLimit.show(); + this.speedLimitName && this.speedLimitName.show(speedUpLimit); + } + } else if (this.style.Section.cross && this.model.type == '04') { + this.line.setCrossSpeedUpperLimit(speedUpLimit); + } else { this.speedLimit && this.speedLimit.show(); this.speedLimitName && this.speedLimitName.show(speedUpLimit); } diff --git a/src/views/newMap/newMapdraft/mapoperate/section/index.vue b/src/views/newMap/newMapdraft/mapoperate/section/index.vue index 9b8be643b..73250087f 100644 --- a/src/views/newMap/newMapdraft/mapoperate/section/index.vue +++ b/src/views/newMap/newMapdraft/mapoperate/section/index.vue @@ -624,7 +624,6 @@ export default { } if (model.parentCode == copySection.code) { // 物理区段 - debugger; let lengthFact = copySection.logicSectionCodeList.filter(code => model.code != code).reduce((pre, code) => { const length = this.$store.getters['map/getDeviceByCode'](code).lengthFact; return pre + Number(length);