This commit is contained in:
lVAL 2021-01-19 18:22:14 +08:00
commit 332aa9b61a
12 changed files with 481 additions and 179 deletions

View File

@ -390,7 +390,6 @@ export function JLmap3d(dom, data,skinCode,storemod,routegroup,project) {
//相机轨迹动画 //相机轨迹动画
this.camerarailmove = function(){ this.camerarailmove = function(){
console.log(scope.mixers);
camerarail.moveswitch = true; camerarail.moveswitch = true;
camerarail.progress = 0; camerarail.progress = 0;
let points = []; 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-15));
// points.push(new THREE.Vector3(stationp1.x+38,11,stationp1.z+2)); // points.push(new THREE.Vector3(stationp1.x+38,11,stationp1.z+2));
// points.push(new THREE.Vector3(stationp1.x+13,5,stationp1.z+2)); // points.push(new THREE.Vector3(stationp1.x+13,5,stationp1.z+2));
if(stationstandlist.group.children[0].code == "Station34"){
if(stationstandlist.group.children[0].inside == false){ points.push(new THREE.Vector3(stationp1.x+60,4,stationp1.z-23));
points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z-26)); points.push(new THREE.Vector3(stationp1.x-55,4,stationp1.z-23));
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{ }else{
points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z+12)); if(stationstandlist.group.children[0].inside == false){
points.push(new THREE.Vector3(stationp1.x+60,11,stationp1.z+12)); points.push(new THREE.Vector3(stationp1.x-65,11,stationp1.z-26));
points.push(new THREE.Vector3(stationp1.x+60,7,stationp1.z+12)); points.push(new THREE.Vector3(stationp1.x+60,11,stationp1.z-26));
points.push(new THREE.Vector3(stationp1.x-55,5,stationp1.z+12)); 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)); // 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.target = new THREE.Vector3(camera.position.x+1,camera.position.y,camera.position.z);
// controls.update(); // controls.update();

View File

@ -22,6 +22,9 @@ this.loadpromise = function(sectionList,sectiondata,rails,scene,assetloader){
var texture = new THREE.TextureLoader().load( JL3D_LOCAL_STATIC+'/test/z0251.png' ); var texture = new THREE.TextureLoader().load( JL3D_LOCAL_STATIC+'/test/z0251.png' );
texture.wrapS = texture.wrapT = THREE.RepeatWrapping; texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
texture.anisotropy = 0;
texture.magFilter = THREE.NearestFilter;
texture.minFilter = THREE.NearestFilter;
texture.repeat.set( 1,1); texture.repeat.set( 1,1);
var selectmaterial = new THREE.MeshPhongMaterial( { map: texture,transparent:true,alphaTest:0.1 } ); var selectmaterial = new THREE.MeshPhongMaterial( { map: texture,transparent:true,alphaTest:0.1 } );

View File

@ -110,7 +110,7 @@ export function StationStandListN() {
let textmaterial = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide,map:textt ,transparent: true} ); let textmaterial = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide,map:textt ,transparent: true} );
let textplane = new THREE.Mesh( textgeometry, textmaterial ); let textplane = new THREE.Mesh( textgeometry, textmaterial );
textplane.name = stationdata[i].code; textplane.name = stationdata[i].code;
textplane.position.y = 70; textplane.position.y = 80;
textplane.rotation.x = Math.PI/2; textplane.rotation.x = Math.PI/2;
//textplane.position.x = -30; //textplane.position.x = -30;
scope.textlist.push(textplane); scope.textlist.push(textplane);
@ -372,9 +372,10 @@ export function StationStandListN() {
let textmaterial = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide,map:textt ,transparent: true} ); let textmaterial = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide,map:textt ,transparent: true} );
let textplane = new THREE.Mesh( textgeometry, textmaterial ); let textplane = new THREE.Mesh( textgeometry, textmaterial );
textplane.name = standsdata[i].code; textplane.name = standsdata[i].code;
console.log("sss");
textplane.position.y = 70; textplane.position.y = 70;
textplane.rotation.x = Math.PI/2; textplane.rotation.x = Math.PI/2;
textplane.position.z = 50; textplane.position.z = 80;
scope.textlist.push(textplane); scope.textlist.push(textplane);
newstationmesh.add(textplane); newstationmesh.add(textplane);
textgeometry.dispose(); textgeometry.dispose();

View File

@ -255,7 +255,9 @@ class SkinCode extends defaultStyle {
}, },
transmission: { // 传输信号机 transmission: { // 传输信号机
fillColor: '#f00', fillColor: '#f00',
sideLength: 20 sideLength: 20,
textColor: '#fff',
strokeColor: '#00FFFF'
} }
}; };
@ -305,13 +307,14 @@ class SkinCode extends defaultStyle {
detainNormal:{ detainNormal:{
z:0, z:0,
position: 1, // 扣车标识在站台上显示方向 position: 1, // 扣车标识在站台上显示方向
special:true,
text: 'H', // 扣车显示内容 text: 'H', // 扣车显示内容
insideOffset: { x: 80, y: -18 }, // 内站台扣车偏移量 insideOffset: { x: 15, y: -28 }, // 内站台扣车偏移量
outsideOffset: { x:80, y: 25 }, // 外站台扣车偏移量 outsideOffset: { x:15, y: 22 }, // 外站台扣车偏移量
centerTrainColor: '#ff0', // 中心扣车颜色 centerTrainColor: '#ff0', // 中心扣车颜色
andCenterTrainColor: '#ff0', // 车站+中心扣车颜色 andCenterTrainColor: '#ff0', // 车站+中心扣车颜色
detainTrainTextColor: '#ff0', // 车站扣除文字颜色 detainTrainTextColor: '#ff0', // 车站扣除文字颜色
fontSize: 16, // 字体大小 fontSize: 14, // 字体大小
fontWeight: 'bolder', fontWeight: 'bolder',
textVerticalAlign: 'middle' // 车站扣车 文字垂直对齐方式 textVerticalAlign: 'middle' // 车站扣车 文字垂直对齐方式
}, },
@ -326,12 +329,13 @@ class SkinCode extends defaultStyle {
// 跳停 // 跳停
jump: { jump: {
z:1, z:1,
special:true,
position: 1, // 停跳方向 position: 1, // 停跳方向
text: 'S', // 停跳显示内容 text: 'S', // 停跳显示内容
offset: { x: 20, y: 21 }, offset: { x: -15, y: -18 },
textColor: '#00FF00', // 停跳文字颜色 textColor: '#00FF00', // 停跳文字颜色
fontWeight: 'bold', // 文字居中 fontWeight: 'bold', // 文字居中
fontSize: 18 // 文字大小 fontSize: 14 // 文字大小
}, },
// 列车停站 // 列车停站
trainStop: { // 停车标志 trainStop: { // 停车标志
@ -353,8 +357,8 @@ class SkinCode extends defaultStyle {
// 站台 扣车/取消扣车,越站/取消越站 设置按钮 // 站台 扣车/取消扣车,越站/取消越站 设置按钮
stationPlatform:{ stationPlatform:{
z:1, z:1,
insideOffset: { x: 50, y: -20 }, // 内站台按钮偏移量 insideOffset: { y: -20 }, // 内站台按钮偏移量
outsideOffset: { x: 50, y: 20}, // 外站台按钮偏移量 outsideOffset: { y: 20}, // 外站台按钮偏移量
detainColor:'#FFFF00', // 扣车颜色 detainColor:'#FFFF00', // 扣车颜色
defaultColor:'#BFBFBF', // 默认颜色 defaultColor:'#BFBFBF', // 默认颜色
jumpColor:'#00FF00' // 跳停颜色 jumpColor:'#00FF00' // 跳停颜色
@ -759,7 +763,8 @@ class SkinCode extends defaultStyle {
targetCodePrefix: '000', // 目的地码前缀 targetCodePrefix: '000', // 目的地码前缀
defaultTargetCode: 'AAA', // 默认目的地码 defaultTargetCode: 'AAA', // 默认目的地码
trainTargetTextAlign: 'left', // 车次号文字显示位置 trainTargetTextAlign: 'left', // 车次号文字显示位置
trainNumberOffset: { x: 48, y: 3 }// 目的地码偏移量 trainNumberOffset: { x: 48, y: 3 }, // 目的地码偏移量
fontColor: '#00C300'
}, },
trainServer: { trainServer: {
serviceNumberPrefix: '000', // 服务号(表号)前缀 serviceNumberPrefix: '000', // 服务号(表号)前缀
@ -788,12 +793,16 @@ class SkinCode extends defaultStyle {
trainHeadArrowWidth: 5, // 列车车头三角宽度 trainHeadArrowWidth: 5, // 列车车头三角宽度
trainHeadArrowOffsetX: 2 // 列车车头三角偏移 trainHeadArrowOffsetX: 2 // 列车车头三角偏移
}, },
driveModeText: { // 驾驶模式
driveModeTextOffset: { x: 30, y: 25 }
},
common: { common: {
hasTravelSigns: true, // 是否有行进标志 hasTravelSigns: true, // 是否有行进标志
hasAtrStatus: true, // 是否有atr状态 hasAtrStatus: true, // 是否有atr状态
hasDelayTime: true, // 是否有延迟时间 hasDelayTime: true, // 是否有延迟时间
hasCrewNum: true, // 是否有乘务组号 hasCrewNum: true, // 是否有乘务组号
hasTravelNum: true, // 是否有行程号 hasTravelNum: true, // 是否有行程号
hasDriveMode: true, // 是否有驾驶模式
fixedCoordinates: true, // 列车车组号等固定坐标 fixedCoordinates: true, // 列车车组号等固定坐标
trainHeight: 40, // 列车高度 trainHeight: 40, // 列车高度
trainHeadDistance: 2, // 列车和车头之间的间距 trainHeadDistance: 2, // 列车和车头之间的间距
@ -804,7 +813,12 @@ class SkinCode extends defaultStyle {
haveArrowText: true, // 是否需创建arrowText对象 haveArrowText: true, // 是否需创建arrowText对象
textOffset: 1, // 字体偏移(用以控制字体据车头的距离) textOffset: 1, // 字体偏移(用以控制字体据车头的距离)
trainWidthMoreText: 2, // 计算列车长度时--列车长比text多出尺寸 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: { trainStatusStyle: {
defaultDestinationColor: '#FFFF00', // 默认目的地状态显示颜色 defaultDestinationColor: '#FFFF00', // 默认目的地状态显示颜色
@ -841,32 +855,32 @@ class SkinCode extends defaultStyle {
driveModeStatus: [ driveModeStatus: [
{ {
status: 'AM', status: 'AM',
trainLColor: '#00FF00', traveNumColor: '#00FF00',
trainRColor: '#00FF00' serviceColor: '#00FF00',
tripColor: '#00FF00'
}, },
{ {
status: 'CM', status: 'CM',
trainLColor: '#FFFF00', traveNumColor: '#FF0000',
trainRColor: '#FFFF00' serviceColor: '#FF0000',
tripColor: '#FF0000'
}, },
{ {
status: 'RM', status: 'RM',
trainLColor: '#EA700D', traveNumColor: '#FF0000',
trainRColor: '#EA700D' serviceColor: '#FF0000',
tripColor: '#FF0000'
}, },
{ {
status: 'NRM', status: 'NRM',
trainLColor: '#A0522D', traveNumColor: '#FF0000',
trainRColor: '#A0522D' serviceColor: '#FF0000',
tripColor: '#FF0000'
} }
], // 列车运行模式对应车头颜色 ATO自动驾驶模式AM ATP监控下的人工驾驶模式CM 限制人工驾驶模式RM 非限制人工驾驶模式NRM ], // 列车运行模式对应车头颜色 ATO自动驾驶模式AM ATP监控下的人工驾驶模式CM 限制人工驾驶模式RM 非限制人工驾驶模式NRM
runControlStatus: [], // 设置运行控制状态类型 eg:{status: '01', hShow: false, sShow: false} runControlStatus: [], // 设置运行控制状态类型 eg:{status: '01', hShow: false, sShow: false}
doorStatus: [], // 设置车门状态类型 doorStatus: [], // 设置车门状态类型
communicationStatus: [ communicationStatus: [], // 设置通信状态
{status: 'CBTC', trainColor: '#000000'},
{status: 'ITC', trainColor: '#C0C0C0'},
{status: 'IL', trainColor: '#C0C0C0'}
], // 设置通信状态
alarmStatus: [], // 设置报警状态 eg:{status: '01', aShow: false} alarmStatus: [], // 设置报警状态 eg:{status: '01', aShow: false}
serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'} serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'}
} }

View File

@ -339,7 +339,7 @@ class Signal extends Group {
fontWeight: style.Signal.text.fontWeight, fontWeight: style.Signal.text.fontWeight,
fontSize: style.Signal.text.fontSize, fontSize: style.Signal.text.fontSize,
fontFamily: style.fontFamily, fontFamily: style.fontFamily,
textFill: style.Signal.text.defaultColor, textFill: style.Signal.transmission.textColor,
textAlign: textAlign, textAlign: textAlign,
textVerticalAlign: textVerticalAlign textVerticalAlign: textVerticalAlign
}); });
@ -356,7 +356,9 @@ class Signal extends Group {
] ]
}, },
style: { style: {
fill: style.Signal.transmission.fillColor fill: style.Signal.transmission.fillColor,
stroke: style.Signal.transmission.strokeColor,
lineWidth: 0
} }
}); });
this.add(this.transmission); this.add(this.transmission);
@ -728,7 +730,9 @@ class Signal extends Group {
} }
setState(model) { setState(model) {
if (!this.isShowShape || this.model.type === 'TRANSMISSION') return; if (!this.isShowShape || this.model.type === 'TRANSMISSION') {
return;
}
const path = window.location.href; const path = window.location.href;
this.recover(); this.recover();
@ -853,7 +857,11 @@ class Signal extends Group {
}; };
} }
drawSelected(selected) { 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() { checkIsDrawMap() {

View File

@ -15,7 +15,8 @@ class EStationPlatform extends Group {
const buttonD = model.right ? 1 : -1; const buttonD = model.right ? 1 : -1;
const platFormOffset = model.inside ? style.StationStand.stationPlatform.insideOffset : style.StationStand.stationPlatform.outsideOffset; 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); const buttonY = model.position.y + buttonD * (platFormOffset.y + buttonD * model.height / 2);
this.stationPlatform = new Polygon({ this.stationPlatform = new Polygon({
zlevel: this.model.zlevel, zlevel: this.model.zlevel,
@ -49,6 +50,7 @@ class EStationPlatform extends Group {
this.stationPlatform && this.stationPlatform.setStyle({fill:color}); this.stationPlatform && this.stationPlatform.setStyle({fill:color});
} }
recover() { recover() {
// console.log(this.model.modelData, 22222222222);
// console.log(this.model.modelData.code, 111111111); // console.log(this.model.modelData.code, 111111111);
const style = this.model.style; const style = this.model.style;
this.setColor(style.StationStand.stationPlatform.defaultColor); this.setColor(style.StationStand.stationPlatform.defaultColor);

View File

@ -39,6 +39,10 @@ class EDetain extends Group {
} }
}); });
this.add(this.detain); 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});
}
} }
} }

View File

@ -14,24 +14,47 @@ class EJump extends Group {
this.isNew = true; this.isNew = true;
const jumpDirct = model.right ? -1 : 1; 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 jumpX = model.position.x - jumpDirct * (deviceParam.offset.x - model.width / 2);
const jumpY = model.position.y + jumpDirct * deviceParam.offset.y; const jumpY = model.position.y + jumpDirct * deviceParam.offset.y;
this.jump = new Text({ if (deviceParam.special) {
zlevel: this.model.zlevel, this.jump = new Text({
z: this.model.z, zlevel: this.model.zlevel,
style: { z: this.model.z,
x: jumpX, style: {
y: jumpY, x: jumpX,
fontWeight: deviceParam.fontWeight, y: model.position.y + jumpDirct * jumpOffsetY * deviceParam.offset.y,
fontSize: deviceParam.fontSize, fontWeight: deviceParam.fontWeight,
fontFamily: style.fontFamily, fontSize: deviceParam.fontSize,
text: deviceParam.text, fontFamily: style.fontFamily,
textFill: deviceParam.textColor, text: deviceParam.text,
textAlign: style.textStyle.textAlign, textFill: deviceParam.textColor,
textVerticalAlign: style.textStyle.textVerticalAlign 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); this.add(this.jump);
} }
} }

View File

@ -281,6 +281,23 @@ export default class TrainBody extends Group {
}); });
this.add(this.delayTime); 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() { removeTrainDetail() {
@ -326,6 +343,15 @@ export default class TrainBody extends Group {
return new BoundingRect(0, 0, 0, 0); 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() { // 获取文字高度 getBoundingRectOfFont() { // 获取文字高度
if (this.textTrainServer) { if (this.textTrainServer) {
const tempRect = this.textTrainServer.getBoundingRect().clone(); 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) { setPositionText(model, right) {
let widthText = 0; let widthText = 0;
let point = { let point = {

View File

@ -272,8 +272,11 @@ export default class Train extends Group {
if (this.style.Train.trainStatusStyle.driveModeStatus.length > 0) { if (this.style.Train.trainStatusStyle.driveModeStatus.length > 0) {
this.style.Train.trainStatusStyle.driveModeStatus.some((item) => { this.style.Train.trainStatusStyle.driveModeStatus.some((item) => {
if (status === item.status) { if (status === item.status) {
this.trainL && this.trainL.setColor(item.trainLColor); this.trainL && item.trainLColor && this.trainL.setColor(item.trainLColor);
this.trainR && this.trainR.setColor(item.trainRColor); 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; return true;
} }
}); });
@ -354,6 +357,9 @@ export default class Train extends Group {
this.setCommunicationStatus(model.runLevel); this.setCommunicationStatus(model.runLevel);
this.setSoonerOrLater(model.dt); this.setSoonerOrLater(model.dt);
} }
if (this.style.Train.common.cbtcSpeedColor && model.runLevel === 'CBTC') { // 南京二号线 ctc列车随速度变化 列车部分颜色发生变化
this.trainB.setSpeedColor(model.speed);
}
this.setDoorStatus(model.doorCloseLock); this.setDoorStatus(model.doorCloseLock);
this.setAlarmStatus(model.alarmStatus); this.setAlarmStatus(model.alarmStatus);
this.setHoldStatus(model.hold); this.setHoldStatus(model.hold);

View File

@ -113,64 +113,96 @@
</el-row> </el-row>
</div> </div>
</div> </div>
<el-dialog <div v-else>
v-else <el-dialog
v-dialogDrag v-dialogDrag
class="haerbin-01__systerm __menuButton" class="haerbin-01__systerm __menuButton"
style="pointer-events: none" style="pointer-events: none"
title="Dialog" title="Dialog"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
:modal="false" :modal="false"
:close-on-click-modal="false" :close-on-click-modal="false"
width="30%" width="30%"
append-to-body append-to-body
:before-close="handleClose" :before-close="handleClose"
> >
<div style="margin-bottom: 30px"> <div style="margin-bottom: 30px">
<template v-if="secondConfirm"> <template v-if="secondConfirm">
<el-row> <el-row>
<div style="display: flex;justify-content: space-between;margin: 10px 3px"> <div style="display: flex;justify-content: space-between;margin: 10px 3px">
<el-button :id="cr1ConfrimId" class="fl" :class="{'disabled': cr1Confrim}" style="line-height: 18px; margin-top: 4px;" :disabled="cr1Confrim" plain @click="clickCr1Confirm">CR1</el-button> <el-button :id="cr1ConfrimId" class="fl" :class="{'disabled': cr1Confrim}" style="line-height: 18px; margin-top: 4px;" :disabled="cr1Confrim" plain @click="clickCr1Confirm">CR1</el-button>
<el-button :id="cr2ConfirmId" class="fr" :class="{'disabled': !cr1Confrim}" style="line-height: 18px; margin-top: 4px;" :disabled="!cr1Confrim" plain @click="clickCr2Confirm">CR2</el-button> <el-button :id="cr2ConfirmId" class="fr" :class="{'disabled': !cr1Confrim}" style="line-height: 18px; margin-top: 4px;" :disabled="!cr1Confrim" plain @click="clickCr2Confirm">CR2</el-button>
</div>
</el-row>
<el-row>
<el-col :span="5">
<img :src="banIcon" class="ban-img">
</el-col>
<el-col :span="19">
<div style="display: flex;justify-content: flex-start;margin-top: 10px;">
<div style="height: 10px;width: 70px;background-color: #F00;" />
<div style="height: 10px;width: 70px;background-color: #0F0;margin-left: 40px;" />
<div style="height: 10px;width: 70px;background-color: #00F;margin-left: 40px;" />
</div> </div>
<div class="color-strip-container" style=""> </el-row>
<div style="height: 10px;width: 70px;background-color: #F00;" /> <el-row>
<div style="height: 10px;width: 70px;background-color: #0F0;margin-left: 40px;" /> <el-col :span="5">
<div style="height: 10px;width: 70px;background-color: #00F;margin-left: 40px;" /> <img :src="banIcon" class="ban-img">
</div> </el-col>
</el-col> <el-col :span="19">
</el-row> <div style="display: flex;justify-content: flex-start;margin-top: 10px;">
</template> <div style="height: 10px;width: 70px;background-color: #F00;" />
<template v-else> <div style="height: 10px;width: 70px;background-color: #0F0;margin-left: 40px;" />
<el-row style="text-align: center"> <div style="height: 10px;width: 70px;background-color: #00F;margin-left: 40px;" />
<template v-for="(item, index) in centralizedStationList"> </div>
<div :key="index" class="nav-border-row row-width-box flex-row"> <div class="color-strip-container" style="">
<div v-if="item.name && (item.disabled || !item.cmdType)" :id="item.operate.domId" class="fake-button-disabled">{{ item.name }}</div> <div style="height: 10px;width: 70px;background-color: #F00;" />
<div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button-active': 'fake-button-disabled']" @click="clickCommand(item, index)">{{ item.name }}</div> <div style="height: 10px;width: 70px;background-color: #0F0;margin-left: 40px;" />
<div v-else-if="item.name && !item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button': 'fake-button-disabled', (stationContorl.controlMode != item.mode || item.mode == 'None') && item.next && paramIndex == index ? 'active': '']" @click="clickCommand(item, index)">{{ item.name }}</div> <div style="height: 10px;width: 70px;background-color: #00F;margin-left: 40px;" />
<div v-else class="fake-button-grayk" /> </div>
</div> </el-col>
</template> </el-row>
</el-row> </template>
</template> <template v-else>
</div> <el-row style="text-align: center">
<div class="separator"> <template v-for="(item, index) in centralizedStationList">
<el-button :id="commandId" class="fl" :class="{'disabled': canCommand || secondConfirm}" style="line-height: 18px; margin-top: 4px;" plain :disabled="canCommand || secondConfirm" @click="command">执行</el-button> <div :key="index" class="nav-border-row row-width-box flex-row">
<el-button class="fr" style="line-height: 18px; margin-top: 4px;" plain @click="cancle">取消</el-button> <div v-if="item.name && (item.disabled || !item.cmdType)" :id="item.operate.domId" class="fake-button-disabled">{{ item.name }}</div>
<el-button class="fr" style="line-height: 18px; margin-top: 4px;" plain @click="handleClose">关闭</el-button> <div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button-active': 'fake-button-disabled']" @click="clickCommand(item, index)">{{ item.name }}</div>
</div> <div v-else-if="item.name && !item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button': 'fake-button-disabled', (stationContorl.controlMode != item.mode || item.mode == 'None') && item.next && paramIndex == index ? 'active': '']" @click="clickCommand(item, index)">{{ item.name }}</div>
</el-dialog> <div v-else class="fake-button-grayk" />
</div>
</template>
</el-row>
</template>
</div>
<div class="separator">
<el-button :id="commandId" class="fl" :class="{'disabled': canCommand || secondConfirm}" style="line-height: 18px; margin-top: 4px;" plain :disabled="canCommand || secondConfirm" @click="command">执行</el-button>
<el-button class="fr" style="line-height: 18px; margin-top: 4px;" plain @click="cancle">取消</el-button>
<el-button class="fr" style="line-height: 18px; margin-top: 4px;" plain @click="handleClose">关闭</el-button>
</div>
</el-dialog>
<el-dialog
v-dialogDrag
class="haerbin-01__systerm __menuButton"
style="pointer-events: none"
title="IBP"
:visible.sync="stationDialogVisible"
:modal="false"
:close-on-click-modal="false"
width="30%"
append-to-body
:before-close="handleStationClose"
>
<div class="station_buttonGroup">
<div class="station_buttonGroupL">
<div v-if="allowDetain" :id="setDetainTrainId" class="stationButton" @click="stationDetainTrain">此站扣车</div>
<div v-else class="stationButton disabled">此站扣车</div>
</div>
<div class="station_buttonGroupR">
<div v-if="allowCancle" :id="cancelTrainId" class="stationButton" @click="stationCancleTrain">取消设置</div>
<div v-else class="stationButton disabled">取消设置</div>
<div v-if="allowJump" :id="setJumpStopId" class="stationButton station_jumpTrain" @click="stationJumpTrain">此站不停</div>
<div v-else class="stationButton station_jumpTrain disabled">此站不停</div>
</div>
</div>
<div class="station_line" />
<div class="station_commandGroup">
<el-button plain class="station_updateStatus">更新</el-button>
<el-button plain class="station_close" @click="handleStationClose">关闭</el-button>
<el-button :id="commandId" plain class="station_command" :class="{'disabled': isAllowCommand}" :disabled="isAllowCommand" @click="stationToCommand">执行</el-button>
</div>
</el-dialog>
</div>
<notice-info ref="noticeInfo" pop-class="haerbin-01__systerm" /> <notice-info ref="noticeInfo" pop-class="haerbin-01__systerm" />
</div> </div>
</template> </template>
@ -236,7 +268,12 @@ export default {
formModelNewTrip: '', formModelNewTrip: '',
dialogVisible: false, dialogVisible: false,
tipList: [], tipList: [],
modeMatch: false modeMatch: false,
stationDialogVisible:false,
isAllowCommand:true,
allowDetain:true,
allowCancle:true,
allowJump:true
}; };
}, },
computed: { computed: {
@ -244,16 +281,25 @@ export default {
'routeList', 'routeList',
'stationList', 'stationList',
'routeData' 'routeData'
]), ]),
State2SimulationMap() { State2SimulationMap() {
return { return {
'01': 'Local', // '01': 'Local', //
'02': 'Center' // '02': 'Center' //
}; };
}, },
commandId() { commandId() {
return OperationEvent.Command.commandHaerbin.confirm.domId; 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() { cr1ConfrimId() {
return OperationEvent.Command.commandHaerbin.confrimCr1.domId; return OperationEvent.Command.commandHaerbin.confrimCr1.domId;
}, },
@ -270,10 +316,10 @@ export default {
watch: { watch: {
'$store.state.menuOperation.setMenuChangeCount': function (val) { '$store.state.menuOperation.setMenuChangeCount': function (val) {
if (this.selected._type) { if (this.selected._type) {
const type = this.State2SimulationMap[this.$store.state.training.prdType]; const type = this.State2SimulationMap[this.$store.state.training.prdType];
this.modeMatch = true; this.modeMatch = true;
if (this.stationContorl.controlMode != type) { if (this.stationContorl.controlMode != type) {
this.modeMatch = false; this.modeMatch = false;
if (this.$store.state.training.prdType == '02' && this.selected._type == 'Station') { if (this.$store.state.training.prdType == '02' && this.selected._type == 'Station') {
this.selectedObj = this.selected; this.selectedObj = this.selected;
if (this.selectedObj._type) { if (this.selectedObj._type) {
@ -337,11 +383,11 @@ export default {
this.deviceHighLight(this.selectedObj, true); this.deviceHighLight(this.selectedObj, true);
this.oldDevice = this.selectedObj; this.oldDevice = this.selectedObj;
break; break;
case 'StationStand': // case 'StationStand':
if (this.$store.state.menuOperation.subType == 'trainSetButton') { // if (this.$store.state.menuOperation.subType == 'trainSetButton') {
this.handleStandMenu(); // this.handleStandMenu();
} // }
break; // break;
} }
} }
}).catch((error) => { }).catch((error) => {
@ -362,9 +408,30 @@ export default {
}, },
'selected': function (val) { 'selected': function (val) {
this.initMenus(); this.initMenus();
if (val.code && val._event == MouseEvent.Left && val._type != 'Psd') { if (val.code && val._event == MouseEvent.Left) {
this.dialogVisible = !this.isLocal; 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) { } else if (!val.code) {
this.dialogVisible = false;
if (this.$store.state.training.mode != TrainingMode.TEACH) { if (this.$store.state.training.mode != TrainingMode.TEACH) {
this.handleBasicMenu(); this.handleBasicMenu();
} }
@ -452,10 +519,10 @@ export default {
this.centralizedStationList = new Array(15).fill({}); this.centralizedStationList = new Array(15).fill({});
this.switchParamList.forEach((swicth, index) => { this.switchParamList.forEach((swicth, index) => {
this.centralizedStationList[index] = swicth; this.centralizedStationList[index] = swicth;
if (swicth.disabledCb && this.selectedObj) { if (swicth.disabledCb && this.selectedObj) {
swicth.disabled = swicth.disabledCb(this.selectedObj); swicth.disabled = swicth.disabledCb(this.selectedObj);
} }
}); });
this.pushTempData([this.selectedObj]); this.pushTempData([this.selectedObj]);
this.param = { this.param = {
@ -474,9 +541,9 @@ export default {
this.oldClickObj = deepAssign({}, this.selectedObj); this.oldClickObj = deepAssign({}, this.selectedObj);
this.centralizedStationList = new Array(15).fill({}); this.centralizedStationList = new Array(15).fill({});
this.signalParamList.forEach((singal, index) => { this.signalParamList.forEach((singal, index) => {
if (singal.disabledCb && this.selectedObj) { if (singal.disabledCb && this.selectedObj) {
singal.disabled = singal.disabledCb(this.selectedObj); singal.disabled = singal.disabledCb(this.selectedObj);
} }
this.centralizedStationList[index] = singal; this.centralizedStationList[index] = singal;
}); });
@ -485,18 +552,18 @@ export default {
this.param = { this.param = {
signalCode: this.selectedObj.code signalCode: this.selectedObj.code
}; };
}, },
handleSectionMenu() { handleSectionMenu() {
this.deviceHighLight(this.oldDevice, false); this.deviceHighLight(this.oldDevice, false);
this.deviceHighLight(this.selectedObj, true); this.deviceHighLight(this.selectedObj, true);
this.oldDevice = this.selectedObj; this.oldDevice = this.selectedObj;
this.centralizedStationList = new Array(15).fill({}); this.centralizedStationList = new Array(15).fill({});
this.sectionParamList.forEach((section, index) => { this.sectionParamList.forEach((section, index) => {
this.centralizedStationList[index] = section; this.centralizedStationList[index] = section;
if (section.disabledCb && this.selectedObj) { if (section.disabledCb && this.selectedObj) {
section.disabled = section.disabledCb(this.selectedObj); section.disabled = section.disabledCb(this.selectedObj);
} }
}); });
this.pushTempData([this.selectedObj]); this.pushTempData([this.selectedObj]);
@ -530,10 +597,10 @@ export default {
handleStationMenu() { handleStationMenu() {
this.centralizedStationList = new Array(15).fill({}); this.centralizedStationList = new Array(15).fill({});
this.stationParamList.forEach((station, index) => { this.stationParamList.forEach((station, index) => {
this.centralizedStationList[index] = station; this.centralizedStationList[index] = station;
if (station.disabledCb && this.selectedObj) { if (station.disabledCb && this.selectedObj) {
station.disabled = station.disabledCb(this.selectedObj); station.disabled = station.disabledCb(this.selectedObj);
} }
}); });
this.pushTempData([this.selectedObj]); this.pushTempData([this.selectedObj]);
@ -547,10 +614,10 @@ export default {
} }
this.centralizedStationList = new Array(15).fill({}); this.centralizedStationList = new Array(15).fill({});
this.standParamList.forEach((stand, index) => { this.standParamList.forEach((stand, index) => {
this.centralizedStationList[index] = stand; this.centralizedStationList[index] = stand;
if (stand.disabledCb && this.selectedObj) { if (stand.disabledCb && this.selectedObj) {
stand.disabled = stand.disabledCb(this.selectedObj); stand.disabled = stand.disabledCb(this.selectedObj);
} }
}); });
const data = Object.assign(this.selectedObj); const data = Object.assign(this.selectedObj);
@ -777,6 +844,15 @@ export default {
handleClose() { handleClose() {
this.dialogVisible = false; this.dialogVisible = false;
}, },
handleStationClose() {
this.cmdType = '';
this.operate = ''; //
this.isAllowCommand = true;
this.stationDialogVisible = false;
this.allowJump = true;
this.allowCancle = true;
this.allowDetain = true;
},
handleTrainParam() { handleTrainParam() {
if (this.selectedObj.type === '01') { if (this.selectedObj.type === '01') {
this.formModelSectionName = this.selectedObj.name; this.formModelSectionName = this.selectedObj.name;
@ -838,6 +914,59 @@ export default {
this.$refs.noticeInfo.doShow('请输入正确的车次号'); 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() { initMenus() {
this.basicParamList = this.$store.state.training.prdType === '01' ? [ this.basicParamList = this.$store.state.training.prdType === '01' ? [
{ name: '' }, { name: '' },
@ -847,7 +976,7 @@ export default {
{ name: '' }, { name: '' },
{ name: '' }, { 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_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: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, disabledCb: (selectedObj) => ['Center'].includes(selectedObj.controlMode) },
{ name: '' }, { name: '' },
@ -871,34 +1000,24 @@ export default {
{ name: '' }, { name: '' },
{ name: '' }, { 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: '' }, { name: '' },
{ name: '' }, { name: '' },
{ name: '关闭索引', cmdType: '', operate: OperationEvent.StationControl.requestCentralControl.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) } { name: '' },
// { name: '', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, { name: '' },
// { name: '', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, { name: '' },
// { name: '', cmdType: '', operate: OperationEvent.Station.humanControlALL.menu, disabledCb: (selectedObj) => ['None'].includes(selectedObj.controlMode) }, { name: '' }
// { 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) },
];
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_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_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_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_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_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_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_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 },
@ -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_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_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_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }
]; ];
this.switchParamList = [ 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_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 }, { 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_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_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_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_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 }, { 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_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_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_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_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 }, { 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 }, // { name: '', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, disabledCb: (selectedObj) => !this.modeMatch },
]; ];
this.stationParamList = [ 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.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: '' }, // { 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_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menuButton },
// { name: '', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menuButton } // { name: '', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menuButton }
// ]; // ];
this.standParamList = this.$store.state.training.prdType === '01' ? [] : [ // 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_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, show: false },
{ name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, // { 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, disabledCb: (selectedObj) => !this.modeMatch }, // { 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, disabledCb: (selectedObj) => !this.modeMatch } // { name: '', cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP, operate: OperationEvent.StationStand.cancelJumpStop.menuButton, show: false }
]; // ];
this.routeParamList = [ 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_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 } { 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);} from {transform: rotate(0);}
to {transform: rotate(360deg);} 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;
}
}
</style> </style>

View File

@ -1887,6 +1887,12 @@ export const OperationEvent = {
operation: '519', operation: '519',
domId: '_Tips-Stand-openPsdByHand-Menu' domId: '_Tips-Stand-openPsdByHand-Menu'
} }
},
cancelTrain:{
menuButton: {
operation: '520',
domId: '_Tips-Stand-CancelTrain-MenuButton{BOTTOM}'
}
} }
}, },