diff --git a/src/jlmap3d/jl3dsimulation/jlmap3d.js b/src/jlmap3d/jl3dsimulation/jlmap3d.js index c28e694c5..9da21e7d9 100644 --- a/src/jlmap3d/jl3dsimulation/jlmap3d.js +++ b/src/jlmap3d/jl3dsimulation/jlmap3d.js @@ -390,7 +390,6 @@ export function JLmap3d(dom, data,skinCode,storemod,routegroup,project) { //相机轨迹动画 this.camerarailmove = function(){ - console.log(scope.mixers); camerarail.moveswitch = true; camerarail.progress = 0; let points = []; @@ -404,19 +403,24 @@ export function JLmap3d(dom, data,skinCode,storemod,routegroup,project) { // points.push(new THREE.Vector3(stationp1.x+38,11,stationp1.z-15)); // points.push(new THREE.Vector3(stationp1.x+38,11,stationp1.z+2)); // points.push(new THREE.Vector3(stationp1.x+13,5,stationp1.z+2)); - - if(stationstandlist.group.children[0].inside == false){ - points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z-26)); - points.push(new THREE.Vector3(stationp1.x+60,11,stationp1.z-26)); - points.push(new THREE.Vector3(stationp1.x+60,7,stationp1.z-26)); - points.push(new THREE.Vector3(stationp1.x-55,5,stationp1.z-26)); + if(stationstandlist.group.children[0].code == "Station34"){ + points.push(new THREE.Vector3(stationp1.x+60,4,stationp1.z-23)); + points.push(new THREE.Vector3(stationp1.x-55,4,stationp1.z-23)); }else{ - points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z+12)); - points.push(new THREE.Vector3(stationp1.x+60,11,stationp1.z+12)); - points.push(new THREE.Vector3(stationp1.x+60,7,stationp1.z+12)); - points.push(new THREE.Vector3(stationp1.x-55,5,stationp1.z+12)); + if(stationstandlist.group.children[0].inside == false){ + points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z-26)); + points.push(new THREE.Vector3(stationp1.x+60,11,stationp1.z-26)); + points.push(new THREE.Vector3(stationp1.x+60,7,stationp1.z-26)); + points.push(new THREE.Vector3(stationp1.x-55,5,stationp1.z-26)); + }else{ + points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z+12)); + points.push(new THREE.Vector3(stationp1.x+60,11,stationp1.z+12)); + points.push(new THREE.Vector3(stationp1.x+60,7,stationp1.z+12)); + points.push(new THREE.Vector3(stationp1.x-55,5,stationp1.z+12)); + } } + // points.push(new THREE.Vector3(stationp1.x+40,3,stationp1.z+15)); // controls.target = new THREE.Vector3(camera.position.x+1,camera.position.y,camera.position.z); // controls.update(); diff --git a/src/jlmap3d/main/newmodel/SectionListN.js b/src/jlmap3d/main/newmodel/SectionListN.js index 5f81fef35..11d4c622c 100644 --- a/src/jlmap3d/main/newmodel/SectionListN.js +++ b/src/jlmap3d/main/newmodel/SectionListN.js @@ -22,6 +22,9 @@ this.loadpromise = function(sectionList,sectiondata,rails,scene,assetloader){ var texture = new THREE.TextureLoader().load( JL3D_LOCAL_STATIC+'/test/z0251.png' ); texture.wrapS = texture.wrapT = THREE.RepeatWrapping; + texture.anisotropy = 0; + texture.magFilter = THREE.NearestFilter; + texture.minFilter = THREE.NearestFilter; texture.repeat.set( 1,1); var selectmaterial = new THREE.MeshPhongMaterial( { map: texture,transparent:true,alphaTest:0.1 } ); diff --git a/src/jlmap3d/main/newmodel/StationStandListN.js b/src/jlmap3d/main/newmodel/StationStandListN.js index 41078ed95..3df1fcf08 100644 --- a/src/jlmap3d/main/newmodel/StationStandListN.js +++ b/src/jlmap3d/main/newmodel/StationStandListN.js @@ -110,7 +110,7 @@ export function StationStandListN() { let textmaterial = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide,map:textt ,transparent: true} ); let textplane = new THREE.Mesh( textgeometry, textmaterial ); textplane.name = stationdata[i].code; - textplane.position.y = 70; + textplane.position.y = 80; textplane.rotation.x = Math.PI/2; //textplane.position.x = -30; scope.textlist.push(textplane); @@ -372,9 +372,10 @@ export function StationStandListN() { let textmaterial = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide,map:textt ,transparent: true} ); let textplane = new THREE.Mesh( textgeometry, textmaterial ); textplane.name = standsdata[i].code; + console.log("sss"); textplane.position.y = 70; textplane.rotation.x = Math.PI/2; - textplane.position.z = 50; + textplane.position.z = 80; scope.textlist.push(textplane); newstationmesh.add(textplane); textgeometry.dispose(); diff --git a/src/jmapNew/config/skinCode/nanjing_02.js b/src/jmapNew/config/skinCode/nanjing_02.js index 2d00e1c5d..98e1a0c04 100644 --- a/src/jmapNew/config/skinCode/nanjing_02.js +++ b/src/jmapNew/config/skinCode/nanjing_02.js @@ -255,7 +255,9 @@ class SkinCode extends defaultStyle { }, transmission: { // 传输信号机 fillColor: '#f00', - sideLength: 20 + sideLength: 20, + textColor: '#fff', + strokeColor: '#00FFFF' } }; @@ -305,13 +307,14 @@ class SkinCode extends defaultStyle { detainNormal:{ z:0, position: 1, // 扣车标识在站台上显示方向 + special:true, text: 'H', // 扣车显示内容 - insideOffset: { x: 80, y: -18 }, // 内站台扣车偏移量 - outsideOffset: { x:80, y: 25 }, // 外站台扣车偏移量 + insideOffset: { x: 15, y: -28 }, // 内站台扣车偏移量 + outsideOffset: { x:15, y: 22 }, // 外站台扣车偏移量 centerTrainColor: '#ff0', // 中心扣车颜色 andCenterTrainColor: '#ff0', // 车站+中心扣车颜色 detainTrainTextColor: '#ff0', // 车站扣除文字颜色 - fontSize: 16, // 字体大小 + fontSize: 14, // 字体大小 fontWeight: 'bolder', textVerticalAlign: 'middle' // 车站扣车 文字垂直对齐方式 }, @@ -326,12 +329,13 @@ class SkinCode extends defaultStyle { // 跳停 jump: { z:1, + special:true, position: 1, // 停跳方向 text: 'S', // 停跳显示内容 - offset: { x: 20, y: 21 }, + offset: { x: -15, y: -18 }, textColor: '#00FF00', // 停跳文字颜色 fontWeight: 'bold', // 文字居中 - fontSize: 18 // 文字大小 + fontSize: 14 // 文字大小 }, // 列车停站 trainStop: { // 停车标志 @@ -353,8 +357,8 @@ class SkinCode extends defaultStyle { // 站台 扣车/取消扣车,越站/取消越站 设置按钮 stationPlatform:{ z:1, - insideOffset: { x: 50, y: -20 }, // 内站台按钮偏移量 - outsideOffset: { x: 50, y: 20}, // 外站台按钮偏移量 + insideOffset: { y: -20 }, // 内站台按钮偏移量 + outsideOffset: { y: 20}, // 外站台按钮偏移量 detainColor:'#FFFF00', // 扣车颜色 defaultColor:'#BFBFBF', // 默认颜色 jumpColor:'#00FF00' // 跳停颜色 @@ -759,7 +763,8 @@ class SkinCode extends defaultStyle { targetCodePrefix: '000', // 目的地码前缀 defaultTargetCode: 'AAA', // 默认目的地码 trainTargetTextAlign: 'left', // 车次号文字显示位置 - trainNumberOffset: { x: 48, y: 3 }// 目的地码偏移量 + trainNumberOffset: { x: 48, y: 3 }, // 目的地码偏移量 + fontColor: '#00C300' }, trainServer: { serviceNumberPrefix: '000', // 服务号(表号)前缀 @@ -788,12 +793,16 @@ class SkinCode extends defaultStyle { trainHeadArrowWidth: 5, // 列车车头三角宽度 trainHeadArrowOffsetX: 2 // 列车车头三角偏移 }, + driveModeText: { // 驾驶模式 + driveModeTextOffset: { x: 30, y: 25 } + }, common: { hasTravelSigns: true, // 是否有行进标志 hasAtrStatus: true, // 是否有atr状态 hasDelayTime: true, // 是否有延迟时间 hasCrewNum: true, // 是否有乘务组号 hasTravelNum: true, // 是否有行程号 + hasDriveMode: true, // 是否有驾驶模式 fixedCoordinates: true, // 列车车组号等固定坐标 trainHeight: 40, // 列车高度 trainHeadDistance: 2, // 列车和车头之间的间距 @@ -804,7 +813,12 @@ class SkinCode extends defaultStyle { haveArrowText: true, // 是否需创建arrowText对象 textOffset: 1, // 字体偏移(用以控制字体据车头的距离) trainWidthMoreText: 2, // 计算列车长度时--列车长比text多出尺寸 - trainTip:true // 鼠标悬停列车状态信息框是否显示 + trainTip:true, // 鼠标悬停列车状态信息框是否显示 + cbtcSpeedColor: true, // 列车车组号 驾驶模式等 是否在cbtc列车中随速度变化颜色 + cbtcSpeedColorLevel1: '#F00', // cbtc 列车禁止时 车组号 驾驶模式 颜色 + cbtcSpeedColorLevel2: '#BA00BA', // cbtc 列车 速度 小于25 大于0 时 颜色 + cbtcSpeedColorLevel3: '#F3FE00', // cbtc 列车 速度 大于25 小于60 时 颜色 + cbtcSpeedColorLevel4: '#00FF00' // cttc 列车 速度 大于60时 颜色 }, trainStatusStyle: { defaultDestinationColor: '#FFFF00', // 默认目的地状态显示颜色 @@ -841,32 +855,32 @@ class SkinCode extends defaultStyle { driveModeStatus: [ { status: 'AM', - trainLColor: '#00FF00', - trainRColor: '#00FF00' + traveNumColor: '#00FF00', + serviceColor: '#00FF00', + tripColor: '#00FF00' }, { status: 'CM', - trainLColor: '#FFFF00', - trainRColor: '#FFFF00' + traveNumColor: '#FF0000', + serviceColor: '#FF0000', + tripColor: '#FF0000' }, { status: 'RM', - trainLColor: '#EA700D', - trainRColor: '#EA700D' + traveNumColor: '#FF0000', + serviceColor: '#FF0000', + tripColor: '#FF0000' }, { status: 'NRM', - trainLColor: '#A0522D', - trainRColor: '#A0522D' + traveNumColor: '#FF0000', + serviceColor: '#FF0000', + tripColor: '#FF0000' } ], // 列车运行模式对应车头颜色 ATO自动驾驶模式AM ATP监控下的人工驾驶模式CM 限制人工驾驶模式RM 非限制人工驾驶模式NRM runControlStatus: [], // 设置运行控制状态类型 eg:{status: '01', hShow: false, sShow: false} doorStatus: [], // 设置车门状态类型 - communicationStatus: [ - {status: 'CBTC', trainColor: '#000000'}, - {status: 'ITC', trainColor: '#C0C0C0'}, - {status: 'IL', trainColor: '#C0C0C0'} - ], // 设置通信状态 + communicationStatus: [], // 设置通信状态 alarmStatus: [], // 设置报警状态 eg:{status: '01', aShow: false} serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'} } diff --git a/src/jmapNew/shape/Signal/index.js b/src/jmapNew/shape/Signal/index.js index 6c4a026b7..1b660cd7a 100644 --- a/src/jmapNew/shape/Signal/index.js +++ b/src/jmapNew/shape/Signal/index.js @@ -339,7 +339,7 @@ class Signal extends Group { fontWeight: style.Signal.text.fontWeight, fontSize: style.Signal.text.fontSize, fontFamily: style.fontFamily, - textFill: style.Signal.text.defaultColor, + textFill: style.Signal.transmission.textColor, textAlign: textAlign, textVerticalAlign: textVerticalAlign }); @@ -356,7 +356,9 @@ class Signal extends Group { ] }, style: { - fill: style.Signal.transmission.fillColor + fill: style.Signal.transmission.fillColor, + stroke: style.Signal.transmission.strokeColor, + lineWidth: 0 } }); this.add(this.transmission); @@ -728,7 +730,9 @@ class Signal extends Group { } setState(model) { - if (!this.isShowShape || this.model.type === 'TRANSMISSION') return; + if (!this.isShowShape || this.model.type === 'TRANSMISSION') { + return; + } const path = window.location.href; this.recover(); @@ -853,7 +857,11 @@ class Signal extends Group { }; } drawSelected(selected) { - this.highlight && this.highlight.drawSelected(selected); + if (this.model.type === 'TRANSMISSION') { + this.transmission && this.transmission.setStyle({ lineWidth: selected ? 2 : 0 }); + } else { + this.highlight && this.highlight.drawSelected(selected); + } } checkIsDrawMap() { diff --git a/src/jmapNew/shape/StationStand/EStationPlatform.js b/src/jmapNew/shape/StationStand/EStationPlatform.js index 163f6d111..a52e4aa52 100644 --- a/src/jmapNew/shape/StationStand/EStationPlatform.js +++ b/src/jmapNew/shape/StationStand/EStationPlatform.js @@ -15,7 +15,8 @@ class EStationPlatform extends Group { const buttonD = model.right ? 1 : -1; const platFormOffset = model.inside ? style.StationStand.stationPlatform.insideOffset : style.StationStand.stationPlatform.outsideOffset; - const buttonX = model.position.x - buttonD * (platFormOffset.x - model.width / 2); + const buttonX = model.position.x - buttonD * ( model.width / 2 - 20); + // platFormOffset.x - const buttonY = model.position.y + buttonD * (platFormOffset.y + buttonD * model.height / 2); this.stationPlatform = new Polygon({ zlevel: this.model.zlevel, @@ -49,6 +50,7 @@ class EStationPlatform extends Group { this.stationPlatform && this.stationPlatform.setStyle({fill:color}); } recover() { + // console.log(this.model.modelData, 22222222222); // console.log(this.model.modelData.code, 111111111); const style = this.model.style; this.setColor(style.StationStand.stationPlatform.defaultColor); diff --git a/src/jmapNew/shape/StationStand/detain/EDetain.js b/src/jmapNew/shape/StationStand/detain/EDetain.js index 8fcf623ef..856b5dd0e 100644 --- a/src/jmapNew/shape/StationStand/detain/EDetain.js +++ b/src/jmapNew/shape/StationStand/detain/EDetain.js @@ -39,6 +39,10 @@ class EDetain extends Group { } }); this.add(this.detain); + + if (deviceParam.special) { + this.detain.setStyle({x:model.position.x - detainD * (model.width / 2 + detainOffset.x), 'textPadding':[1, 3], 'textBorderColor':'#fff', 'textBorderWidth':1}); + } } } diff --git a/src/jmapNew/shape/StationStand/jump/EJump.js b/src/jmapNew/shape/StationStand/jump/EJump.js index 1cd20c1d4..eed3053e4 100644 --- a/src/jmapNew/shape/StationStand/jump/EJump.js +++ b/src/jmapNew/shape/StationStand/jump/EJump.js @@ -14,24 +14,47 @@ class EJump extends Group { this.isNew = true; const jumpDirct = model.right ? -1 : 1; + const jumpOffsetY = model.inside ? -1 : 1; const jumpX = model.position.x - jumpDirct * (deviceParam.offset.x - model.width / 2); const jumpY = model.position.y + jumpDirct * deviceParam.offset.y; - this.jump = new Text({ - zlevel: this.model.zlevel, - z: this.model.z, - style: { - x: jumpX, - y: jumpY, - fontWeight: deviceParam.fontWeight, - fontSize: deviceParam.fontSize, - fontFamily: style.fontFamily, - text: deviceParam.text, - textFill: deviceParam.textColor, - textAlign: style.textStyle.textAlign, - textVerticalAlign: style.textStyle.textVerticalAlign - } - }); + if (deviceParam.special) { + this.jump = new Text({ + zlevel: this.model.zlevel, + z: this.model.z, + style: { + x: jumpX, + y: model.position.y + jumpDirct * jumpOffsetY * deviceParam.offset.y, + fontWeight: deviceParam.fontWeight, + fontSize: deviceParam.fontSize, + fontFamily: style.fontFamily, + text: deviceParam.text, + textFill: deviceParam.textColor, + textAlign: style.textStyle.textAlign, + textVerticalAlign: style.textStyle.textVerticalAlign, + textPadding:[1, 3], + textBorderColor:'#fff', + textBorderWidth:1 + } + }); + } else { + this.jump = new Text({ + zlevel: this.model.zlevel, + z: this.model.z, + style: { + x: jumpX, + y: jumpY, + fontWeight: deviceParam.fontWeight, + fontSize: deviceParam.fontSize, + fontFamily: style.fontFamily, + text: deviceParam.text, + textFill: deviceParam.textColor, + textAlign: style.textStyle.textAlign, + textVerticalAlign: style.textStyle.textVerticalAlign + } + }); + } + this.add(this.jump); } } diff --git a/src/jmapNew/shape/Train/TrainBody.js b/src/jmapNew/shape/Train/TrainBody.js index 727171569..cc3c80081 100644 --- a/src/jmapNew/shape/Train/TrainBody.js +++ b/src/jmapNew/shape/Train/TrainBody.js @@ -281,6 +281,23 @@ export default class TrainBody extends Group { }); this.add(this.delayTime); } + if (style.Train.common.hasDriveMode) { + this.driveModeText = new ETextName({ + zlevel: model.zlevel, + z: model.z + 1, + x: parseInt(model.point.x + style.Train.driveModeText.driveModeTextOffset.x), + y: parseInt(model.point.y + style.Train.driveModeText.driveModeTextOffset.y), + text: model.driveMode, + textFill: '#DADA00', + textStroke: style.trainTextColor, + textStrokeWidth: 0, + fontSize: model.fontSize, + fontFamily: style.Train.common.fontFamily, + textAlign: 'left', + textVerticalAlign: 'top' + }); + this.add(this.driveModeText); + } } removeTrainDetail() { @@ -326,6 +343,15 @@ export default class TrainBody extends Group { return new BoundingRect(0, 0, 0, 0); } } + setTravelNumColor(color) { // 设置目的地码颜色 + this.travelNum && this.travelNum.setStyle({ textFill: color }); + } + setServiceColor(color) { // 设置服务号颜色 + this.textTrainServer && this.textTrainServer.setStyle({ textFill: color }); + } + setTripColor(color) { // 设置车次号颜色 + this.textTrainTrip && this.textTrainTrip.setStyle({ textFill: color }); + } getBoundingRectOfFont() { // 获取文字高度 if (this.textTrainServer) { const tempRect = this.textTrainServer.getBoundingRect().clone(); @@ -431,6 +457,26 @@ export default class TrainBody extends Group { } } } + setSpeedColor(speed) { + const style = this.style; + if (speed == 0) { + this.crewNum && this.crewNum.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel1}); + this.textTrainGroup && this.textTrainGroup.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel1}); + this.driveModeText && this.driveModeText.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel1}); + } else if (speed < 25) { + this.crewNum && this.crewNum.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel2}); + this.textTrainGroup && this.textTrainGroup.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel2}); + this.driveModeText && this.driveModeText.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel2}); + } else if (speed < 60) { + this.crewNum && this.crewNum.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel3}); + this.textTrainGroup && this.textTrainGroup.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel3}); + this.driveModeText && this.driveModeText.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel3}); + } else { + this.crewNum && this.crewNum.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel4}); + this.textTrainGroup && this.textTrainGroup.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel4}); + this.driveModeText && this.driveModeText.setStyle({textFill: style.Train.common.cbtcSpeedColorLevel4}); + } + } setPositionText(model, right) { let widthText = 0; let point = { diff --git a/src/jmapNew/shape/Train/index.js b/src/jmapNew/shape/Train/index.js index 5d611ef31..1e8a3d99a 100644 --- a/src/jmapNew/shape/Train/index.js +++ b/src/jmapNew/shape/Train/index.js @@ -272,8 +272,11 @@ export default class Train extends Group { if (this.style.Train.trainStatusStyle.driveModeStatus.length > 0) { this.style.Train.trainStatusStyle.driveModeStatus.some((item) => { if (status === item.status) { - this.trainL && this.trainL.setColor(item.trainLColor); - this.trainR && this.trainR.setColor(item.trainRColor); + this.trainL && item.trainLColor && this.trainL.setColor(item.trainLColor); + this.trainR && item.trainRColor && this.trainR.setColor(item.trainRColor); + this.trainB && item.traveNumColor && this.trainB.setTravelNumColor(item.traveNumColor); + this.trainB && item.serviceColor && this.trainB.setServiceColor(item.serviceColor); + this.trainB && item.tripColor && this.trainB.setTripColor(item.tripColor); return true; } }); @@ -354,6 +357,9 @@ export default class Train extends Group { this.setCommunicationStatus(model.runLevel); this.setSoonerOrLater(model.dt); } + if (this.style.Train.common.cbtcSpeedColor && model.runLevel === 'CBTC') { // 南京二号线 ctc列车随速度变化 列车部分颜色发生变化 + this.trainB.setSpeedColor(model.speed); + } this.setDoorStatus(model.doorCloseLock); this.setAlarmStatus(model.alarmStatus); this.setHoldStatus(model.hold); diff --git a/src/jmapNew/theme/nanjing_02/menus/menuButton.vue b/src/jmapNew/theme/nanjing_02/menus/menuButton.vue index 1bb879b6b..e49d5dfad 100644 --- a/src/jmapNew/theme/nanjing_02/menus/menuButton.vue +++ b/src/jmapNew/theme/nanjing_02/menus/menuButton.vue @@ -113,64 +113,96 @@ - -
- + +
+
+ 执行 + 取消 + 关闭 +
+
+ +
+
+
此站扣车
+
此站扣车
+
+
+
取消设置
+
取消设置
+
此站不停
+
此站不停
+
+
+
+
+ 更新 + 关闭 + 执行 +
+ +
@@ -236,7 +268,12 @@ export default { formModelNewTrip: '', dialogVisible: false, tipList: [], - modeMatch: false + modeMatch: false, + stationDialogVisible:false, + isAllowCommand:true, + allowDetain:true, + allowCancle:true, + allowJump:true }; }, computed: { @@ -244,16 +281,25 @@ export default { 'routeList', 'stationList', 'routeData' - ]), - State2SimulationMap() { - return { - '01': 'Local', // 现地工作站 - '02': 'Center' // 中心调度工作站 - }; - }, + ]), + State2SimulationMap() { + return { + '01': 'Local', // 现地工作站 + '02': 'Center' // 中心调度工作站 + }; + }, commandId() { return OperationEvent.Command.commandHaerbin.confirm.domId; }, + setDetainTrainId() { + return OperationEvent.StationStand.setDetainTrain.menuButton.domId; + }, + cancelTrainId() { + return OperationEvent.StationStand.cancelTrain.menuButton.domId; + }, + setJumpStopId() { + return OperationEvent.StationStand.setJumpStop.menuButton.domId; + }, cr1ConfrimId() { return OperationEvent.Command.commandHaerbin.confrimCr1.domId; }, @@ -270,10 +316,10 @@ export default { watch: { '$store.state.menuOperation.setMenuChangeCount': function (val) { if (this.selected._type) { - const type = this.State2SimulationMap[this.$store.state.training.prdType]; - this.modeMatch = true; + const type = this.State2SimulationMap[this.$store.state.training.prdType]; + this.modeMatch = true; if (this.stationContorl.controlMode != type) { - this.modeMatch = false; + this.modeMatch = false; if (this.$store.state.training.prdType == '02' && this.selected._type == 'Station') { this.selectedObj = this.selected; if (this.selectedObj._type) { @@ -337,11 +383,11 @@ export default { this.deviceHighLight(this.selectedObj, true); this.oldDevice = this.selectedObj; break; - case 'StationStand': - if (this.$store.state.menuOperation.subType == 'trainSetButton') { - this.handleStandMenu(); - } - break; + // case 'StationStand': + // if (this.$store.state.menuOperation.subType == 'trainSetButton') { + // this.handleStandMenu(); + // } + // break; } } }).catch((error) => { @@ -362,9 +408,30 @@ export default { }, 'selected': function (val) { this.initMenus(); - if (val.code && val._event == MouseEvent.Left && val._type != 'Psd') { - this.dialogVisible = !this.isLocal; + if (val.code && val._event == MouseEvent.Left) { + if (val._type != 'Psd' && val._type != 'StationStand') { + this.dialogVisible = !this.isLocal; + } + if (val._type == 'StationStand' && this.$store.state.menuOperation.subType == 'trainSetButton') { + if (!(this.selectedObj.assignSkip || this.selectedObj.allSkip || this.selectedObj.centerHoldTrain || this.selectedObj.stationHoldTrain)) { + this.allowCancle = false; + } else { + if (this.selectedObj.assignSkip || this.selectedObj.allSkip) { + this.allowJump = false; + this.allowCancle = true; + this.allowDetain = false; + } + if (this.selectedObj.centerHoldTrain || this.selectedObj.stationHoldTrain) { + this.allowDetain = false; + this.allowCancle = true; + this.allowJump = false; + } + } + + this.stationDialogVisible = true; + } } else if (!val.code) { + this.dialogVisible = false; if (this.$store.state.training.mode != TrainingMode.TEACH) { this.handleBasicMenu(); } @@ -452,10 +519,10 @@ export default { this.centralizedStationList = new Array(15).fill({}); this.switchParamList.forEach((swicth, index) => { - this.centralizedStationList[index] = swicth; - if (swicth.disabledCb && this.selectedObj) { + this.centralizedStationList[index] = swicth; + if (swicth.disabledCb && this.selectedObj) { swicth.disabled = swicth.disabledCb(this.selectedObj); - } + } }); this.pushTempData([this.selectedObj]); this.param = { @@ -474,9 +541,9 @@ export default { this.oldClickObj = deepAssign({}, this.selectedObj); this.centralizedStationList = new Array(15).fill({}); this.signalParamList.forEach((singal, index) => { - if (singal.disabledCb && this.selectedObj) { + if (singal.disabledCb && this.selectedObj) { singal.disabled = singal.disabledCb(this.selectedObj); - } + } this.centralizedStationList[index] = singal; }); @@ -485,18 +552,18 @@ export default { this.param = { signalCode: this.selectedObj.code }; - }, - handleSectionMenu() { + }, + handleSectionMenu() { this.deviceHighLight(this.oldDevice, false); this.deviceHighLight(this.selectedObj, true); this.oldDevice = this.selectedObj; this.centralizedStationList = new Array(15).fill({}); this.sectionParamList.forEach((section, index) => { - this.centralizedStationList[index] = section; - if (section.disabledCb && this.selectedObj) { + this.centralizedStationList[index] = section; + if (section.disabledCb && this.selectedObj) { section.disabled = section.disabledCb(this.selectedObj); - } + } }); this.pushTempData([this.selectedObj]); @@ -530,10 +597,10 @@ export default { handleStationMenu() { this.centralizedStationList = new Array(15).fill({}); this.stationParamList.forEach((station, index) => { - this.centralizedStationList[index] = station; - if (station.disabledCb && this.selectedObj) { + this.centralizedStationList[index] = station; + if (station.disabledCb && this.selectedObj) { station.disabled = station.disabledCb(this.selectedObj); - } + } }); this.pushTempData([this.selectedObj]); @@ -547,10 +614,10 @@ export default { } this.centralizedStationList = new Array(15).fill({}); this.standParamList.forEach((stand, index) => { - this.centralizedStationList[index] = stand; - if (stand.disabledCb && this.selectedObj) { + this.centralizedStationList[index] = stand; + if (stand.disabledCb && this.selectedObj) { stand.disabled = stand.disabledCb(this.selectedObj); - } + } }); const data = Object.assign(this.selectedObj); @@ -777,6 +844,15 @@ export default { handleClose() { this.dialogVisible = false; }, + handleStationClose() { + this.cmdType = ''; + this.operate = ''; // 清空指令 + this.isAllowCommand = true; + this.stationDialogVisible = false; + this.allowJump = true; + this.allowCancle = true; + this.allowDetain = true; + }, handleTrainParam() { if (this.selectedObj.type === '01') { this.formModelSectionName = this.selectedObj.name; @@ -838,6 +914,59 @@ export default { this.$refs.noticeInfo.doShow('请输入正确的车次号'); } }, + stationToCommand() { + const step = { + operation: OperationEvent.Command.commandHaerbin.confirm.operation, + over:true, + cmdType:this.cmdType + }; + this.$store.dispatch('training/nextNew', step).then(({ valid }) => { + if (valid) { + this.handleStationClose(); + } + }).catch((error) => { + console.error(error); + this.handleStationClose(); + this.$refs.noticeInfo.doShow(); + }); + }, + stationCommand(row) { + const step = {}; + this.operate = row.operation; + step.operate = this.operate; + step.start = true; + step.param = {'standCode':this.selectedObj.code}; + this.cmdType = row.cmdType; + this.$store.dispatch('training/nextNew', step).then(({ valid }) => { + if (valid) { + this.isAllowCommand = false; + // this.securityCommand = row.securityCommand || row.next; + } else if (valid) { + this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + } + }).catch((error) => { + console.error(error); + this.$refs.noticeInfo.doShow(); + }); + }, + stationDetainTrain() { + const row = {}; + row.operation = OperationEvent.StationStand.setDetainTrain.menuButton.operation; + row.cmdType = CMD.Stand.CMD_STAND_SET_HOLD_TRAIN; + this.stationCommand(row); + }, + stationCancleTrain() { + const row = {}; + row.operation = OperationEvent.StationStand.cancelTrain.menuButton.operation; + row.cmdType = CMD.Stand.CMD_STAND_CANCEL_SETTING; + this.stationCommand(row); + }, + stationJumpTrain() { + const row = {}; + row.operation = OperationEvent.StationStand.setJumpStop.menuButton.operation; + row.cmdType = CMD.Stand.CMD_STAND_SET_JUMP_STOP; + this.stationCommand(row); + }, initMenus() { this.basicParamList = this.$store.state.training.prdType === '01' ? [ { name: '' }, @@ -847,7 +976,7 @@ export default { { name: '' }, { name: '' }, { name: '' }, - { name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, securityCommand: true, disabledCb: (selectedObj) => ['Local'].includes(selectedObj.controlMode) }, + { name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, securityCommand: true, disabledCb: (selectedObj) => ['Local'].includes(selectedObj.controlMode) }, { name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, disabledCb: (selectedObj) => ['Local'].includes(selectedObj.controlMode) }, { name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, disabledCb: (selectedObj) => ['Center'].includes(selectedObj.controlMode) }, { name: '' }, @@ -871,34 +1000,24 @@ export default { { name: '' }, { name: '' }, { name: '' }, - { name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, securityCommand: true, disabledCb: (selectedObj) => ['Local'].includes(selectedObj.controlMode) }, - { name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, disabledCb: (selectedObj) => ['Local'].includes(selectedObj.controlMode) }, - { name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, disabledCb: (selectedObj) => ['Center'].includes(selectedObj.controlMode) }, { name: '' }, { name: '' }, { name: '' }, { name: '' }, - { name: '关闭索引', cmdType: '', operate: OperationEvent.StationControl.requestCentralControl.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) } - // { name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '释放指令', cmdType: '', operate: OperationEvent.Station.humanControlALL.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '重启令解', cmdType: CMD.Station.CMD_STATION_RESTART, operate:OperationEvent.Station.stationRestart.menuButton, securityCommand: true, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode)}, - // { name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode)}, - // { name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, securityCommand: true, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, disabledName: 'controlMode', mode: 'Center', disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - // { name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, disabledName: 'controlMode', mode: 'None', disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, - ]; + { name: '' }, + { name: '' }, + { name: '' }, + { name: '' } + ]; - this.sectionParamList = this.selected && this.selected.type == '05'? [ + this.sectionParamList = this.selected && this.selected.type == '05' ? [ { name: '岔芯设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '岔芯消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '强行消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '预复位', cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '封锁岔心', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '解封岔心', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '强解岔心', cmdType: CMD.Section.CMD_SECTION_FORCE_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, + { name: '解封岔心', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, + { name: '强解岔心', cmdType: CMD.Section.CMD_SECTION_FORCE_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch } ] : [ { name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '轨区消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, @@ -907,7 +1026,7 @@ export default { { name: '预复位', cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '解封区段', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch } - ]; + ]; this.switchParamList = [ { name: '岔区设限', cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED, operate: OperationEvent.Switch.setSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch}, { name: '岔区消限', cmdType: CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED, operate: OperationEvent.Switch.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, @@ -929,7 +1048,7 @@ export default { { name: '关闭信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '开放信号', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, + { name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menuButton, disabledCb: (selectedObj) => selectedObj.atsControl || !this.modeMatch }, { name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menuButton, disabledCb: (selectedObj) => !selectedObj.atsControl || !this.modeMatch }, @@ -945,7 +1064,7 @@ export default { { name: '关闭信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '开放信号', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, + { name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menuButton, disabledCb: (selectedObj) => selectedObj.atsControl || !this.modeMatch }, { name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menuButton, disabledCb: (selectedObj) => !selectedObj.atsControl || !this.modeMatch }, @@ -960,8 +1079,12 @@ export default { // { name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, ]; - this.stationParamList = [ - { name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, disabledCb: (selectedObj) => !['Local'].includes(selectedObj.controlMode)||!this.modeMatch } + this.stationParamList = this.$store.state.training.prdType === '01' ? [ + { name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, disabledCb: (selectedObj) => !['Local'].includes(selectedObj.controlMode) || !this.modeMatch } + ] : [ + { name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, disabledCb: (selectedObj) => !['Local'].includes(selectedObj.controlMode) || !this.modeMatch }, + { name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, disabledCb: (selectedObj) => ['Center'].includes(selectedObj.controlMode) }, + { name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, disabledCb: (selectedObj) => ['Local', 'None'].includes(selectedObj.controlMode) } ]; // [ // { name: '' }, @@ -984,12 +1107,12 @@ export default { // { name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menuButton }, // { name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menuButton } // ]; - this.standParamList = this.$store.state.training.prdType === '01' ? [] : [ - { name: '扣车', cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '越站', cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP, operate: OperationEvent.StationStand.setJumpStop.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '取消越站', cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP, operate: OperationEvent.StationStand.cancelJumpStop.menuButton, disabledCb: (selectedObj) => !this.modeMatch } - ]; + // this.standParamList = this.$store.state.training.prdType === '01' ? [] : [ + // { name: '扣车', cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, show: false }, + // { name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, show: false }, + // { name: '越站', cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP, operate: OperationEvent.StationStand.setJumpStop.menuButton, show: false }, + // { name: '取消越站', cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP, operate: OperationEvent.StationStand.cancelJumpStop.menuButton, show: false } + // ]; this.routeParamList = [ { name: '排列进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '取消进路', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menuButton, disabledCb: (selectedObj) => !this.modeMatch } @@ -1237,4 +1360,66 @@ export default { from {transform: rotate(0);} to {transform: rotate(360deg);} } + + .station_buttonGroup{ + display: inline-block; + margin-top: 5px; + width: 100%; + } + .station_buttonGroupL{ + margin-left: 10px; + float: left; + } + .station_buttonGroupR{ + float: right; + margin-right: 10px; + } + .station_jumpTrain{ + margin-top: 15px; + } + .station_line{ + padding: 0px 10px; + width: 100%; + height: 20px; + margin-top: 10px; + &::before{ + content:''; + border:1px #ccc solid; + width: 100%; + display: inline-block; + height: 20px; + } + } + .station_commandGroup{ + margin-top: 10px; + padding: 10px; + } + .station_updateStatus{} + .station_command{ + float: right; + } + .station_close{ + float: right; + } + .stationButton{ + font-size: 12px; + width: 100px; + border-radius: 1px !important; + border: 1px solid #426688; + background: #DDDDDD; + color: #000; + cursor: pointer; + text-align: center; + padding: 4px 0px; + cursor: pointer; + &:hover, &.active{ + background: #CFE8FC; + } + &.disabled{ + background: #f0f0f0; + color:#a0a0a0; + border: 1px solid #D0CEC5; + cursor: not-allowed; + } + } diff --git a/src/scripts/cmdPlugin/OperationHandler.js b/src/scripts/cmdPlugin/OperationHandler.js index da372965e..a806347ab 100644 --- a/src/scripts/cmdPlugin/OperationHandler.js +++ b/src/scripts/cmdPlugin/OperationHandler.js @@ -1887,6 +1887,12 @@ export const OperationEvent = { operation: '519', domId: '_Tips-Stand-openPsdByHand-Menu' } + }, + cancelTrain:{ + menuButton: { + operation: '520', + domId: '_Tips-Stand-CancelTrain-MenuButton{BOTTOM}' + } } },