From e947e50a0d055594b580b6af951945b9e3aa6f86 Mon Sep 17 00:00:00 2001 From: Yuan Date: Fri, 15 Jul 2022 18:08:39 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=87=A0=E4=B8=AA?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../newMap/newMapdraft/mapoperate/signalButton.vue | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue index 862e4e4e8..babbe9482 100644 --- a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue +++ b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue @@ -87,7 +87,18 @@ export default { { value: 'ACCIDENT', label: '事故按钮' }, { value: 'CHANGE_DIRECTION', label: '改方按钮' }, { value: 'RECOVERY', label: '复原按钮' }, - { value: 'OCCLUSION', label: '闭塞按钮' } + { value: 'OCCLUSION', label: '闭塞按钮' }, + { value: 'LOCATE', label: '总定位按钮' }, + { value: 'REVERSE', label: '总反位按钮' }, + { value: 'HUMAN_RELEASE_ROUTE', label: '总人解按钮' }, + { value: 'CANCEL', label: '总取消按钮' }, + { value: 'GUIDELOCK', label: '引导总锁按钮' }, + { value: 'SECTION_FAULT_UNLOCK', label: '区故解按钮' }, + { value: 'MONOLOCK', label: '单锁按钮' }, + { value: 'UNLOCK', label: '' }, + { value: 'GUIDELOCK', label: '引导总锁按钮' }, + { value: 'GUIDELOCK', label: '引导总锁按钮' }, + ], centralizedStationList: [], // 设备集中站列表 directionList: [ From c4fc19c88e48c5b19a9b1cea8a321841cec26c4a Mon Sep 17 00:00:00 2001 From: Yuan Date: Wed, 20 Jul 2022 15:35:55 +0800 Subject: [PATCH 2/7] =?UTF-8?q?JD1A-=E4=BF=A1=E5=8F=B7=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=92=8C=E8=A1=A8=E7=A4=BA=E7=8A=B6=E6=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/config/skinCode/datie_jd1a.js | 21 +- src/jmapNew/config/skinCode/xian_01.js | 1 + src/jmapNew/shape/graph/SaidLamp/index.js | 3 +- src/jmapNew/shape/graph/SignalButton/index.js | 654 +++++++++--------- src/jmapNew/shape/graph/element/EControl.js | 45 +- .../newMapdraft/mapoperate/signalButton.vue | 6 +- 6 files changed, 389 insertions(+), 341 deletions(-) diff --git a/src/jmapNew/config/skinCode/datie_jd1a.js b/src/jmapNew/config/skinCode/datie_jd1a.js index 9e65e8f30..c6b473208 100644 --- a/src/jmapNew/config/skinCode/datie_jd1a.js +++ b/src/jmapNew/config/skinCode/datie_jd1a.js @@ -256,9 +256,28 @@ class SkinCode extends defaultStyle { }; this[deviceType.SignalButton] = { - shape: 'roundWithDock' + shape: 'roundWithDock', + fillColor: '#808080', + showName: true } + this[deviceType.SwitchFault] = { + displayCondition: '01', // 显示条件 (01所有模式下显示 02 行调显示 03现地显示) + text: { + fontSize: 14, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: -50 // 灯跟文字距离 + }, + lamp: { + square: true, // 方形 + radiusR: 20, // 控制灯大小 + controlColor: '#00d900', // 控制灯颜色 + offColor: '#ff0000', + lineWidth: 2, + strokeColor: '#FFFFFF' // 控制灯描边样式 + } + }; + // 供电线路 this[deviceType.Power] = { noElectricStrokeColor:'#808080', // 无电颜色 diff --git a/src/jmapNew/config/skinCode/xian_01.js b/src/jmapNew/config/skinCode/xian_01.js index bad6a642d..37655a0ca 100644 --- a/src/jmapNew/config/skinCode/xian_01.js +++ b/src/jmapNew/config/skinCode/xian_01.js @@ -541,6 +541,7 @@ class SkinCode extends defaultStyle { distance: 5 // 灯跟文字距离 }, lamp: { + square: false, // 方形 radiusR: 6, // 控制灯大小 controlColor: '#000000', // 控制灯颜色 offColor: '#ff0000', diff --git a/src/jmapNew/shape/graph/SaidLamp/index.js b/src/jmapNew/shape/graph/SaidLamp/index.js index 512632050..a67d30ec9 100644 --- a/src/jmapNew/shape/graph/SaidLamp/index.js +++ b/src/jmapNew/shape/graph/SaidLamp/index.js @@ -45,12 +45,13 @@ export default class SaidLamp extends Group { this.control = new EControl({ zlevel: this.zlevel, z: this.z, - arc: { + control: { shape: { cx: this.computedPosition.x, cy: this.computedPosition.y, r: this.deviceStyle.lamp.radiusR }, + isSquare: this.deviceStyle.lamp.square, subType: 'Control', lineWidth: this.deviceStyle.lamp.lineWidth || 0, fill: this.deviceStyle.lamp.controlColor, diff --git a/src/jmapNew/shape/graph/SignalButton/index.js b/src/jmapNew/shape/graph/SignalButton/index.js index b6d5053cd..19a2fb816 100644 --- a/src/jmapNew/shape/graph/SignalButton/index.js +++ b/src/jmapNew/shape/graph/SignalButton/index.js @@ -1,331 +1,341 @@ -import Group from 'zrender/src/container/Group'; -import Rect from 'zrender/src/graphic/shape/Rect'; -import Line from 'zrender/src/graphic/shape/Line'; -import Text from 'zrender/src/graphic/Text'; -import Arc from 'zrender/src/graphic/shape/Arc'; -import Circle from 'zrender/src/graphic/shape/Circle'; -import store from '@/store/index'; +import Group from 'zrender/src/container/Group' +import Rect from 'zrender/src/graphic/shape/Rect' +import Line from 'zrender/src/graphic/shape/Line' +import Text from 'zrender/src/graphic/Text' +import Arc from 'zrender/src/graphic/shape/Arc' +import Circle from 'zrender/src/graphic/shape/Circle' +import store from '@/store/index' +const typeList = [ + 'PICK_ASSIST', + 'DEPART_ASSIST', + 'ASSIST', + 'GUIDELOCK', + 'SECTION_FAULT_UNLOCK', + 'LOCATE', + 'REVERSE', + 'CANCEL', + 'HUMAN_RELEASE_ROUTE', + 'MONOLOCK', + 'UNLOCK', + 'BLOCK', + 'UNBLOCK', + 'CHANGE_DIRECTION' +] export default class SignalButton extends Group { - constructor(model, {style}) { - super(); - this._code = model.code; - this._type = model._type; - this.zlevel = model.zlevel; - const pictureDevice = store.getters['map/getPictureDeviceByCode'](model.code); - if (pictureDevice) { - this.computedPosition = pictureDevice.position; - } else { - this.computedPosition = model.position; - } - this.z = 0; - this.model = model; - this.style = style; - // Line - this.create(); - this.setState(model); + constructor(model, { style }) { + super() + this._code = model.code + this._type = model._type + this.zlevel = model.zlevel + const pictureDevice = store.getters['map/getPictureDeviceByCode'](model.code) + if (pictureDevice) { + this.computedPosition = pictureDevice.position + } else { + this.computedPosition = model.position } + this.z = 0 + this.model = model + this.style = style + // Line + this.create() + this.setState(model) + } - create() { - const model = this.model; - const computedPosition = this.computedPosition; - const fillColor = this.getTypeColor(); - const queryList = window.location.search.substring(1).split('&'); - const queryCtc = queryList.find(item => { - return item.includes('ctc'); - }); - const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST']; - const typeList = [] - if (queryCtc && ctcArcList.includes(model.type)){ - this.arcShape = new Arc({ - zlevel: this.zlevel, - z: this.z, - shape: { - cx: computedPosition.x + 7, - cy: computedPosition.y + 7, - r: 7 - }, - style: { - stroke: '#69666E', - lineWidth: 1, - fill: fillColor - } - }); - this.add(this.arcShape); - } else if (this.style.SignalButton - && this.style.SignalButton.shape === 'roundWithDock' - && typeList.includes(model.type)) { - const circle1 = new Circle({ - zlevel: this.zlevel, - z: this.z + 2, - shape: { - cx: computedPosition.x + 7, - cy: computedPosition.y + 7, - r: 7 - }, - style: { - stroke: '#69666E', - lineWidth: 1, - fill: fillColor - } - }) - const circle2 = new Circle({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - cx: computedPosition.x + 7, - cy: computedPosition.y + 9, - r: 8 - }, - style: { - fill: '#000' - } - }) - const circle3 = new Circle({ - zlevel: this.zlevel, - z: this.z, - shape: { - cx: computedPosition.x + 7, - cy: computedPosition.y + 9, - r: 9 - }, - style: { - fill: '#eee' - } - }) - this.arcShape = circle1 - this.add(circle1).add(circle2).add(circle3) + create() { + const model = this.model + const computedPosition = this.computedPosition + const fillColor = this.getTypeColor() + const queryList = window.location.search.substring(1).split('&') + const queryCtc = queryList.find(item => { + return item.includes('ctc') + }) + const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST'] + + // if (model.code === 'BTN31730') debugger + if (queryCtc && ctcArcList.includes(model.type)) { + this.arcShape = new Arc({ + zlevel: this.zlevel, + z: this.z, + shape: { + cx: computedPosition.x + 7, + cy: computedPosition.y + 7, + r: 7 + }, + style: { + stroke: '#69666E', + lineWidth: 1, + fill: fillColor + } + }) + this.add(this.arcShape) + } else if (this.style.SignalButton && this.style.SignalButton.shape === 'roundWithDock' && typeList.includes(model.type)) { + const circle1 = new Circle({ + zlevel: this.zlevel, + z: this.z + 2, + shape: { + cx: computedPosition.x + 7, + cy: computedPosition.y + 7, + r: 7 + }, + style: { + stroke: '#69666E', + lineWidth: 1, + fill: fillColor + } + }) + const circle2 = new Circle({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + cx: computedPosition.x + 7, + cy: computedPosition.y + 9, + r: 8 + }, + style: { + fill: '#000' + } + }) + const circle3 = new Circle({ + zlevel: this.zlevel, + z: this.z, + shape: { + cx: computedPosition.x + 7, + cy: computedPosition.y + 9, + r: 9 + }, + style: { + fill: '#eee' + } + }) + this.arcShape = circle1 + this.arcShapeDock1 = circle2 + this.arcShapeDock2 = circle3 + this.add(circle1) + .add(circle2) + .add(circle3) + } else { + this.rectButton = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: computedPosition.x, + y: computedPosition.y, + width: 14, + height: 14 + }, + style: { + lineDash: null, + stroke: '#69666E', + lineWidth: 1, + fill: fillColor + } + }) + this.add(this.rectButton) + } + this.leftLine = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: computedPosition.x + 1, + y1: computedPosition.y + 1, + x2: computedPosition.x + 13, + y2: computedPosition.y + 13 + }, + style: { + lineWidth: 2, + stroke: '#ff0000' + } + }) + this.add(this.leftLine) + this.leftLine.hide() + this.rightLine = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: computedPosition.x + 13, + y1: computedPosition.y + 1, + x2: computedPosition.x + 1, + y2: computedPosition.y + 13 + }, + style: { + lineWidth: 2, + stroke: '#ff0000' + } + }) + this.add(this.rightLine) + this.rightLine.hide() + this.leftBoard = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: computedPosition.x - 1, + y1: computedPosition.y - 1, + x2: computedPosition.x - 1, + y2: computedPosition.y + 15 + }, + style: { + lineWidth: 2, + stroke: '#FFFFFF' + } + }) + this.add(this.leftBoard) + this.leftBoard.hide() + this.topBoard = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: computedPosition.x - 1, + y1: computedPosition.y - 1, + x2: computedPosition.x + 15, + y2: computedPosition.y - 1 + }, + style: { + lineWidth: 2, + stroke: '#FFFFFF' + } + }) + this.add(this.topBoard) + this.topBoard.hide() + this.rightBoard = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: computedPosition.x + 15, + y1: computedPosition.y - 1, + x2: computedPosition.x + 15, + y2: computedPosition.y + 15 + }, + style: { + lineWidth: 2, + stroke: '#A0A0A0' + } + }) + this.add(this.rightBoard) + this.rightBoard.hide() + this.bottomBoard = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: computedPosition.x - 1, + y1: computedPosition.y + 15, + x2: computedPosition.x + 15, + y2: computedPosition.y + 15 + }, + style: { + lineWidth: 2, + stroke: '#A0A0A0' + } + }) + this.add(this.bottomBoard) + this.bottomBoard.hide() + const hasTextList = ['PASS', 'ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION'] + if (hasTextList.includes(model.type) || (this.style.SignalButton && this.style.SignalButton.showName)) { + this.buttonText = new Text({ + zlevel: this.zlevel, + z: this.z, + style: { + x: computedPosition.x + model.nameOffset.x, + y: computedPosition.y + model.nameOffset.y, + fontWeight: '400', + fontSize: 10, + fontFamily: '', + text: model.name, + textFill: '#C0C0C0', + textAlign: 'middle', + textVerticalAlign: 'top' + } + }) + this.add(this.buttonText) + } + } + startAnimate() { + this.rectButton && + this.rectButton + .animateStyle(true) + .when(0, { fill: '#000' }) + .when(1000, { fill: this.getTypeColor() }) + .when(2000, { fill: '#000' }) + .start() + } + stopAnimation() { + this.rectButton && this.rectButton.stopAnimation(true) + // this.arcFlash && this.arcFlash.stopAnimation(false); + } + getTypeColor() { + if (this.style.SignalButton && this.style.SignalButton.fillColor && typeList.includes(this.model.type)) { + return this.style.SignalButton.fillColor + } + let color = '' + const list = ['ASSIST', 'ACCIDENT', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION'] + if (this.model.type === 'FLEXIBLE' || this.model.type === 'SHUNT_TERMINAL') { + color = '#808080' + } else if (this.model.type === 'GUIDE') { + color = '#5050E1' + } else if (list.includes(this.model.type)) { + color = '#ccc' + } else { + color = '#008000' + } + return color + } // + recover() { + this.stopAnimation() + this.rectButton && this.rectButton.setStyle({ fill: this.getTypeColor() }) + this.arcShape && this.arcShape.setStyle({ fill: this.getTypeColor() }) + this.rightLine && this.rightLine.hide() + this.leftLine && this.leftLine.hide() + this.rectButton && this.rectButton.show() + this.arcShape && this.arcShape.show() + this.arcShapeDock1 && this.arcShapeDock1.show() + this.arcShapeDock2 && this.arcShapeDock2.show() + this.buttonText && this.buttonText.show() + this.leftBoard && this.leftBoard.hide() + this.rightBoard && this.rightBoard.hide() + this.topBoard && this.topBoard.hide() + this.bottomBoard && this.bottomBoard.hide() + } + blockShow() { + this.rightLine && this.rightLine.show() + this.leftLine && this.leftLine.show() + } + setState(model) { + this.recover() + // { value: 'ASSIST', label: '总辅助按钮' }, + // { value: 'PICK_ASSIST', label: '接辅助按钮' }, + // { value: 'DEPART_ASSIST', label: '发辅助按钮' }, + const list = ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'ACCIDENT', 'RECOVERY', 'OCCLUSION'] + if (list.includes(model.type)) { + if (this.rectButton) { + if (model.pressDown) { + this.rectButton.setStyle({ fill: '#FFFF00' }) + // this.arcFlash.show(); + // const style = this.style; + // this.arcFlash.animateStyle(true) + // .when(0, { fill: style.backgroundColor }) + // .when(500, { fill: '#FFFF00' }) + // .when(1000, { fill: style.backgroundColor }) + // .start(); } else { - this.rectButton = new Rect({ - zlevel: this.zlevel, - z: this.z, - shape: { - x: model.position.x, - y: model.position.y, - width: 14, - height: 14 - }, - style: { - lineDash: null, - stroke: '#69666E', - lineWidth:1, - fill: fillColor - } - }); - this.add(this.rectButton); - } - this.leftLine = new Line({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - x1: computedPosition.x + 1, - y1: computedPosition.y + 1, - x2: computedPosition.x + 13, - y2: computedPosition.y + 13 - }, - style: { - lineWidth: 2, - stroke: '#ff0000' - } - }); - this.add(this.leftLine); - this.leftLine.hide(); - this.rightLine = new Line({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - x1: computedPosition.x + 13, - y1: computedPosition.y + 1, - x2: computedPosition.x + 1, - y2: computedPosition.y + 13 - }, - style: { - lineWidth: 2, - stroke: '#ff0000' - } - }); - this.add(this.rightLine); - this.rightLine.hide(); - this.leftBoard = new Line({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - x1: computedPosition.x - 1, - y1: computedPosition.y - 1, - x2: computedPosition.x - 1, - y2: computedPosition.y + 15 - }, - style: { - lineWidth: 2, - stroke: '#FFFFFF' - } - }); - this.add(this.leftBoard); - this.leftBoard.hide(); - this.topBoard = new Line({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - x1: computedPosition.x - 1, - y1: computedPosition.y - 1, - x2: computedPosition.x + 15, - y2: computedPosition.y - 1 - }, - style: { - lineWidth: 2, - stroke: '#FFFFFF' - } - }); - this.add(this.topBoard); - this.topBoard.hide(); - this.rightBoard = new Line({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - x1: computedPosition.x + 15, - y1: computedPosition.y - 1, - x2: computedPosition.x + 15, - y2: computedPosition.y + 15 - }, - style: { - lineWidth: 2, - stroke: '#A0A0A0' - } - }); - this.add(this.rightBoard); - this.rightBoard.hide(); - this.bottomBoard = new Line({ - zlevel: this.zlevel, - z: this.z + 1, - shape: { - x1: computedPosition.x - 1, - y1: computedPosition.y + 15, - x2: computedPosition.x + 15, - y2: computedPosition.y + 15 - }, - style: { - lineWidth: 2, - stroke: '#A0A0A0' - } - }); - this.add(this.bottomBoard); - this.bottomBoard.hide(); - const hasTextList = ['PASS', 'ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION']; - if (hasTextList.includes(model.type)) { - this.buttonText = new Text({ - zlevel: this.zlevel, - z: this.z, - style: { - x: computedPosition.x + model.nameOffset.x, - y: computedPosition.y + model.nameOffset.y, - fontWeight: '400', - fontSize: 10, - fontFamily: '', - text: model.name, - textFill: '#C0C0C0', - textAlign: 'middle', - textVerticalAlign: 'top' - } - }); - this.add(this.buttonText); + this.rectButton.setStyle({ fill: this.getTypeColor() }) + // this.arcFlash.stopAnimation(false); + // this.arcFlash.hide(); } - // if (model.type === 'CHANGE_DIRECTION') { - // this.arcFlash = new Arc({ - // _subType: 'change_direction_flash', - // zlevel: this.zlevel, - // z: this.z, - // shape: { - // cx: model.position.x + 18 + 7, - // cy: model.position.y + 7, - // r: 6 - // }, - // style: { - // lineWidth: 0, - // fill: '#ffff00' - // } - // }); - // this.add(this.arcFlash); - // } + } } - startAnimate() { - this.rectButton && this.rectButton.animateStyle(true) - .when(0, { fill: '#000' }) - .when(1000, { fill: this.getTypeColor() }) - .when(2000, { fill: '#000' }) - .start(); - } - stopAnimation() { - this.rectButton && this.rectButton.stopAnimation(true); - // this.arcFlash && this.arcFlash.stopAnimation(false); - } - getTypeColor() { - let color = ''; - const list = ['ASSIST', 'ACCIDENT', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION']; - if (this.model.type === 'FLEXIBLE' || this.model.type === 'SHUNT_TERMINAL') { - color = '#808080'; - } else if (this.model.type === 'GUIDE') { - color = '#5050E1'; - } else if (list.includes(this.model.type)) { - color = '#ccc'; - } else { - color = '#008000'; - } - return color; - }// - recover() { - this.stopAnimation(); - this.rectButton && this.rectButton.setStyle({ fill:this.getTypeColor() }); - this.arcShape && this.arcShape.setStyle({ fill:this.getTypeColor() }); - this.rightLine && this.rightLine.hide(); - this.leftLine && this.leftLine.hide(); - this.rectButton && this.rectButton.show(); - this.arcShape && this.arcShape.show(); - this.buttonText && this.buttonText.show(); - this.leftBoard && this.leftBoard.hide(); - this.rightBoard && this.rightBoard.hide(); - this.topBoard && this.topBoard.hide(); - this.bottomBoard && this.bottomBoard.hide(); - } - blockShow() { - this.rightLine && this.rightLine.show(); - this.leftLine && this.leftLine.show(); - } - setState(model) { - this.recover(); - // { value: 'ASSIST', label: '总辅助按钮' }, - // { value: 'PICK_ASSIST', label: '接辅助按钮' }, - // { value: 'DEPART_ASSIST', label: '发辅助按钮' }, - const list = ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'ACCIDENT', 'RECOVERY', 'OCCLUSION']; - if (list.includes(model.type)) { - if (this.rectButton) { - if (model.pressDown) { - this.rectButton.setStyle({ fill:'#FFFF00' }); - // this.arcFlash.show(); - // const style = this.style; - // this.arcFlash.animateStyle(true) - // .when(0, { fill: style.backgroundColor }) - // .when(500, { fill: '#FFFF00' }) - // .when(1000, { fill: style.backgroundColor }) - // .start(); - } else { - this.rectButton.setStyle({ fill:this.getTypeColor() }); - // this.arcFlash.stopAnimation(false); - // this.arcFlash.hide(); - } - } - } - if (!store.getters['map/checkDeviceShow'](this._code)) { - this.buttonText && this.buttonText.hide(); - this.rectButton && this.rectButton.hide(); - this.leftLine && this.leftLine.hide(); - this.rightLine && this.rightLine.hide(); - this.arcShape && this.arcShape.hide(); - } else { - if (model.hasSelected) { - this.startAnimate(); - } - } - } - getAnchorPoint() { + if (!store.getters['map/checkDeviceShow'](this._code)) { + this.buttonText && this.buttonText.hide() + this.rectButton && this.rectButton.hide() + this.leftLine && this.leftLine.hide() + this.rightLine && this.rightLine.hide() + this.arcShape && this.arcShape.hide() + this.arcShapeDock1 && this.arcShapeDock1.hide() + this.arcShapeDock2 && this.arcShapeDock2.hide() + } else { + if (model.hasSelected) { + this.startAnimate() + } } + } + getAnchorPoint() {} } diff --git a/src/jmapNew/shape/graph/element/EControl.js b/src/jmapNew/shape/graph/element/EControl.js index 1b01a84d7..c9cb12aa4 100644 --- a/src/jmapNew/shape/graph/element/EControl.js +++ b/src/jmapNew/shape/graph/element/EControl.js @@ -13,23 +13,40 @@ export default class EControl extends Group { this.z = model.z; this.style = model.style; this.textStyle = model.text; - this.arcStyle = model.arc; + this.controlStyle = model.control; this.create(); } create() { - this.control = new Arc({ - _subType: this.arcStyle.subType, + this.control = this.controlStyle.isSquare ? new Rect({ + _subType: this.controlStyle.subType, zlevel: this.zlevel, z: this.z, - shape: this.arcStyle.shape, - style: { - lineWidth: this.arcStyle.lineWidth, - fill: this.arcStyle.fill, - stroke: this.arcStyle.stroke + shape: { + width: this.controlStyle.shape.r, + height: this.controlStyle.shape.r, + x: this.controlStyle.shape.cx - this.controlStyle.shape.r / 2, + y: this.controlStyle.shape.cy - this.controlStyle.shape.r / 2, }, - onmouseover: this.arcStyle.mouseover, - onmouseout: this.arcStyle.mouseout + style: { + lineWidth: this.controlStyle.lineWidth, + fill: this.controlStyle.fill, + stroke: this.controlStyle.stroke + }, + onmouseover: this.controlStyle.mouseover, + onmouseout: this.controlStyle.mouseout + }) : new Arc({ + _subType: this.controlStyle.subType, + zlevel: this.zlevel, + z: this.z, + shape: this.controlStyle.shape, + style: { + lineWidth: this.controlStyle.lineWidth, + fill: this.controlStyle.fill, + stroke: this.controlStyle.stroke + }, + onmouseover: this.controlStyle.mouseover, + onmouseout: this.controlStyle.mouseout }); this.text = new Text({ _subType: 'Text', @@ -63,7 +80,7 @@ export default class EControl extends Group { height: arcRect.height + 4 }, style: { - lineDash: this.arcStyle.lineDash || this.style.arcBorderStyle.lineDash, + lineDash: this.controlStyle.lineDash || this.style.arcBorderStyle.lineDash, stroke: this.style.arcBorderStyle.stroke, fill: this.style.arcBorderStyle.fill } @@ -106,15 +123,15 @@ export default class EControl extends Group { setControlFlashing(color) { if (color) { this.control.animateStyle(true) - .when(0, { fill: this.arcStyle.fill }) + .when(0, { fill: this.controlStyle.fill }) .when(1000, { stroke: color }) - .when(2000, { fill: this.arcStyle.fill }) + .when(2000, { fill: this.controlStyle.fill }) .start(); } } recover() { this.control.stopAnimation(false); - this.control.setStyle('fill', this.arcStyle.fill); + this.control.setStyle('fill', this.controlStyle.fill); } setControlStroke(color, lineWidth) { this.control.setStyle('lineWidth', lineWidth); diff --git a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue index babbe9482..f91118247 100644 --- a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue +++ b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue @@ -95,9 +95,9 @@ export default { { value: 'GUIDELOCK', label: '引导总锁按钮' }, { value: 'SECTION_FAULT_UNLOCK', label: '区故解按钮' }, { value: 'MONOLOCK', label: '单锁按钮' }, - { value: 'UNLOCK', label: '' }, - { value: 'GUIDELOCK', label: '引导总锁按钮' }, - { value: 'GUIDELOCK', label: '引导总锁按钮' }, + { value: 'UNLOCK', label: '单解按钮' }, + { value: 'BLOCK', label: '单封按钮' }, + { value: 'UNBLOCK', label: '解封按钮' }, ], centralizedStationList: [], // 设备集中站列表 From 10eba07da8be0a37b3db2425b2888da943b13a11 Mon Sep 17 00:00:00 2001 From: Yuan Date: Fri, 29 Jul 2022 13:33:44 +0800 Subject: [PATCH 3/7] =?UTF-8?q?JD1A=E9=A3=8E=E6=A0=BC=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/config/skinCode/datie_jd1a.js | 11 +++-- src/jmapNew/shape/graph/SaidLamp/index.js | 1 - src/jmapNew/shape/graph/SignalButton/index.js | 1 - src/jmapNew/shape/graph/Switch/ESwDot.js | 2 - src/jmapNew/shape/graph/Switch/index.js | 29 ++++++++++---- .../theme/datie_jd1a/menus/menuButton.vue | 40 ++++++++++++++++++- .../newMapdraft/mapoperate/signalButton.vue | 2 +- 7 files changed, 69 insertions(+), 17 deletions(-) diff --git a/src/jmapNew/config/skinCode/datie_jd1a.js b/src/jmapNew/config/skinCode/datie_jd1a.js index c6b473208..a755d79f6 100644 --- a/src/jmapNew/config/skinCode/datie_jd1a.js +++ b/src/jmapNew/config/skinCode/datie_jd1a.js @@ -270,9 +270,14 @@ class SkinCode extends defaultStyle { }, lamp: { square: true, // 方形 - radiusR: 20, // 控制灯大小 - controlColor: '#00d900', // 控制灯颜色 - offColor: '#ff0000', + radiusR: 20, + switchState: true, // 是否用颜色表示道岔状态 + controlColor: '#00ff00', // 定位颜色 + reverseColor: '#ffff00', // 反位颜色 + switchingColor: '#999999', // 转换中颜色 + faultColor: '#ff0000', // 挤岔颜色 + blockColor: '#0000ff', // 单封颜色 + lockColor: '#ff0000', // 单锁颜色 lineWidth: 2, strokeColor: '#FFFFFF' // 控制灯描边样式 } diff --git a/src/jmapNew/shape/graph/SaidLamp/index.js b/src/jmapNew/shape/graph/SaidLamp/index.js index a67d30ec9..d8fe3702c 100644 --- a/src/jmapNew/shape/graph/SaidLamp/index.js +++ b/src/jmapNew/shape/graph/SaidLamp/index.js @@ -283,7 +283,6 @@ export default class SaidLamp extends Group { } } } - } } } diff --git a/src/jmapNew/shape/graph/SignalButton/index.js b/src/jmapNew/shape/graph/SignalButton/index.js index 19a2fb816..d037b35e6 100644 --- a/src/jmapNew/shape/graph/SignalButton/index.js +++ b/src/jmapNew/shape/graph/SignalButton/index.js @@ -52,7 +52,6 @@ export default class SignalButton extends Group { }) const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST'] - // if (model.code === 'BTN31730') debugger if (queryCtc && ctcArcList.includes(model.type)) { this.arcShape = new Arc({ zlevel: this.zlevel, diff --git a/src/jmapNew/shape/graph/Switch/ESwDot.js b/src/jmapNew/shape/graph/Switch/ESwDot.js index 27714b7ae..d4d9c1587 100644 --- a/src/jmapNew/shape/graph/Switch/ESwDot.js +++ b/src/jmapNew/shape/graph/Switch/ESwDot.js @@ -26,8 +26,6 @@ class ESwDot extends Group { this.add(this.dot) } setColor(color) { - console.log(this.dot) - console.log(color) this.dot.setStyle({ fill: color }) } } diff --git a/src/jmapNew/shape/graph/Switch/index.js b/src/jmapNew/shape/graph/Switch/index.js index 4533e1396..13be80563 100644 --- a/src/jmapNew/shape/graph/Switch/index.js +++ b/src/jmapNew/shape/graph/Switch/index.js @@ -481,15 +481,27 @@ export default class Switch extends Group { .start(); } // N-定位 R-反位 NO-无(失表) EX-挤叉 - setSwitchFault(fault) { + setSwitchFault(model) { + const { pos, fault, /* 单锁 */singleLock, /* 封锁 */blockade } = model const faultList = ['SPLIT', 'SQUEEZE', 'NORMAL_SPLIT', 'REVERSE_SPLIT', 'SPLIT_1']; - // (fault === 'SPLIT' || fault === 'SQUEEZE' || (fault === 'NORMAL_SPLIT' && !reversePosition) || (fault === 'REVERSE_SPLIT' && !normalPosition)) - if (this.model.switchFaultCode && fault && faultList.includes(fault) ) { + if (this.model.switchFaultCode) { const switchFault = this.mapDevice[this.model.switchFaultCode]; - switchFault.instance.setControlColor('#F00', true); - } else if (this.model.switchFaultCode) { - const switchFault = this.mapDevice[this.model.switchFaultCode]; - switchFault.instance.setControlColor(this.style.backgroundColor, false); + if (this.style.SwitchFault.lamp.switchState) { + console.log(fault) + console.log(pos) + if (pos === 'N') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.controlColor) + else if (pos === 'R') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.reverseColor) + else if (pos === 'NO') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.switchingColor) + else if (pos === 'EX') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.faultColor) + if (singleLock) switchFault.instance.setControlColor(this.style.SwitchFault.lamp.lockColor) + if (blockade === 'EX') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.blockColor) + } else { + if ( fault && faultList.includes(fault) ) { + switchFault.instance.setControlColor('#F00', true); + } else { + switchFault.instance.setControlColor(this.style.backgroundColor, false); + } + } } // stopAnimation this.shapeModelB.stopAnimation(false); @@ -803,7 +815,8 @@ export default class Switch extends Group { this.setAshShow(); } } else { - this.setSwitchFault(model.fault); + this.setSwitchFault(model); + console.log(model) // model.pos == 'NO' || model.pos == 'EX'; // N-定位 R-反位 NO-无(失表) EX-挤叉 diff --git a/src/jmapNew/theme/datie_jd1a/menus/menuButton.vue b/src/jmapNew/theme/datie_jd1a/menus/menuButton.vue index 6b23c903e..66815d55e 100644 --- a/src/jmapNew/theme/datie_jd1a/menus/menuButton.vue +++ b/src/jmapNew/theme/datie_jd1a/menus/menuButton.vue @@ -723,12 +723,17 @@ export default { } }, handelSwitchOperate(model) { + let code = '' + if (model._type === 'Switch') code = model.code + else if (model._type === 'SwitchFault') { + code = this.$store.getters['map/getDeviceByCode'](model.switchCode).code + } const operate = { over: true, code: model.code, operation: this.$store.state.menuOperation.buttonOperation, cmdType: this.cmdType, - param: { switchCode: model.code } + param: { switchCode: code } } this.sendCommand(operate) }, @@ -837,6 +842,15 @@ export default { this.Switch.block.button.operation, this.Switch.unblock.button.operation ] + const signalButtonOperation = [ + 'LOCATE', //总定 + 'REVERSE', //总反 + 'MONOLOCK', //单锁 + 'UNLOCK', //解锁 + 'BLOCK', //单封 + 'UNBLOCK', //解封, + 'SECTION_FAULT_UNLOCK' //区故解 + ] if ((this.guideLockLeftFlag || this.guideLockRightFlag) && model._type === 'SignalButton' && model.type === 'GUIDE') { this.handleGuideLock(model) } else if (buttonOperation && this.commandTypeList.includes(model._type)) { @@ -862,6 +876,30 @@ export default { } else if (model._type === 'SignalButton' && signalButtonList.includes(model.type)) { // 改方操作 总辅助操作 接辅助操作 发辅助操作 this.assistOperateOrChange(model) + } else if (model._type === 'SignalButton' && model.type === 'GUIDELOCK') { + // 引导总锁 + if (model.labelEnum === 'S') { + this.guideLockLeftButtonDown() + } else if (model.labelEnum === 'X') { + this.guideLockRightButtonDown() + } + } else if (model._type === 'SignalButton' && signalButtonOperation.includes(model.type)) { + //总定总反单锁解锁单封解封 + if (model.type === 'LOCATE') { + this.buttonDown(this.Switch.locate.button.operation, ['Switch', 'SwitchFault']) + } else if (model.type === 'REVERSE') { + this.buttonDown(this.Switch.reverse.button.operation, ['Switch', 'SwitchFault']) + } else if (model.type === 'MONOLOCK') { + this.buttonDown(this.Switch.lock.button.operation, ['Switch', 'SwitchFault']) + } else if (model.type === 'UNLOCK') { + this.buttonDown(this.Switch.unlock.button.operation, ['Switch', 'SwitchFault']) + } else if (model.type === 'BLOCK') { + this.buttonDown(this.Switch.block.button.operation, ['Switch', 'SwitchFault']) + } else if (model.type === 'UNBLOCK') { + this.buttonDown(this.Switch.unblock.button.operation, ['Switch', 'SwitchFault']) + } else if (model.type === 'SECTION_FAULT_UNLOCK') { + this.buttonDown(this.Section.fault.button.operation, ['Section']) + } } else if ( (model._type === 'SignalButton' && !this.checkSignalBlock(model.signalCode)) || (model._type === 'Signal' && !model.blockade) diff --git a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue index f91118247..22b5f06ce 100644 --- a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue +++ b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue @@ -325,7 +325,7 @@ export default { return this.editModel.type === 'FLEXIBLE' }, isLinkDirection() { - return ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION'].includes( + return ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION', 'GUIDELOCK'].includes( this.editModel.type ) } From aa344631ffb283167792f8bf01ad7340a032d6c0 Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Fri, 29 Jul 2022 13:37:09 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dispatcherStationManage/signedCmd.vue | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/views/dispatcherStationManage/signedCmd.vue b/src/views/dispatcherStationManage/signedCmd.vue index 67fdaa872..d2cbae921 100644 --- a/src/views/dispatcherStationManage/signedCmd.vue +++ b/src/views/dispatcherStationManage/signedCmd.vue @@ -191,6 +191,7 @@ export default { } }, doShow() { + this.searchCmd(); this.getSenderName(); this.getSignedData(); this.dialogShow = true; @@ -245,6 +246,16 @@ export default { }).catch(error => { this.$messageBox('查询调度命令失败:' + error.message); }); + }, + searchCmd() { + return new Promise((resolve, reject) => { + sendCommandNew(this.group, 'CTC_QUERY_DISPATCH_COMMAND', {}).then((res) => { + console.log(res, '---res----'); + resolve(); + }).catch(error => { + reject(error.message); + }); + }); } } From 2bc1ae8cf334a6cd01658a7fb72868ed49a3831d Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Fri, 29 Jul 2022 14:41:36 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../displayNew/scriptDisplay/component/covertOperation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/newMap/displayNew/scriptDisplay/component/covertOperation.js b/src/views/newMap/displayNew/scriptDisplay/component/covertOperation.js index 9026d0120..9e9a5d07e 100644 --- a/src/views/newMap/displayNew/scriptDisplay/component/covertOperation.js +++ b/src/views/newMap/displayNew/scriptDisplay/component/covertOperation.js @@ -636,7 +636,7 @@ function getCTCDevicename(operationType) { deviceName = '车务终端 --> 调度命令'; } } else if (operationType == 'CTC_READ_DISPATCH_COMMAND') { - deviceName = '调度命令'; + deviceName = '车务终端 --> 调度命令'; } else if (operationType == 'CTC_SIGN_DISPATCH_COMMAND') { deviceName = '车务终端 --> 调度命令'; } else if (operationType == 'CTC_SEND_DISPATCH_COMMAND') { From 24561974d6724a9626c5d16b677e9ca026b9988d Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Fri, 29 Jul 2022 14:54:58 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dispatcherStationManage/signedCmd.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/dispatcherStationManage/signedCmd.vue b/src/views/dispatcherStationManage/signedCmd.vue index d2cbae921..742e99b6e 100644 --- a/src/views/dispatcherStationManage/signedCmd.vue +++ b/src/views/dispatcherStationManage/signedCmd.vue @@ -190,8 +190,8 @@ export default { this.signedId = activeUser.memberId; } }, - doShow() { - this.searchCmd(); + async doShow() { + await this.searchCmd(); this.getSenderName(); this.getSignedData(); this.dialogShow = true; From d835c074dd6342e657cc07ed16b1861cf51bf85f Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Fri, 29 Jul 2022 15:15:14 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dispatcherStationManage/signedCmd.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/dispatcherStationManage/signedCmd.vue b/src/views/dispatcherStationManage/signedCmd.vue index 742e99b6e..79e059107 100644 --- a/src/views/dispatcherStationManage/signedCmd.vue +++ b/src/views/dispatcherStationManage/signedCmd.vue @@ -191,7 +191,7 @@ export default { } }, async doShow() { - await this.searchCmd(); + await this.searchCmd(); // 补齐剧本指令,同cmdManage this.getSenderName(); this.getSignedData(); this.dialogShow = true;