Merge remote-tracking branch 'origin/test'
BIN
src/assets/ctc_icon/camera.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/assets/ctc_icon/link.png
Normal file
After Width: | Height: | Size: 960 B |
BIN
src/assets/ctc_icon/panel.png
Normal file
After Width: | Height: | Size: 1013 B |
BIN
src/assets/ctc_icon/rpb.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/ctc_icon/rpd.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/assets/ctc_icon/rpdu.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/assets/ctc_icon/rpe.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/assets/ctc_icon/rph.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
src/assets/ctc_icon/rpsa.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/assets/ctc_icon/rpsw.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/assets/ctc_icon/rpu.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/assets/ctc_icon/rpvb.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
src/assets/ctc_icon/rpvs.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/assets/ctc_icon/rpw.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/assets/ctc_icon/rpwp.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/assets/ctc_icon/setting.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/ctc_icon/shutdown.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/ctc_icon/t3.png
Normal file
After Width: | Height: | Size: 953 B |
BIN
src/assets/ctc_icon/train.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/ctc_icon/unknow.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/assets/icon/favicon_unittec.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
src/assets/icon/link_unittec.png
Normal file
After Width: | Height: | Size: 17 KiB |
@ -451,6 +451,54 @@ class SkinCode extends defaultStyle {
|
||||
text: '非常站控',
|
||||
lightColor: '#ff0',
|
||||
defaultColor: '#ccc',
|
||||
},
|
||||
selfDisciplineThree: {
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '分散自律',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
graphRoad: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '按图排路',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
planControl: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '计划控制',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
centerCommunication: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '中心通信',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
selfDisciplineCommunication: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '自律机通信',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
allowedTurnBack: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '允许转回',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
trainControl: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '列控',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#ccc'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -22,23 +22,46 @@ export default class SignalButton extends Group {
|
||||
create() {
|
||||
const model = this.model;
|
||||
const fillColor = this.getTypeColor();
|
||||
this.rectButton = new Rect({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
x: model.position.x,
|
||||
y: model.position.y,
|
||||
width: 14,
|
||||
height: 14
|
||||
},
|
||||
style: {
|
||||
lineDash: null,
|
||||
stroke: '#69666E',
|
||||
lineWidth:1,
|
||||
fill: fillColor
|
||||
}
|
||||
});
|
||||
this.add(this.rectButton);
|
||||
const queryList = window.location.search.substring(1).split('&');
|
||||
const queryCtc = queryList.find(item => {
|
||||
return item.includes('ctc');
|
||||
});
|
||||
const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST'];
|
||||
if (queryCtc && ctcArcList.includes(model.type)){
|
||||
this.arcShape = new Arc({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
cx: this.model.position.x + 7,
|
||||
cy: this.model.position.y + 7,
|
||||
r: 7
|
||||
},
|
||||
style: {
|
||||
stroke: '#69666E',
|
||||
lineWidth: 1,
|
||||
fill: fillColor
|
||||
}
|
||||
});
|
||||
this.add(this.arcShape);
|
||||
} else {
|
||||
this.rectButton = new Rect({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
x: model.position.x,
|
||||
y: model.position.y,
|
||||
width: 14,
|
||||
height: 14
|
||||
},
|
||||
style: {
|
||||
lineDash: null,
|
||||
stroke: '#69666E',
|
||||
lineWidth:1,
|
||||
fill: fillColor
|
||||
}
|
||||
});
|
||||
this.add(this.rectButton);
|
||||
}
|
||||
this.leftLine = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
@ -200,9 +223,11 @@ export default class SignalButton extends Group {
|
||||
recover() {
|
||||
this.stopAnimation();
|
||||
this.rectButton && this.rectButton.setStyle({ fill:this.getTypeColor() });
|
||||
this.arcShape && this.arcShape.setStyle({ fill:this.getTypeColor() });
|
||||
this.rightLine && this.rightLine.hide();
|
||||
this.leftLine && this.leftLine.hide();
|
||||
this.rectButton && this.rectButton.show();
|
||||
this.arcShape && this.arcShape.show();
|
||||
this.buttonText && this.buttonText.show();
|
||||
this.leftBoard && this.leftBoard.hide();
|
||||
this.rightBoard && this.rightBoard.hide();
|
||||
@ -242,6 +267,7 @@ export default class SignalButton extends Group {
|
||||
this.rectButton && this.rectButton.hide();
|
||||
this.leftLine && this.leftLine.hide();
|
||||
this.rightLine && this.rightLine.hide();
|
||||
this.arcShape && this.arcShape.hide();
|
||||
} else {
|
||||
if (model.hasSelected) {
|
||||
this.startAnimate();
|
||||
|
128
src/jmapNew/shape/graph/Station/EThreeLamp.js
Normal file
@ -0,0 +1,128 @@
|
||||
import Arc from 'zrender/src/graphic/shape/Arc';
|
||||
import Group from 'zrender/src/container/Group';
|
||||
import Text from 'zrender/src/graphic/Text';
|
||||
|
||||
/** 三个控制灯*/
|
||||
export default class EThreeLamp extends Group {
|
||||
constructor(model) {
|
||||
super();
|
||||
this.model = model;
|
||||
this.zlevel = model.zlevel;
|
||||
this._subType = model._subType;
|
||||
this.z = 20;
|
||||
this.onmouseover = model.mouseover;
|
||||
this.onmouseout = model.mouseout;
|
||||
this.create(model);
|
||||
}
|
||||
|
||||
create(model) {
|
||||
var _subType = 'ControlSignal';
|
||||
var _val = '0';
|
||||
if (model.pop) {
|
||||
_subType = 'ControlButton';
|
||||
_val = '1';
|
||||
}
|
||||
var _nameType = this._subType;
|
||||
this.control1 = new Arc({
|
||||
pop: model.pop,
|
||||
_subType: _subType,
|
||||
_nameType: _nameType,
|
||||
_val: _val,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
cx: model.point.x - model.style.Station.StationControl.lamp.radiusR * 3,
|
||||
cy: model.point.y,
|
||||
r: model.style.Station.StationControl.lamp.radiusR
|
||||
},
|
||||
style: {
|
||||
lineWidth: model.style.Station.StationControl.lamp.lineWidth || 0,
|
||||
fill: model.style.Station.StationControl.lamp.grayColor,
|
||||
stroke: model.style.Station.StationControl.lamp.strokeColor
|
||||
}
|
||||
});
|
||||
this.control2 = new Arc({
|
||||
pop: model.pop,
|
||||
_subType: _subType,
|
||||
_nameType: _nameType,
|
||||
_val: _val,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
cx: model.point.x,
|
||||
cy: model.point.y,
|
||||
r: model.style.Station.StationControl.lamp.radiusR
|
||||
},
|
||||
style: {
|
||||
lineWidth: model.style.Station.StationControl.lamp.lineWidth || 0,
|
||||
fill: model.style.Station.StationControl.lamp.grayColor,
|
||||
stroke: model.style.Station.StationControl.lamp.strokeColor
|
||||
}
|
||||
});
|
||||
this.control3 = new Arc({
|
||||
pop: model.pop,
|
||||
_subType: _subType,
|
||||
_nameType: _nameType,
|
||||
_val: _val,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
cx: model.point.x + model.style.Station.StationControl.lamp.radiusR * 3,
|
||||
cy: model.point.y,
|
||||
r: model.style.Station.StationControl.lamp.radiusR
|
||||
},
|
||||
style: {
|
||||
lineWidth: model.style.Station.StationControl.lamp.lineWidth || 0,
|
||||
fill: model.style.Station.StationControl.lamp.grayColor,
|
||||
stroke: model.style.Station.StationControl.lamp.strokeColor
|
||||
}
|
||||
});
|
||||
|
||||
this.text = new Text({
|
||||
pop: model.pop,
|
||||
_subType: _subType,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
position: [0, 0],
|
||||
style: {
|
||||
x: model.point.x,
|
||||
y: model.point.y + model.style.Station.StationControl.lamp.radiusR + model.style.Station.StationControl.text.distance,
|
||||
fontWeight: model.style.Station.StationControl.text.fontWeight,
|
||||
fontSize: model.style.Station.StationControl.text.fontSize,
|
||||
fontFamily: model.style.fontFamily,
|
||||
text: model.context,
|
||||
textFill: model.style.Station.StationControl.text.fontColor,
|
||||
textAlign: model.style.Station.StationControl.text.textAlign,
|
||||
textVerticalAlign: model.style.Station.StationControl.text.textVerticalAlign
|
||||
}
|
||||
});
|
||||
|
||||
this.add(this.control1);
|
||||
this.add(this.control2);
|
||||
this.add(this.control3);
|
||||
this.add(this.text);
|
||||
}
|
||||
|
||||
setColor(color) {
|
||||
// if (color) {
|
||||
// this.control.setStyle('fill', color);
|
||||
// }
|
||||
}
|
||||
|
||||
setTextColor(color) {
|
||||
if (color && !this.model.style.Station.StationControl.lamp.textColorNoChange) {
|
||||
this.text.setStyle('textFill', color);
|
||||
}
|
||||
}
|
||||
getArcBoundingRect() {
|
||||
const rect = this.control.getBoundingRect().clone();
|
||||
const scale = this.control.scale[0];
|
||||
const offsetX = this.control.position[0];
|
||||
const offsetY = this.control.position[1];
|
||||
rect.x = rect.x * scale + offsetX - 2;
|
||||
rect.y = rect.y * scale + offsetY - 2;
|
||||
rect.width = rect.width * scale + 4;
|
||||
rect.height = rect.height * scale + 4;
|
||||
return rect;
|
||||
}
|
||||
}
|
@ -7,6 +7,7 @@ import EControl from '../element/EControl';
|
||||
import EMouse from './EMouse';
|
||||
import EMouseDraw from './EMouseDraw';
|
||||
import ESingleControl from './ESingleControl';
|
||||
import EThreeLamp from './EThreeLamp';
|
||||
import EArrow from './EArrow';
|
||||
import { arrow } from '../utils/ShapePoints';
|
||||
import Rect from 'zrender/src/graphic/shape/Rect';
|
||||
@ -148,7 +149,13 @@ export default class Station extends Group {
|
||||
createControlMode() {
|
||||
const model = this.model;
|
||||
if (!this.style.Station.StationControl.disPlayNone) {
|
||||
if (this.style.Station.StationControl.special) {
|
||||
const queryList = window.location.search.substring(1).split('&');
|
||||
const queryCtc = queryList.find(item => {
|
||||
return item.includes('ctc');
|
||||
});
|
||||
if (queryCtc) {
|
||||
this.createCtcControlMode()
|
||||
} else if (this.style.Station.StationControl.special) {
|
||||
if (model.visible && model.createControlMode) { // model.createControlMode 控制模式
|
||||
this.createControlModeAU();
|
||||
this.createControlModeCC();
|
||||
@ -168,7 +175,122 @@ export default class Station extends Group {
|
||||
}
|
||||
this.setState(model);
|
||||
}
|
||||
|
||||
createCtcControlMode() {//大铁
|
||||
//非常站控
|
||||
const model = this.model;
|
||||
// 分散自律
|
||||
this.selfDisciplineThree = new EThreeLamp({
|
||||
_subType: 'veryControl',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.selfDisciplineThree.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.selfDisciplineThree.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.selfDisciplineThree.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.selfDisciplineThree);
|
||||
// 非常站控
|
||||
this.veryControl = new ESingleControl({
|
||||
_subType: 'veryControl',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.veryControl.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.veryControl.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.veryControl.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.veryControl);
|
||||
//按图排路
|
||||
this.graphRoad = new ESingleControl({
|
||||
_subType: 'graphRoad',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.graphRoad.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.graphRoad.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.graphRoad.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.graphRoad);
|
||||
//计划控制
|
||||
this.planControl = new ESingleControl({
|
||||
_subType: 'planControl',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.planControl.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.planControl.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.planControl.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.planControl);
|
||||
//中心通信
|
||||
this.centerCommunication = new ESingleControl({
|
||||
_subType: 'centerCommunication',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.centerCommunication.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.centerCommunication.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.centerCommunication.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.centerCommunication);
|
||||
//自律机通信
|
||||
this.selfDisciplineCommunication = new ESingleControl({
|
||||
_subType: 'selfDisciplineCommunication',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.selfDisciplineCommunication.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.selfDisciplineCommunication.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.selfDisciplineCommunication.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.selfDisciplineCommunication);
|
||||
//允许转回
|
||||
this.allowedTurnBack = new ESingleControl({
|
||||
_subType: 'allowedTurnBack',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.allowedTurnBack.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.allowedTurnBack.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.allowedTurnBack.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.allowedTurnBack);
|
||||
// 列控
|
||||
this.trainControl = new ESingleControl({
|
||||
_subType: 'trainControl',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.trainControl.offset.x,
|
||||
y: model.controlModePoint.y + this.style.Station.StationControl.trainControl.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.trainControl.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.trainControl);
|
||||
}
|
||||
createControlModeAU() { // 西安二
|
||||
const model = this.model;
|
||||
this.stationControlAU = new Text({
|
||||
|
@ -519,20 +519,104 @@ export const menuOperate = {
|
||||
}
|
||||
},
|
||||
CTC: {
|
||||
// 接预
|
||||
// 完成接预
|
||||
receivingNotice: {
|
||||
operation: OperationEvent.CTCCommand.receivingNotice.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_RECEIVING_NOTICE
|
||||
cmdType: CMD.CTC.CTC_FINISH_RECEIVING_NOTICE
|
||||
},
|
||||
// 发预
|
||||
// 取消接预
|
||||
cancelReceivingNotice: {
|
||||
operation: OperationEvent.CTCCommand.cancelReceivingNotice.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_CANCEL_RECEIVING_NOTICE
|
||||
},
|
||||
// 完成到点
|
||||
finishArrive: {
|
||||
operation: OperationEvent.CTCCommand.finishArrive.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_FINISH_ARRIVE
|
||||
},
|
||||
// 取消到点
|
||||
cancelArrive: {
|
||||
operation: OperationEvent.CTCCommand.cancelArrive.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_CANCEL_ARRIVE
|
||||
},
|
||||
// 完成发预
|
||||
departureNotice: {
|
||||
operation: OperationEvent.CTCCommand.departureNotice.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_DEPARTURE_NOTICE
|
||||
cmdType: CMD.CTC.CTC_FINISH_DEPARTURE_NOTICE
|
||||
},
|
||||
// 取消发预
|
||||
cancelDepartureNotice: {
|
||||
operation: OperationEvent.CTCCommand.cancelDepartureNotice.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_CANCEL_DEPARTURE_NOTICE
|
||||
},
|
||||
// 完成发点
|
||||
finishDeparture: {
|
||||
operation: OperationEvent.CTCCommand.finishDeparture.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_FINISH_DEPARTURE
|
||||
},
|
||||
// 取消发点
|
||||
cancelDeparture: {
|
||||
operation: OperationEvent.CTCCommand.cancelDeparture.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_CANCEL_DEPARTURE
|
||||
},
|
||||
// 自动触发
|
||||
autoTrigger: {
|
||||
operation: OperationEvent.CTCCommand.autoTrigger.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_AUTO_TRIGGER
|
||||
},
|
||||
// 批量修改股道
|
||||
batchModifyTrackSection:{
|
||||
operation: OperationEvent.CTCCommand.batchModifyTrackSection.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_BATCH_MODIFY_RUN_PLAN
|
||||
},
|
||||
// 移除行车日志
|
||||
deleteRunplan:{
|
||||
operation: OperationEvent.CTCCommand.deleteRunplan.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_REMOVE_RUN_PLAN
|
||||
},
|
||||
// 修改行车计划的邻站信息
|
||||
modifyAdjacentStation:{
|
||||
operation: OperationEvent.CTCCommand.modifyAdjacentStation.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_MODIFY_ADJACENT_STATION
|
||||
},
|
||||
// 修改车次号(大铁CTC)
|
||||
modifyTripNumber:{
|
||||
operation: OperationEvent.CTCCommand.modifyTripNumber.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_MODIFY_TRIP_NUMBER
|
||||
},
|
||||
// 发送发车预告
|
||||
sendNotcie:{
|
||||
operation: OperationEvent.CTCCommand.sendNotcie.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_SEND_NOTICE
|
||||
},
|
||||
// 同意发车预告
|
||||
agreeNotcie:{
|
||||
operation: OperationEvent.CTCCommand.agreeNotcie.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_AGREE_NOTICE
|
||||
},
|
||||
// 增加列车固定径路
|
||||
addTrainFixedPath:{
|
||||
operation: OperationEvent.CTCCommand.addTrainFixedPath.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_ADD_RUN_PLAN_LIST_TO_EDIT_AREA
|
||||
},
|
||||
// 导入列车固定径路
|
||||
importTrainFixedPath:{
|
||||
operation: OperationEvent.CTCCommand.importTrainFixedPath.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_COVER_RUN_PLAN_LIST_TO_EDIT_AREA
|
||||
},
|
||||
// 删除列车固定径路
|
||||
deleteTrainFixedPath:{
|
||||
operation: OperationEvent.CTCCommand.deleteTrainFixedPath.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_REMOVE_RUN_PLAN_FROM_EDIT_AREA
|
||||
},
|
||||
// 运行计划发布至CTC
|
||||
releaseTrainFixedPath:{
|
||||
operation: OperationEvent.CTCCommand.releaseTrainFixedPath.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_RELEASE_RUN_PLAN_TO_SIMULATION
|
||||
},
|
||||
setRoute: {
|
||||
operation: OperationEvent.CTCCommand.setRoute.menu.operation,
|
||||
cmdType: CMD.CTC.CTC_SET_ROUTE
|
||||
}
|
||||
}
|
||||
|
||||
|
292
src/jmapNew/theme/datie_02/menus/bottomTable.vue
Normal file
@ -0,0 +1,292 @@
|
||||
<template>
|
||||
<div v-show="showTable" style="background: #F0F0F0;z-index: 10;position: absolute;left: 0;bottom: 0;width: 100%;font-size: 14px;">
|
||||
<i class="el-icon-close close_icon" @click.stop="doClose" />
|
||||
<el-row>
|
||||
<el-col :span="11" style="padding: 0 10px;">
|
||||
<div style="border: 1px solid #C7C7C7;margin-top: 10px;">
|
||||
<div style="position: relative; top: -8px;left: 15px;width: 130px;background: #f0f0f0;">列车进路序列 可修改</div>
|
||||
<div style="width: 100%;background: #9F9F9F">
|
||||
<el-table
|
||||
ref="sequenceTable"
|
||||
:data="sequenceList"
|
||||
height="90"
|
||||
:row-class-name="tableRowClassName"
|
||||
border
|
||||
style="width: 650px"
|
||||
:cell-style="{padding: 0}"
|
||||
:default-sort="{prop: 'startTime', order: 'ascending'}"
|
||||
>
|
||||
<el-table-column type="index" width="30" label="序" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="tripNumber" label="车次" width="60" label-class-name="bottom-table-label-header">
|
||||
<template slot-scope="scope">
|
||||
<div style="width: 100%;height: 22px;" @contextmenu="popMenuShow(scope.row, '' ,$event)">{{ scope.row.tripNumber }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="trackName" label="股道" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="autoTrigger" label="自触" width="50" label-class-name="bottom-table-label-header">
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.autoTrigger" @change="triggerChange(scope.row)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="direction" label="方向" width="100" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="startTime" label="开始" width="80" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="planTime" label="计划" width="90" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="状态" width="90" label-class-name="bottom-table-label-header">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getRouteStatus(scope.row.status) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="description" label="进路描述" label-class-name="bottom-table-label-header">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getRouteName(scope.row.routeCode) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex;align-items: center;">
|
||||
<div style="margin-right: 10px;">车站</div>
|
||||
<el-select v-model="stationCode" size="mini" @change="stationChange">
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="border: 1px outset #C7C7C7;margin-left: 20px;padding: 3px;">释放权限</div>
|
||||
<div style="margin-left: 10px;">字体</div>
|
||||
<div style="margin-left: 10px;border: 1px inset #C7C7C7;padding: 3px;">常规</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="13">
|
||||
<div style="border: 1px solid #C7C7C7;margin-top: 10px;">
|
||||
<div style="position: relative; top: -8px;left: 15px;width: 103px;background: #f0f0f0;">调车进路 可修改</div>
|
||||
<el-row>
|
||||
<el-col :span="12" style="padding: 0 10px;">
|
||||
<div style="border: 1px solid #C7C7C7;">
|
||||
<div style="position: relative; top: -8px;left: 15px;width: 86px;background: #f0f0f0;">调车进路序列</div>
|
||||
<div style="width: 100%;background: #9F9F9F">
|
||||
<el-table :data="tableData" height="55" border style="width: 465px" :cell-style="{padding: 0}">
|
||||
<el-table-column type="index" label="顺序" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="勾序" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="进路及方向" width="95" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="自触" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="状态" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="触发时间" width="80" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="占用时间" label-class-name="bottom-table-label-header" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12" style="padding: 0 10px;">
|
||||
<div style="border: 1px solid #C7C7C7;">
|
||||
<div style="position: relative; top: -8px;left: 15px;width: 44px;background: #f0f0f0;">勾序列</div>
|
||||
<div style="width: 100%;background: #9F9F9F">
|
||||
<el-table :data="tableData" height="55" style="width: 360px" border :cell-style="{padding: 0}">
|
||||
<el-table-column type="index" label="钩计划" width="70" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="股道" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="操作" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="状态" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="记事" width="50" label-class-name="bottom-table-label-header" />
|
||||
<el-table-column property="" label="作业时间" label-class-name="bottom-table-label-header" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row>
|
||||
<div style="display: flex;align-items: center;">
|
||||
<div>作业单</div>
|
||||
<el-select v-model="sheetValue" size="mini" style="margin-left: 10px;width: 500px;">
|
||||
<el-option
|
||||
v-for="item in sheetList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="border: 1px outset #C7C7C7;margin-left: 20px;padding: 3px;">单头信息</div>
|
||||
<div style="border: 1px outset #C7C7C7;margin-left: 20px;padding: 3px;">删除</div>
|
||||
<div style="border: 1px outset #C7C7C7;margin-left: 20px;padding: 3px;">发送</div>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<div style="display: flex;">
|
||||
<div>历史进路</div>
|
||||
<div style="margin-left: 300px;">状态:</div>
|
||||
</div>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<pop-menu ref="popMenu" :menu="menu" style="background: #DFE3E6;" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { EventBus } from '@/scripts/event-bus'; // 996
|
||||
import { menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import PopMenu from '@/components/PopMenu';
|
||||
export default {
|
||||
name: 'BottomTable',
|
||||
components: {
|
||||
PopMenu
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableData: [{}],
|
||||
stationCode: '',
|
||||
sheetValue: '',
|
||||
routeParam: {},
|
||||
showTable: false,
|
||||
sheetList: [{ label: '历史进路', value: 'historyRoute' }],
|
||||
sequenceList: [],
|
||||
sequenceMap: {},
|
||||
menu: [{label: '人工触发', handler: this.artificialTrigger, disabled: false}, {label: '删除', handler: this.artificialTrigger, disabled: true}]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
'showTable': function (val) {
|
||||
const offset = val ? 162 : 0;
|
||||
EventBus.$emit('setMenuButtonPosition', offset);
|
||||
},
|
||||
'$store.state.socket.railCtcStatusMsg': function (val) {
|
||||
if (val && val.length) {
|
||||
val.forEach(item => {
|
||||
if (item && item.routeSequence && item.routeSequence.lines && item.routeSequence.lines.length) {
|
||||
item.routeSequence.lines.forEach(elem => {
|
||||
if (!this.sequenceMap[elem.id]) {
|
||||
this.sequenceMap[elem.id] = Object.assign(elem, { stationCode: item.stationCode, readOnly: item.readOnly });
|
||||
} else {
|
||||
this.sequenceMap[elem.id] = Object.assign(this.sequenceMap[elem.id], elem, { stationCode: item.stationCode, readOnly: item.readOnly });
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
this.sequenceList = [];
|
||||
for (const key in this.sequenceMap) {
|
||||
if (this.sequenceMap[key].stationCode === this.stationCode) {
|
||||
this.sequenceList.push(this.sequenceMap[key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
EventBus.$on('bottomTableShowOrHidden', () => {
|
||||
this.showTable = !this.showTable;
|
||||
});
|
||||
if (this.stationList && this.stationList.length) {
|
||||
this.stationCode = this.stationList[0].code;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.showTable = true;
|
||||
},
|
||||
doClose() {
|
||||
this.showTable = false;
|
||||
},
|
||||
getRouteStatus(status) {
|
||||
if (status === '2') {
|
||||
return '触发完成';
|
||||
} else if (status === '1') {
|
||||
return '正在触发';
|
||||
} else {
|
||||
return '等待中';
|
||||
}
|
||||
},
|
||||
triggerChange(row) {
|
||||
const triggerParam = { stationCode: this.stationCode, tripNumber: row.tripNumber, routeCode: row.routeCode, trigger: row.autoTrigger };
|
||||
if (row.autoTrigger) {
|
||||
this.setTrigger(triggerParam, row);
|
||||
} else {
|
||||
this.cancelTrigger(triggerParam, row);
|
||||
}
|
||||
},
|
||||
stationChange(stationCode) {
|
||||
this.sequenceList = [];
|
||||
for (const key in this.sequenceMap) {
|
||||
if (this.sequenceMap[key].stationCode === stationCode) {
|
||||
this.sequenceList.push(this.sequenceMap[key]);
|
||||
}
|
||||
}
|
||||
},
|
||||
tableRowClassName({row, rowIndex}) {
|
||||
if (row.status === '0') {
|
||||
return 'bottom-table-route-wait';
|
||||
} else if (row.tripNumber) {
|
||||
return 'bottom-table-route-green';
|
||||
} else {
|
||||
return 'bottom-table-route-gray';
|
||||
}
|
||||
},
|
||||
getRouteName(code) {
|
||||
if (code) {
|
||||
const route = this.$store.state.map.routeData[code];
|
||||
return route ? route.name : '';
|
||||
} else { return ''; }
|
||||
},
|
||||
setTrigger(triggerParam, row) {
|
||||
commitOperate(menuOperate.CTC.autoTrigger, triggerParam, 3).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.$message.success('设置自动触发成功!');
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
row.autoTrigger = false;
|
||||
this.$message.error('设置自动触发失败!');
|
||||
});
|
||||
},
|
||||
popMenuShow(item, type, e) {
|
||||
this.routeParam = {routeCode: item.routeCode, tripNumber: item.tripNumber, force: false, duration: null};
|
||||
this.$refs.popMenu.resetShowPosition({x: e.x, y:e.y});
|
||||
},
|
||||
cancelTrigger(triggerParam, row) {
|
||||
commitOperate(menuOperate.CTC.autoTrigger, triggerParam, 3).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.$message.success('取消自动触发成功!');
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
row.autoTrigger = true;
|
||||
this.$message.error('取消自动触发失败!');
|
||||
});
|
||||
},
|
||||
artificialTrigger() {
|
||||
commitOperate(menuOperate.CTC.setRoute, this.routeParam, 3).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.$message.success('人工触发成功!');
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.$message.error('人工触发失败!');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
<style>
|
||||
.bottom-table-label-header{
|
||||
background: #FFF3EE;
|
||||
}
|
||||
.bottom-table-route-wait {
|
||||
background: #ff0 !important;
|
||||
}
|
||||
.bottom-table-route-gray{
|
||||
background: #c0c0c0 !important;
|
||||
}
|
||||
.bottom-table-route-green{
|
||||
background: #0f0 !important;
|
||||
}
|
||||
</style>
|
@ -115,7 +115,6 @@ export default {
|
||||
if (operate.operateNext) {
|
||||
this.operation = operate.operateNext;
|
||||
}
|
||||
console.log(this.operate, '--------------0000operate');
|
||||
this.dialogShow = true;
|
||||
this.checkHasInput = false;
|
||||
this.$nextTick(function () {
|
||||
@ -158,7 +157,6 @@ export default {
|
||||
this.encryptionPassword = this.passwordCheck;
|
||||
}
|
||||
},
|
||||
|
||||
cancel() {
|
||||
const operate = {
|
||||
send: false,
|
||||
|
99
src/jmapNew/theme/datie_02/menus/dialog/deleteRunplan.vue
Normal file
@ -0,0 +1,99 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm train-set-plan"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="280px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div style="text-align: center;">
|
||||
确定删除该列车的行车信息?
|
||||
</div>
|
||||
<el-row justify="center" class="button-group" style="margin-top:20px">
|
||||
<el-col :span="8" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="3">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name: 'DeleteRunplan',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
model:{
|
||||
stationCode:'',
|
||||
runPlanCode:''
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.CTCCommand.deleteRunplan.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '警告';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(row) {
|
||||
// 4.移除行车日志 CTC_REMOVE_RUN_PLAN 参数:stationCode 车站编码 runPlanCode 运行编码
|
||||
this.model.stationCode = row.stationCode;
|
||||
this.model.runPlanCode = row.code;
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.loading = true;
|
||||
commitOperate(menuOperate.CTC.deleteRunplan, this.model, 2).then(({valid})=>{
|
||||
this.loading = false;
|
||||
this.$emit('clearRpRow');
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$emit('clearRpRow');
|
||||
this.doClose();
|
||||
this.$emit('noticeInfo');
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$emit('clearRpRow');
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
@ -110,8 +110,8 @@ export default {
|
||||
window.document.oncontextmenu = function () {
|
||||
return false;
|
||||
};
|
||||
|
||||
if (this.mapData.skinVO) {
|
||||
console.log(this.mapData, '---------------');
|
||||
if (this.mapData && this.mapData.skinVO) {
|
||||
const parser = parserFactory(ParserType.Graph.value);
|
||||
this.mapDevice = parser.parser(this.mapData, this.mapData.skinVO.code, this.map.getShowConfig());
|
||||
}
|
||||
|
@ -0,0 +1,154 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm train-set-plan"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="360px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="modifyAdjacentStation">
|
||||
<div class="adjacentStationTrip"> {{ tripNumber }}次列车</div>
|
||||
<div class="adjacentStationStart">
|
||||
<el-select
|
||||
v-model="model.arriveStationCode"
|
||||
placeholder=""
|
||||
size="mini"
|
||||
style="width:100px"
|
||||
popper-class="stationSelect"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="display:inline-block">站驶来</div>
|
||||
</div>
|
||||
<div class="adjacentStationEnd">
|
||||
<div style="display:inline-block">驶向</div>
|
||||
<el-select
|
||||
v-model="model.departStationCode"
|
||||
placeholder=""
|
||||
size="mini"
|
||||
style="width:100px"
|
||||
popper-class="stationSelect"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="display:inline-block">站</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group" style="margin-top:20px">
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="1">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
// import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name: 'ModifyAdjacentStation',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
tripNumber:'',
|
||||
stationList:[],
|
||||
model:{
|
||||
stationCode:'', // 车站编码
|
||||
runPlanCode:'', // 运行编码
|
||||
arriveStationCode:'', // 到达车站
|
||||
departStationCode:'' // 发车车站
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.CTCCommand.modifyAdjacentStation.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '修改相关车站';
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.stationList = this.$store.state.map.map.stationList;
|
||||
},
|
||||
methods: {
|
||||
doShow(row) {
|
||||
this.model.stationCode = row.stationCode;
|
||||
this.model.runPlanCode = row.code;
|
||||
this.model.arriveStationCode = (row.arriveRunPlan && row.arriveRunPlan.stationCode) || '';
|
||||
this.model.departStationCode = (row.departRunPlan && row.departRunPlan.stationCode) || '';
|
||||
this.tripNumber = row.tripNumber;
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.loading = true;
|
||||
commitOperate(menuOperate.CTC.modifyAdjacentStation, this.model, 2).then(({valid})=>{
|
||||
this.loading = false;
|
||||
this.$emit('clearRpRow');
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$emit('clearRpRow');
|
||||
this.doClose();
|
||||
this.$emit('noticeInfo');
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$emit('clearRpRow');
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.modifyAdjacentStation{text-align: center;font-size: 14px;color: #000;}
|
||||
.adjacentStationTrip{text-align: center;}
|
||||
.adjacentStationStart{margin-top: 10px;}
|
||||
.adjacentStationEnd{margin-top: 10px;}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
.stationSelect{
|
||||
z-index:2014 !important;
|
||||
}
|
||||
</style>
|
224
src/jmapNew/theme/datie_02/menus/dialog/modifyTripNumber.vue
Normal file
@ -0,0 +1,224 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm train-set-plan"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="560px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="modifyTripNumber">
|
||||
<!-- 修改车次号(大铁CTC) -->
|
||||
<div class="modifyTripNumberT">
|
||||
<div style="display:inline-block;margin-right:10px">请选择车站</div>
|
||||
<el-select
|
||||
v-model="stationCode"
|
||||
placeholder=""
|
||||
size="mini"
|
||||
style="width:100px"
|
||||
popper-class="stationSelect"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="modifyTripNumberB">
|
||||
<div class="modifyTripNumberBL">
|
||||
<div class="modifyTripNumberTip">原列车信息</div>
|
||||
<div class="modifyTripNumberS">
|
||||
<div class="modifyTripNumberName">到达车次:</div>
|
||||
<el-input v-model="oldArriveTripNumber" type="text" class="" size="mini" style="width: 140px;" disabled />
|
||||
</div>
|
||||
<div class="modifyTripNumberE">
|
||||
<div class="modifyTripNumberName">出发车次:</div>
|
||||
<el-input v-model="oldDepartTripNumber" type="text" class="" size="mini" style="width: 140px;" disabled />
|
||||
</div>
|
||||
</div>
|
||||
<div class="modifyTripNumberBR">
|
||||
<div class="modifyTripNumberTip">新列车信息</div>
|
||||
<div>
|
||||
<el-form ref="form" :model="model" label-width="85px" :rules="rules">
|
||||
<el-form-item label="到达车次:" prop="arriveTripNumber">
|
||||
<el-input v-model="model.arriveTripNumber" style="width:140px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出发车次:" prop="departTripNumber">
|
||||
<el-input v-model="model.departTripNumber" style="width:140px" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- <div class="modifyTripNumberName">到达车次:</div>
|
||||
<el-input v-model="model.arriveTripNumber" type="text" class="" size="mini" style="width: 95px;" />
|
||||
</div>
|
||||
<div class="modifyTripNumberE">
|
||||
<div class="modifyTripNumberName">出发车次:</div>
|
||||
<el-input v-model="model.departTripNumber" type="text" class="" size="mini" style="width: 95px;" />
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<el-checkbox-group v-model="trainTypeList" style="text-align:center;margin-top:10px">
|
||||
<el-checkbox label="保留车" name="type" />
|
||||
<el-checkbox label="终到车" name="type" />
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
<el-row justify="center" style="margin-top:10px">
|
||||
<el-col :span="7" :offset="5">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="7" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div></el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
// import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name: 'ModifyTripNumber',
|
||||
data() {
|
||||
var validateTripNumber = (rule, value, callback) => {
|
||||
if (value) {
|
||||
const judge = /^[a-zA-Z0-9]*[\d]$/.test(value);
|
||||
if (judge) {
|
||||
if (value.toString().length > 6 || value.toString().length < 2) {
|
||||
callback('车次长度2-6位');
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
callback('字母+数字,最后一位数字');
|
||||
}
|
||||
} else {
|
||||
callback('请输入车次');
|
||||
}
|
||||
};
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
oldArriveTripNumber:'',
|
||||
oldDepartTripNumber:'',
|
||||
trainTypeList:[],
|
||||
stationList:[],
|
||||
stationCode:'', // 车站编码
|
||||
runPlanCode:'', // 运行编码
|
||||
model:{
|
||||
arriveTripNumber:'', // 到达车次
|
||||
departTripNumber:'' // 发车车次
|
||||
},
|
||||
rules: {
|
||||
arriveTripNumber:[
|
||||
{ required: true, validator: validateTripNumber, trigger: 'blur' }
|
||||
// message: '请输入到达车次'
|
||||
],
|
||||
departTripNumber:[
|
||||
{ required: true, validator: validateTripNumber, trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.CTCCommand.modifyTripNumber.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '设置车次';
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.stationList = this.$store.state.map.map.stationList;
|
||||
},
|
||||
methods: {
|
||||
doShow(row) {
|
||||
this.stationCode = row.stationCode;
|
||||
this.runPlanCode = row.code;
|
||||
this.oldArriveTripNumber = (row.arriveRunPlan && row.arriveRunPlan.tripNumber) || '';
|
||||
this.oldDepartTripNumber = (row.departRunPlan && row.departRunPlan.tripNumber) || '';
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.model = {
|
||||
arriveTripNumber:'', // 到达车次
|
||||
departTripNumber:'' // 发车车次
|
||||
};
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.loading = true;
|
||||
const params = Object.assign({stationCode:this.stationCode, runPlanCode:this.runPlanCode}, this.model);
|
||||
commitOperate(menuOperate.CTC.modifyTripNumber, params, 2).then(({valid})=>{
|
||||
this.loading = false;
|
||||
this.$emit('clearRpRow');
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$emit('clearRpRow');
|
||||
this.doClose();
|
||||
this.$emit('noticeInfo');
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$emit('clearRpRow');
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.modifyTripNumber{font-size: 15px;color:#201f1e;}
|
||||
.modifyTripNumberT{}
|
||||
.modifyTripNumberB{margin-top:20px;color:#201f1e;}
|
||||
.modifyTripNumberBL,.modifyTripNumberBR{
|
||||
width: 49%;
|
||||
display: inline-block;
|
||||
border: 1px #999795 solid;
|
||||
padding:20px 10px 10px 10px;
|
||||
position: relative;
|
||||
}
|
||||
.modifyTripNumberTip{
|
||||
position:absolute;
|
||||
left:10px;
|
||||
top:-10px;
|
||||
background: #ece9d8;
|
||||
padding: 0px 5px;
|
||||
}
|
||||
.modifyTripNumberS{margin-bottom:20px;height: 24px;font-size:0;}
|
||||
.modifyTripNumberName{display: inline-block;width:85px;text-align: right;font-size: 15px;}
|
||||
.modifyTripNumberE{margin-bottom: 20px;height: 24px;font-size:0;}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
.chengdou-03__systerm .el-dialog .modifyTripNumber .el-checkbox-group .el-checkbox .el-checkbox__label{font-size: 15px !important;line-height: 16px;}
|
||||
.chengdou-03__systerm .el-dialog .modifyTripNumber .el-checkbox-group .el-checkbox .el-checkbox__input{vertical-align: top;line-height: 16px;}
|
||||
.stationSelect{
|
||||
z-index:2014 !important;
|
||||
}
|
||||
.modifyTripNumberBR .el-form-item .el-form-item__label{font-size:15px;padding-right:0px;line-height:24px;vertical-align:top;}
|
||||
.modifyTripNumberBR .el-form-item{margin-bottom:20px;}
|
||||
.modifyTripNumberBR .el-form-item .el-form-item__content{line-height:24px;vertical-align: top;height:24px;}
|
||||
</style>
|
@ -13,20 +13,24 @@
|
||||
<div>
|
||||
<el-form :model="form" class="demo-form-inline">
|
||||
<el-form-item label="作业任务:">
|
||||
<el-input v-model="form.work" type="textarea" :rows="2" :disabled="true"/>
|
||||
<el-input v-model="form.work" type="textarea" :rows="2" :disabled="true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作时间:">
|
||||
<el-input v-model="form.time" type="textarea" :rows="1" :disabled="true"/>
|
||||
<el-input v-model="form.time" type="textarea" :rows="1" :disabled="true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作信息:">
|
||||
<el-input v-model="form.info" type="textarea" :rows="2" :disabled="true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作信息:">
|
||||
<el-input v-model="form.info" type="textarea" :rows="2" :disabled="true"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="text-align: center;"><el-button v-if="type === 'rec'" style="width: 200px;" @click="commit(menuOperate.CTC.receivingNotice)">完成接预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'dep'" style="width: 200px;" @click="commit(menuOperate.CTC.departureNotice)">完成发预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'rec'" style="width: 200px;" disabled>取消接预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'dep'" style="width: 200px;" disabled>取消接预</el-button></div>
|
||||
<el-button @click="doClose" style="height: 50px;width: 50px;position: relative;left: 370px;">关闭</el-button>
|
||||
<div style="text-align: center;"><el-button v-if="type === 'rec'" style="width: 200px;" @click="commit(menuOperate.CTC.receivingNotice)">完成接预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'dep'" style="width: 200px;" @click="commit(menuOperate.CTC.departureNotice)">完成发预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'rec'" style="width: 200px;" @click="commit(menuOperate.CTC.cancelReceivingNotice)">取消接预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'dep'" style="width: 200px;" @click="commit(menuOperate.CTC.cancelDepartureNotice)">取消发预</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'arrive'" style="width: 200px;" @click="commit(menuOperate.CTC.finishArrive)">完成到点</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'arrive'" style="width: 200px;" @click="commit(menuOperate.CTC.cancelArrive)">取消到点</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'departure'" style="width: 200px;" @click="commit(menuOperate.CTC.finishDeparture)">完成发点</el-button></div>
|
||||
<div style="text-align: center;margin-top: 10px;"><el-button v-if="type === 'departure'" style="width: 200px;" @click="commit(menuOperate.CTC.cancelDeparture)">取消发点</el-button></div>
|
||||
<el-button style="height: 50px;width: 50px;position: relative;left: 370px;" @click="doClose">关闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -34,8 +38,6 @@
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import { getUploadFile } from '@/api/pdf';
|
||||
import { DrawingType } from '@/scripts/ConstDic';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
|
||||
export default {
|
||||
@ -48,10 +50,10 @@ export default {
|
||||
selected: null,
|
||||
selectedType: '',
|
||||
dialogShow: false,
|
||||
menuOperate: menuOperate,
|
||||
type: '',
|
||||
stationCode: '',
|
||||
tripNumber: '',
|
||||
menuOperate: menuOperate,
|
||||
type: '',
|
||||
stationCode: '',
|
||||
tripNumber: '',
|
||||
loading: false,
|
||||
tableData: [],
|
||||
deviceTypeList: [
|
||||
@ -62,9 +64,9 @@ export default {
|
||||
],
|
||||
deviceIdList: [],
|
||||
form: {
|
||||
work: '',
|
||||
time: '',
|
||||
info: ''
|
||||
work: '',
|
||||
time: '',
|
||||
info: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -74,22 +76,11 @@ export default {
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
if (this.selectedType === 'normStudy') {
|
||||
return '规范学习';
|
||||
} else if (this.selectedType === 'clCaAn') {
|
||||
return '经典案例分析';
|
||||
} else if (this.selectedType === 'baDeTr') {
|
||||
return '基础设备培训';
|
||||
} else {
|
||||
return '图纸检索';
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(row, type, stationCode) {
|
||||
this.type = type;
|
||||
this.type = type;
|
||||
this.loading = true;
|
||||
this.stationCode = stationCode;
|
||||
this.tripNumber = row.tripNumber;
|
||||
@ -103,28 +94,27 @@ export default {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit(type) {
|
||||
this.loading = true;
|
||||
//menuOperate.CTC.receivingNotice
|
||||
|
||||
commitOperate(type, {stationCode: this.stationCode, tripNumber: this.tripNumber}, 3).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
commit(type) {
|
||||
this.loading = true;
|
||||
commitOperate(type, {stationCode: this.stationCode, tripNumber: this.tripNumber}, 3).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
this.$message.error('操作失败!');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
/*background: rgba(0, 0, 0, x);*/
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
|
@ -1,69 +1,69 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag top="12vh" class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="1100px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="2">列车车次</el-col>
|
||||
<el-col :span="21"><span style="font-size: 18px;color: #f00;">{{ selected.tripNumber }}</span></el-col>
|
||||
</el-row>
|
||||
<el-row style="margin-top: 10px;">
|
||||
<el-col :span="2">进路描述</el-col>
|
||||
<el-col :span="21">
|
||||
<div style="width: 100%;height: 50px;background: #DFE3E6;padding: 10px;">
|
||||
<span>{{ `${type === 'dep' ? '发车/通过': '接车/通过'}; 股道:${selected.trackName};进路按钮:${getRouteNames()}` }}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="margin-top: 10px;">
|
||||
<el-col :span="2">进路显示</el-col>
|
||||
<el-col :span="21">
|
||||
<map-visual ref="map" :map-data="mapData" :width="960" :height="600" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--<el-row :gutter="24">-->
|
||||
<!--<el-col :span="6">-->
|
||||
<!--<el-row class="header">-->
|
||||
<!--<el-col :span="11"><span>集中站</span></el-col>-->
|
||||
<!--<el-col :span="11" :offset="2"><span>始端信号机</span></el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--<el-row>-->
|
||||
<!--<el-col :span="11">-->
|
||||
<!--<el-input v-model="stationName" size="small" disabled />-->
|
||||
<!--</el-col>-->
|
||||
<!--<el-col :span="11" :offset="2">-->
|
||||
<!--<el-input v-model="signalName" size="small" disabled />-->
|
||||
<!--</el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--<el-row style="margin-top: 10px; line-height: 30px;">-->
|
||||
<!--<el-col :span="11"><span>进路列表</span></el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--<el-table ref="table" :data="tempData" border :cell-style="tableStyle" style="width: 100%; height: 460px; margin-top:10px" size="mini" highlight-current-row :show-header="false" @row-click="clickEvent">-->
|
||||
<!--<el-table-column :id="domIdChoose" prop="name" style="margin-left:30px" />-->
|
||||
<!--</el-table>-->
|
||||
<!--<el-row justify="center" class="button-group">-->
|
||||
<!--<el-col :span="8" :offset="4">-->
|
||||
<!--<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="commitDisabled" @click="commit">确定</el-button>-->
|
||||
<!--</el-col>-->
|
||||
<!--<el-col :span="8" :offset="4">-->
|
||||
<!--<el-button :id="domIdCancel" @click="cancel">取 消</el-button>-->
|
||||
<!--</el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--</el-col>-->
|
||||
<!--<el-col :span="18">-->
|
||||
<!--<map-visual ref="map" :map-data="mapData" :width="780" :height="600" />-->
|
||||
<!--</el-col>-->
|
||||
<el-col :span="2">列车车次</el-col>
|
||||
<el-col :span="21"><span style="font-size: 18px;color: #f00;">{{ selected.tripNumber }}</span></el-col>
|
||||
</el-row>
|
||||
<el-row style="margin-top: 10px;">
|
||||
<el-col :span="2">进路描述</el-col>
|
||||
<el-col :span="21">
|
||||
<div style="width: 100%;height: 50px;background: #DFE3E6;padding: 10px;">
|
||||
<span>{{ `${type === 'dep' ? '发车/通过': '接车/通过'}; 股道:${selected.trackName};进路按钮:${getRouteNames()}` }}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="margin-top: 10px;">
|
||||
<el-col :span="2">进路显示</el-col>
|
||||
<el-col :span="21">
|
||||
<map-visual ref="map" :map-data="mapData" :width="960" :height="600" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--<el-row :gutter="24">-->
|
||||
<!--<el-col :span="6">-->
|
||||
<!--<el-row class="header">-->
|
||||
<!--<el-col :span="11"><span>集中站</span></el-col>-->
|
||||
<!--<el-col :span="11" :offset="2"><span>始端信号机</span></el-col>-->
|
||||
<!--</el-row>-->
|
||||
<el-row style="margin-top: 10px;margin-bottom: 10px;">
|
||||
<el-col :span="21" :offset="2">
|
||||
<el-radio disabled v-model="radio" label="禁用">分段办理</el-radio>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="display: flex;justify-content: space-between;margin-bottom: 10px;">
|
||||
<el-button size="mini" v-if="type === 'rec'" :type="selected.receivingRouteAutoTrigger?'warning':''" :disabled="!!route.lock || !selected.receivingNotice" @click="commit">办理接车</el-button>
|
||||
<el-button size="mini" v-if="type === 'dep'" :type="selected.departureRouteAutoTrigger?'warning':''" :disabled="!!route.lock || !selected.departureNotice" @click="commit">办理发车</el-button>
|
||||
<el-button size="mini" disabled>办理通过</el-button>
|
||||
<el-button size="mini" disabled>进路单锁</el-button>
|
||||
<el-button size="mini" :disabled="cancelRouteDisabled" @click="commit">取消进路</el-button>
|
||||
<el-button size="mini" @click="doClose">关闭</el-button>
|
||||
</div>
|
||||
<!--<el-row>-->
|
||||
<!--<el-col :span="11">-->
|
||||
<!--<el-input v-model="stationName" size="small" disabled />-->
|
||||
<!--</el-col>-->
|
||||
<!--<el-col :span="11" :offset="2">-->
|
||||
<!--<el-input v-model="signalName" size="small" disabled />-->
|
||||
<!--</el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--<el-row style="margin-top: 10px; line-height: 30px;">-->
|
||||
<!--<el-col :span="11"><span>进路列表</span></el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--<el-table ref="table" :data="tempData" border :cell-style="tableStyle" style="width: 100%; height: 460px; margin-top:10px" size="mini" highlight-current-row :show-header="false" @row-click="clickEvent">-->
|
||||
<!--<el-table-column :id="domIdChoose" prop="name" style="margin-left:30px" />-->
|
||||
<!--</el-table>-->
|
||||
<!--<el-row justify="center" class="button-group">-->
|
||||
<!--<el-col :span="8" :offset="4">-->
|
||||
<!--<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="commitDisabled" @click="commit">确定</el-button>-->
|
||||
<!--</el-col>-->
|
||||
<!--<el-col :span="8" :offset="4">-->
|
||||
<!--<el-button :id="domIdCancel" @click="cancel">取 消</el-button>-->
|
||||
<!--</el-col>-->
|
||||
<!--</el-row>-->
|
||||
<!--</el-col>-->
|
||||
<!--<el-col :span="18">-->
|
||||
<!--<map-visual ref="map" :map-data="mapData" :width="780" :height="600" />-->
|
||||
<!--</el-col>-->
|
||||
<!--</el-row>-->
|
||||
<el-row style="margin-top: 10px;margin-bottom: 10px;">
|
||||
<el-col :span="21" :offset="2">
|
||||
<el-radio v-model="radio" disabled label="禁用">分段办理</el-radio>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="display: flex;justify-content: space-between;margin-bottom: 10px;">
|
||||
<el-button v-if="type === 'rec'" size="mini" :type="selected.receivingRouteAutoTrigger?'warning':''" :disabled="!!route.lock || !selected.receivingNotice" @click="commit">办理接车</el-button>
|
||||
<el-button v-if="type === 'dep'" size="mini" :type="selected.departureRouteAutoTrigger?'warning':''" :disabled="!!route.lock || !selected.departureNotice" @click="commit">办理发车</el-button>
|
||||
<el-button size="mini" disabled>办理通过</el-button>
|
||||
<el-button size="mini" disabled>进路单锁</el-button>
|
||||
<el-button size="mini" :disabled="cancelRouteDisabled" @click="commit">取消进路</el-button>
|
||||
<el-button size="mini" @click="doClose">关闭</el-button>
|
||||
</div>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
<confirm-tip ref="confirmTip" @close="doClose" />
|
||||
</el-dialog>
|
||||
@ -89,7 +89,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
radio:'',
|
||||
radio:'',
|
||||
beforeSectionList: [],
|
||||
beforeSwitchList: [],
|
||||
dialogShow: false,
|
||||
@ -98,11 +98,11 @@ export default {
|
||||
operation: '',
|
||||
display: true,
|
||||
mapData: null,
|
||||
route: '',
|
||||
route: '',
|
||||
tableStyle: {
|
||||
'border-bottom': 'none'
|
||||
},
|
||||
type: ''
|
||||
type: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -124,20 +124,21 @@ export default {
|
||||
title() {
|
||||
return '进路办理';
|
||||
},
|
||||
cancelRouteDisabled() {
|
||||
return !!!this.route.lock || (this.type === 'rec' && !this.selected.receivingNotice) || (this.type === 'dep' && !this.selected.departureNotice)
|
||||
}
|
||||
cancelRouteDisabled() {
|
||||
return !this.route.lock || (this.type === 'rec' && !this.selected.receivingNotice) || (this.type === 'dep' && !this.selected.departureNotice);
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
this.mapData = JSON.parse(JSON.stringify(this.$store.state.map.map));
|
||||
watch: {
|
||||
'$store.state.map.mapDataLoadedCount': function (val) { // 地图数据加载完成
|
||||
this.mapData = JSON.parse(JSON.stringify(this.$store.state.map.map));
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getRouteNames() {
|
||||
const receivingRoute = this.$store.state.map.routeData[this.selected.receivingRouteCode];
|
||||
const departureRoute = this.$store.state.map.routeData[this.selected.departureRouteCode];
|
||||
return (receivingRoute?receivingRoute.name: '') + ',' + (departureRoute?departureRoute.name: '');
|
||||
},
|
||||
getRouteNames() {
|
||||
const receivingRoute = this.$store.state.map.routeData[this.selected.receivingRouteCode];
|
||||
const departureRoute = this.$store.state.map.routeData[this.selected.departureRouteCode];
|
||||
return (receivingRoute ? receivingRoute.name : '') + ',' + (departureRoute ? departureRoute.name : '');
|
||||
},
|
||||
doShow(selected, type) {
|
||||
// this.$root.$emit('dialogOpen', selected);
|
||||
this.selected = selected;
|
||||
@ -154,12 +155,12 @@ export default {
|
||||
if (this.mapData) {
|
||||
this.$refs.map.loadData(this.mapData);
|
||||
setTimeout(() => {
|
||||
if (this.type === 'rec'){
|
||||
this.clickEvent(this.selected.receivingRouteCode);
|
||||
} else if (this.type === 'dep'){
|
||||
this.clickEvent(this.selected.departureRouteCode);
|
||||
}
|
||||
}, 100);
|
||||
if (this.type === 'rec') {
|
||||
this.clickEvent(this.selected.receivingRouteCode);
|
||||
} else if (this.type === 'dep') {
|
||||
this.clickEvent(this.selected.departureRouteCode);
|
||||
}
|
||||
}, 100);
|
||||
|
||||
}
|
||||
},
|
||||
@ -210,7 +211,7 @@ export default {
|
||||
|
||||
this.$refs.map.setCenterWithOffset(code, 50, signal.position.y);
|
||||
if (route.routeSectionList && route.routeSectionList.length) {
|
||||
route.routeSectionList.forEach(code => {
|
||||
route.routeSectionList.forEach(code => {
|
||||
const section = deepAssign({}, this.$refs.map.getDeviceByCode(code));
|
||||
if (section.logicSectionCodeList && section.logicSectionCodeList.length) {
|
||||
section.logicSectionCodeList.forEach(sectionCode => {
|
||||
@ -227,10 +228,10 @@ export default {
|
||||
}
|
||||
|
||||
if (route.routeSwitchList && route.routeSwitchList.length) {
|
||||
route.routeSwitchList.filter(el => switchCodeList.includes(el.switchCode)).forEach(el => {
|
||||
route.routeSwitchList.filter(el => switchCodeList.includes(el.switchCode)).forEach(el => {
|
||||
const swch = deepAssign({}, this.$refs.map.getDeviceByCode(el.switchCode));
|
||||
const sectionA = this.$refs.map.getDeviceByCode(swch.sectionACode);
|
||||
const sectionB = this.$refs.map.getDeviceByCode(swch.sectionBCode);
|
||||
// const sectionB = this.$refs.map.getDeviceByCode(swch.sectionBCode);
|
||||
const sectionC = this.$refs.map.getDeviceByCode(swch.sectionCCode);
|
||||
// normalPosition: el.normal, reversePosition: !el.normal
|
||||
containSwitchList.push({code: el.switchCode, routeLock: true, pos:el.pos });
|
||||
@ -267,7 +268,7 @@ export default {
|
||||
commit() {
|
||||
if (this.route) {
|
||||
this.loading = true;
|
||||
const type = this.route.lock ? menuOperate.Signal.cancelTrainRoute :menuOperate.Signal.arrangementRoute;
|
||||
const type = this.route.lock ? menuOperate.Signal.cancelTrainRoute : menuOperate.Signal.arrangementRoute;
|
||||
const param = this.route.lock ? { signalCode: this.route.startSignalCode } : { routeCode:this.route.code };
|
||||
commitOperate(type, param, 3).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
@ -275,7 +276,6 @@ export default {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
@ -294,7 +294,7 @@ export default {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
} //D3D8DC
|
||||
} // D3D8DC
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
265
src/jmapNew/theme/datie_02/menus/dialog/sendRunplan.vue
Normal file
@ -0,0 +1,265 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
id="sendRunplanClass"
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="1165px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="tableList">
|
||||
<div class="leftTable">
|
||||
<el-table
|
||||
id="sendRunplanLeftTable"
|
||||
:data="tableData1"
|
||||
border
|
||||
height="570"
|
||||
style="width: 100%;border:1px #ccc solid"
|
||||
>
|
||||
<el-table-column
|
||||
type="index"
|
||||
label="序号"
|
||||
width="70"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="tripNumber"
|
||||
label="车次"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="type"
|
||||
label="类型"
|
||||
width="50"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="arriveRunPlan.accessName"
|
||||
label="方向"
|
||||
width="105"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.arriveRunPlan" :title="scope.row.arriveRunPlan.accessName">{{ scope.row.arriveRunPlan.accessName }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="arriveRunPlan.sectionName"
|
||||
label="到达股道"
|
||||
width="95"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="arriveRunPlan.planTime"
|
||||
label="到达时刻"
|
||||
width="95"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="departRunPlan.accessName"
|
||||
label="去向"
|
||||
width="105"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.departRunPlan" :title="scope.row.departRunPlan.accessName">{{ scope.row.departRunPlan.accessName }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="departRunPlan.sectionName"
|
||||
label="出发股道"
|
||||
width="95"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="departRunPlan.planTime"
|
||||
label="出发时间"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="property"
|
||||
label="属性"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="tips"
|
||||
label="注意事项"
|
||||
width="120"
|
||||
/>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="rightTable">
|
||||
<el-table
|
||||
id="sendRunplanRightTable"
|
||||
:data="tableData2"
|
||||
border
|
||||
height="570"
|
||||
style="width: 100%;border:1px #ccc solid"
|
||||
>
|
||||
<el-table-column
|
||||
prop="number"
|
||||
label="序号"
|
||||
width="40"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="number"
|
||||
label="受令单位"
|
||||
width="70"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="number"
|
||||
label="状态"
|
||||
width="70"
|
||||
/>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="8" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">发送</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
<!-- updateTrip -->
|
||||
</template>
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name:'SendRunplan',
|
||||
data() {
|
||||
return {
|
||||
dialogShow:false,
|
||||
loading: false,
|
||||
tableData1:[],
|
||||
tableData2:[],
|
||||
addModel:{
|
||||
stationCode:'',
|
||||
planParamList:[],
|
||||
force:1
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.CTCCommand.batchModifyTrackSection.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '发送计划';
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
doShow(tableData, activeDepartRunPlan, activeArriveRunPlan, filterSectionList) {
|
||||
this.addModel.planParamList = [];
|
||||
this.tableData1 = [];
|
||||
tableData.forEach(element => {
|
||||
if (element.arriveRunPlan && element.arriveRunPlan.sectionCode) {
|
||||
const sectionObj = filterSectionList.find(section=>{ return section.code == element.arriveRunPlan.sectionCode; }) || {name:''};
|
||||
element.arriveRunPlan.sectionName = sectionObj.name;
|
||||
}
|
||||
if (element.departRunPlan && element.departRunPlan.sectionCode) {
|
||||
const sectionObj = filterSectionList.find(section=>{ return section.code == element.departRunPlan.sectionCode; }) || {name:''};
|
||||
element.departRunPlan.sectionName = sectionObj.name;
|
||||
}
|
||||
this.tableData1.push(element);
|
||||
});
|
||||
// filterSectionList
|
||||
this.addModel.stationCode = this.$store.state.training.roleDeviceCode;
|
||||
const activeDepartRunPlanList = Object.values(activeDepartRunPlan).filter(activeDepart=>{ return activeDepart.changeSectionCode && activeDepart.changeSectionCode != activeDepart.sectionCode; });
|
||||
if (activeDepartRunPlanList.length > 0) {
|
||||
activeDepartRunPlanList.forEach(depart=>{
|
||||
this.addModel.planParamList.push({
|
||||
runPlanCode:depart.code,
|
||||
departSectionCode:depart.changeSectionCode
|
||||
});
|
||||
});
|
||||
}
|
||||
const activeArriveRunPlanList = Object.values(activeArriveRunPlan).filter(activeArrive=>{ return activeArrive.changeSectionCode && activeArrive.changeSectionCode != activeArrive.sectionCode; });
|
||||
if (activeArriveRunPlanList.length > 0) {
|
||||
activeArriveRunPlanList.forEach(arrive=>{
|
||||
this.addModel.planParamList.push({
|
||||
runPlanCode:arrive.code,
|
||||
arriveSectionCode:arrive.changeSectionCode
|
||||
});
|
||||
});
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
if (this.addModel.planParamList.length > 0) {
|
||||
const params = this.addModel;
|
||||
this.loading = true;
|
||||
commitOperate(menuOperate.CTC.batchModifyTrackSection, params, 3).then(({valid})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.$emit('closeFlash');
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$emit('noticeInfo');
|
||||
});
|
||||
}
|
||||
|
||||
// * @param stationCode 车站编码
|
||||
// * @param runPlanCode 运行编码
|
||||
// * @param arriveSectionCode 到达股道编码
|
||||
// * @param departSectionCode 出发股道编码
|
||||
// * @param force 是否强制 0:不强制。1:强制
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.tableList{
|
||||
display: inline-block
|
||||
}
|
||||
.leftTable{
|
||||
display: inline-block;
|
||||
width: 955px;
|
||||
}
|
||||
.rightTable{
|
||||
display: inline-block;
|
||||
margin-left:10px;
|
||||
font-size:13px;
|
||||
width:150px
|
||||
}
|
||||
.sendRunplanLeftTable{
|
||||
|
||||
}
|
||||
</style>
|
||||
<style lang="css">
|
||||
#sendRunplanClass.chengdou-03__systerm .el-dialog .el-dialog__body{
|
||||
padding: 10px;
|
||||
}
|
||||
#sendRunplanClass.chengdou-03__systerm .el-dialog .el-table .cell div{
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
62
src/jmapNew/theme/datie_02/menus/dialog/shuntRoute.vue
Normal file
@ -0,0 +1,62 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="fuzhou-01__systerm"
|
||||
title="调车进路参数"
|
||||
:visible.sync="show"
|
||||
width="300px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div style="padding: 10px;text-align: center;">
|
||||
<div>{{ `${routeName}调车进路预计占用时间:` }}</div>
|
||||
<div style="display: flex;align-items: center;margin-top: 10px;">
|
||||
<el-input-number v-model="time" size="small" :controls="false" style="width: 220px;" />
|
||||
<div>分钟</div>
|
||||
</div>
|
||||
<div style="border: 1px solid #000;padding: 10px;margin-top: 10px;">
|
||||
<el-radio v-model="radio" label="1">电力机车</el-radio>
|
||||
<el-radio v-model="radio" label="2">内燃机车</el-radio>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 10px;">
|
||||
<el-button @click="commit">确定</el-button>
|
||||
<el-button @click="doClose">取消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ShuntRoute',
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
routeName: '',
|
||||
radio: '',
|
||||
time: 0
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
doClose() {
|
||||
this.show = false;
|
||||
this.$emit('routeCancel');
|
||||
},
|
||||
doShow(route) {
|
||||
this.show = true;
|
||||
this.routeName = route.name;
|
||||
},
|
||||
commit() {
|
||||
this.show = false;
|
||||
this.$emit('routeCommit', '', this.time);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
51
src/jmapNew/theme/datie_02/menus/dialog/trainRoute.vue
Normal file
@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="fuzhou-01__systerm"
|
||||
title="列车进路办理"
|
||||
:visible.sync="show"
|
||||
width="300px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div>{{ `请为进路${routeName}输入车次号:` }}</div>
|
||||
<el-input v-model="trainCode" size="small" />
|
||||
<div style="text-align: center;margin-top: 10px;">
|
||||
<el-button @click="commit">确定</el-button>
|
||||
<el-button @click="doClose">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'TrainRoute',
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
routeName: '',
|
||||
trainCode: ''
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
doClose() {
|
||||
this.show = false;
|
||||
this.$emit('routeCancel');
|
||||
},
|
||||
doShow(route) {
|
||||
this.show = true;
|
||||
this.routeName = route.name;
|
||||
},
|
||||
commit() {
|
||||
this.show = false;
|
||||
this.$emit('routeCommit', this.trainCode);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -71,33 +71,31 @@ export default {
|
||||
});
|
||||
},
|
||||
handleTripNumber() {
|
||||
this.judgeTripNumber();
|
||||
},
|
||||
judgeTripNumber() {
|
||||
const figuresOfServiceMinNumber = 2;
|
||||
const figuresOfServiceMaxNumber = 6;
|
||||
// this.$store.state.map.mapConfig.figuresOfServiceNumber;
|
||||
const tripNumber = this.tripNumber;
|
||||
const judge = /^[a-zA-Z0-9]*[\d]$/.test(this.tripNumber);
|
||||
let result = false;
|
||||
if (judge) {
|
||||
if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) {
|
||||
this.messageTip1 = '车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位';
|
||||
result = false;
|
||||
} else {
|
||||
// this.tripNumber = tripNumber;
|
||||
this.messageTip1 = '';
|
||||
result = true;
|
||||
}
|
||||
} else {
|
||||
this.tripNumber = '';
|
||||
this.messageTip1 = '请输入车次号(最后一位数字)';
|
||||
}
|
||||
return result;
|
||||
},
|
||||
commit() {
|
||||
const figuresOfServiceMinNumber = 2;
|
||||
const figuresOfServiceMaxNumber = 6;
|
||||
let result = false;
|
||||
const tripNumber = this.tripNumber;
|
||||
if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) {
|
||||
result = false;
|
||||
} else {
|
||||
result = true;
|
||||
}
|
||||
const result = this.judgeTripNumber();
|
||||
if (this.tripNumber && result) {
|
||||
const params = {
|
||||
tripNumber: this.tripNumber
|
||||
@ -114,15 +112,7 @@ export default {
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
|
||||
} else {
|
||||
if (this.tripNumber) {
|
||||
this.messageTip1 = '该车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位';
|
||||
} else {
|
||||
this.messageTip1 = '请输入车次号(最后一位数字)';
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
@ -1,50 +1,44 @@
|
||||
<template>
|
||||
<div class="menus" :style="{width: width + 'px'}">
|
||||
<menu-bar v-if="isCtc" ref="menuBar" :selected="selected" />
|
||||
<div v-if="isCtc" style="display: flex;position: absolute; top: 6px;z-index: 13;left: 50px;">
|
||||
<img :src="ctcBarIcon1" class="img-box" />
|
||||
<img :src="ctcBarIcon2" class="img-box" />
|
||||
<img :src="ctcBarIcon3" class="img-box" />
|
||||
<img :src="ctcBarIcon4" class="img-box" />
|
||||
<img :src="ctcBarIcon5" class="img-box" />
|
||||
<img :src="ctcBarIcon6" class="img-box" />
|
||||
<img :src="ctcBarIcon7" class="img-box" />
|
||||
<img :src="ctcBarIcon8" class="img-box" />
|
||||
<img :src="ctcBarIcon9" class="img-box" />
|
||||
<img :src="ctcBarIcon10" class="img-box" />
|
||||
<img :src="ctcBarIcon11" class="img-box" />
|
||||
<img :src="ctcBarIcon12" class="img-box" />
|
||||
<img :src="ctcBarIcon13" class="img-box" />
|
||||
<img :src="ctcBarIcon14" class="img-box" />
|
||||
<img :src="ctcBarIcon15" class="img-box" />
|
||||
<img :src="ctcBarIcon16" class="img-box" />
|
||||
<img :src="ctcBarIcon17" class="img-box" />
|
||||
<img :src="ctcBarIcon18" class="img-box" />
|
||||
</div>
|
||||
<!--<div v-if="$store.state.training.prdType == '01'" class="alarm-window">-->
|
||||
<!--<div v-for="elem in alarmMessages" :key="elem.id" style="font-size: 14px;">-->
|
||||
<!--{{ elem.message }}-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="device-status-window">-->
|
||||
<!--<div class="device-status-button" :style="{background: mode === 'liansuo' ? '#0f0': '#f00'}" @click="selectedMode('liansuo')">联锁I</div>-->
|
||||
<!--<div class="device-status-button" :style="{background: mode === 'ctc' ? '#0f0': '#f00'}" @click="selectedMode('ctc')">CTC</div>-->
|
||||
<!--<div class="device-status-button" style="background: #f00;">联锁II</div>-->
|
||||
<!--<div class="device-status-button" style="background: #0f0;">操作A</div>-->
|
||||
<!--<div class="device-status-button" style="background: #ff0;">操作B</div>-->
|
||||
<!--<div class="device-status-button" style="background: #f00;">维修机</div>-->
|
||||
<!--</div>-->
|
||||
<!--<div v-if="$store.state.training.prdType == '01'" class="warning-window">-->
|
||||
<!--<div v-for="elem in warningMessages" :key="elem.id" style="font-size: 14px;color: #ff0">-->
|
||||
<!--{{ elem.message }}-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<div v-if="$store.state.training.prdType == '01'" style="width: 1405px;position: fixed;height: 30px;background: #808080;z-index: 9;bottom: 0;left: 0;display: flex;">
|
||||
<div style="width: 60%;height: 30px;line-height: 30px;text-align: center;">提示信息窗</div>
|
||||
<div style="width: 40%;height: 30px;line-height: 30px;text-align: center;border-left: 2px #ccc solid;">{{ '操控A:主机' + ' ' + dateString + ' ' + time }}</div>
|
||||
</div>
|
||||
<div v-if="isCtc" style="font-size: 14px;padding: 0 10px;background: #DEE3F3;line-height: 30px;position: absolute;width: 100%;z-index: 9;">{{ `哈尔滨局CTC3.0(车务终端A机)--王岗:${dateString}第一班 18:00 管理员代--` }}</div>
|
||||
<menu-bar v-if="isCtc" ref="menuBar" :date-strin="dateString1" :selected="selected" />
|
||||
<div v-if="isCtc" style="position: absolute; top: 64px;z-index: 10;background: #F0F0F0;padding: 2px;height: 65px;width: 100%;">
|
||||
<div style="display: flex;">
|
||||
<img :src="ctcBarIcon1" class="img-box">
|
||||
<img :src="ctcBarIcon2" class="img-box">
|
||||
<img :src="ctcBarIcon3" class="img-box">
|
||||
<img :src="ctcBarIcon4" class="img-box">
|
||||
<img :src="ctcBarIcon5" class="img-box">
|
||||
<img :src="ctcBarIcon6" class="img-box">
|
||||
<img :src="ctcBarIcon7" class="img-box">
|
||||
<img :src="ctcBarIcon8" class="img-box">
|
||||
<img :src="ctcBarIcon9" class="img-box">
|
||||
<img :src="ctcBarIcon10" class="img-box">
|
||||
<img :src="ctcBarIcon11" class="img-box">
|
||||
<img :src="ctcBarIcon12" class="img-box">
|
||||
<img :src="ctcBarIcon13" class="img-box">
|
||||
<img :src="ctcBarIcon14" class="img-box">
|
||||
<img :src="ctcBarIcon15" class="img-box">
|
||||
<img :src="ctcBarIcon16" class="img-box">
|
||||
<img :src="ctcBarIcon17" class="img-box">
|
||||
<img :src="ctcBarIcon18" class="img-box" @click="handleRunplan">
|
||||
</div>
|
||||
<div style="display: flex;padding: 2px;border-top: 2px solid #D1D1D1;margin-top: 3px">
|
||||
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;">调度命令</div>
|
||||
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;" />
|
||||
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;margin-left: 100px;">阶段计划</div>
|
||||
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;margin-left: 5px;">阶段记事</div>
|
||||
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">{{ dateString1 + ' ' + time }}</div>
|
||||
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">同步站机通信中断</div>
|
||||
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">与中心通信正常</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$store.state.training.prdType == '01'&& !isCtc" style="width: 1405px;position: fixed;height: 30px;background: #808080;z-index: 9;bottom: 0;left: 0;display: flex;">
|
||||
<div style="width: 60%;height: 30px;line-height: 30px;text-align: center;">提示信息窗</div>
|
||||
<div style="width: 40%;height: 30px;line-height: 30px;text-align: center;border-left: 2px #ccc solid;">{{ '操控A:主机' + ' ' + dateString + ' ' + time }}</div>
|
||||
</div>
|
||||
<menu-button v-if="!isCtc" ref="menuButton" :selected="selected" />
|
||||
<menu-button-ctc v-if="isCtc" ref="menuButtonCtc" :selected="selected" />
|
||||
<menu-button-ctc v-if="isCtc" ref="menuButtonCtc" :selected="selected" />
|
||||
<menu-station-stand ref="menuStationStand" :selected="selected" />
|
||||
<menu-switch ref="menuSwitch" :selected="selected" />
|
||||
<menu-signal ref="menuSignal" :selected="selected" />
|
||||
@ -54,6 +48,9 @@
|
||||
<passive-alarm ref="passiveAlarm" />
|
||||
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
||||
<passive-Timeout ref="passiveTimeout" />
|
||||
<runplan-pane v-if="isCtc" ref="runplanPane" />
|
||||
<bottom-table ref="bottomTable" />
|
||||
<menu-panel v-if="isCtc" ref="menuPanel" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -68,11 +65,14 @@ import MenuTrain from './menuTrain';
|
||||
import MenuStation from './menuStation';
|
||||
import MenuBar from './menuBar';
|
||||
import MenuButtonCtc from './menuButtonCtc';
|
||||
import RunplanPane from './runplanPane';
|
||||
import PassiveAlarm from './passiveDialog/alarm';
|
||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||
import PassiveTimeout from './passiveDialog/timeout';
|
||||
import { timeFormat } from '@/utils/date';
|
||||
import { prefixIntrger } from '@/utils/date';
|
||||
import BottomTable from './bottomTable';
|
||||
import MenuPanel from './menuPanel';
|
||||
import CtcBarIcon1 from '@/assets/ctc_icon/pic1.png';
|
||||
import CtcBarIcon2 from '@/assets/ctc_icon/pic2.png';
|
||||
import CtcBarIcon3 from '@/assets/ctc_icon/pic3.png';
|
||||
@ -106,7 +106,10 @@ export default {
|
||||
PassiveAlarm,
|
||||
PassiveContorl,
|
||||
PassiveTimeout,
|
||||
MenuButtonCtc
|
||||
MenuButtonCtc,
|
||||
RunplanPane,
|
||||
BottomTable,
|
||||
MenuPanel
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -116,48 +119,49 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
alarmMessages: [
|
||||
{ id: 1, message: '这是告警信息一' },
|
||||
{ id: 2, message: '这是告警信息二' },
|
||||
{ id: 3, message: '这是告警信息三' },
|
||||
{ id: 4, message: '这是告警信息四' },
|
||||
{ id: 5, message: '这是告警信息五' },
|
||||
{ id: 6, message: '这是告警信息六' },
|
||||
{ id: 7, message: '这是告警信息七' },
|
||||
],
|
||||
warningMessages: [
|
||||
{ id: 1, message: '这是预警信息一' },
|
||||
{ id: 2, message: '这是预警信息二' },
|
||||
{ id: 3, message: '这是预警信息三' },
|
||||
{ id: 4, message: '这是预警信息四' },
|
||||
{ id: 5, message: '这是预警信息五' },
|
||||
{ id: 6, message: '这是预警信息六' },
|
||||
{ id: 7, message: '这是预警信息七' },
|
||||
],
|
||||
time: '00:00:00',
|
||||
dateString: '',
|
||||
ctcBarIcon1: CtcBarIcon1,
|
||||
ctcBarIcon2: CtcBarIcon2,
|
||||
ctcBarIcon3: CtcBarIcon3,
|
||||
ctcBarIcon4: CtcBarIcon4,
|
||||
ctcBarIcon5: CtcBarIcon5,
|
||||
ctcBarIcon6: CtcBarIcon6,
|
||||
ctcBarIcon7: CtcBarIcon7,
|
||||
ctcBarIcon8: CtcBarIcon8,
|
||||
ctcBarIcon9: CtcBarIcon9,
|
||||
ctcBarIcon10: CtcBarIcon10,
|
||||
ctcBarIcon11: CtcBarIcon11,
|
||||
ctcBarIcon12: CtcBarIcon12,
|
||||
ctcBarIcon13: CtcBarIcon13,
|
||||
ctcBarIcon14: CtcBarIcon14,
|
||||
ctcBarIcon15: CtcBarIcon15,
|
||||
ctcBarIcon16: CtcBarIcon16,
|
||||
ctcBarIcon17: CtcBarIcon17,
|
||||
ctcBarIcon18: CtcBarIcon18,
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
alarmMessages: [
|
||||
{ id: 1, message: '这是告警信息一' },
|
||||
{ id: 2, message: '这是告警信息二' },
|
||||
{ id: 3, message: '这是告警信息三' },
|
||||
{ id: 4, message: '这是告警信息四' },
|
||||
{ id: 5, message: '这是告警信息五' },
|
||||
{ id: 6, message: '这是告警信息六' },
|
||||
{ id: 7, message: '这是告警信息七' }
|
||||
],
|
||||
warningMessages: [
|
||||
{ id: 1, message: '这是预警信息一' },
|
||||
{ id: 2, message: '这是预警信息二' },
|
||||
{ id: 3, message: '这是预警信息三' },
|
||||
{ id: 4, message: '这是预警信息四' },
|
||||
{ id: 5, message: '这是预警信息五' },
|
||||
{ id: 6, message: '这是预警信息六' },
|
||||
{ id: 7, message: '这是预警信息七' }
|
||||
],
|
||||
time: '00:00:00',
|
||||
dateString: '',
|
||||
dateString1: '',
|
||||
ctcBarIcon1: CtcBarIcon1,
|
||||
ctcBarIcon2: CtcBarIcon2,
|
||||
ctcBarIcon3: CtcBarIcon3,
|
||||
ctcBarIcon4: CtcBarIcon4,
|
||||
ctcBarIcon5: CtcBarIcon5,
|
||||
ctcBarIcon6: CtcBarIcon6,
|
||||
ctcBarIcon7: CtcBarIcon7,
|
||||
ctcBarIcon8: CtcBarIcon8,
|
||||
ctcBarIcon9: CtcBarIcon9,
|
||||
ctcBarIcon10: CtcBarIcon10,
|
||||
ctcBarIcon11: CtcBarIcon11,
|
||||
ctcBarIcon12: CtcBarIcon12,
|
||||
ctcBarIcon13: CtcBarIcon13,
|
||||
ctcBarIcon14: CtcBarIcon14,
|
||||
ctcBarIcon15: CtcBarIcon15,
|
||||
ctcBarIcon16: CtcBarIcon16,
|
||||
ctcBarIcon17: CtcBarIcon17,
|
||||
ctcBarIcon18: CtcBarIcon18
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('config', [
|
||||
'width'
|
||||
@ -165,19 +169,19 @@ export default {
|
||||
isShowBar() {
|
||||
return this.$store.state.training.prdType && this.$store.state.training.prdType !== '07';
|
||||
},
|
||||
isCtc() {
|
||||
return this.$route.query.ctc
|
||||
}
|
||||
isCtc() {
|
||||
return this.$route.query.ctc;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isShowBar(val) {
|
||||
val && this.$store.dispatch('config/updateMenuBar');
|
||||
},
|
||||
'$store.state.socket.simulationTimeSync': function (time) { // 仿真时间更新
|
||||
this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`));
|
||||
const date = new Date(+new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`));
|
||||
this.initDate(date);
|
||||
}
|
||||
'$store.state.socket.simulationTimeSync': function (time) { // 仿真时间更新
|
||||
this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`));
|
||||
const date = new Date(+new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`));
|
||||
this.initDate(date);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
@ -199,17 +203,21 @@ export default {
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
},
|
||||
methods: {
|
||||
initDate(date) {
|
||||
this.time = `${prefixIntrger(date.getHours(), 2)}:${prefixIntrger(date.getMinutes(), 2)}:${prefixIntrger(date.getSeconds(), 2)}`;
|
||||
const years = date.getFullYear() + '';
|
||||
let months = date.getMonth() + 1 + '';
|
||||
let dates = date.getDate() + '';
|
||||
if (months.length < 2) { months = '0' + months; }
|
||||
if (dates.length < 2) { dates = '0' + dates; }
|
||||
this.dateString = years + months + dates;
|
||||
}
|
||||
}
|
||||
methods: {
|
||||
initDate(date) {
|
||||
this.time = `${prefixIntrger(date.getHours(), 2)}:${prefixIntrger(date.getMinutes(), 2)}:${prefixIntrger(date.getSeconds(), 2)}`;
|
||||
const years = date.getFullYear() + '';
|
||||
let months = date.getMonth() + 1 + '';
|
||||
let dates = date.getDate() + '';
|
||||
if (months.length < 2) { months = '0' + months; }
|
||||
if (dates.length < 2) { dates = '0' + dates; }
|
||||
this.dateString = years + months + dates;
|
||||
this.dateString1 = years + '年' + months + '月' + dates + '日';
|
||||
},
|
||||
handleRunplan() {
|
||||
this.$refs.runplanPane.doShow();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -468,89 +476,273 @@ export default {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
.fuzhou-01__systerm .el-dialog {
|
||||
background: rgba(100, 100, 100, 0.3);
|
||||
border: 2px solid rgb(144, 144, 144, 0.8);
|
||||
border-radius: 6px;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .button-group {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.alarm-window {
|
||||
width: 450px;
|
||||
height: 100px;
|
||||
position: fixed;
|
||||
top: 10px;
|
||||
left: 55px;
|
||||
background: #f00;
|
||||
z-index: 10;
|
||||
overflow-y: scroll;
|
||||
border-bottom: 6px #ccc solid;
|
||||
border-top: 6px #ccc solid;
|
||||
border-right: 3px #ccc solid;
|
||||
border-left: 3px #ccc solid;
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__header {
|
||||
padding: 5px;
|
||||
height: 26px;
|
||||
}
|
||||
.device-status-window {
|
||||
width: 160px;
|
||||
height: 35px;
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
right: 10px;
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
border: 2px #FBFCFB solid;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__footer {
|
||||
background: #F0F0F0;
|
||||
opacity: 1;
|
||||
}
|
||||
.device-status-button {
|
||||
border-top: 2px #808080 solid;
|
||||
border-left: 2px #808080 solid;
|
||||
border-right: 2px #FDFBF9 solid;
|
||||
border-bottom: 2px #FDFBF9 solid;
|
||||
width: 79px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__body {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin: 0px 5px 5px;
|
||||
border: 2px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
background: #F0F0F0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__title {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
color: #000;
|
||||
border-radius: 4px;
|
||||
padding: 0px 2px;
|
||||
height: 20px;
|
||||
line-height: 20px
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__title::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-filter: blur(10px);
|
||||
filter: blur(10px);
|
||||
height: 20px;
|
||||
width: -webkit-fill-available;
|
||||
background: rgba(128, 128, 128, 0.8);
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn {
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
top: 4px;
|
||||
right: 5px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-button {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
border: 2px outset #E2E2E2;
|
||||
border-radius: 0px !important;
|
||||
color: #000;
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-button:focus span {
|
||||
border: 1px dashed gray;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-button:active {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-button:disabled {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-button:disabled span {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-input {
|
||||
border: 2px inset #E9E9E9;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-input .el-input__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-textarea {
|
||||
border: 2px inset #E9E9E9;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-textarea .el-textarea__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-table {
|
||||
border: 2px inset #E9E9E9;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-table .cell {
|
||||
line-height: unset !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-table th.is-leaf {
|
||||
background: #F0F0F0 !important;
|
||||
border-right: 1px solid #BDBDBD !important;
|
||||
border-bottom: 1px solid #BDBDBD !important;
|
||||
color: #000 !important;
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-table tr td {
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-table .el-table__empty-text {
|
||||
top: 15px !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .current-row>td {
|
||||
background: #3399FF !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-radio__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-radio__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
background-color: #000 !important;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .base-label {
|
||||
background: rgb(240 240 240);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.warning-window {
|
||||
width: 400px;
|
||||
height: 100px;
|
||||
position: fixed;
|
||||
right: 10px;
|
||||
top: 60px;
|
||||
background: #808080;
|
||||
z-index: 10;
|
||||
overflow-y: scroll;
|
||||
border-bottom: 6px #ccc solid;
|
||||
border-top: 6px #ccc solid;
|
||||
border-right: 3px #ccc solid;
|
||||
border-left: 3px #ccc solid;
|
||||
padding: 5px;
|
||||
|
||||
.fuzhou-01__systerm .el-dialog .button-group {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.img-box{
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: 3px #ccc inset;
|
||||
border: 2px #ccc outset;
|
||||
margin-top: 0;
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.img-box:active{
|
||||
border: 3px #ccc outset;
|
||||
border: 2px #ccc inset;
|
||||
}
|
||||
.img-box:hover{
|
||||
border: 3px #ccc outset;
|
||||
border: 2px #ccc inset;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,26 +1,6 @@
|
||||
<template>
|
||||
<div id="menuBarChengdu3">
|
||||
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%" />
|
||||
<!--<div style="display: flex;">-->
|
||||
<!--<img :src="ctcBarIcon1" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon2" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon3" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon4" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon5" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon6" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon7" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon8" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon9" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon10" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon11" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon12" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon13" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon14" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon15" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon16" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon17" class="img-box" />-->
|
||||
<!--<img :src="ctcBarIcon18" class="img-box" />-->
|
||||
<!--</div>-->
|
||||
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;top: 30px;" />
|
||||
<station-control-convert ref="stationControlConvert" />
|
||||
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
|
||||
<view-name ref="viewName" />
|
||||
@ -45,24 +25,7 @@ import ViewName from './menuDialog/viewName';
|
||||
import ManageUser from './menuDialog/manageUser';
|
||||
import HelpAbout from './menuDialog/helpAbout';
|
||||
import SetLimitSpeed from './menuDialog/setLimitSpeed';
|
||||
import CtcBarIcon1 from '@/assets/ctc_icon/pic1.png';
|
||||
import CtcBarIcon2 from '@/assets/ctc_icon/pic2.png';
|
||||
import CtcBarIcon3 from '@/assets/ctc_icon/pic3.png';
|
||||
import CtcBarIcon4 from '@/assets/ctc_icon/pic4.png';
|
||||
import CtcBarIcon5 from '@/assets/ctc_icon/pic5.png';
|
||||
import CtcBarIcon6 from '@/assets/ctc_icon/pic6.png';
|
||||
import CtcBarIcon7 from '@/assets/ctc_icon/pic7.png';
|
||||
import CtcBarIcon8 from '@/assets/ctc_icon/pic8.png';
|
||||
import CtcBarIcon9 from '@/assets/ctc_icon/pic9.png';
|
||||
import CtcBarIcon10 from '@/assets/ctc_icon/pic10.png';
|
||||
import CtcBarIcon11 from '@/assets/ctc_icon/pic11.png';
|
||||
import CtcBarIcon12 from '@/assets/ctc_icon/pic12.png';
|
||||
import CtcBarIcon13 from '@/assets/ctc_icon/pic13.png';
|
||||
import CtcBarIcon14 from '@/assets/ctc_icon/pic14.png';
|
||||
import CtcBarIcon15 from '@/assets/ctc_icon/pic15.png';
|
||||
import CtcBarIcon16 from '@/assets/ctc_icon/pic16.png';
|
||||
import CtcBarIcon17 from '@/assets/ctc_icon/pic17.png';
|
||||
import CtcBarIcon18 from '@/assets/ctc_icon/pic18.png';
|
||||
import { EventBus } from '@/scripts/event-bus';
|
||||
|
||||
export default {
|
||||
name: 'MenuBarChengdu03',
|
||||
@ -78,31 +41,20 @@ export default {
|
||||
HelpAbout,
|
||||
SetLimitSpeed
|
||||
},
|
||||
props: {
|
||||
dateString: {
|
||||
type: String,
|
||||
default: () => {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
ctcBarIcon1: CtcBarIcon1,
|
||||
ctcBarIcon2: CtcBarIcon2,
|
||||
ctcBarIcon3: CtcBarIcon3,
|
||||
ctcBarIcon4: CtcBarIcon4,
|
||||
ctcBarIcon5: CtcBarIcon5,
|
||||
ctcBarIcon6: CtcBarIcon6,
|
||||
ctcBarIcon7: CtcBarIcon7,
|
||||
ctcBarIcon8: CtcBarIcon8,
|
||||
ctcBarIcon9: CtcBarIcon9,
|
||||
ctcBarIcon10: CtcBarIcon10,
|
||||
ctcBarIcon11: CtcBarIcon11,
|
||||
ctcBarIcon12: CtcBarIcon12,
|
||||
ctcBarIcon13: CtcBarIcon13,
|
||||
ctcBarIcon14: CtcBarIcon14,
|
||||
ctcBarIcon15: CtcBarIcon15,
|
||||
ctcBarIcon16: CtcBarIcon16,
|
||||
ctcBarIcon17: CtcBarIcon17,
|
||||
ctcBarIcon18: CtcBarIcon18,
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
title: '系统',
|
||||
// operate: OperationEvent.Command.mBar.system,
|
||||
title: '登录',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
@ -113,20 +65,6 @@ export default {
|
||||
title: '注销',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '连接主用中心',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '连接备用中心',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '退出',
|
||||
click: this.undeveloped
|
||||
@ -134,125 +72,45 @@ export default {
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '临时限速',
|
||||
operate: OperationEvent.Command.mBar.limitSpeed,
|
||||
children: [
|
||||
{
|
||||
title: '设置临时限速',
|
||||
operate: OperationEvent.Section.setLimitSpeed,
|
||||
click: this.setLimitSpeed
|
||||
},
|
||||
{
|
||||
title: '取消临时限速',
|
||||
operate: OperationEvent.Section.cancelSpeed,
|
||||
click: this.cancleLimitSpeed
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '查看',
|
||||
// operate: OperationEvent.Command.mBar.check,
|
||||
title: '显示',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '运行图',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '报告分析',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '视图',
|
||||
click: this.undeveloped,
|
||||
title: '工具栏',
|
||||
operate: '',
|
||||
children: [{
|
||||
title: '报警',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车运行信息',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '设备状态',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车详细信息',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '站台详细信息',
|
||||
click: this.undeveloped
|
||||
}]
|
||||
children: [
|
||||
{
|
||||
title: '标准按钮',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '签收栏',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示系统信息窗口',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示进路序列管理窗口',
|
||||
click: this.bottomTableShowOrHidden
|
||||
},
|
||||
{
|
||||
title: '显示信号员计划表',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示信号员注意事项',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '终端站发车列表',
|
||||
title: '站场图',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '详细设备状态',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '查找列车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '显示目的地号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示轨道名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示道岔名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示信号机名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示车次窗位置',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '显示车次号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示车组号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '全屏',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '放大',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '缩小',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '恢复',
|
||||
title: '行车日志',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
@ -264,110 +122,92 @@ export default {
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: '显示',
|
||||
title: '工具',
|
||||
// operate: OperationEvent.Command.mBar.view,
|
||||
operate: '',
|
||||
hide: true,
|
||||
children: [
|
||||
{
|
||||
title: '设置列车识别号显示',
|
||||
click: this.setTrainIdDisplay,
|
||||
operate: OperationEvent.Command.view.setTrainIdDisplay
|
||||
},
|
||||
{
|
||||
title: '设置名称显示',
|
||||
click: this.setNameDisplay,
|
||||
operate: OperationEvent.Command.view.setNameDisplay
|
||||
},
|
||||
{
|
||||
title: '设置设备显示',
|
||||
click: this.setDeviceDisplay,
|
||||
operate: OperationEvent.Command.view.setDeviceDisplay
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'ATS终端操作',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '当天运行车计划',
|
||||
title: '调度命令管理',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '出入库预告',
|
||||
title: '甩挂车作业',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车编组(速报表)',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '站存车(现存车)',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列控命令',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '车站直接限速',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '运统46',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '站场图回放',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列控区间占用逻辑检查',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '更新数据',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车固定径路',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '用户管理',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '选项',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
type: '时钟显示',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '计划车操作',
|
||||
title: '调试',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '添加计划车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '平移计划车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '删除计划车',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
children: []
|
||||
},
|
||||
{
|
||||
title: '批处理命令',
|
||||
title: '窗口',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消上行全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消下行全线扣车',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '信息管理',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '调度日志',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '调度留言提醒',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '报警设置',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
children: []
|
||||
},
|
||||
{
|
||||
title: '帮助',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '关于ITS GPC 工作站',
|
||||
click: this.about,
|
||||
operate: OperationEvent.Command.help.about
|
||||
}
|
||||
]
|
||||
children: []
|
||||
}
|
||||
],
|
||||
Center: [
|
||||
@ -671,7 +511,6 @@ export default {
|
||||
mapLocation(code) {
|
||||
if (code) {
|
||||
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: code });
|
||||
|
||||
}
|
||||
},
|
||||
// 关于
|
||||
@ -720,6 +559,9 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
bottomTableShowOrHidden() {
|
||||
EventBus.$emit('bottomTableShowOrHidden');
|
||||
},
|
||||
undeveloped() {
|
||||
this.$refs.menuBar.doClose();
|
||||
this.$alert('实现中......', '提示', {
|
||||
|
154
src/jmapNew/theme/datie_02/menus/menuDialog/routeCancel.vue
Normal file
@ -0,0 +1,154 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="signal-control"
|
||||
:class="popClass"
|
||||
title="取消进路"
|
||||
:visible.sync="dialogShow"
|
||||
width="350px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div>
|
||||
<i class="el-icon-warning"/>
|
||||
<span>{{ showMessage }}</span>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{ $t('menu.confirm') }}</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">{{ $t('menu.cancel') }}</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
||||
<password-box ref="passwordBox" @checkOver="passWordCommit" @checkCancel="cancel" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import {menuOperate, commitOperate} from '../../../components/utils/menuOperate';
|
||||
import NoticeInfo from '../../../components/menus/childDialog/noticeInfo';
|
||||
import PasswordBox from '../dialog/childDialog/passwordInputBox.vue';
|
||||
export default {
|
||||
name: 'routeCancel',
|
||||
components: {
|
||||
NoticeInfo,
|
||||
PasswordBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
signalName: '',
|
||||
popClass: 'chengdou-03__systerm',
|
||||
loading: false,
|
||||
showMessage: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$root.$emit('dialogClose', this.selected);
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
this.signalName = '';
|
||||
if (selected && selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
|
||||
this.signalName = selected.name;
|
||||
} else if (selected && selected._type.toUpperCase() === 'Switch'.toUpperCase()){
|
||||
this.switchName = selected.name;
|
||||
}
|
||||
this.operation = operate.operation;
|
||||
if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
|
||||
this.showMessage = `下发“取消进路”【信号机:${this.signalName}】命令吗?`;
|
||||
} else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
|
||||
this.showMessage = `下发“信号重开”命令吗?`;
|
||||
} else if (this.operation === OperationEvent.Signal.guide.menu.operation) {
|
||||
this.showMessage = `下发“引导进路”命令吗?`;
|
||||
} else if (this.operation === OperationEvent.Signal.humanTrainRoute.menu.operation) {
|
||||
this.showMessage = `下发“总人解”命令吗?`
|
||||
} else if (this.operation === OperationEvent.Switch.locate.menu.operation) {
|
||||
this.showMessage = `下发“定操【道岔:${this.switchName}】”命令吗?`
|
||||
} else if (this.operation === OperationEvent.Switch.reverse.menu.operation) {
|
||||
this.showMessage = `下发“反操【道岔:${this.switchName}】”命令吗?`
|
||||
} else if (this.operation === OperationEvent.Switch.lock.menu.operation) {
|
||||
this.showMessage = `下发“单锁【道岔:${this.switchName}】”命令吗?`
|
||||
} else if (this.operation === OperationEvent.Switch.unlock.menu.operation) {
|
||||
this.showMessage = `下发“单解【道岔:${this.switchName}】”命令吗?`
|
||||
} else {
|
||||
this.showMessage = '';
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
commit() {
|
||||
if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
|
||||
this.sendCommand(menuOperate.Signal.cancelTrainRoute);
|
||||
} else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
|
||||
this.sendCommand(menuOperate.Signal.reopenSignal);
|
||||
} else if (this.operation === OperationEvent.Signal.guide.menu.operation) {
|
||||
this.$refs.passwordBox.doShow({ operation: OperationEvent.Signal.guide.menu.operation });
|
||||
} else if (this.operation === OperationEvent.Signal.humanTrainRoute.menu.operation) {
|
||||
this.sendCommand(menuOperate.Signal.humanTrainRoute);
|
||||
} else if (this.operation === OperationEvent.Switch.locate.menu.operation) {
|
||||
this.sendCommand(menuOperate.Switch.locate);
|
||||
} else if (this.operation === OperationEvent.Switch.reverse.menu.operation ) {
|
||||
this.sendCommand(menuOperate.Switch.reverse);
|
||||
}
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.close.menu.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
sendCommand(operate) {
|
||||
this.loading = true;
|
||||
commitOperate(operate, {}, 2).then(({valid})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
passWordCommit(operate) {
|
||||
if (operate.operation === OperationEvent.Signal.guide.menu.operation) {
|
||||
this.sendCommand(menuOperate.Signal.guide);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
302
src/jmapNew/theme/datie_02/menus/menuPanel.vue
Normal file
@ -0,0 +1,302 @@
|
||||
<template>
|
||||
<div v-if="dialogShow" id="faultChoose">
|
||||
<!-- <div class="falutChooseTitle">ceshi</div>-->
|
||||
<div class="card" style="padding: 5px;">
|
||||
<div style="background: #999EA7;display: flex;align-items: center;">
|
||||
<div class="button-box">
|
||||
<img :src="t3Pic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="panelPic" class="img-button" @click="showLineBoard">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="trainPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="linkPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="cameraPic" class="img-button">
|
||||
</div>
|
||||
<div style="width: 205px;height: 36px; background: #fff;border-radius: 5px;" />
|
||||
<div class="button-box">
|
||||
<img :src="settingPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="shutdownPic" class="img-button">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { MouseEvent } from '@/scripts/ConstDic';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import T3Pic from '@/assets/ctc_icon/t3.png';
|
||||
import TrainPic from '@/assets/ctc_icon/train.png';
|
||||
import PanelPic from '@/assets/ctc_icon/panel.png';
|
||||
import LinkPic from '@/assets/ctc_icon/link.png';
|
||||
import CameraPic from '@/assets/ctc_icon/camera.png';
|
||||
import SettingPic from '@/assets/ctc_icon/setting.png';
|
||||
import ShutdownPic from '@/assets/ctc_icon/shutdown.png';
|
||||
import { EventBus } from '@/scripts/event-bus';
|
||||
|
||||
export default {
|
||||
name: 'RouteCreate',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: true,
|
||||
loading: false,
|
||||
selected: null,
|
||||
t3Pic: T3Pic,
|
||||
panelPic: PanelPic,
|
||||
trainPic: TrainPic,
|
||||
linkPic: LinkPic,
|
||||
cameraPic: CameraPic,
|
||||
settingPic: SettingPic,
|
||||
shutdownPic: ShutdownPic
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList',
|
||||
'sectionList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
createDisable() {
|
||||
return !(this.groupNumber1 && this.groupNumber1.length === 4 && this.nowSectionCode && this.newTrainCode && this.newTrainCode.length === 8);
|
||||
},
|
||||
updateDisable() {
|
||||
return !(this.newTrainCode && this.newTrainCode.length === 8);
|
||||
},
|
||||
moveDisable() {
|
||||
return !this.newSectionCode;
|
||||
},
|
||||
deleteDisable() {
|
||||
return !this.nowTrainCode;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$store.state.menuOperation.selectedCount':function(em) {
|
||||
const device = this.$store.state.menuOperation.selected;
|
||||
if (device && device.code && device._type === 'Section') {
|
||||
this.nowSectionCode = device.code;
|
||||
} else if (device && device.code && device._type === 'Train' && device._event === MouseEvent.Left) {
|
||||
this.doShow(device);
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.dragEvent(); // 24
|
||||
},
|
||||
methods: {
|
||||
doShow(selected) {
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.dragEvent();
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
showLineBoard() {
|
||||
EventBus.$emit('showLineBoard');
|
||||
},
|
||||
dragEvent() {
|
||||
const offset = this.offset;
|
||||
const dragDom = document.querySelector('#faultChoose');
|
||||
dragDom.style.cursor = 'move';
|
||||
|
||||
/** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/
|
||||
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
|
||||
dragDom.onmousedown = (e) => {
|
||||
/** 鼠标按下,计算当前元素距离可视区的距离*/
|
||||
const disX = e.clientX;
|
||||
const disY = e.clientY;
|
||||
|
||||
/** 获取到的值带px 正则匹配替换*/
|
||||
let styL, styT;
|
||||
|
||||
/** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/
|
||||
if (sty.left.includes('%')) {
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
|
||||
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
|
||||
} else {
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
styL = +sty.left.replace(/\px/g, '');
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
styT = +sty.top.replace(/\px/g, '');
|
||||
}
|
||||
document.onmousemove = function (e) {
|
||||
/** 通过事件委托,计算移动的距离*/
|
||||
const l = e.clientX - disX;
|
||||
const t = e.clientY - disY;
|
||||
|
||||
/** 移动当前元素*/
|
||||
// dragDom.style.left = `${l + styL}px`;
|
||||
// dragDom.style.top = `${t + styT}px`;
|
||||
|
||||
/** 移动当前元素*/
|
||||
if (l + styL < 0) {
|
||||
dragDom.style.left = `0px`;
|
||||
} else if (l + styL > document.body.clientWidth - dragDom.clientWidth - 10) {
|
||||
dragDom.style.left = `${document.body.clientWidth - dragDom.clientWidth - 10}px`;
|
||||
} else {
|
||||
dragDom.style.left = `${l + styL}px`;
|
||||
}
|
||||
if (t + styT <= offset) {
|
||||
dragDom.style.top = offset + `px`;
|
||||
} else if (t + styT > document.body.clientHeight - dragDom.clientHeight - 10) {
|
||||
dragDom.style.top = `${document.body.clientHeight - dragDom.clientHeight - 10}px`;
|
||||
} else {
|
||||
dragDom.style.top = `${t + styT}px`;
|
||||
}
|
||||
/** 将此时的位置传出去*/
|
||||
// binding.value({ x: e.pageX, y: e.pageY });
|
||||
};
|
||||
|
||||
document.onmouseup = function () {
|
||||
document.onmousemove = null;
|
||||
document.onmouseup = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
#faultChoose .el-button--mini {
|
||||
margin-left: 5px;
|
||||
}
|
||||
.triggerFaultListLeft{
|
||||
display: inline-block;
|
||||
float: left;
|
||||
width: 730px;
|
||||
}
|
||||
// 谷歌、safari、qq浏览器、360浏览器滚动条样式
|
||||
// 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸
|
||||
#faultChoose .el-table__body-wrapper::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
// height: 110px;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
/*定义滚动条轨道 内阴影+圆角*/
|
||||
#faultChoose .el-table__body-wrapper::-webkit-scrollbar-track {
|
||||
// box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
|
||||
border-radius: 10px;
|
||||
background-color: #FFFFFF;;
|
||||
}
|
||||
/*定义滑块 内阴影+圆角*/
|
||||
#faultChoose .el-table__body-wrapper::-webkit-scrollbar-thumb {
|
||||
border-radius: 10px;
|
||||
// box-shadow: inset 0 0 6px rgba(0,0,0,.3);
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
/*滑块效果*/
|
||||
#faultChoose .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
|
||||
border-radius: 5px;
|
||||
// box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
|
||||
background: rgba(0,0,0,0.4);
|
||||
}
|
||||
/*IE滚动条颜色*/
|
||||
html {
|
||||
scrollbar-face-color:#bfbfbf;/*滚动条颜色*/
|
||||
scrollbar-highlight-color:#000;
|
||||
scrollbar-3dlight-color:#000;
|
||||
scrollbar-darkshadow-color:#000;
|
||||
scrollbar-Shadow-color:#adadad;/*滑块边色*/
|
||||
scrollbar-arrow-color:rgba(0,0,0,0.4);/*箭头颜色*/
|
||||
scrollbar-track-color:#eeeeee;/*背景颜色*/
|
||||
}
|
||||
</style>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.triggerFaultInfo{
|
||||
margin-bottom:10px;
|
||||
padding: 10px 0px 10px 15px;
|
||||
}
|
||||
.triggerFaultList{
|
||||
font-size: 14px;
|
||||
margin-top: 10px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.triggerFaultTitle{
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.falutChooseTitle{
|
||||
cursor: all-scroll;
|
||||
background-color: #c0c0c0;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
color: #000;
|
||||
padding-left: 10px;
|
||||
border-radius: 6px 6px 0 0;
|
||||
}
|
||||
#faultChoose{
|
||||
width: 510px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 0;
|
||||
border-radius: 6px;
|
||||
z-index:2009;
|
||||
background-color: #E2E2E2;
|
||||
}
|
||||
.faultChooseFoot{
|
||||
display: inline-block;
|
||||
float: right;
|
||||
margin-right: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.closeFalutChoose{
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
cursor: pointer;
|
||||
line-height: 30px;
|
||||
}
|
||||
.closeFalutChooseIn{
|
||||
font-size: 20px;
|
||||
margin-left: 5px;
|
||||
background-color: #f00;
|
||||
color: #FFF;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.img-button{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
background: #EBEBEB;
|
||||
border: 2px inset #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.img-button:hover{
|
||||
border: 2px outset #fff;
|
||||
}
|
||||
.img-button:active{
|
||||
border: 2px outset #fff;
|
||||
}
|
||||
.button-box{
|
||||
padding: 3px;
|
||||
background: #EBEBEB;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 5px;
|
||||
margin: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
@ -24,7 +24,6 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
||||
import { menuOperate, commitOperate } from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
// import LoadSpareTrain from '@/jmapNew/theme/components/menus/dialog/loadSpareTrain';
|
||||
import AddSpareTrain from './dialog/addSpareTrain';
|
||||
|
||||
import DrawSelect from './dialog/drawSelect';
|
||||
@ -122,7 +121,8 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
'$store.state.menuOperation.menuCount': function (val) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Section) && !this.buttonOperation) {
|
||||
console.log(this.buttonOperation, '***********');
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Section) && (!this.buttonOperation || this.$route.query.ctc)) {
|
||||
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||
} else {
|
||||
this.doClose();
|
||||
|
@ -9,6 +9,7 @@
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
<password-box ref="passwordBox" pop-class="chengdou-03__systerm" @checkOver="passWordCommit" />
|
||||
<draw-select ref="drawSelect" />
|
||||
<route-cancel ref="routeCancel" />
|
||||
<set-fault ref="setFault" pop-class="chengdou-03__systerm" />
|
||||
</div>
|
||||
</template>
|
||||
@ -21,6 +22,7 @@ import RouteSelection from './dialog/routeSelection';
|
||||
import RouteDetail from './dialog/routeDetail';
|
||||
import RouteHandControl from './dialog/routeHandControl';
|
||||
import RouteGuide from './dialog/routeGuide';
|
||||
import RouteCancel from './menuDialog/routeCancel';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
@ -29,6 +31,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import PasswordBox from '@/jmapNew/theme/components/menus/childDialog/passwordInputBox';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import DrawSelect from './dialog/drawSelect';
|
||||
import { EventBus } from '@/scripts/event-bus';
|
||||
|
||||
export default {
|
||||
name: 'SignalMenu',
|
||||
@ -42,7 +45,8 @@ export default {
|
||||
NoticeInfo,
|
||||
PasswordBox,
|
||||
SetFault,
|
||||
DrawSelect
|
||||
DrawSelect,
|
||||
RouteCancel
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -57,49 +61,52 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
// {
|
||||
// label: '图纸调用',
|
||||
// handler: this.drawingCall
|
||||
// },
|
||||
// {
|
||||
// label: '基础设备培训',
|
||||
// handler: this.baDeTrCall
|
||||
// }
|
||||
// {
|
||||
// label: '办理进路',
|
||||
// handler: this.arrangementRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '办理引导进路',
|
||||
// handler: this.guide,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
||||
// },
|
||||
// {
|
||||
// label: '取消进路',
|
||||
// handler: this.cancelTrainRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '总人解', // 取消引导进路
|
||||
// handler: this.humanTrainRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '进路收人工控',
|
||||
// handler: this.humanControl,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '进路交自动控',
|
||||
// handler: this.atsAutoControl,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '进路信息',
|
||||
// handler: this.detail,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
// }
|
||||
{
|
||||
label: '办理 通过进路',
|
||||
handler: this.arrangementRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: '列车 办理进路',
|
||||
handler: this.arrangementRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
},
|
||||
{
|
||||
label: '取消进路',
|
||||
handler: this.cancelTrainRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
},
|
||||
{
|
||||
label: '信号重开',
|
||||
handler: this.reopenSignal,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||
},
|
||||
{
|
||||
label: '封锁/解封',
|
||||
handler: '',
|
||||
cmdType: ''
|
||||
},
|
||||
{
|
||||
label: '总人解',
|
||||
handler: this.humanTrainRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: '引导',
|
||||
handler: this.guide,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
||||
},
|
||||
{
|
||||
label: '坡道解锁',
|
||||
handler: '',
|
||||
cmdType: ''
|
||||
}
|
||||
],
|
||||
Center: [
|
||||
// {
|
||||
@ -190,7 +197,8 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
'$store.state.menuOperation.menuCount': function (val) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && !this.buttonOperation) {
|
||||
console.log(DeviceMenu.Signal, val, this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal), this.buttonOperation);
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && (!this.buttonOperation || this.$route.query.ctc)) {
|
||||
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||
} else {
|
||||
this.doClose();
|
||||
@ -262,7 +270,8 @@ export default {
|
||||
arrangementRoute() {
|
||||
commitOperate(menuOperate.Signal.arrangementRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.$refs.routeSelection.doShow(operate, this.selected, this.getRouteList(this.selected));
|
||||
// this.$refs.routeSelection.doShow(operate, this.selected, this.getRouteList(this.selected));
|
||||
EventBus.$emit('arrangementRouteMenu', this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -270,7 +279,8 @@ export default {
|
||||
guide() {
|
||||
commitOperate(menuOperate.Signal.guide, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}, ...{routesList: this.getRouteList(this.selected)}});
|
||||
// this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}, ...{routesList: this.getRouteList(this.selected)}});
|
||||
this.$refs.routeCancel.doShow(operate, this.selected)
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -278,7 +288,7 @@ export default {
|
||||
cancelTrainRoute() {
|
||||
commitOperate(menuOperate.Signal.cancelTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.$refs.routeControl.doShow(operate, this.selected);
|
||||
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -286,8 +296,7 @@ export default {
|
||||
humanTrainRoute() {
|
||||
commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
Object.assign(operate, {operation: OperationEvent.Signal.humanTrainRoute.button.operation });
|
||||
this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}});
|
||||
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -295,10 +304,25 @@ export default {
|
||||
reopenSignal() {
|
||||
commitOperate(menuOperate.Signal.reopenSignal, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.$refs.routeControl.doShow(operate, this.selected);
|
||||
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
lockOrUnlock() {
|
||||
if (this.selected.lock) {
|
||||
commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.$refs.routeControl.doShow(operate, this.selected);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
commitOperate(menuOperate.Signal.unlock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.$refs.routeControl.doShow(operate, this.selected);
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 信号封锁
|
||||
lock() {
|
||||
commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
|
@ -7,6 +7,7 @@
|
||||
<switch-hook-lock ref="switchHookLock" pop-class="chengdou-03__systerm" />
|
||||
<set-fault ref="setFault" pop-class="datie-02__systerm" />
|
||||
<draw-select ref="drawSelect" />
|
||||
<route-cancel ref="routeCancel" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -23,6 +24,7 @@ import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import { mapGetters } from 'vuex';
|
||||
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import RouteCancel from './menuDialog/routeCancel';
|
||||
|
||||
export default {
|
||||
name: 'SwitchMenu',
|
||||
@ -33,7 +35,8 @@ export default {
|
||||
NoticeInfo,
|
||||
SetFault,
|
||||
SwitchHookLock,
|
||||
DrawSelect
|
||||
DrawSelect,
|
||||
RouteCancel
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
@ -51,14 +54,66 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
// {
|
||||
// label: '图纸调用',
|
||||
// handler: this.drawingCall
|
||||
// },
|
||||
// {
|
||||
// label: '基础设备培训',
|
||||
// handler: this.baDeTrCall
|
||||
// }
|
||||
{
|
||||
label: '定操',
|
||||
handler: this.locate,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
|
||||
},
|
||||
{
|
||||
label: '反操',
|
||||
handler: this.reverse,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
|
||||
},
|
||||
{
|
||||
label: '单锁',
|
||||
handler: this.lock,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
|
||||
},
|
||||
{
|
||||
label: '单解',
|
||||
handler: this.unlock,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK
|
||||
},
|
||||
{
|
||||
label: '封锁/解封',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '区故解',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '岔前 分路不良',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '定位 分路不良',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '反位 分路不良',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '接触网定位无电',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '接触网反位无电',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '添加调机号',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '删除调机号',
|
||||
handle: ''
|
||||
},
|
||||
{
|
||||
label: '修改调机号',
|
||||
handle: ''
|
||||
}
|
||||
],
|
||||
Center: [
|
||||
// {
|
||||
@ -132,7 +187,7 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
'$store.state.menuOperation.menuCount': function (val) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && !this.buttonOperation) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && (!this.buttonOperation || this.$route.query.ctc)) {
|
||||
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||
} else {
|
||||
this.doClose();
|
||||
@ -243,7 +298,8 @@ export default {
|
||||
locate() {
|
||||
commitOperate(menuOperate.Switch.locate, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.$refs.switchControl.doShow(operate, this.selected);
|
||||
// this.$refs.switchControl.doShow(operate, this.selected);
|
||||
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -251,7 +307,8 @@ export default {
|
||||
reverse() {
|
||||
commitOperate(menuOperate.Switch.reverse, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.$refs.switchControl.doShow(operate, this.selected);
|
||||
// this.$refs.switchControl.doShow(operate, this.selected);
|
||||
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -227,7 +227,7 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
'$store.state.menuOperation.menuCount': function () {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Train) && !this.buttonOperation) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Train) && (!this.buttonOperation || this.$route.query.ctc)) {
|
||||
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||
} else {
|
||||
this.doClose();
|
||||
|
1085
src/jmapNew/theme/datie_02/menus/runplanPane.vue
Normal file
@ -4,7 +4,7 @@ import router from './router/index';
|
||||
import {loginInfo, ProjectCode, localPackageProject} from '@/scripts/ProjectConfig';
|
||||
import NProgress from 'nprogress';
|
||||
import 'nprogress/nprogress.css';
|
||||
import { setToken, getToken, removeToken, getSessionStorage } from '@/utils/auth';
|
||||
import { setToken, getToken, removeToken, getSessionStorage, setSessionStorage } from '@/utils/auth';
|
||||
import { getBaseUrlByProject } from '@/api/projectServer';
|
||||
import localStore from 'storejs';
|
||||
import { handlerUrl } from '@/utils/baseUrl';
|
||||
@ -69,6 +69,10 @@ function handleRoute(to, next, loginPath) {
|
||||
}
|
||||
|
||||
router.beforeEach( async (to, from, next) => {
|
||||
if (to.query.thirdJump) {
|
||||
setToken(to.query.key);
|
||||
setSessionStorage('project', to.query.project);
|
||||
}
|
||||
let project = '';
|
||||
if (to.path.includes('login')) {
|
||||
project = to.query.project;
|
||||
|
@ -44,6 +44,7 @@ const DisplayBaSiDi = () => import('@/views/newMap/displayBaSiDi/index');
|
||||
const DesignDisplayNew = () => import('@/views/newMap/displayNew/scriptDisplay/scriptPreview/index');
|
||||
const PracticeDisplay = () => import('@/views/newMap/displayNew/practiceDisplay');
|
||||
const BigLPFStrategy = () => import('@/views/newMap/displayNew/bigLPFStrategy');
|
||||
const BigTrainRunplanManage = () => import('@/views/bigTrainRunplanManage/index');
|
||||
|
||||
const JointTrainingNew = () => import('@/views/newMap/jointTrainingNew/index');
|
||||
const jointTrainingNewCCTV = () => import('@/views/newMap/jointTrainingNew/realCCTV');
|
||||
@ -680,7 +681,14 @@ export const publicAsyncRoute = [
|
||||
hidden: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
// 大铁项目 管理终端
|
||||
path: '/bigTrainRunplanManage',
|
||||
component: BigTrainRunplanManage,
|
||||
hidden: true
|
||||
},
|
||||
|
||||
];
|
||||
// 城市轨道项目
|
||||
export const asyncRouter = [
|
||||
|
@ -17,11 +17,13 @@ import FaviconSdy from '@/assets/icon/favicon_jdy.png';
|
||||
import FaviconCgy from '@/assets/icon/favicon_cgy.png';
|
||||
import FaviconRichor from '@/assets/icon/favicon_richor.png';
|
||||
import FaviconZzww from '@/assets/icon/favicon_zzww.png';
|
||||
import FaviconUnittec from '@/assets/icon/favicon_unittec.png';
|
||||
import FaviconSay from '@/assets/icon/favicon_say.png';
|
||||
import Link_Bxkc from '@/assets/icon/link_bxkc.png';
|
||||
import Link_Crsc from '@/assets/icon/link_crsc.png';
|
||||
import Link_Hls from '@/assets/icon/link_hls.png';
|
||||
import Link_Bjd from '@/assets/icon/link_bjd.png';
|
||||
import Link_Unittec from '@/assets/icon/link_unittec.png';
|
||||
import TransparentIcon from '@/assets/icon/transparent.png';
|
||||
|
||||
// title:页面title; loginPath:退出登录跳转路径; loginParam:登录接口参数project;loginTitle:登录页左上角title;logoWidth:登录页左上角logo宽度;
|
||||
@ -569,6 +571,30 @@ export const loginInfo = {
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
designrichorhhcj: {
|
||||
title: '红河财经学校城市轨道交通设计平台',
|
||||
loginPath: '/design/login?project=richorhhcj',
|
||||
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
|
||||
loginParam: 'RICHOR_HHCJ',
|
||||
linkIcon: FaviconRichor,
|
||||
titleIcon: FaviconRichor,
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
richorhhcj: {
|
||||
title: '红河财经学校城市轨道交通实训平台',
|
||||
loginPath: '/login?project=richorhhcj',
|
||||
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
|
||||
loginParam: 'RICHOR_HHCJ',
|
||||
linkIcon: FaviconRichor,
|
||||
titleIcon: FaviconRichor,
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
designjxgm: {
|
||||
title: '江西工业贸易职业技术学院城市轨道交通设计平台',
|
||||
loginPath: '/design/login?project=jxgm',
|
||||
@ -622,6 +648,30 @@ export const loginInfo = {
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '026'
|
||||
},
|
||||
unittecsty: {
|
||||
title: '城市轨道交通实训平台',
|
||||
loginPath: '/login?project=unittecsty',
|
||||
loginParam: 'UNITTEC_STY',
|
||||
titleDistance: '-150px',
|
||||
titleIcon: Link_Unittec,
|
||||
linkIcon: Link_Unittec,
|
||||
titleImgWidth: '250px',
|
||||
navigationLogoWidth: '60px',
|
||||
navigationMarginLeft: '80px',
|
||||
systemType: '011'
|
||||
},
|
||||
designunittecsty: {
|
||||
title: '城市轨道交通设计平台',
|
||||
loginPath: '/design/login?project=unittecsty',
|
||||
loginParam: 'UNITTEC_STY',
|
||||
titleDistance: '-150px',
|
||||
titleIcon: Link_Unittec,
|
||||
linkIcon: Link_Unittec,
|
||||
titleImgWidth: '250px',
|
||||
navigationLogoWidth: '60px',
|
||||
navigationMarginLeft: '80px',
|
||||
systemType: '011'
|
||||
}
|
||||
};
|
||||
|
||||
@ -681,7 +731,9 @@ export const ProjectIcon = {
|
||||
richorygy: FaviconRichor,
|
||||
designrichorygy: FaviconRichor,
|
||||
say: FaviconSay,
|
||||
designsay: FaviconSay
|
||||
designsay: FaviconSay,
|
||||
unittecsty: FaviconUnittec,
|
||||
designunittecsty: FaviconUnittec
|
||||
};
|
||||
|
||||
export const ProjectCode = {
|
||||
@ -731,18 +783,20 @@ export const ProjectCode = {
|
||||
say: 'SAY',
|
||||
designsay: 'SAY',
|
||||
xzexam:'SAY',
|
||||
unittecsty: 'UNITTEC_STY',
|
||||
designunittecsty: 'UNITTEC_STY'
|
||||
};
|
||||
/** 嵌入第三方平台 导航栏右上角 清空 */
|
||||
export const ThirdLoginList = ['richor', 'designrichor', 'richorygy', 'designrichorygy'];
|
||||
/** 底部栏仅展示公司信息不展示备案号 */
|
||||
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls',
|
||||
'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo', 'richorygy',
|
||||
'designrichorygy'];
|
||||
'designrichorygy', 'unittecsty', 'designunittecsty'];
|
||||
/** 实训设计平台通过项目code获取地图列表的项目 */
|
||||
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls',
|
||||
'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'designbjd', 'cgy', 'designcgy', 'zzww', 'zzwwtest', 'richor',
|
||||
'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo', 'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm',
|
||||
'richorygy', 'designrichorygy', 'say', 'designsay'];
|
||||
'richorygy', 'designrichorygy', 'say', 'designsay', 'unittecsty', 'designunittecsty'];
|
||||
/** 案例展示隐藏的项目 */
|
||||
export const CaseHideProjectList = ['heb', 'designheb', 'cgy', 'designcgy'];
|
||||
/** 登录页右下角版本开发基于不展示 */
|
||||
@ -751,12 +805,12 @@ export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts'
|
||||
/** 登录页右下角主体不展示 */
|
||||
export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls',
|
||||
'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'xadt', 'designxadt', 'richor', 'richorlesson3d', 'richorjoint', 'nologo', 'designnologo',
|
||||
'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', 'xzexam', 'richorygy', 'designrichorygy'];
|
||||
'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', 'xzexam', 'richorygy', 'designrichorygy', 'unittecsty', 'designunittecsty'];
|
||||
/** 登录页项目 title 登录输入框上方 大字体 加粗居中 */
|
||||
export const ProjectLoginStyleList = ['gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc',
|
||||
'crsc', 'designcrsc', 'hls', 'designhls', 'drts', 'wjls', 'hyd', 'designhyd', 'nty', 'designnty', 'bjd', 'designbjd', 'sdy', 'designsdy', 'ntyc', 'designntyc',
|
||||
'ntyl', 'designntyl', 'cgy', 'designcgy', 'zzww', 'zzwwtest', 'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', 'xzexam',
|
||||
'richorygy', 'designrichorygy', 'say', 'designsay'];
|
||||
'richorygy', 'designrichorygy', 'say', 'designsay', 'unittecsty', 'designunittecsty'];
|
||||
/** 登录页 登录输入框无二维码 */
|
||||
export const NoQrcodeList = ['heb', 'designheb', 'cgy', 'designcgy', 'ntyl', 'designntyl'];
|
||||
/** 综合演练 无二维码 */
|
||||
@ -811,7 +865,9 @@ export const goOtherPlatformMenu = {
|
||||
jxgm: '/design/login?project=jxgm',
|
||||
designjxgm: '/login?project=jxgm',
|
||||
say: '/design/login?project=say',
|
||||
designsay: '/login?project=say'
|
||||
designsay: '/login?project=say',
|
||||
unittecsty: '/design/login?project=unittecsty',
|
||||
designunittecsty: '/login?project=unittecsty'
|
||||
};
|
||||
export const ProjectList = [
|
||||
{value:'xty', label:'西铁院'},
|
||||
@ -836,7 +892,8 @@ export const ProjectList = [
|
||||
{value: 'sr_sandbox', label: '上饶沙盘'},
|
||||
{value: 'jxgm', label: '江西工贸' },
|
||||
{value: 'richor_ygy', label: '扬州工业'},
|
||||
{value: 'say', label: '苏安院'}
|
||||
{value: 'say', label: '苏安院'},
|
||||
{value: 'unittec_sty', label: '众合-陕铁院'}
|
||||
];
|
||||
/** 本地项目打包 */
|
||||
export const localPackageProject = {
|
||||
|
@ -379,8 +379,14 @@ export default {
|
||||
CMD_DIRECTION_CHANGE: {value: 'Direction_Change', label: '切换方向'}
|
||||
},
|
||||
CTC: {
|
||||
CTC_RECEIVING_NOTICE: {value: 'CTC_RECEIVING_NOTICE', label: '接预'},
|
||||
CTC_DEPARTURE_NOTICE: {value: 'CTC_DEPARTURE_NOTICE', label: '发预'},
|
||||
CTC_FINISH_RECEIVING_NOTICE: {value: 'CTC_FINISH_RECEIVING_NOTICE', label: '完成接预'},
|
||||
CTC_CANCEL_RECEIVING_NOTICE: {value: 'CTC_CANCEL_RECEIVING_NOTICE', label: '取消接预'},
|
||||
CTC_FINISH_ARRIVE: {value: 'CTC_FINISH_ARRIVE', label: '完成到点'},
|
||||
CTC_CANCEL_ARRIVE: {value: 'CTC_CANCEL_ARRIVE', label: '取消到点'},
|
||||
CTC_FINISH_DEPARTURE_NOTICE: {value: 'CTC_FINISH_DEPARTURE_NOTICE', label: '完成发预'},
|
||||
CTC_CANCEL_DEPARTURE_NOTICE: {value: 'CTC_CANCEL_DEPARTURE_NOTICE', label: '取消发预'},
|
||||
CTC_FINISH_DEPARTURE: {value: 'CTC_FINISH_DEPARTURE', label: '完成发点'},
|
||||
CTC_CANCEL_DEPARTURE: {value: 'CTC_CANCEL_DEPARTURE', label: '取消发点'},
|
||||
CTC_ASSIST_PRESS_DOWN_TURN_DIRECTION:{value:'ASSIST_PRESS_DOWN_TURN_DIRECTION', label:'改方'},
|
||||
CTC_AUTO_TRIGGER: {value: 'CTC_AUTO_TRIGGER', label: '自动触发'},
|
||||
CTC_ASSIST_PRESS_MAIN_ASSIST:{value: 'ASSIST_PRESS_MAIN_ASSIST', label: '总辅助'},
|
||||
@ -388,6 +394,17 @@ export default {
|
||||
CTC_ASSIST_PRESS_DELIVER_ASSIST:{value: 'ASSIST_PRESS_DELIVER_ASSIST', label: '发辅助'},
|
||||
CTC_ASSIST_PRESS_BLOCK:{value: 'ASSIST_PRESS_BLOCK', label: '阻塞'},
|
||||
CTC_ASSIST_PRESS_RESTORE:{value: 'ASSIST_PRESS_RESTORE', label: '复原'},
|
||||
CTC_ASSIST_PRESS_ACCIDENT:{value: 'ASSIST_PRESS_ACCIDENT', label: '事故'}
|
||||
CTC_ASSIST_PRESS_ACCIDENT:{value: 'ASSIST_PRESS_ACCIDENT', label: '事故'},
|
||||
CTC_BATCH_MODIFY_RUN_PLAN:{value: 'CTC_BATCH_MODIFY_RUN_PLAN', label: '批量修改股道'},
|
||||
CTC_REMOVE_RUN_PLAN:{value: 'CTC_REMOVE_RUN_PLAN', label: '移除行车日志'},
|
||||
CTC_MODIFY_ADJACENT_STATION:{value: 'CTC_MODIFY_ADJACENT_STATION', label: '修改邻站信息'},
|
||||
CTC_MODIFY_TRIP_NUMBER:{value: 'CTC_MODIFY_TRIP_NUMBER', label: '修改车次号(大铁CTC)'},
|
||||
CTC_SEND_NOTICE:{value: 'CTC_SEND_NOTICE', label: '发送发车预告'},
|
||||
CTC_AGREE_NOTICE:{value: 'CTC_AGREE_NOTICE', label: '同意发车预告'},
|
||||
CTC_ADD_RUN_PLAN_LIST_TO_EDIT_AREA:{value: 'CTC_ADD_RUN_PLAN_LIST_TO_EDIT_AREA', label: '增加列车固定径路'},
|
||||
CTC_COVER_RUN_PLAN_LIST_TO_EDIT_AREA:{value: 'CTC_COVER_RUN_PLAN_LIST_TO_EDIT_AREA', label: '导入列车固定径路'},
|
||||
CTC_REMOVE_RUN_PLAN_FROM_EDIT_AREA:{value: 'CTC_REMOVE_RUN_PLAN_FROM_EDIT_AREA', label: '删除列车固定径路'},
|
||||
CTC_RELEASE_RUN_PLAN_TO_SIMULATION:{value: 'CTC_RELEASE_RUN_PLAN_TO_SIMULATION', label: '运行计划发布至CTC'},
|
||||
CTC_SET_ROUTE:{value: 'CTC_SET_ROUTE', label: 'CTC办理进路'}
|
||||
}
|
||||
};
|
||||
|
@ -1761,15 +1761,15 @@ export const OperationEvent = {
|
||||
},
|
||||
// 点灯 (大铁)
|
||||
signalLight: {
|
||||
menuButton: {
|
||||
operation: '3231',
|
||||
menuButton: {
|
||||
operation: '3231',
|
||||
domId: '_Tips-Signal-signalLight-MenuButton{BOTTOM}'
|
||||
}
|
||||
},
|
||||
// 灭灯 (大铁)
|
||||
signalDestroy: {
|
||||
menuButton: {
|
||||
operation: '3232',
|
||||
menuButton: {
|
||||
operation: '3232',
|
||||
domId: '_Tips-Signal-signalDestroy-MenuButton{BOTTOM}'
|
||||
}
|
||||
}
|
||||
@ -2991,16 +2991,16 @@ export const OperationEvent = {
|
||||
},
|
||||
// 引导总锁Station_Master_Lock
|
||||
stationMasterLock: {
|
||||
menuButton: {
|
||||
operation: '621',
|
||||
menuButton: {
|
||||
operation: '621',
|
||||
domId: '_Tips-Station-stationMasterLock'
|
||||
},
|
||||
leftButton: {
|
||||
operation: '6211',
|
||||
operation: '6211',
|
||||
domId: '_Tips-Station-stationMasterLock-leftButton'
|
||||
},
|
||||
rightButton: {
|
||||
operation: '6212',
|
||||
operation: '6212',
|
||||
domId: '_Tips-Station-stationMasterLock-rightButton'
|
||||
}
|
||||
}
|
||||
@ -3607,15 +3607,15 @@ export const OperationEvent = {
|
||||
}
|
||||
},
|
||||
CTCCommand: {
|
||||
receivingNotice: {
|
||||
menu: {
|
||||
operation: '1100',
|
||||
receivingNotice: {
|
||||
menu: {
|
||||
operation: '1100',
|
||||
domId: '_Tips-CTC-ReceivingNotice-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
departureNotice: {
|
||||
menu: {
|
||||
operation: '1101',
|
||||
menu: {
|
||||
operation: '1101',
|
||||
domId: '_Tips-CTC-DepartureNotice-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
@ -3626,48 +3626,166 @@ export const OperationEvent = {
|
||||
}
|
||||
},
|
||||
autoTrigger: {
|
||||
menu: {
|
||||
operation: '1103',
|
||||
menu: {
|
||||
operation: '1103',
|
||||
domId: '_Tips-CTC-AutoTrigger-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
assistPressMainAssist:{
|
||||
menu: {
|
||||
operation: '1104',
|
||||
operation: '1104',
|
||||
domId: '_Tips-CTC-AssistPressMainAssist-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
assistPressReceiveAssist:{
|
||||
menu: {
|
||||
operation: '1105',
|
||||
operation: '1105',
|
||||
domId: '_Tips-CTC-AssistPressReceiveAssist-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
assistPressDeliverAssist:{
|
||||
menu: {
|
||||
operation: '1106',
|
||||
operation: '1106',
|
||||
domId: '_Tips-CTC-AssistPressDeliverAssist-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
assistPressBlock:{
|
||||
menu: {
|
||||
operation: '1107',
|
||||
operation: '1107',
|
||||
domId: '_Tips-CTC-AssistPressBlock-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
assistPressRestore:{
|
||||
menu: {
|
||||
operation: '1108',
|
||||
operation: '1108',
|
||||
domId: '_Tips-CTC-AssistPressRestore-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
assistPressAccident:{
|
||||
menu: {
|
||||
operation: '1109',
|
||||
operation: '1109',
|
||||
domId: '_Tips-CTC-AssistPressAccident-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 批量修改股道
|
||||
batchModifyTrackSection:{
|
||||
menu: {
|
||||
operation: '1111',
|
||||
domId: '_Tips-CTC-batchModifyTrackSection-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 移除行车日志
|
||||
deleteRunplan:{
|
||||
menu: {
|
||||
operation: '1112',
|
||||
domId: '_Tips-CTC-deleteRunplan-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 修改行车计划的邻站信息
|
||||
modifyAdjacentStation:{
|
||||
menu: {
|
||||
operation: '1113',
|
||||
domId: '_Tips-CTC-modifyAdjacentStation-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 修改车次号(大铁CTC)
|
||||
modifyTripNumber:{
|
||||
menu: {
|
||||
operation: '1114',
|
||||
domId: '_Tips-CTC-modifyTripNumber-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 发送发车预告
|
||||
sendNotcie:{
|
||||
menu: {
|
||||
operation: '1115',
|
||||
domId: '_Tips-CTC-sendNotcie-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 同意发车预告
|
||||
agreeNotcie:{
|
||||
menu: {
|
||||
operation: '1116',
|
||||
domId: '_Tips-CTC-agreeNotcie-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 取消接预
|
||||
cancelReceivingNotice: {
|
||||
menu: {
|
||||
operation: '1117',
|
||||
domId: '_Tips-CTC-CancelReceivingNotice-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 取消发预
|
||||
cancelDepartureNotice: {
|
||||
menu: {
|
||||
operation: '1118',
|
||||
domId: '_Tips-CTC-CancelDepartureNotice-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 完成到点 FINISH_ARRIVE
|
||||
finishArrive: {
|
||||
menu: {
|
||||
operation: '1119',
|
||||
domId: '_Tips-CTC-FinishArrive-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 取消到点
|
||||
cancelArrive: {
|
||||
menu: {
|
||||
operation: '1120',
|
||||
domId: '_Tips-CTC-CancelArrive-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 完成发点 CTC_FINISH_DEPARTURE
|
||||
finishDeparture: {
|
||||
menu: {
|
||||
operation: '1121',
|
||||
domId: '_Tips-CTC_FinishDeparture-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 取消发点
|
||||
cancelDeparture: {
|
||||
menu: {
|
||||
operation: '1122',
|
||||
domId: '_Tips-CTC_CancelDeparture-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 增加列车固定径路
|
||||
addTrainFixedPath:{
|
||||
menu: {
|
||||
operation: '1123',
|
||||
domId: '_Tips-CTC-addTrainFixedPath-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 导入列车固定径路
|
||||
importTrainFixedPath:{
|
||||
menu: {
|
||||
operation: '1124',
|
||||
domId: '_Tips-CTC-importTrainFixedPath-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 删除列车固定径路
|
||||
deleteTrainFixedPath:{
|
||||
menu: {
|
||||
operation: '1125',
|
||||
domId: '_Tips-CTC-deleteTrainFixedPath-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 运行计划发布至CTC
|
||||
releaseTrainFixedPath:{
|
||||
menu: {
|
||||
operation: '1126',
|
||||
domId: '_Tips-CTC-releaseTrainFixedPath-Menu{TOP}'
|
||||
}
|
||||
},
|
||||
// 设置进路
|
||||
setRoute: {
|
||||
menu: {
|
||||
operation: '1127',
|
||||
domId: '_Tips-CTC-setRoute-Menu{TOP}'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -1,4 +1,5 @@
|
||||
import store from '@/store/index';
|
||||
import { copyAssign } from '@/utils/index';
|
||||
import { Notification } from 'element-ui';
|
||||
|
||||
function handleSockInfo(state, msg, type) {
|
||||
@ -198,11 +199,75 @@ function handle(state, data) {
|
||||
state.simulationPlanChange = msg;
|
||||
break;
|
||||
// 占线板信息
|
||||
case 'Simulation_RailCtcStatus':
|
||||
state.railCtcStatusMsg = msg;
|
||||
break;
|
||||
case 'Simulation_RailCtcStatus':
|
||||
state.railCtcStatusMsg = msg;
|
||||
break;
|
||||
// 大铁项目 ctc 运行图初始化信息
|
||||
case 'SIMULATION_CTC_RUN_PLAN_INIT':
|
||||
msg.forEach(element => {
|
||||
const tripNumberDe = element.departRunPlan && element.departRunPlan.tripNumber;
|
||||
const tripNumberAr = element.arriveRunPlan && element.arriveRunPlan.tripNumber;
|
||||
if (tripNumberDe) { parseInt(tripNumberDe[tripNumberDe.length - 1]) % 2 == 0 ? element.departRunPlan.up = tripNumberDe : element.departRunPlan.down = tripNumberDe; }
|
||||
if (tripNumberAr) { parseInt(tripNumberAr[tripNumberAr.length - 1]) % 2 == 0 ? element.arriveRunPlan.up = tripNumberAr : element.arriveRunPlan.down = tripNumberAr; }
|
||||
const code = element.stationCode + '' + element.code;
|
||||
state.railCtcRunplanInitMsg[code] = element;
|
||||
});
|
||||
break;
|
||||
// 大铁项目 ctc 运行图改变信息
|
||||
case 'SIMULATION_CTC_RUN_PLAN_CHANGE':
|
||||
msg.forEach(element => {
|
||||
const tripNumberDe = element.departRunPlan && element.departRunPlan.tripNumber;
|
||||
const tripNumberAr = element.arriveRunPlan && element.arriveRunPlan.tripNumber;
|
||||
if (tripNumberDe) {
|
||||
element.departRunPlan.up = '';
|
||||
element.departRunPlan.down = '';
|
||||
parseInt(tripNumberDe[tripNumberDe.length - 1]) % 2 == 0 ? element.departRunPlan.up = tripNumberDe : element.departRunPlan.down = tripNumberDe;
|
||||
}
|
||||
if (tripNumberAr) {
|
||||
element.arriveRunPlan.up = '';
|
||||
element.arriveRunPlan.down = '';
|
||||
parseInt(tripNumberAr[tripNumberAr.length - 1]) % 2 == 0 ? element.arriveRunPlan.up = tripNumberAr : element.arriveRunPlan.down = tripNumberAr;
|
||||
}
|
||||
const code = element.stationCode + '' + element.code;
|
||||
state.railCtcRunplanInitMsg[code] = copyAssign(state.railCtcRunplanInitMsg[code], element);
|
||||
});
|
||||
state.railCtcRunplanChange++;
|
||||
break;
|
||||
// 大铁项目 ctc 车务管理端 初始化消息
|
||||
case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_INIT':
|
||||
state.railCtcStationManageRpMsg = {};
|
||||
msg.forEach(element => {
|
||||
const code = element.stationCode + '' + element.tripNumber;
|
||||
state.railCtcStationManageRpMsg[code] = element;
|
||||
});
|
||||
// state.railCtcStationManageRpChange++;
|
||||
break;
|
||||
// 大铁项目 ctc 车务管理端 修改/增加消息
|
||||
case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_CHANGE':
|
||||
msg.forEach(element => {
|
||||
const code = element.stationCode + '' + element.tripNumber;
|
||||
state.railCtcStationManageRpMsg[code] = copyAssign(state.railCtcStationManageRpMsg[code] || {}, element);
|
||||
});
|
||||
state.railCtcStationManageRpChange++;
|
||||
break;
|
||||
// 大铁项目 ctc 车务管理端 移除消息
|
||||
case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_REMOVE':
|
||||
msg.forEach(element => {
|
||||
const code = element.stationCode + '' + element.tripNumber;
|
||||
delete state.railCtcStationManageRpMsg[code];
|
||||
});
|
||||
state.railCtcStationManageRpChange++;
|
||||
break;
|
||||
// // 大铁项目 ctc 车务管理端 覆盖消息
|
||||
// case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_COVER':
|
||||
// state.railCtcStationManageRpMsg = {};
|
||||
// msg.forEach(element => {
|
||||
// const code = element.stationCode + '' + element.tripNumber;
|
||||
// state.railCtcStationManageRpMsg[code] = element;
|
||||
// });
|
||||
// state.railCtcStationManageRpChange++;
|
||||
// break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 操作聊天信息
|
||||
@ -352,7 +417,11 @@ const socket = {
|
||||
simulationPslStatus: [], // PSL面板按钮状态信息
|
||||
simulationPlanChange:{}, // 运行图加线/抽线/变化推送消息
|
||||
loggedOutMsg: '',
|
||||
railCtcStatusMsg: {}, // 占线板信息
|
||||
railCtcStatusMsg: {}, // 占线板信息
|
||||
railCtcRunplanInitMsg:{}, // 大铁项目 ctc 运行图初始化信息
|
||||
railCtcRunplanChange:0, // 大铁项目 ctc 运行图信息变化
|
||||
railCtcStationManageRpMsg:{}, // 大铁项目 ctc 车务管理 端运行图信息
|
||||
railCtcStationManageRpChange:0 // 大铁项目 ctc 车务管理 运行图信息变化
|
||||
},
|
||||
getters: {
|
||||
},
|
||||
|
@ -24,7 +24,7 @@ export function handlerUrl(data) {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// const data = null;
|
||||
// BASE_API = 'https://joylink.club/jlcloud';
|
||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'http://114.116.51.125/jlcloud';
|
||||
// BASE_API = 'http://192.168.8.152:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.8.172:9200'; // 旭强
|
||||
@ -33,7 +33,7 @@ export function handlerUrl(data) {
|
||||
// BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
|
||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛
|
||||
BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛
|
||||
// BASE_API = data && data.domainName ? 'https://' + data.domainName : BASE_API;
|
||||
BASE_API = data && data.domainName ? 'http://' + data.domainName : BASE_API;
|
||||
VOICE_API = data && data.resourcesDomainName ? 'https://' + data.resourcesDomainName : 'https://joylink.club/oss/joylink';
|
||||
|
@ -185,6 +185,18 @@ export function segmentsIntr(a, b, c, d) {
|
||||
return { x: a.x + dx, y: a.y + dy };
|
||||
}
|
||||
|
||||
export function copyAssign(...param) {
|
||||
const result = Object.assign({}, ...param);
|
||||
for (const item of param) {
|
||||
for (const [idx, val] of Object.entries(item)) {
|
||||
if (typeof val === 'object') {
|
||||
result[idx] = copyAssign(result[idx], val);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// export function deepAssign(obj, item) {
|
||||
// function * colneData(item) {
|
||||
// for (const keys in item) {
|
||||
|
@ -31,7 +31,15 @@ export function getTopic(type, group, stationCode) {
|
||||
case 'ISCSPIS':
|
||||
topic = `/queue/simulation/${group}/iscs/pis`;
|
||||
break;
|
||||
case 'CTC':
|
||||
topic = `/user/queue/simulation/${group}/ctc`;
|
||||
break;
|
||||
case 'CTC_MANAGE':
|
||||
// topic = `/user/queue/simulation/${group}/ctc/manage`;
|
||||
topic = `/user/queue/simulation/${group}/ctcManage`;
|
||||
break;
|
||||
}
|
||||
|
||||
return topic;
|
||||
}
|
||||
|
||||
|
424
src/views/bigTrainRunplanManage/addRunplan.vue
Normal file
@ -0,0 +1,424 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="datie-02__systerm"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="460px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="DpRunplanPane">
|
||||
<el-form ref="form" :model="addModel" label-width="70px" :rules="rules">
|
||||
<el-form-item label="车站:" prop="stationCode">
|
||||
<el-select v-model="addModel.stationCode" placeholder="" style="width:135px" disabled>
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="股道:" prop="trackSectionCode">
|
||||
<el-select v-model="addModel.trackSectionCode" placeholder="" style="width:135px">
|
||||
<el-option
|
||||
v-for="item in filterSectionList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="到达车次:" prop="arriveTripNumber">
|
||||
<el-input v-model="addModel.arriveTripNumber" style="width:135px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="到达时间:" prop="arriveTime">
|
||||
<el-time-picker v-model="addModel.arriveTime" value-format="HH:mm" format="HH:mm" style="width:135px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出发车次:" prop="departTripNumber">
|
||||
<el-input v-model="addModel.departTripNumber" style="width:135px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出发时间:" prop="departTime">
|
||||
<el-time-picker v-model="addModel.departTime" value-format="HH:mm" format="HH:mm" style="width:135px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="入口:" prop="arriveDirectionCode">
|
||||
<el-select v-model="addModel.arriveDirectionCode" placeholder="" style="width:135px">
|
||||
<el-option
|
||||
v-for="item in mapStationDirectionList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="后方车站:" prop="arriveStationCode">
|
||||
<el-select v-model="addModel.arriveStationCode" placeholder="" style="width:135px">
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="出口:" prop="departDirectionCode">
|
||||
<el-select v-model="addModel.departDirectionCode" placeholder="" style="width:135px">
|
||||
<el-option
|
||||
v-for="item in mapStationDirectionList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="前方车站:" prop="departStationCode">
|
||||
<el-select v-model="addModel.departStationCode" placeholder="" style="width:135px">
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="6" :offset="7">
|
||||
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="0">
|
||||
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="datie-02__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name: 'TrainSetPlan',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
var validateTripNumber = (rule, value, callback) => {
|
||||
if (value) {
|
||||
const judge = /^[a-zA-Z0-9]*[\d]$/.test(value);
|
||||
if (judge) {
|
||||
if (value.toString().length > 6 || value.toString().length < 2) {
|
||||
callback('车次长度2-6位');
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
callback('字母+数字,最后一位数字');
|
||||
}
|
||||
} else {
|
||||
callback('请输入车次');
|
||||
}
|
||||
};
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
mapStationDirectionList:[],
|
||||
filterSectionList:[],
|
||||
addModel:{
|
||||
stationCode:'', // 车站编码
|
||||
trackSectionCode:'', // 运行计划的默认股道
|
||||
arriveTripNumber:'', // 到达车次
|
||||
departTripNumber:'', // 出发车次
|
||||
arriveTime:'', // 到达时间
|
||||
departTime:'', // 出发时间
|
||||
arriveDirectionCode:'', // 入口
|
||||
departDirectionCode:'', // 出口
|
||||
arriveStationCode:'', // 到达车站
|
||||
departStationCode:'' // 出发车站
|
||||
},
|
||||
rules: {
|
||||
trackSectionCode: [
|
||||
{ required: true, message: '请选择股道', trigger: 'blur' },
|
||||
{ required: true, message: '请选择股道', trigger: 'change' }
|
||||
],
|
||||
arriveTripNumber:[
|
||||
{ required: true, validator: validateTripNumber, trigger: 'blur' }
|
||||
// message: '请输入到达车次'
|
||||
],
|
||||
departTripNumber:[
|
||||
{ required: true, validator: validateTripNumber, trigger: 'blur' }
|
||||
],
|
||||
// message: '请输入出发车次'
|
||||
arriveTime: [
|
||||
{ required: true, message: '请选择到达时间', trigger: 'blur' },
|
||||
{ required: true, message: '请选择到达时间', trigger: 'change' }
|
||||
],
|
||||
departTime: [
|
||||
{ required: true, message: '请选择出发时间', trigger: 'blur' },
|
||||
{ required: true, message: '请选择出发时间', trigger: 'change' }
|
||||
],
|
||||
arriveDirectionCode: [
|
||||
{ required: true, message: '请选择入口', trigger: 'blur' },
|
||||
{ required: true, message: '请选择入口', trigger: 'change' }
|
||||
],
|
||||
departDirectionCode: [
|
||||
{ required: true, message: '请选择出口', trigger: 'blur' },
|
||||
{ required: true, message: '请选择出口', trigger: 'change' }
|
||||
],
|
||||
arriveStationCode: [
|
||||
{ required: true, message: '请选择后方车站', trigger: 'blur' },
|
||||
{ required: true, message: '请选择后方车站', trigger: 'change' }
|
||||
],
|
||||
departStationCode: [
|
||||
{ required: true, message: '请选择前方车站', trigger: 'blur' },
|
||||
{ required: true, message: '请选择前方车站', trigger: 'change' }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.CTCCommand.addTrainFixedPath.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '列车固定径路';
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
doShow({stationCode, filterSectionMap, mapStationDirectionMap}) {
|
||||
this.mapStationDirectionList = Object.values(mapStationDirectionMap);
|
||||
this.filterSectionList = Object.values(filterSectionMap);
|
||||
this.dialogShow = true;
|
||||
this.addModel.stationCode = stationCode;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.addModel = {
|
||||
stationCode:'', // 车站编码
|
||||
trackSectionCode:'', // 运行计划的默认股道
|
||||
arriveTripNumber:'', // 到达车次
|
||||
departTripNumber:'', // 出发车次
|
||||
arriveTime:'', // 到达时间
|
||||
departTime:'', // 出发时间
|
||||
arriveDirectionCode:'', // 入口
|
||||
departDirectionCode:'', // 出口
|
||||
arriveStationCode:'', // 到达车站
|
||||
departStationCode:'' // 出发车站
|
||||
};
|
||||
this.$refs.form && this.$refs.form.resetFields();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.loading = true;
|
||||
const param = {stationCode:this.addModel.stationCode, runPlanParamList:[this.addModel]};
|
||||
commitOperate(menuOperate.CTC.addTrainFixedPath, param, 3).then(({valid})=>{
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
this.$emit('noticeInfo');
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
</style>
|
||||
<style lang="scss">
|
||||
.DpRunplanPane{margin-bottom: 15px;}
|
||||
.DpRunplanPane .el-form-item{
|
||||
display:inline-block;
|
||||
width:210px;
|
||||
margin-bottom:20px;
|
||||
}
|
||||
.DpRunplanPane .el-form-item__content{
|
||||
line-height:30px;
|
||||
}
|
||||
// .chengdou-03__systerm .el-dialog .expand {
|
||||
// width: 120px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-button:focus span {
|
||||
// border: 1px dashed gray;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-button:active {
|
||||
// border: 2px inset #E2E2E2;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-button:disabled {
|
||||
// border: 2px inset #E2E2E2;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-button:disabled span {
|
||||
// border: 0px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-textarea {
|
||||
// border: 2px inset #E9E9E9;
|
||||
// border-radius: 0px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-textarea .el-textarea__inner {
|
||||
// color: #000;
|
||||
// background: #fff !important;
|
||||
// border: 0px;
|
||||
// border-radius: 0px !important;
|
||||
// box-sizing: border-box;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
// background: #F0F0F0 !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-table--border th.gutter {
|
||||
// background: #EBEADB !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-table {
|
||||
// border: 2px inset #E9E9E9;
|
||||
// color: #000 !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-table .cell {
|
||||
// height: 22px;
|
||||
// line-height: 22px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-table th.is-leaf {
|
||||
// background: #F0F0F0 !important;
|
||||
// border-right: 1px solid #BDBDBD !important;
|
||||
// border-bottom: 1px solid #BDBDBD !important;
|
||||
// color: #000 !important;
|
||||
// height: 20px !important;
|
||||
// padding: 0px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-table tr td {
|
||||
// height: 20px !important;
|
||||
// padding: 0px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-table .el-table__empty-text {
|
||||
// top: 15px !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .current-row>td {
|
||||
// background: #3399FF !important;
|
||||
// color: #fff !important;
|
||||
// }
|
||||
|
||||
.datie-02__systerm .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-radio__inner {
|
||||
// border: 1px inset #dcdfe6 !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-radio__label {
|
||||
// color: #000 !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
// background: #fff !important;
|
||||
// border: 1px inset #dcdfe6 !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
// width: 4px;
|
||||
// height: 4px;
|
||||
// border-radius: 100%;
|
||||
// background-color: #000 !important;
|
||||
// position: absolute;
|
||||
// left: 50%;
|
||||
// top: 50%;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
// background: #E6E6E6 !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
// color: #C5C9CC !important;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .base-label {
|
||||
// background: rgba(0, 0, 0, x);
|
||||
// position: relative;
|
||||
// left: -15px;
|
||||
// top: -18px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .notice {
|
||||
// margin-left: 62px;
|
||||
// line-height: 30px;
|
||||
// }
|
||||
|
||||
// .chengdou-03__systerm .el-dialog .button-group {
|
||||
// margin-top: 20px;
|
||||
// }
|
||||
</style>
|
308
src/views/bigTrainRunplanManage/index.vue
Normal file
@ -0,0 +1,308 @@
|
||||
<template>
|
||||
<div class="BTRp">
|
||||
<div class="BTRpMenuBarOut">
|
||||
<div class="BTRpMenuBar">
|
||||
<div class="eachBTRpMenuBar" @click="addTab('StationTrack')">车站股道</div>
|
||||
<div class="eachBTRpMenuBar">车站出入口</div>
|
||||
<div class="eachBTRpMenuBar" @click="addTab('TrainFixedPath')">列车固定路径</div>
|
||||
<div class="eachBTRpMenuBar">车站用户管理</div>
|
||||
<div class="eachBTRpMenuBar">备份区名称</div>
|
||||
<div class="eachBTRpMenuBar">工作区选择</div>
|
||||
<div class="eachBTRpMenuBar">帮助</div>
|
||||
</div>
|
||||
<div class="BTRunplanClose" @click="quit">
|
||||
<i class="el-icon-close" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="BTRpTabs">
|
||||
<el-tabs v-model="activeTab" type="card" closable @tab-remove="removeTab">
|
||||
<el-tab-pane
|
||||
v-for="(item) in currentTabs"
|
||||
:key="item.name"
|
||||
:label="item.title"
|
||||
:name="item.name"
|
||||
>
|
||||
<component
|
||||
:is="item.component"
|
||||
:ref="item.name"
|
||||
@noticeInfo="noticeInfo"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
<notice-info ref="noticeInfo" pop-class="datie-02__systerm" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getToken } from '@/utils/auth';
|
||||
import StationTrack from './stationTrack';
|
||||
import TrainFixedPath from './trainFixedPath';
|
||||
import { loadMapDataById } from '@/utils/loaddata';
|
||||
import { creatSubscribe, clearSubscribe, getTopic, displayTopic } from '@/utils/stomp';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
export default {
|
||||
name:'BigTrainRunplanManage',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeTab:'StationTrack',
|
||||
stationCode:'',
|
||||
groupModel: '',
|
||||
currentTabs: [
|
||||
// {
|
||||
// title: '车站股道',
|
||||
// name: 'StationTrack',
|
||||
// component:StationTrack
|
||||
// },
|
||||
// {
|
||||
// title: '列车固定径路',
|
||||
// name: 'TrainFixedPath',
|
||||
// component:TrainFixedPath
|
||||
// }
|
||||
]
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
'$store.state.map.mapDataLoadedCount': function (val) { // 地图数据加载完成
|
||||
this.$store.commit('training/notifyGetCommandDefinition', this.$route.query.lineCode);
|
||||
this.subscribe();
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.clearSubscribe();
|
||||
},
|
||||
async mounted() {
|
||||
this.$store.dispatch('training/setPrdType', this.$route.query.prdType);
|
||||
this.groupModel = this.$route.query.group;
|
||||
this.stationCode = this.$route.query.stationCode;
|
||||
this.initLoadData();
|
||||
},
|
||||
methods:{
|
||||
removeTab(targetName) {
|
||||
const tabs = this.currentTabs;
|
||||
let activeName = this.activeTab;
|
||||
if (activeName === targetName) {
|
||||
tabs.forEach((tab, index) => {
|
||||
if (tab.name === targetName) {
|
||||
const nextTab = tabs[index + 1] || tabs[index - 1];
|
||||
if (nextTab) {
|
||||
activeName = nextTab.name;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
this.activeTab = activeName;
|
||||
this.currentTabs = tabs.filter(tab => tab.name !== targetName);
|
||||
},
|
||||
addTab(name) {
|
||||
const nameMap = {'StationTrack':{title:'车站股道', component:StationTrack }, 'TrainFixedPath':{title:'列车固定路径', component:TrainFixedPath}};
|
||||
const findTab = this.currentTabs.find(tab=>{
|
||||
return tab.name == name;
|
||||
});
|
||||
if (!findTab) {
|
||||
this.currentTabs.push(Object.assign( {name:name}, nameMap[name]));
|
||||
this.$nextTick(()=>{
|
||||
this.$refs[this.activeTab][0].loadStation();
|
||||
});
|
||||
}
|
||||
this.activeTab = name;
|
||||
},
|
||||
quit() {
|
||||
window.close();
|
||||
},
|
||||
initLoadData() {
|
||||
loadMapDataById(this.$route.query.mapId, 'parse');
|
||||
},
|
||||
async subscribe() {
|
||||
this.clearSubscribe();
|
||||
const header = { group: this.$route.query.group || '', 'X-Token': getToken() };
|
||||
// creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
|
||||
// creatSubscribe(getTopic('CTC', this.$route.query.group), header);
|
||||
creatSubscribe(getTopic('CTC_MANAGE', this.$route.query.group), header);
|
||||
// await this.$store.dispatch('training/setHasSubscribed');
|
||||
},
|
||||
clearSubscribe() {
|
||||
// clearSubscribe(`${displayTopic}\/${this.groupModel}`);
|
||||
// clearSubscribe(getTopic('CTC', this.groupModel));
|
||||
clearSubscribe(getTopic('CTC_MANAGE', this.groupModel));
|
||||
},
|
||||
noticeInfo() {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
}
|
||||
// '车站股道'
|
||||
// 列车固定路径
|
||||
}
|
||||
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.BTRp{height:100%;width:100%;padding-top:30px}
|
||||
.BTRpMenuBarOut{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left:0;
|
||||
top:0;
|
||||
background: #bad8fb;
|
||||
border-bottom: 1px #8fb2dd solid;
|
||||
height: 29px;
|
||||
}
|
||||
.BTRpTabs{height:100%;background: #cccccd;}
|
||||
.BTRpMenuBar{
|
||||
display: inline-block;
|
||||
background: #d2e0f3;
|
||||
border-bottom-right-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
padding-right: 10px;
|
||||
border-right: 1px #93a3b4 solid;
|
||||
border-bottom: 1px #cadaef solid;
|
||||
position: absolute;
|
||||
height: 29px;
|
||||
}
|
||||
.eachBTRpMenuBar{
|
||||
display: inline-block;
|
||||
padding: 5px 15px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
height: 29px;
|
||||
}
|
||||
.eachBTRpMenuBar:hover{
|
||||
background: #a6cdfb;
|
||||
}
|
||||
.BTRunplanClose{
|
||||
display: inline-block;
|
||||
float: right;
|
||||
margin-right: 10px;
|
||||
padding: 4px 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
.BTRpTabs .el-tabs--card>.el-tabs__header{background: #c5dffd;font-size: 13px;color: #1f4678;border-bottom: 2px #84827f solid;margin-bottom:0px;}
|
||||
.BTRpTabs .el-tabs--card>.el-tabs__header .el-tabs__item.is-top.is-active{background:#fafbfa;}
|
||||
.BTRpTabs .el-tabs__item.is-active{color: #003589;font-weight: bold;}
|
||||
.BTRpTabs .el-tabs--card>.el-tabs__header .el-tabs__item.is-top{font-size:13px;border-top-right-radius: 40px;height: 30px;
|
||||
line-height: 30px;padding: 0 15px 0px 10px;background: #b9d2f1;vertical-align: text-bottom;border-top: 1px #5e6a79 solid;
|
||||
border-left: 1px #94b6f0 solid;border-right: 1px #c9d3e0 solid;}
|
||||
.BTRpTabs .el-tabs--card>.el-tabs__header .el-tabs__nav{border:none}
|
||||
|
||||
.datie-02__systerm {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
.datie-02__systerm .el-dialog {
|
||||
background-image: linear-gradient(#9ab6ce, #b3cce8);
|
||||
box-shadow: 1px 1px 2px #65666c;
|
||||
border: 1px solid #326b7f;
|
||||
border-radius: 6px;
|
||||
font-size: 13px !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog span {
|
||||
font-size: 13px !important;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog span .el-icon-arrow-up{
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-dialog__footer {
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-dialog__body {
|
||||
padding: 15px 5px;
|
||||
margin: 0px 0px 1px 1px;
|
||||
border: 1px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
background: #eeeeee;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-dialog__title {
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-dialog__headerbtn {
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
top: 6px;
|
||||
right: 3px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-input {
|
||||
// border: 2px inset #E9E9E9;
|
||||
height: 24px !important;
|
||||
line-height: 22px !important;
|
||||
border: 1px #8bacba solid;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-input__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
// border-radius: 3px !important;
|
||||
box-sizing: border-box;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
// border: 1px #8bacba solid;
|
||||
}
|
||||
.datie-02__systerm .el-dialog .el-input.is-disabled{
|
||||
border: 1px solid #c1c1c1;
|
||||
}
|
||||
.datie-02__systerm .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #f3f3f3 !important;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog .el-button {
|
||||
height: 24px;
|
||||
line-height: 22px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
// border: 2px outset #E2E2E2;
|
||||
// border-radius: 4px !important;
|
||||
color: #000;
|
||||
background-image: linear-gradient(#fff, #d8d8d8);
|
||||
}
|
||||
.datie-02__systerm .el-dialog .el-button:hover{
|
||||
background-image: linear-gradient(#efffff, #a8daf3);
|
||||
}
|
||||
.datie-02__systerm .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
padding-right: 5px;
|
||||
font-size:13px;
|
||||
line-height:30px;
|
||||
}
|
||||
|
||||
.datie-02__systerm .el-dialog span.el-input__prefix .el-input__icon{
|
||||
line-height:22px;
|
||||
}
|
||||
.datie-02__systerm .el-dialog span.el-input__suffix .el-input__icon{
|
||||
line-height:22px;
|
||||
}
|
||||
.datie-02__systerm .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
168
src/views/bigTrainRunplanManage/stationTrack.vue
Normal file
@ -0,0 +1,168 @@
|
||||
<template>
|
||||
<div class="stationTrack" :style="{ height: height+'px' }">
|
||||
<!-- {{ '车站股道' }} -->
|
||||
<div class="stationTrackL">
|
||||
<terminal-station-list ref="terminalStationList" />
|
||||
</div>
|
||||
<div class="stationTrackR">
|
||||
<div class="stationTrackRMenu">
|
||||
<div class="stationTrackRMenuL">
|
||||
<!-- :id="domIdConfirm" :loading="loading" @click="commit"-->
|
||||
<el-button class="stationTrackButton" size="small">修改</el-button>
|
||||
</div>
|
||||
<div class="stationTrackRMenuR">
|
||||
<span class="stationTrackRVer">版本号</span>
|
||||
<el-button class="stationTrackButton" size="small">备份</el-button>
|
||||
<el-button class="stationTrackButton" size="small">更新至生效区</el-button>
|
||||
<el-button class="stationTrackButton" size="small">导入</el-button>
|
||||
<el-button class="stationTrackButton" size="small">比较</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stationTrackRTable" :style="{ height: (height-40)+'px' }">
|
||||
<el-table
|
||||
id="stationTrackTableIn"
|
||||
ref="stationTrackTableIn"
|
||||
:data="tableData"
|
||||
border
|
||||
height="600px"
|
||||
highlight-current-row
|
||||
style="border:1px #ccc solid;width:1103px"
|
||||
>
|
||||
<!-- @cell-click="selectedTripNumber" -->
|
||||
<!-- @current-change="handleCurrentChange" -->
|
||||
<el-table-column
|
||||
type="index"
|
||||
label="序号"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="trackName"
|
||||
label="股道名称"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="lineType"
|
||||
label="线路性质"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="RVdirection"
|
||||
label="接发车方向"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="RVType"
|
||||
label="接发车类型"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="transType"
|
||||
label="超限类型"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="stationStand"
|
||||
label="站台"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="allowEMU"
|
||||
label="允许动车组"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="waterEquip"
|
||||
label="上水设备"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="sewageEquip"
|
||||
label="排污设备"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="military"
|
||||
label="军用"
|
||||
width="100"
|
||||
/>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import TerminalStationList from './terminalStationList';
|
||||
export default {
|
||||
name:'StationTrack',
|
||||
components: {
|
||||
TerminalStationList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
height: this.$store.state.app.height - 61,
|
||||
tableData:[
|
||||
{trackName:'IG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'无', allowEMU:'否', waterEquip:'无',
|
||||
sewageEquip:'无', military:'否'},
|
||||
{trackName:'IIG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'低', allowEMU:'否', waterEquip:'无',
|
||||
sewageEquip:'无', military:'否' }
|
||||
]
|
||||
};
|
||||
},
|
||||
methods:{
|
||||
loadStation() {
|
||||
this.$refs.terminalStationList.loadStation();
|
||||
},
|
||||
loadStationData(stationCode) {
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.stationTrack{
|
||||
padding-left:200px;
|
||||
}
|
||||
.stationTrackL{
|
||||
width: 200px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
border-right: 1px #797979 solid;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.stationTrackR{
|
||||
padding:0px 5px 0px 5px;
|
||||
height: 100%;
|
||||
background: #d8d8d8;
|
||||
}
|
||||
.stationTrackRMenu{
|
||||
background:#eeeeee;
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
padding:5px;
|
||||
border-left: 1px #707070 solid;
|
||||
}
|
||||
.stationTrackRMenuL{display: inline-block;}
|
||||
.stationTrackRMenuR{float:right;display: inline-block;}
|
||||
.stationTrackRTable{background:#a9a9a9;border-left: 1px #707070 solid;}
|
||||
.stationTrackRVer{
|
||||
font-size: 14px;
|
||||
margin-right: 10px;
|
||||
color: #87a7c9;
|
||||
}
|
||||
.stationTrackButton{
|
||||
background-image: linear-gradient(#ffffff,#d8d8d8);
|
||||
color: #000;
|
||||
padding: 5px 10px;
|
||||
border: 1px #737373 solid;
|
||||
}
|
||||
.stationTrackButton:hover{
|
||||
background-image: linear-gradient(#efffff,#a8daf3);
|
||||
}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
#stationTrackTableIn.el-table td, #stationTrackTableIn.el-table th{
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
border-color: #a5a5a5;
|
||||
}
|
||||
</style>
|
113
src/views/bigTrainRunplanManage/terminalStationList.vue
Normal file
@ -0,0 +1,113 @@
|
||||
<template>
|
||||
<div class="terminalStationList">
|
||||
<div class="terminalStationListT">
|
||||
<span class="terminalStationListTName">区段:</span>
|
||||
<el-select v-model="section" disabled placeholder="请选择" size="mini" class="terminalStationListTSelect">
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="terminalStationListB">
|
||||
<el-tree
|
||||
id="terminalStationTree"
|
||||
ref="terminalStationTree"
|
||||
:data="treeList"
|
||||
:props="defaultProps"
|
||||
:default-expanded-keys="['allStation']"
|
||||
:highlight-current="true"
|
||||
:check-on-click-node="true"
|
||||
node-key="id"
|
||||
style="color:#000"
|
||||
@current-change="handleChange"
|
||||
/>
|
||||
<!-- @node-click="handleNodeClick" -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
export default {
|
||||
name:'TerminalStationList',
|
||||
data() {
|
||||
return {
|
||||
treeList:[{
|
||||
id:'allStation',
|
||||
label: '车站列表',
|
||||
children: []
|
||||
}],
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
},
|
||||
section:'T121',
|
||||
sectionList:[{
|
||||
code:'T121',
|
||||
name:'兰五台'
|
||||
}]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
// '$store.state.map.mapDataLoadedCount': function (val) { // 地图数据加载完成
|
||||
// this.stationList.forEach(station => {
|
||||
// if (!station.depot) {
|
||||
// this.treeList[0].children.push({id:station.code, label:station.name});
|
||||
// }
|
||||
// });
|
||||
// this.$nextTick(()=>{
|
||||
// const currentKey = this.treeList[0].children[0].id;
|
||||
// this.$refs.terminalStationTree.setCurrentKey(currentKey);
|
||||
// });
|
||||
// }
|
||||
},
|
||||
async mounted() {
|
||||
},
|
||||
methods:{
|
||||
handleChange(data, node) {
|
||||
this.$emit('loadStationData', data.id);
|
||||
},
|
||||
loadStation() {
|
||||
this.treeList[0].children = [];
|
||||
this.stationList.forEach(station => {
|
||||
if (!station.depot) {
|
||||
this.treeList[0].children.push({id:station.code, label:station.name});
|
||||
}
|
||||
});
|
||||
this.$nextTick(()=>{
|
||||
const currentKey = this.treeList[0].children[0].id;
|
||||
this.$refs.terminalStationTree.setCurrentKey(currentKey);
|
||||
this.$emit('loadStationData', currentKey);
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.terminalStationListTSelect{width: 100px;}
|
||||
.terminalStationListTName{font-size:14px;margin-left: 10px;margin-right: 8px;}
|
||||
.terminalStationListT{display: inline-block;position:absolute;left:0;top:0;padding:5px;background:#eee;width:100%;}
|
||||
.terminalStationList{
|
||||
padding-top:40px;
|
||||
height: 100%;
|
||||
}
|
||||
.terminalStationListB{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
#terminalStationTree.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
|
||||
background: #fff;
|
||||
color: #2525ff;
|
||||
}
|
||||
</style>
|
492
src/views/bigTrainRunplanManage/trainFixedPath.vue
Normal file
@ -0,0 +1,492 @@
|
||||
<template>
|
||||
<div class="trainFixedPath" :style="{ height: height+'px' }">
|
||||
<!-- {{ '列车固定径路' }} -->
|
||||
<div class="trainFixedPathL">
|
||||
<terminal-station-list ref="terminalStationList" @loadStationData="loadStationData" />
|
||||
</div>
|
||||
<div class="trainFixedPathR">
|
||||
<div class="trainFixedPathRMenu">
|
||||
<div class="trainFixedPathRMenuL">
|
||||
<el-button class="trainFixedPathButton" size="small" @click="addRunplan">增加</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">批量增加</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">基本图导入</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">基本图申请</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">其他站导入</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">删除</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">全部清空</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">修改</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">查找</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">导出excel</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">流程批量设置</el-button>
|
||||
</div>
|
||||
<div class="trainFixedPathRMenuR">
|
||||
<span class="trainFixedPathRVer">版本号</span>
|
||||
<el-button class="trainFixedPathButton" size="small" @click="exportData">备份</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small" @click="releaseTrainFixedPath">更新至生效区</el-button>
|
||||
<el-button class="trainFixedPathButton trainFixedPathUpload" size="small">
|
||||
导入
|
||||
<input ref="files" type="file" class="file_box" accept=".json, application/json" @change="importf">
|
||||
</el-button>
|
||||
<el-button class="trainFixedPathButton" size="small">比较</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="trainFixedPathRTable" :style="{ height: (height-40)+'px' }">
|
||||
<el-table
|
||||
id="trainFixedPathTableIn"
|
||||
ref="trainFixedPathTableIn"
|
||||
:data="tableData"
|
||||
border
|
||||
height="600px"
|
||||
highlight-current-row
|
||||
style="border:1px #ccc solid;"
|
||||
>
|
||||
<!-- @cell-click="selectedTripNumber" -->
|
||||
<!-- @current-change="handleCurrentChange" -->
|
||||
<el-table-column
|
||||
type="index"
|
||||
label="序号"
|
||||
width="50"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="stationCode"
|
||||
label="车站"
|
||||
width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ stationMap[scope.row.stationCode].name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="arriveTripNumber"
|
||||
label="到达车次"
|
||||
width="80"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="arriveTime"
|
||||
label="到达时间"
|
||||
width="70"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.arriveTime }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="departTripNumber"
|
||||
label="出发车次"
|
||||
width="80"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="departTime"
|
||||
label="出发时间"
|
||||
width="70"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="trackSectionCode"
|
||||
label="股道"
|
||||
width="75"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ filterSectionMap[scope.row.trackSectionCode].name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="departStationCode"
|
||||
label="后方车站"
|
||||
width="110"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ stationMap[scope.row.departStationCode].name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="arriveDirectionCode"
|
||||
label="入口"
|
||||
width="155"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ mapStationDirectionData[scope.row.arriveDirectionCode].name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="departDirectionCode"
|
||||
label="出口"
|
||||
width="155"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ mapStationDirectionData[scope.row.departDirectionCode].name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="arriveStationCode"
|
||||
label="前方车站"
|
||||
width="110"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ stationMap[scope.row.arriveStationCode].name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="RVType"
|
||||
label="技术停点"
|
||||
width="70"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="trainInspection"
|
||||
label="列检"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.trainInspection" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="crossZero"
|
||||
label="交零"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.crossZero" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="columnEnd"
|
||||
label="列尾"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.columnEnd" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="locomotive"
|
||||
label="机车"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.locomotive" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="goodsInspection"
|
||||
label="货检"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.goodsInspection" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="multiplyDown"
|
||||
label="乘降"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.multiplyDown" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="sailUpstream"
|
||||
label="上水"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.sailUpstream" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="pickUp"
|
||||
label="摘挂"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.pickUp" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="transfer"
|
||||
label="换乘"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.transfer" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="handling"
|
||||
label="装卸"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.handling" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="pollution"
|
||||
label="吸污"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.pollution" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="crossing"
|
||||
label="道口"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.crossing" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="trainNumber"
|
||||
label="车号"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.trainNumber" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="affair"
|
||||
label="站务"
|
||||
width="40"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.affair" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<add-runplan ref="addRunplan" @noticeInfo="noticeInfo" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { now} from '@/utils/date';
|
||||
import TerminalStationList from './terminalStationList';
|
||||
import AddRunplan from './addRunplan';
|
||||
import { copyAssign } from '@/utils/index';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name:'TrainFixedPath',
|
||||
components: {
|
||||
TerminalStationList,
|
||||
AddRunplan
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
height: this.$store.state.app.height - 61,
|
||||
currentStationCode:'',
|
||||
tableData:[],
|
||||
filterSectionMap:{}
|
||||
};
|
||||
},
|
||||
computed:{
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'stationList'
|
||||
]),
|
||||
mapStationDirectionData() {
|
||||
return this.$store.state.map.mapStationDirectionData;
|
||||
},
|
||||
stationMap() {
|
||||
const stationMap = {};
|
||||
this.stationList.forEach(station=>{
|
||||
stationMap[station.code] = {code:station.code, name:station.name};
|
||||
});
|
||||
return stationMap;
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
'$store.state.socket.railCtcStationManageRpChange': function (val) {
|
||||
this.handleData();
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
loadStation() {
|
||||
this.$refs.terminalStationList.loadStation();
|
||||
},
|
||||
loadStationData(stationCode) {
|
||||
this.currentStationCode = stationCode;
|
||||
this.filterSectionMap = {};
|
||||
this.sectionList.forEach(section=>{
|
||||
if (section.standTrack && section.belongStation == this.currentStationCode) {
|
||||
this.filterSectionMap[section.code] = {code:section.code, name:section.name};
|
||||
}
|
||||
});
|
||||
this.handleData();
|
||||
},
|
||||
addRunplan() {
|
||||
this.$refs.addRunplan.doShow({
|
||||
stationCode:this.currentStationCode,
|
||||
filterSectionMap:this.filterSectionMap,
|
||||
mapStationDirectionMap:this.mapStationDirectionData
|
||||
});
|
||||
},
|
||||
noticeInfo() {
|
||||
this.$emit('noticeInfo');
|
||||
},
|
||||
exportData() {
|
||||
const currentDay = now().replace(/(-|:)|\s/g, '');
|
||||
const content = new Blob(
|
||||
[JSON.stringify({stationCode:this.currentStationCode, runPlanParamList:this.tableData})]
|
||||
);
|
||||
const urlObject = window.URL || window.webkitURL || window;
|
||||
const url = urlObject.createObjectURL(content);
|
||||
const el = document.createElement('a');
|
||||
el.href = url;
|
||||
el.download = `TRAIN_WAY_LIST-${currentDay}.json`;
|
||||
el.click();
|
||||
urlObject.revokeObjectURL(url);
|
||||
},
|
||||
importf() {
|
||||
const that = this;
|
||||
setTimeout(() => {
|
||||
const obj = this.$refs.files;
|
||||
if (!obj.files) return;
|
||||
const f = obj.files[0];
|
||||
if (f.type != 'application/json') {
|
||||
this.$message.error('请上传json格式的文件');
|
||||
return;
|
||||
}
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在导入中...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
const reader = new FileReader();
|
||||
reader.readAsText(f, 'utf-8');
|
||||
reader.onload = function(e) {
|
||||
const data = e.target.result;
|
||||
that.formDisplay = true;
|
||||
const json = JSON.parse(data);
|
||||
if (json && json.runPlanParamList && json.stationCode) {
|
||||
if (json.runPlanParamList.length > 0) {
|
||||
const param = {stationCode:json.stationCode, runPlanParamList:json.runPlanParamList};
|
||||
commitOperate(menuOperate.CTC.importTrainFixedPath, param, 3).then(({valid})=>{
|
||||
if (valid) {
|
||||
loading.close();
|
||||
that.$message.success('导入成功!');
|
||||
}
|
||||
}).catch(() => {
|
||||
loading.close();
|
||||
that.$message.error('导入失败');
|
||||
});
|
||||
|
||||
} else {
|
||||
that.$message.error('该文件数据为空');
|
||||
loading.close();
|
||||
}
|
||||
} else {
|
||||
that.$message.error('该文件数据结构不正确');
|
||||
loading.close();
|
||||
}
|
||||
};
|
||||
});
|
||||
},
|
||||
releaseTrainFixedPath() {
|
||||
const that = this;
|
||||
commitOperate(menuOperate.CTC.releaseTrainFixedPath, { stationCode:this.currentStationCode}, 3).then(({valid})=>{
|
||||
if (valid) {
|
||||
that.$message.success('发布成功!');
|
||||
}
|
||||
}).catch(() => {
|
||||
that.$message.error('发布失败');
|
||||
});
|
||||
},
|
||||
coverTime(time) {
|
||||
return time.split(':').splice(0, 2).join(':');
|
||||
},
|
||||
handleData() {
|
||||
this.tableData = [];
|
||||
const railCtcStationManageRpMsg = copyAssign({}, this.$store.state.socket.railCtcStationManageRpMsg);
|
||||
this.tableData = Object.values(railCtcStationManageRpMsg).filter(data=>{
|
||||
data.arriveTime = this.coverTime(data.arriveTime);
|
||||
data.departTime = this.coverTime(data.departTime);
|
||||
return data.stationCode == this.currentStationCode;
|
||||
|
||||
});
|
||||
// stationCode 车站编码
|
||||
// trackSectionCode 运行计划的默认股道
|
||||
// arriveTripNumber 到达车次
|
||||
// departTripNumber 出发车次
|
||||
// arriveTime 到达时间
|
||||
// departTime 出发时间
|
||||
// arriveDirectionCode 入口
|
||||
// departDirectionCode 出口
|
||||
// arriveStationCode 到达车站
|
||||
// departStationCode 出发车站
|
||||
//
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.trainFixedPath{
|
||||
padding-left:200px;
|
||||
}
|
||||
.trainFixedPathL{
|
||||
width: 200px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
border-right: 1px #797979 solid;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.trainFixedPathR{
|
||||
padding:0px 5px 0px 5px;
|
||||
height: 100%;
|
||||
background: #d8d8d8;
|
||||
}
|
||||
.trainFixedPathRMenu{
|
||||
background:#eeeeee;
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
padding:5px;
|
||||
border-left: 1px #707070 solid;
|
||||
}
|
||||
.trainFixedPathRMenuL{display: inline-block;}
|
||||
.trainFixedPathRMenuR{float:right;display: inline-block;}
|
||||
.trainFixedPathRVer{
|
||||
font-size: 14px;
|
||||
margin-right: 10px;
|
||||
color: #87a7c9;
|
||||
}
|
||||
.trainFixedPathButton{
|
||||
background-image: linear-gradient(#ffffff,#d8d8d8);
|
||||
color: #000;
|
||||
padding: 5px 10px;
|
||||
border: 1px #737373 solid;
|
||||
}
|
||||
.trainFixedPathButton:hover{
|
||||
background-image: linear-gradient(#efffff,#a8daf3);
|
||||
}
|
||||
.trainFixedPathRTable{background:#a9a9a9;border-left: 1px #707070 solid;}
|
||||
.trainFixedPathUpload {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
input {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
font-size: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
#trainFixedPathTableIn.el-table td, #trainFixedPathTableIn.el-table th{
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
border-color: #a5a5a5;
|
||||
}
|
||||
#trainFixedPathTableIn.el-table .cell{ padding-left: 5px;padding-right: 5px; text-align: center;font-size: 13px;}
|
||||
</style>
|
||||
|
@ -15,6 +15,16 @@
|
||||
<el-form-item :label="this.$t('ibp.yCoordinate')">
|
||||
<el-input-number v-model="form.y" controls-position="right" :min="1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="表示状态">
|
||||
<el-select v-model="form.mean" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in showMeanList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="方向">
|
||||
<el-select v-model="form.direction" placeholder="请选择">
|
||||
<el-option
|
||||
@ -50,6 +60,7 @@ export default {
|
||||
x: 10,
|
||||
y: 10,
|
||||
direction: null,
|
||||
mean: ''
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
@ -64,6 +75,10 @@ export default {
|
||||
{ name: '上行', value: true},
|
||||
{ name: '下行', value: false},
|
||||
],
|
||||
showMeanList: [
|
||||
{label: '信号-蜂鸣器', value: 'SIGNAL_ALARM'},
|
||||
{label: '屏蔽门-蜂鸣器', value: 'PSD_ALARM'}
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -80,6 +95,7 @@ export default {
|
||||
this.form.alarmWidth = model.width;
|
||||
this.form.x = model.point.x;
|
||||
this.form.y = model.point.y;
|
||||
this.form.mean = model.mean;
|
||||
this.form.direction = model.direction
|
||||
}
|
||||
}
|
||||
@ -96,6 +112,7 @@ export default {
|
||||
y: this.form.y
|
||||
},
|
||||
code: this.form.code,
|
||||
mean: this.form.mean,
|
||||
_type: 'Alarm',
|
||||
width: this.form.alarmWidth,
|
||||
direction: this.form.direction
|
||||
@ -115,6 +132,7 @@ export default {
|
||||
},
|
||||
code: this.form.code,
|
||||
_type: 'Alarm',
|
||||
mean: this.form.mean,
|
||||
width: this.form.alarmWidth,
|
||||
direction: this.form.direction
|
||||
};
|
||||
@ -130,6 +148,7 @@ export default {
|
||||
alarmWidth: '',
|
||||
x: 10,
|
||||
y: 10,
|
||||
mean: '',
|
||||
direction: null
|
||||
};
|
||||
},
|
||||
|
@ -100,7 +100,9 @@ export default {
|
||||
{ label: "计轴复位", value: "AXLE_RESET" },
|
||||
{ label: "计轴区段复位", value: "AXLE_PRE_RESET" },
|
||||
{ label: "计轴预复位", value: "PRERESET_Z" },
|
||||
{ label: "试灯", value: "SD" }
|
||||
{ label: "试灯", value: "SD" },
|
||||
{ label: "首末开门", value: 'PSD_SMKM' },
|
||||
{ label: "屏蔽门试灯", value: 'PSD_SD' }
|
||||
],
|
||||
colors: ["red", "yellow", "blue", "green", "gray"],
|
||||
operateWithoutDirections: ["AXLE_RESET", "AXLE_PRE_RESET", "PRERESET_Z", "SD"],
|
||||
|
@ -71,7 +71,8 @@ export default {
|
||||
},
|
||||
operateMeanList: [
|
||||
{ label: '上行钥匙', value: 'SXYS' },
|
||||
{ label: '下行钥匙', value: 'XXYS' }
|
||||
{ label: '下行钥匙', value: 'XXYS' },
|
||||
{ label: '互锁解除', value: 'PSD_HSJC' }
|
||||
],
|
||||
rules: {
|
||||
code: [
|
||||
|
@ -59,6 +59,10 @@ export default {
|
||||
{label: '关门灯', value: 'gmLight'},
|
||||
{label: '开门灯', value: 'kmLight'},
|
||||
{label: '紧急停车灯', value: 'jjtcLight'},
|
||||
{label: '操作允许灯', value: 'PSD_CZYX_LIGHT'},
|
||||
{label: '互锁解除灯', value: 'PSD_HSJC_LIGHT'},
|
||||
{label: '手动操作灯', value: 'PSD_SDCZ_LIGHT'},
|
||||
{label: '故障报警灯', value: 'PSD_GZBJ_LIGHT'}
|
||||
],
|
||||
form: {
|
||||
code: '',
|
||||
|
@ -159,7 +159,7 @@ export default {
|
||||
{label: '交流输出电压', value: 'acOutputVoltage'},
|
||||
{label: '直流电压信号', value: 'dcVoltageSignal'}
|
||||
];
|
||||
} else if (this.$router.query.lineCode === '01') {
|
||||
} else if (this.$route.query.lineCode === '01') {
|
||||
return [
|
||||
{label: 'ibp操作允许上行', value: 'ibpOperationAllowsUp'},
|
||||
{label: 'ibp操作允许下行', value: 'ibpOperationAllowsDown'},
|
||||
|
@ -19,7 +19,7 @@
|
||||
</div>
|
||||
<div v-if="!syncLogin" class="content-box" :style="noQrcodeList.includes(project)?'width: 450px;':''">
|
||||
<div v-if="isProject && !syncLogin" class="text-box" :style="{top: titleDistance}">
|
||||
<img v-if="!loginTitle" class="logo" :src="logoImg" style="width: 80px">
|
||||
<img v-if="!loginTitle" class="logo" :src="logoImg" :style="{width: titleImgWidth}">
|
||||
<span>{{ title }}</span>
|
||||
</div>
|
||||
<div v-if="!noQrcodeList.includes(project)" class="qrcode-main">
|
||||
@ -245,6 +245,9 @@ export default {
|
||||
titleDistance() {
|
||||
return loginInfo[this.project].titleDistance || '-60px';
|
||||
},
|
||||
titleImgWidth() {
|
||||
return loginInfo[this.project].titleImgWidth || '80px';
|
||||
},
|
||||
logoImg() {
|
||||
const projectName = this.project;
|
||||
return ProjectIcon[projectName];
|
||||
|
@ -10,18 +10,18 @@
|
||||
top="25vh"
|
||||
>
|
||||
<el-form ref="ruleForm" :model="form" :rules="rules" label-width="110px" class="demo-ruleForm">
|
||||
<el-form-item prop="email">
|
||||
<template slot="label">
|
||||
<span>邮箱(账号):</span>
|
||||
</template>
|
||||
<el-input v-model="form.email" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="nickname">
|
||||
<template slot="label">
|
||||
<span>昵  称:</span>
|
||||
</template>
|
||||
<el-input v-model="form.nickname" autocomplete="new-password" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="email">
|
||||
<template slot="label">
|
||||
<span>邮箱(账号):</span>
|
||||
</template>
|
||||
<el-input v-model="form.email" />
|
||||
</el-form-item>
|
||||
<el-form-item label="密码:" prop="password">
|
||||
<template slot="label">
|
||||
<span>密  码:</span>
|
||||
|
@ -1,381 +1,528 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="车站股道图"
|
||||
:visible.sync="dialogVisible"
|
||||
width="99%"
|
||||
top="5vh"
|
||||
class="lineBoard"
|
||||
center
|
||||
:before-close="handleClose">
|
||||
<div style="height: 500px; overflow-y: auto;background: #DFE3E6;padding: 7px;">
|
||||
<div style="width: 100%;display: flex;align-items: center;margin-bottom: 10px;">
|
||||
<div
|
||||
:key="item.code"
|
||||
v-for="item in stationList"
|
||||
class="tab-box"
|
||||
@click="selectStandCode(item.code)"
|
||||
:style="{background: selectCode === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode === item.code ? '#000': '#ccc'}">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div :key="item.id" v-for="item in infoList" style="display: flex; justify-content: space-between;border-top: 1px solid #fff;padding: 3px;height: 36px;align-items: center;">
|
||||
<div style="padding: 5px 20px;border-radius: 5px;border-width: 2px;border-style: solid;"
|
||||
:style="{borderColor: item.occupied ? '#f00': '#DFE3E6', fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00':'#1e2024' }">{{item.trackName}}</div>
|
||||
<div>{{item.tripNumber}}</div>
|
||||
<div style="background: #FFCBEC;border: 1px solid #315FD1;border-radius: 3px;font-size: 10px;">{{ item.trainType?'客':'' }}</div>
|
||||
<div>{{item.trainDistanceInfo}}</div>
|
||||
<div>
|
||||
<el-select v-model="item.process" placeholder="请选择" size="mini" style="width: 120px;" :disabled="true">
|
||||
<el-option
|
||||
v-for="elem in sectionStatusList"
|
||||
:key="elem.value"
|
||||
:label="elem.label"
|
||||
:value="elem.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="display: flex;">
|
||||
<div :style="{ background: item.receivingNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'rec')">接预</div>
|
||||
<div
|
||||
class="button-box-sec"
|
||||
:style="{ background: handleBackground(item.receivingRouteLock, item.receivingRouteAutoTrigger) }"
|
||||
@contextmenu="popMenuShow(item, 'rec' ,$event)"
|
||||
@click="doShowRoute(item, 'rec')">
|
||||
{{ '接路' + (item.receivingRouteLock ? '':getRouteName(item.receivingRouteCode)) }}
|
||||
</div>
|
||||
<div :style="{ background: item.arrive ? '#29CA42': '#ccc' }" class="button-box-fir" style="margin-left: 10px;cursor: default;">到点</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>{{item.arriveTime}}</div>
|
||||
<div>{{item.departureTime}}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>{{ item.planArriveTime }}</div>
|
||||
<div>{{ item.planDepartureTime }}</div>
|
||||
</div>
|
||||
<div></div><!--起点--终点-->
|
||||
<div style="display: flex;">
|
||||
<div :style="{ background: item.departureNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'dep')">发预</div>
|
||||
<div
|
||||
class="button-box-sec"
|
||||
:style="{ background: handleBackground(item.departureRouteLock, item.departureRouteAutoTrigger) }"
|
||||
@contextmenu="popMenuShow(item, 'dep' ,$event)"
|
||||
@click="doShowRoute(item, 'dep')">
|
||||
{{ '发路' + (item.departureRouteLock ? '':getRouteName(item.departureRouteCode)) }}
|
||||
</div>
|
||||
<div :style="{ background: item.departure ? '#29CA42': '#ccc' }" class="button-box-fir" style="margin-left: 10px;cursor: default;">发点</div>
|
||||
</div>
|
||||
<div>{{ item.tripNumber }}</div>
|
||||
<div :style="{fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00': '#1e2024' }">{{ item.trackName }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--<div style="display: flex; justify-content: center;">-->
|
||||
<!--<img class="img-box" :src="arrowPic" />-->
|
||||
<!--<img class="img-box" :src="picT3" />-->
|
||||
<!--<img class="img-box" :src="controlPanelPic" />-->
|
||||
<!--<img class="img-box" :src="trainPic" />-->
|
||||
<!--<img class="img-box" :src="controlPanel2Pic"/>-->
|
||||
<!--<img class="img-box" :src="linkPic"/>-->
|
||||
<!--<img class="img-box" :src="cameraPic"/>-->
|
||||
<!--</div>-->
|
||||
<div style="display: flex;margin-top: 5px;justify-content: space-around;background: #DEE2E5;">
|
||||
<div style="width: 49%;margin-top: 10px;">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<div style="background: #0f0;">{{ `进路序列模式:<${readOnly ? '只读':'可修改'}>` }}</div>
|
||||
<el-button size="mini" style="padding: 7px 4px;" disabled>修改申请</el-button>
|
||||
<el-button size="mini" style="padding: 7px 4px;" disabled>只读申请</el-button>
|
||||
<el-button size="mini" style="padding: 7px 4px;margin-left: 30px;">查找列车</el-button>
|
||||
<el-input style="width: 70px;height: 25px;" size="mini" v-model="searchTrain" />
|
||||
<div style="margin-left: 10px;">上下行</div>
|
||||
<el-select size="mini" v-model="andDown" style="width: 80px;margin-left: 5px;">
|
||||
<el-option
|
||||
v-for="item in andDownList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="margin-left: 10px;">接车口</div>
|
||||
<el-select size="mini" v-model="andDown" style="width: 100px;margin-left: 5px;" disabled>
|
||||
<el-option
|
||||
v-for="item in andDownList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="margin-left: 10px;">发车口</div>
|
||||
<el-select size="mini" v-model="andDown" style="width: 100px;margin-left: 5px;" disabled>
|
||||
<el-option
|
||||
v-for="item in andDownList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%;margin-top: 10px;"
|
||||
highlight-current-row
|
||||
:row-style="{ background: '#ff0' }"
|
||||
height="180"
|
||||
border
|
||||
>
|
||||
<el-table-column width="50" label="序号" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!--:style="{ background: scope.$index? '#f00':'#ff0' }" -->
|
||||
<div>{{ scope.$index }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="date" label="注意确认"/>
|
||||
<el-table-column property="tripNumber" label="车次"/>
|
||||
<el-table-column property="trackName" label="股道"/>
|
||||
<el-table-column property="autoTrigger" label="自触">
|
||||
<template slot-scope="scope">
|
||||
<div style="width: 100%;height: 22px;" @contextmenu="popMenuShow(scope.row, '' ,$event)">{{ scope.row.autoTrigger? '√':'' }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="type" label="类型"/>
|
||||
<el-table-column property="status" label="状态"/>
|
||||
<el-table-column property="startTime" label="开始时间"/>
|
||||
<el-table-column property="planTime" label="计划时间"/>
|
||||
<el-table-column property="direction" label="方向"/>
|
||||
<el-table-column property="routeCode" label="序列描述">
|
||||
<template slot-scope="scope">
|
||||
<div>{{getRouteName(scope.row.routeCode)}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="width: 100%;display: flex;align-items: center;margin: 5px 0;">
|
||||
<div
|
||||
:key="item.code"
|
||||
v-for="item in stationList"
|
||||
class="tab-box"
|
||||
@click="selectStandCode1(item.code)"
|
||||
:style="{background: selectCode1 === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode1 === item.code ? '#000': '#ccc'}">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 49%;margin-top: 10px;">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<el-select size="mini" v-model="unknow" disabled>
|
||||
<el-option
|
||||
v-for="item in unknowList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div>调机-J101</div>
|
||||
<el-button size="mini" disabled>进路预览</el-button>
|
||||
<el-select size="mini" v-model="unknow1" disabled>
|
||||
<el-option
|
||||
v-for="item in unknowList1"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button size="mini" disabled>办理进路</el-button>
|
||||
<el-button size="mini" disabled>发送机车</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData1"
|
||||
style="width: 100%;margin-top: 10px;"
|
||||
highlight-current-row
|
||||
border
|
||||
height="180"
|
||||
>
|
||||
<el-table-column type="index" width="50" label="勾"/>
|
||||
<el-table-column property="line" label="线路"/>
|
||||
<el-table-column property="method" label="方法"/>
|
||||
<el-table-column property="nums" label="辆数"/>
|
||||
<el-table-column property="direction" label="方向"/>
|
||||
<el-table-column property="leadWire" label="牵出线"/>
|
||||
<el-table-column property="status" label="状态"/>
|
||||
<el-table-column property="leadRoute" label="牵出进路"/>
|
||||
<el-table-column property="pushRoute" label="推入进路"/>
|
||||
<el-table-column property="note" label="记事"/>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<rec-dep ref="recDep" />
|
||||
<route-selection ref="routeSelection" />
|
||||
<pop-menu ref="popMenu" :menu="menu" style="background: #DFE3E6;"/>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
title="车站股道图"
|
||||
:visible.sync="dialogVisible"
|
||||
width="99%"
|
||||
z-index="3000"
|
||||
top="5vh"
|
||||
class="lineBoard"
|
||||
center
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<div style="height: 500px; overflow-y: auto;background: #DFE3E6;padding: 7px;">
|
||||
<div style="width: 100%;display: flex;align-items: center;margin-bottom: 10px;">
|
||||
<div
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
class="tab-box"
|
||||
:style="{background: selectCode === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode === item.code ? '#000': '#ccc'}"
|
||||
@click="selectStandCode(item.code)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-for="item in trackList" :key="item.id" style="display: flex; justify-content: space-between;border-top: 1px solid #fff;padding: 3px;height: 36px;align-items: center;" :style="{background: item.oddNumber? '#BAC4CF':'#D2D8DB'}">
|
||||
<!--<div
|
||||
style="padding: 5px 20px;border-radius: 5px;border-width: 2px;border-style: solid;width: 120px;"
|
||||
:style="{borderColor: item.occupied ? '#f00': '#DFE3E6', fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00':'#1e2024' }"
|
||||
>{{ item.trackName }}</div>-->
|
||||
<div style="width: 150px;display: flex;">
|
||||
<el-dropdown v-show="item.showTrack" trigger="click">
|
||||
<div
|
||||
style="width: 110px;padding: 5px 20px;border-radius: 5px;border-width: 2px;border-style: solid;display: flex;justify-content: space-between;background: #fff;"
|
||||
:style="{borderColor: item.occupied ? '#f00': '#DFE3E6', fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00':'#1e2024' }"
|
||||
>
|
||||
<span>{{ item.trackName }}</span>
|
||||
<i class="el-icon-caret-bottom" />
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item>黄金糕</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<div v-show="item.showTrack" style="width: 30px;height: 30px;background: #fff;border-radius: 5px;margin-left: 5px;" />
|
||||
</div>
|
||||
<div v-show="!item.noData" style="width: 80px;color: #f00;font-weight: bolder;">{{ item.tripNumber }}</div>
|
||||
<div v-show="!item.noData" style="background: #FFCBEC;border: 1px solid #315FD1;border-radius: 3px;font-size: 10px;width: 15px;" :style="{borderColor:item.trainType?'#315FD1':'#DFE3E6'}">{{ item.trainType?'客':'客' }}</div>
|
||||
<div v-show="!item.noData" style="width: 60px;">{{ item.trainDistanceInfo }}</div>
|
||||
<div v-show="!item.noData" style="width: 120px;">
|
||||
<el-select v-model="item.process" placeholder="请选择" size="mini" style="width: 120px;" :disabled="true">
|
||||
<el-option
|
||||
v-for="elem in sectionStatusList"
|
||||
:key="elem.value"
|
||||
:label="elem.label"
|
||||
:value="elem.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div v-show="!item.noData" style="display: flex;width: 300px;">
|
||||
<div v-show="item.receivingRouteCode" :style="{ background: item.receivingNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'rec')">接预</div>
|
||||
<div
|
||||
v-show="item.receivingRouteCode"
|
||||
class="button-box-sec"
|
||||
:style="{ background: handleBackground(item.receivingRouteLock, item.receivingRouteAutoTrigger) }"
|
||||
@contextmenu="popMenuShow(item, 'rec' ,$event)"
|
||||
@click="doShowRoute(item, 'rec')"
|
||||
>
|
||||
{{ '接路' + (item.receivingRouteLock ? '':getRouteName(item.receivingRouteCode)) }}
|
||||
</div>
|
||||
<div v-show="item.receivingRouteCode" :style="{ background: item.arrive ? '#29CA42': '#ccc' }" class="button-box-fir" style="margin-left: 10px;cursor: default;" @click="doShowRecDep(item, 'arrive')">到点</div>
|
||||
</div>
|
||||
<div v-show="!item.noData" style="width: 120px;color: #f00;">
|
||||
<el-row><div>{{ item.arriveTime || '-' }}</div></el-row>
|
||||
<el-row><div>{{ item.departureTime|| '-' }}</div></el-row>
|
||||
</div>
|
||||
<div v-show="!item.noData" style="width: 120px;color: #f00;font-style:italic;">
|
||||
<el-row><div>{{ item.planArriveTime|| '-' }}</div></el-row>
|
||||
<el-row><div>{{ item.planDepartureTime || '-' }}</div></el-row>
|
||||
</div>
|
||||
<div v-show="!item.noData" style="width: 150px;color: #f00;">
|
||||
<el-row>{{ item.receivingDirection||'-' }}</el-row>
|
||||
<el-row>{{ item.departureDirection||'-' }}</el-row>
|
||||
</div>
|
||||
<div /><!--起点--终点-->
|
||||
<div v-show="!item.noData" style="display: flex;width: 300px;">
|
||||
<div v-show="item.departureRouteCode" :style="{ background: item.departureNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'dep')">发预</div>
|
||||
<div
|
||||
v-show="item.departureRouteCode"
|
||||
class="button-box-sec"
|
||||
:style="{ background: handleBackground(item.departureRouteLock, item.departureRouteAutoTrigger) }"
|
||||
@contextmenu="popMenuShow(item, 'dep' ,$event)"
|
||||
@click="doShowRoute(item, 'dep')"
|
||||
>
|
||||
{{ '发路' + (item.departureRouteLock ? '':getRouteName(item.departureRouteCode)) }}
|
||||
</div>
|
||||
<div v-show="item.departureRouteCode" :style="{ background: item.departure ? '#29CA42': '#ccc' }" class="button-box-fir" style="margin-left: 10px;cursor: default;" @click="doShowRecDep(item, 'departure')">发点</div>
|
||||
</div>
|
||||
<div v-show="!item.noData" style="width: 80px;color: #f00;font-weight: bolder;">{{ item.tripNumber }}</div>
|
||||
<div style="width: 120px" :style="{fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00': '#1e2024' }">{{ item.showTrack ? item.trackName: '' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="background: #DFE3E6;">
|
||||
<div style="padding: 5px;text-align: center;width: 700px;margin: 0 auto;">
|
||||
<div style="background: #999EA7;display: flex;align-items: center;">
|
||||
<div class="button-box">
|
||||
<img :src="arrowPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="controlPanelPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="t3Pic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="panelPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="trainPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="linkPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<img :src="cameraPic" class="img-button">
|
||||
</div>
|
||||
<div style="width: 270px;height: 36px; background: #fff;border-radius: 5px;" />
|
||||
<div class="button-box">
|
||||
<img :src="unknowPic" class="img-button">
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<div class="img-button">签</div>
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<div class="img-button">令</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex;margin-top: 5px;justify-content: space-around;background: #DEE2E5;">
|
||||
<div style="width: 49%;margin-top: 10px;">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<div style="background: #0f0;">{{ `进路序列模式:<${readOnlyMap[selectCode1] ? '只读':'可修改'}>` }}</div>
|
||||
<el-button size="mini" style="padding: 7px 4px;" disabled>修改申请</el-button>
|
||||
<el-button size="mini" style="padding: 7px 4px;" disabled>只读申请</el-button>
|
||||
<el-button size="mini" style="padding: 7px 4px;margin-left: 30px;">查找列车</el-button>
|
||||
<el-input v-model="searchTrain" style="width: 70px;height: 25px;" size="mini" />
|
||||
<div style="margin-left: 10px;">上下行</div>
|
||||
<el-select v-model="andDown" size="mini" style="width: 80px;margin-left: 5px;">
|
||||
<el-option
|
||||
v-for="item in andDownList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="margin-left: 10px;">接车口</div>
|
||||
<el-select v-model="andDown" size="mini" style="width: 100px;margin-left: 5px;" disabled>
|
||||
<el-option
|
||||
v-for="item in andDownList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div style="margin-left: 10px;">发车口</div>
|
||||
<el-select v-model="andDown" size="mini" style="width: 100px;margin-left: 5px;" disabled>
|
||||
<el-option
|
||||
v-for="item in andDownList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table
|
||||
:data="sequenceList"
|
||||
style="width: 100%;margin-top: 10px;"
|
||||
highlight-current-row
|
||||
:row-style="{ background: '#ff0' }"
|
||||
height="180"
|
||||
:default-sort="{prop: 'startTime', order: 'ascending'}"
|
||||
border
|
||||
>
|
||||
<el-table-column width="50" label="序号" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!--:style="{ background: scope.$index? '#f00':'#ff0' }" -->
|
||||
<div>{{ scope.$index }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="date" label="注意确认" />
|
||||
<el-table-column property="tripNumber" label="车次" />
|
||||
<el-table-column property="trackName" label="股道" />
|
||||
<el-table-column property="autoTrigger" label="自触">
|
||||
<template slot-scope="scope">
|
||||
<div style="width: 100%;height: 22px;" @contextmenu="popMenuShow(scope.row, '' ,$event)">{{ scope.row.autoTrigger? '√':'' }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="departure" label="类型">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.departure ? '发车':'接车' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getRouteStatus(scope.row.status) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column property="startTime" label="开始时间" />
|
||||
<el-table-column property="planTime" label="计划时间" />
|
||||
<el-table-column property="direction" label="方向" />
|
||||
<el-table-column property="routeCode" label="序列描述">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ getRouteName(scope.row.routeCode) }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="width: 100%;display: flex;align-items: center;margin: 5px 0;">
|
||||
<div
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
class="tab-box"
|
||||
:style="{background: selectCode1 === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode1 === item.code ? '#000': '#ccc'}"
|
||||
@click="selectStandCode1(item.code)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 49%;margin-top: 10px;">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<el-select v-model="unknow" size="mini" disabled>
|
||||
<el-option
|
||||
v-for="item in unknowList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div>调机-J101</div>
|
||||
<el-button size="mini" disabled>进路预览</el-button>
|
||||
<el-select v-model="unknow1" size="mini" disabled>
|
||||
<el-option
|
||||
v-for="item in unknowList1"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button size="mini" disabled>办理进路</el-button>
|
||||
<el-button size="mini" disabled>发送机车</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData1"
|
||||
style="width: 100%;margin-top: 10px;"
|
||||
highlight-current-row
|
||||
border
|
||||
height="180"
|
||||
>
|
||||
<el-table-column type="index" width="50" label="勾" />
|
||||
<el-table-column property="line" label="线路" />
|
||||
<el-table-column property="method" label="方法" />
|
||||
<el-table-column property="nums" label="辆数" />
|
||||
<el-table-column property="direction" label="方向" />
|
||||
<el-table-column property="leadWire" label="牵出线" />
|
||||
<el-table-column property="status" label="状态" />
|
||||
<el-table-column property="leadRoute" label="牵出进路" />
|
||||
<el-table-column property="pushRoute" label="推入进路" />
|
||||
<el-table-column property="note" label="记事" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<rec-dep ref="recDep" />
|
||||
<route-selection ref="routeSelection" />
|
||||
<pop-menu ref="popMenu" :menu="menu" style="background: #DFE3E6;" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import ArrowPic from '@/assets/datie/arrow.png';
|
||||
import PicT3 from '@/assets/datie/picT3.png';
|
||||
import ControlPanelPic from '@/assets/datie/controlPanel.png';
|
||||
import ControlPanel2Pic from '@/assets/datie/controlPanel2.png';
|
||||
import TrainPic from '@/assets/datie/train.png';
|
||||
import LinkPic from '@/assets/datie/link.png';
|
||||
import CameraPic from '@/assets/datie/camera.png';
|
||||
import RecDep from '@/jmapNew/theme/datie_02/menus/dialog/recDep'
|
||||
import RouteSelection from '@/jmapNew/theme/datie_02/menus/dialog/routeSelection1';
|
||||
import PopMenu from '@/components/PopMenu';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import { menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name: 'lineBoard',
|
||||
components: {
|
||||
RecDep,
|
||||
RouteSelection,
|
||||
PopMenu
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menu: [{label: '设置自触', handler: this.setTrigger, disabled: false},{label: '取消自触', handler: this.cancelTrigger, disabled: false}],
|
||||
dialogVisible: false,
|
||||
triggerParam: {},
|
||||
selectCode: '',
|
||||
selectCode1: '',
|
||||
readOnly: '',
|
||||
arrowPic: ArrowPic,
|
||||
picT3: PicT3,
|
||||
controlPanelPic: ControlPanelPic,
|
||||
trainPic: TrainPic,
|
||||
controlPanel2Pic: ControlPanel2Pic,
|
||||
linkPic: LinkPic,
|
||||
cameraPic: CameraPic,
|
||||
searchTrain: '',
|
||||
andDown: 'all',
|
||||
unknow: '',
|
||||
unknow1: '',
|
||||
tableData: [],
|
||||
tableData1: [],
|
||||
unknowList1: [{label: '全部机车', value: 'all'}],
|
||||
unknowList: [{label: 'J101-执行中', value: 'J101'}],
|
||||
andDownList: [{ label: '全部', value: 'all' }, { label: '上行', value: 'up' }, { label: '下行', value: 'down' }],
|
||||
sectionStatusList: [
|
||||
{label: '办理接车闭塞', value: 'RECEIVING_BLOCK'},
|
||||
{label: '准备接车', value: 'RECEIVING'},
|
||||
{label: '办理接车进路', value: 'RECEIVING_ROUTE'},
|
||||
{label: '列车到达(通过)报点', value: 'ARRIVE'},
|
||||
{label: '办理发车闭塞', value: 'DEPARTURE_BLOCK'},
|
||||
{label: '发车进路办理', value: 'DEPARTURE_ROUTE'},
|
||||
{label: '发车报点', value: 'DEPARTURE'},
|
||||
{label: '流程终止', value: 'FINISH'}
|
||||
],
|
||||
stationDataMap: {},
|
||||
infoList : []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'stationList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
'$store.state.socket.railCtcStatusMsg': function (val) {
|
||||
if (val && val.length) {
|
||||
val.forEach(item => {
|
||||
if (item) {
|
||||
this.stationDataMap[item.stationCode] = { trackView: item.trackView, routeSequence: item.routeSequence };
|
||||
}
|
||||
});
|
||||
this.infoList = this.stationDataMap[this.selectCode] ? this.stationDataMap[this.selectCode].trackView.lines: [];
|
||||
this.tableData = this.stationDataMap[this.selectCode1] ? this.stationDataMap[this.selectCode1].routeSequence.lines: [];
|
||||
this.readOnly = this.stationDataMap[this.selectCode1] ? this.stationDataMap[this.selectCode1].routeSequence.readOnly: false;
|
||||
};
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleClose() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
doShow() {
|
||||
this.dialogVisible = true;
|
||||
this.selectCode = this.stationList[0].code;
|
||||
this.selectCode1 = this.stationList[0].code;
|
||||
this.infoList = this.stationDataMap[this.selectCode] ? this.stationDataMap[this.selectCode].trackView.lines: [];
|
||||
this.tableData = this.stationDataMap[this.selectCode1] ? this.stationDataMap[this.selectCode1].routeSequence.lines: [];
|
||||
this.readOnly = this.stationDataMap[this.selectCode1] ? this.stationDataMap[this.selectCode1].routeSequence.readOnly: false;
|
||||
},
|
||||
selectStandCode(code) {
|
||||
this.selectCode = code;
|
||||
this.infoList = this.stationDataMap[this.selectCode].trackView.lines;
|
||||
},
|
||||
selectStandCode1(code) {
|
||||
this.selectCode1 = code;
|
||||
this.tableData = this.stationDataMap[this.selectCode1].routeSequence.lines;
|
||||
this.readOnly = this.stationDataMap[this.selectCode1].routeSequence.readOnly;
|
||||
},
|
||||
getRouteName(code){
|
||||
if(code){
|
||||
const route = this.$store.state.map.routeData[code];
|
||||
return route? route.name: ''
|
||||
} else { return '' }
|
||||
},
|
||||
handleBackground(flag, trigger) {
|
||||
if (flag){
|
||||
return '#29CA42';
|
||||
} else {
|
||||
return trigger ? '#FFBF2F' : '#CCCCCC';
|
||||
}
|
||||
},
|
||||
doShowRecDep(row, type) {
|
||||
this.$refs.recDep.doShow(row, type, this.selectCode);
|
||||
},
|
||||
doShowRoute(row, type) {
|
||||
this.$refs.routeSelection.doShow(row, type, this.selectCode);
|
||||
},
|
||||
popMenuShow(item,type, e){
|
||||
if (type === 'rec') {
|
||||
this.menu[0].disabled = item.receivingRouteAutoTrigger;
|
||||
this.menu[1].disabled = !item.receivingRouteAutoTrigger;
|
||||
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.receivingRouteCode }
|
||||
} else if (type === 'dep') {
|
||||
this.menu[0].disabled = item.departureRouteAutoTrigger;
|
||||
this.menu[1].disabled = !item.departureRouteAutoTrigger;
|
||||
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.departureRouteCode }
|
||||
} else {
|
||||
this.menu[0].disabled = item.autoTrigger;
|
||||
this.menu[1].disabled = !item.autoTrigger;
|
||||
this.triggerParam = { stationCode: this.selectCode1, tripNumber: item.tripNumber, routeCode: item.routeCode }
|
||||
}
|
||||
this.$refs.popMenu.resetShowPosition({x: e.x, y:e.y});
|
||||
},
|
||||
setTrigger() {
|
||||
const param = { ...this.triggerParam, trigger: true };
|
||||
|
||||
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
this.triggerParam = {};
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
this.$message.success('设置自动触发成功!')
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.triggerParam = {};
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancelTrigger() {
|
||||
const param = { ...this.triggerParam, trigger: false };
|
||||
console.log(menuOperate.CTC.autoTrigger, 'trigger');
|
||||
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
||||
this.triggerParam = {};
|
||||
if (valid) {
|
||||
this.$message.success('取消自动触发成功!')
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.triggerParam = {};
|
||||
this.$message.error('取消自动触发失败!')
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
import { mapGetters } from 'vuex';
|
||||
import ArrowPic from '@/assets/datie/arrow.png';
|
||||
import PicT3 from '@/assets/datie/picT3.png';
|
||||
import ControlPanelPic from '@/assets/datie/controlPanel.png';
|
||||
import ControlPanel2Pic from '@/assets/datie/controlPanel2.png';
|
||||
import RecDep from '@/jmapNew/theme/datie_02/menus/dialog/recDep';
|
||||
import RouteSelection from '@/jmapNew/theme/datie_02/menus/dialog/routeSelection1';
|
||||
import PopMenu from '@/components/PopMenu';
|
||||
import { menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import T3Pic from '@/assets/ctc_icon/t3.png';
|
||||
import TrainPic from '@/assets/ctc_icon/train.png';
|
||||
import PanelPic from '@/assets/ctc_icon/panel.png';
|
||||
import LinkPic from '@/assets/ctc_icon/link.png';
|
||||
import CameraPic from '@/assets/ctc_icon/camera.png';
|
||||
import UnknowPic from '@/assets/ctc_icon/unknow.png';
|
||||
export default {
|
||||
name: 'LineBoard',
|
||||
components: {
|
||||
RecDep,
|
||||
RouteSelection,
|
||||
PopMenu
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menu: [{label: '设置自触', handler: this.setTrigger, disabled: false}, {label: '取消自触', handler: this.cancelTrigger, disabled: false}],
|
||||
dialogVisible: true,
|
||||
triggerParam: {},
|
||||
selectCode: '',
|
||||
selectCode1: '',
|
||||
arrowPic: ArrowPic,
|
||||
picT3: PicT3,
|
||||
controlPanelPic: ControlPanelPic,
|
||||
controlPanel2Pic: ControlPanel2Pic,
|
||||
t3Pic: T3Pic,
|
||||
panelPic: PanelPic,
|
||||
trainPic: TrainPic,
|
||||
linkPic: LinkPic,
|
||||
cameraPic: CameraPic,
|
||||
unknowPic: UnknowPic,
|
||||
searchTrain: '',
|
||||
andDown: 'all',
|
||||
unknow: '',
|
||||
unknow1: '',
|
||||
tableData1: [],
|
||||
unknowList1: [{label: '全部机车', value: 'all'}],
|
||||
unknowList: [{label: 'J101-执行中', value: 'J101'}],
|
||||
andDownList: [{ label: '全部', value: 'all' }, { label: '上行', value: 'up' }, { label: '下行', value: 'down' }],
|
||||
sectionStatusList: [
|
||||
{label: '办理接车闭塞', value: 'RECEIVING_BLOCK'},
|
||||
{label: '准备接车', value: 'RECEIVING'},
|
||||
{label: '办理接车进路', value: 'RECEIVING_ROUTE'},
|
||||
{label: '列车到达(通过)报点', value: 'ARRIVE'},
|
||||
{label: '办理发车闭塞', value: 'DEPARTURE_BLOCK'},
|
||||
{label: '发车进路办理', value: 'DEPARTURE_ROUTE'},
|
||||
{label: '发车报点', value: 'DEPARTURE'},
|
||||
{label: '流程终止', value: 'FINISH'}
|
||||
],
|
||||
stationDataMap: {},
|
||||
sequenceMap: {},
|
||||
sequenceList: [],
|
||||
readOnlyMap: {},
|
||||
standTrackSectionMap: {},
|
||||
trackList: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'stationList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
'$store.state.socket.railCtcStatusMsg': function (val) {
|
||||
if (val && val.length) {
|
||||
val.forEach(item => {
|
||||
if (item && item.routeSequence && item.routeSequence.lines && item.routeSequence.lines.length) {
|
||||
item.routeSequence.lines.forEach(elem => {
|
||||
if (!this.sequenceMap[elem.id]) {
|
||||
this.sequenceMap[elem.id] = Object.assign(elem, { stationCode: item.stationCode, readOnly: item.readOnly });
|
||||
} else {
|
||||
this.sequenceMap[elem.id] = Object.assign(this.sequenceMap[elem.id], elem, { stationCode: item.stationCode, readOnly: item.readOnly });
|
||||
}
|
||||
});
|
||||
this.readOnlyMap[item.stationCode] = item.readOnly;
|
||||
}
|
||||
if (item && item.trackView && item.trackView.trackLineMap) {
|
||||
for (const key in item.trackView.trackLineMap) {
|
||||
if (this.standTrackSectionMap[key]) {
|
||||
this.standTrackSectionMap[key].lines = item.trackView.trackLineMap[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item && item.trackView && item.trackView.sectionOccupiedMap) {
|
||||
for (const key in item.trackView.sectionOccupiedMap) {
|
||||
if (this.standTrackSectionMap[key]) {
|
||||
this.standTrackSectionMap[key].occupied = item.trackView.sectionOccupiedMap[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
this.sequenceList = [];
|
||||
for (const key in this.sequenceMap) {
|
||||
if (this.sequenceMap[key].stationCode === this.selectCode1) {
|
||||
this.sequenceList.push(this.sequenceMap[key]);
|
||||
}
|
||||
}
|
||||
this.trackList = [];
|
||||
let oddNumber = true;
|
||||
for (const key in this.standTrackSectionMap) {
|
||||
if (this.standTrackSectionMap[key].belongStation === this.selectCode) {
|
||||
if (this.standTrackSectionMap[key].lines && this.standTrackSectionMap[key].lines.length) {
|
||||
this.standTrackSectionMap[key].lines.forEach((item, index) => {
|
||||
this.trackList.push(Object.assign({}, item, { trackName: this.standTrackSectionMap[key].trackName, occupied: this.standTrackSectionMap[key].occupied, oddNumber: oddNumber, showTrack: index === 0 }));
|
||||
});
|
||||
oddNumber = !oddNumber;
|
||||
} else {
|
||||
this.trackList.push({trackName: this.standTrackSectionMap[key].trackName, occupied: this.standTrackSectionMap[key].occupied, noData: true, oddNumber: oddNumber, showTrack: true});
|
||||
oddNumber = !oddNumber;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
'$store.state.map.mapDataLoadedCount': function (val) { // 地图数据加载完成
|
||||
this.sectionList.forEach(item => {
|
||||
if (item.standTrack) {
|
||||
this.standTrackSectionMap[item.code] = { trackName: item.name, occupied: false, belongStation:item.belongStation, lines: [] };
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
methods: {
|
||||
handleClose() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
doShow() {
|
||||
this.dialogVisible = true;
|
||||
if (this.stationList[0]) {
|
||||
this.selectStandCode(this.stationList[0].code);
|
||||
this.selectStandCode1(this.stationList[0].code);
|
||||
}
|
||||
},
|
||||
selectStandCode(code) {
|
||||
this.selectCode = code;
|
||||
this.trackList = [];
|
||||
for (const key in this.standTrackSectionMap) {
|
||||
if (this.standTrackSectionMap[key].belongStation === this.selectCode) {
|
||||
if (this.standTrackSectionMap[key].lines && this.standTrackSectionMap[key].lines.length) {
|
||||
this.standTrackSectionMap[key].lines.forEach((item, index) => {
|
||||
if (!index) {
|
||||
this.trackList.push(Object.assign({}, item, { sectionName: this.standTrackSectionMap[key].sectionName, occupied: this.standTrackSectionMap[key].occupied }));
|
||||
} else {
|
||||
this.trackList.push(Object.assign({}, item));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.trackList.push({sectionName: this.standTrackSectionMap[key].sectionName, occupied: this.standTrackSectionMap[key].occupied});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
getRouteStatus(status) {
|
||||
if (status === '2') {
|
||||
return '触发完成';
|
||||
} else if (status === '1') {
|
||||
return '正在触发';
|
||||
} else {
|
||||
return '等待中';
|
||||
}
|
||||
},
|
||||
selectStandCode1(code) {
|
||||
this.selectCode1 = code;
|
||||
this.sequenceList = [];
|
||||
for (const key in this.sequenceMap) {
|
||||
if (this.sequenceMap[key].stationCode === this.selectCode1) {
|
||||
this.sequenceList.push(this.sequenceMap[key]);
|
||||
}
|
||||
}
|
||||
},
|
||||
getRouteName(code) {
|
||||
if (code) {
|
||||
const route = this.$store.state.map.routeData[code];
|
||||
return route ? route.name : '';
|
||||
} else { return ''; }
|
||||
},
|
||||
handleBackground(flag, trigger) {
|
||||
if (flag) {
|
||||
return '#29CA42';
|
||||
} else {
|
||||
return trigger ? '#FFBF2F' : '#CCCCCC';
|
||||
}
|
||||
},
|
||||
doShowRecDep(row, type) {
|
||||
this.$refs.recDep.doShow(row, type, this.selectCode);
|
||||
},
|
||||
doShowRoute(row, type) {
|
||||
this.$refs.routeSelection.doShow(row, type, this.selectCode);
|
||||
},
|
||||
popMenuShow(item, type, e) {
|
||||
if (type === 'rec') {
|
||||
this.menu[0].disabled = item.receivingRouteAutoTrigger;
|
||||
this.menu[1].disabled = !item.receivingRouteAutoTrigger;
|
||||
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.receivingRouteCode };
|
||||
} else if (type === 'dep') {
|
||||
this.menu[0].disabled = item.departureRouteAutoTrigger;
|
||||
this.menu[1].disabled = !item.departureRouteAutoTrigger;
|
||||
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.departureRouteCode };
|
||||
} else {
|
||||
this.menu[0].disabled = item.autoTrigger;
|
||||
this.menu[1].disabled = !item.autoTrigger;
|
||||
this.triggerParam = { stationCode: this.selectCode1, tripNumber: item.tripNumber, routeCode: item.routeCode };
|
||||
}
|
||||
this.$refs.popMenu.resetShowPosition({x: e.x, y:e.y});
|
||||
},
|
||||
setTrigger() {
|
||||
const param = { ...this.triggerParam, trigger: true };
|
||||
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
this.triggerParam = {};
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
this.$message.success('设置自动触发成功!');
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.triggerParam = {};
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancelTrigger() {
|
||||
const param = { ...this.triggerParam, trigger: false };
|
||||
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
||||
this.triggerParam = {};
|
||||
if (valid) {
|
||||
this.$message.success('取消自动触发成功!');
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.triggerParam = {};
|
||||
this.$message.error('取消自动触发失败!');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@ -437,4 +584,27 @@
|
||||
.pop-background {
|
||||
background: #DFE3E6;
|
||||
}
|
||||
.img-button{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
background: #EBEBEB;
|
||||
border: 2px inset #fff;
|
||||
border-radius: 5px;
|
||||
line-height: 27px;
|
||||
}
|
||||
.img-button:hover{
|
||||
border: 2px outset #fff;
|
||||
}
|
||||
.img-button:active{
|
||||
border: 2px outset #fff;
|
||||
}
|
||||
.button-box{
|
||||
padding: 3px;
|
||||
background: #EBEBEB;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 5px;
|
||||
margin: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="isAllShow&&project != 'bjd'" class="display_top_draft" :style="allStyle">
|
||||
<div v-if="isAllShow&&project != 'bjd'&& !isCtc" class="display_top_draft" :style="allStyle">
|
||||
<div class="btn_hover" @click="menuClick">菜单</div>
|
||||
<el-button-group ref="button_group_box" class="button_group_box" :style="`margin-left:-${btnWidth}px`">
|
||||
<!-- 地图错误判断 -->
|
||||
@ -143,7 +143,10 @@ export default {
|
||||
},
|
||||
isLocal() { // 是否为本地项目
|
||||
return process.env.VUE_APP_PRO === 'local';
|
||||
}
|
||||
},
|
||||
isCtc() {
|
||||
return this.$route.query.ctc
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.group = this.$route.query.group;
|
||||
|
@ -183,6 +183,10 @@ export default {
|
||||
this.textStatusHeight = textStatus.offsetHeight || 0;
|
||||
textStatus.style.top = this.offset - 15 + 'px';
|
||||
}
|
||||
if (this.$route.query.ctc) {
|
||||
this.offset = 65;
|
||||
this.offsetBottom = 2;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 缩放设置
|
||||
|
@ -23,7 +23,7 @@
|
||||
@runPlanLoadShow="runPlanLoadShow"
|
||||
/>
|
||||
|
||||
<div class="display-draft" :class="{'haerbin_btn_box': $route.query.lineCode == '07'||$route.query.lineCode == '14'}" :style="{bottom: offsetBottom + 'px'}">
|
||||
<div class="display-draft" :class="{'haerbin_btn_box': $route.query.lineCode == '07'||$route.query.lineCode == '14'}" :style="{bottom: offsetBottom + 'px', zIndex: zIndex}">
|
||||
<el-button-group class="button-group-box">
|
||||
<template v-if="!dataError&&project != 'bjd'">
|
||||
<template v-if="isScriptRun">
|
||||
@ -36,7 +36,7 @@
|
||||
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
|
||||
</template>
|
||||
</template>
|
||||
<el-button v-if="project !='bjd'" type="primary" size="small" @click="back">{{ projectDevice?'退出':$t('display.demon.back') }}</el-button>
|
||||
<el-button v-if="project !='bjd'" type="primary" size="small" @click="back">{{ projectDevice || isCtc?'退出':$t('display.demon.back') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
|
||||
@ -155,6 +155,12 @@ export default {
|
||||
isDisable() {
|
||||
return this.$store.state.training.started;
|
||||
},
|
||||
isCtc() {
|
||||
return !!this.$route.query.ctc
|
||||
},
|
||||
zIndex() {
|
||||
return this.$route.query.ctc ? 11:0
|
||||
},
|
||||
project() {
|
||||
return getSessionStorage('project');
|
||||
},
|
||||
@ -399,7 +405,7 @@ export default {
|
||||
// || this.project === 'bjd'
|
||||
|
||||
} else {
|
||||
if (this.project === 'bjd') {
|
||||
if (this.project === 'bjd' || this.isCtc) {
|
||||
window.close();
|
||||
} else {
|
||||
this.$store.dispatch('map/setShowCentralizedStationCode', '');
|
||||
|
@ -12,17 +12,17 @@
|
||||
</el-select>
|
||||
<template v-if="!dataError">
|
||||
<el-button-group v-if="project !== 'bjd'">
|
||||
<el-button v-if="$route.query.lineCode === '16'" size="small" @click="showLineBoard">占线板</el-button>
|
||||
<el-button v-if="$route.query.lineCode === '16'" size="small" @click="goCtc">CTC</el-button>
|
||||
<el-button v-if="isLocalStation && $route.query.lineCode!='08' && $route.query.lineCode!='16'" size="small" @click="goIbp">IBP盘</el-button>
|
||||
<el-button v-if="isScheduling && isDepot" size="small" type="primary" @click="runPlanEditShow">运行图编辑</el-button>
|
||||
<!-- 加载剧本 -->
|
||||
<el-button v-if="isDemon && !isScheduling && !isContest && !isDepoltSim && $route.query.lineCode!='16'" size="small" :disabled="viewDisabled" type="success" @click="viewRunQuest">{{ $t('display.schema.loadScript') }}</el-button>
|
||||
<!-- 运行图加载 -->
|
||||
<!-- notScript && -->
|
||||
<el-button v-if="running" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('display.schema.previewRunDiagram') }}</el-button>
|
||||
<!-- notScript && -->
|
||||
<el-button v-if="!running && $route.query.lineCode!='16'" size="small" type="warning" @click="loadRunPlan">{{ $t('display.schema.loadRunDiagram') }}</el-button>
|
||||
<el-button v-if="$route.query.lineCode === '16'&&!isCtc" size="small" @click="goCtc">CTC</el-button>
|
||||
<el-button v-if="$route.query.lineCode === '16'&&!isCtc" size="small" @click="goRpManage">管理终端</el-button>
|
||||
<el-button v-if="isLocalStation && $route.query.lineCode!='08' && $route.query.lineCode!='16'" size="small" @click="goIbp">IBP盘</el-button>
|
||||
<el-button v-if="isScheduling && isDepot" size="small" type="primary" @click="runPlanEditShow">运行图编辑</el-button>
|
||||
<!-- 加载剧本 -->
|
||||
<el-button v-if="isDemon && !isScheduling && !isContest && !isDepoltSim && $route.query.lineCode!='16'" size="small" :disabled="viewDisabled" type="success" @click="viewRunQuest">{{ $t('display.schema.loadScript') }}</el-button>
|
||||
<!-- 运行图加载 -->
|
||||
<!-- notScript && -->
|
||||
<el-button v-if="running" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('display.schema.previewRunDiagram') }}</el-button>
|
||||
<!-- notScript && -->
|
||||
<el-button v-if="!running && $route.query.lineCode!='16'" size="small" type="warning" @click="loadRunPlan">{{ $t('display.schema.loadRunDiagram') }}</el-button>
|
||||
</el-button-group>
|
||||
<el-button v-if="!isScheduling && project !== 'bjd'" size="small" :type="faultMode ? '':'primary' " @click="changeOperateMode()">{{ faultMode?'切换到普通模式[Tab]':'切换到故障模式[Tab]' }}</el-button>
|
||||
<el-button v-if="running&&project == 'bjd'" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('display.schema.previewRunDiagram') }}</el-button>
|
||||
@ -35,7 +35,7 @@
|
||||
<run-plan-view ref="runPlanView" :group="group" />
|
||||
<!-- 加载剧本列表弹窗 -->
|
||||
<add-quest ref="addQuest" @selectQuest="selectQuest" />
|
||||
<line-board ref="lineBoard" />
|
||||
<line-board ref="lineBoard" />
|
||||
<!-- <run-plan-edit v-if="isScheduling && isDepot" ref="runPlanEdit" /> -->
|
||||
</div>
|
||||
</template>
|
||||
@ -66,7 +66,7 @@ export default {
|
||||
AddQuest,
|
||||
// RunPlanEdit,
|
||||
SelectStation,
|
||||
LineBoard
|
||||
LineBoard
|
||||
},
|
||||
props: {
|
||||
offset: {
|
||||
@ -99,9 +99,9 @@ export default {
|
||||
notScript() {
|
||||
return this.$route.params.mode !== 'script';
|
||||
},
|
||||
isCtc() {
|
||||
return !!this.$route.query.ctc;
|
||||
},
|
||||
isCtc() {
|
||||
return !!this.$route.query.ctc;
|
||||
},
|
||||
isScript() {
|
||||
return this.$route.params.mode === 'script';
|
||||
},
|
||||
@ -196,6 +196,9 @@ export default {
|
||||
this.changeOperateMode();
|
||||
}
|
||||
});
|
||||
EventBus.$on('showLineBoard', () => {
|
||||
this.showLineBoard();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
loadRunData() {
|
||||
@ -213,27 +216,43 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
showLineBoard() {
|
||||
this.$refs.lineBoard.doShow();
|
||||
},
|
||||
goCtc() {
|
||||
const routeData = this.$router.resolve({
|
||||
path:'/displayNew/demon',
|
||||
showLineBoard() {
|
||||
this.$refs.lineBoard.doShow();
|
||||
},
|
||||
goCtc() {
|
||||
const routeData = this.$router.resolve({
|
||||
path:'/displayNew/demon',
|
||||
query:{
|
||||
lineCode:this.$route.query.lineCode,
|
||||
group: this.$route.query.group,
|
||||
prdType: this.$route.query.prdType,
|
||||
mapId:this.$route.query.mapId,
|
||||
project: this.project,
|
||||
newApi: this.$route.query.newApi,
|
||||
ctc: true,
|
||||
try: this.$route.query.try,
|
||||
token:getToken(),
|
||||
noPreLogout: true
|
||||
}
|
||||
});
|
||||
window.open(routeData.href, '_blank');
|
||||
},
|
||||
goRpManage() {
|
||||
const routeData = this.$router.resolve({
|
||||
path:'/bigTrainRunplanManage',
|
||||
query:{
|
||||
lineCode:this.$route.query.lineCode,
|
||||
group: this.$route.query.group,
|
||||
prdType: this.$route.query.prdType,
|
||||
mapId:this.$route.query.mapId,
|
||||
project: this.project,
|
||||
newApi: this.$route.query.newApi,
|
||||
ctc: true,
|
||||
try: this.$route.query.try,
|
||||
token:getToken(),
|
||||
prdType: this.$route.query.prdType,
|
||||
lineCode:this.$route.query.lineCode,
|
||||
// stationCode:this.$store.state.training.roleDeviceCode,
|
||||
// token:getToken(),
|
||||
noPreLogout: true
|
||||
}
|
||||
});
|
||||
window.open(routeData.href, '_blank');
|
||||
},
|
||||
},
|
||||
changeOperateMode() {
|
||||
this.faultMode = !this.faultMode;
|
||||
let mode = OperateMode.NORMAL;
|
||||
|
@ -130,7 +130,6 @@ export default {
|
||||
var device = null;
|
||||
const point = { x: em.clientX, y: em.clientY };
|
||||
const lineCode = this.$store.getters['map/lineCode'];
|
||||
|
||||
if (em.subType === 'TrainWindow') {
|
||||
if (lineCode != '06') {
|
||||
device = { _type: deviceType.TrainWindow, code: em.deviceCode, _event: MouseEvent.Right };
|
||||
@ -182,7 +181,6 @@ export default {
|
||||
} else if (em.deviceCode && !this.isScreen) {
|
||||
device = this.getDeviceByEm(em);
|
||||
}
|
||||
|
||||
if (device) {
|
||||
device = this.getSelectedByLineCode(device);
|
||||
this.selected = { ...device, _event: MouseEvent.Right};
|
||||
@ -197,10 +195,14 @@ export default {
|
||||
menu = getDeviceMenuByDeviceType(device._type);
|
||||
this.$store.dispatch('menuOperation/setPopMenu', { position: point, menu: menu });
|
||||
}
|
||||
}
|
||||
} else if (this.$route.query.ctc) {
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: this.selected, subType: em.subType});
|
||||
menu = getDeviceMenuByDeviceType(device._type);
|
||||
this.$store.dispatch('menuOperation/setPopMenu', { position: point, menu: menu });
|
||||
}
|
||||
} else {
|
||||
menu = getDeviceMenuByDeviceType('Cancel');
|
||||
this.$store.dispatch('menuOperation/setPopMenu', { position: point, menu: menu });
|
||||
this.$store.dispatch('menuOperation/setPopMenu', { position: point, menu: menu });
|
||||
}
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
|
@ -120,6 +120,9 @@ export default {
|
||||
const header = { group: this.$route.query.group || '', 'X-Token': getToken() };
|
||||
creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
|
||||
creatSubscribe(getTopic('STATE', this.$route.query.group), header);
|
||||
if (this.$route.query.ctc == 'true') {
|
||||
creatSubscribe(getTopic('CTC', this.$route.query.group), header);
|
||||
}
|
||||
await this.$store.dispatch('training/setHasSubscribed');
|
||||
},
|
||||
async subscribeNew() {
|
||||
@ -137,7 +140,10 @@ export default {
|
||||
},
|
||||
clearSubscribe() {
|
||||
clearSubscribe(`${displayTopic}\/${this.groupModel}`);
|
||||
clearSubscribe(getTopic('STATE', this.$route.query.group));
|
||||
clearSubscribe(getTopic('STATE', this.groupModel));
|
||||
if (this.$route.query.ctc == 'true') {
|
||||
clearSubscribe(getTopic('CTC', this.groupModel));
|
||||
}
|
||||
},
|
||||
setCenter(code) {
|
||||
this.$refs.mapCommon && this.$refs.mapCommon.setCenter(code);
|
||||
|
@ -49,6 +49,10 @@
|
||||
title: 'code',
|
||||
prop: 'code'
|
||||
},
|
||||
{
|
||||
title: '名称',
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: '关联车站',
|
||||
prop: 'stationCode',
|
||||
|
@ -4,6 +4,9 @@
|
||||
<el-form-item v-if="isModify" label="编号:" prop="code">
|
||||
<el-input v-model="addModel.code" style="width: 220px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="名称:" prop="name">
|
||||
<el-input v-model="addModel.name" style="width: 220px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="关联车站:" prop="stationCode">
|
||||
<el-select v-model="addModel.stationCode" clearable filterable>
|
||||
<el-option
|
||||
@ -145,6 +148,7 @@
|
||||
directionLabelList: ConstConfig.ConstSelect.directionLabelList,
|
||||
addModel:{
|
||||
id: '',
|
||||
name:'',
|
||||
stationCode: '',
|
||||
labelEnum:'',
|
||||
sectionList: [],
|
||||
@ -155,6 +159,9 @@
|
||||
relativeLabelEnum: ''
|
||||
},
|
||||
rules: {
|
||||
'name':[
|
||||
{ required: true, message: '请输入名称', trigger: 'blur' },
|
||||
],
|
||||
'stationCode':[
|
||||
{ required: true, message: '请选择关联车站', trigger: 'blur' },
|
||||
{ required: true, message: '请选择关联车站', trigger: 'change' },
|
||||
@ -260,6 +267,7 @@
|
||||
this.$refs.form.resetFields();
|
||||
this.addModel = {
|
||||
id: '',
|
||||
name:'',
|
||||
stationCode: '',
|
||||
labelEnum:'',
|
||||
sectionList: [],
|
||||
|
@ -47,7 +47,8 @@ export default {
|
||||
{label: '上饶沙盘', value: 'SR_SANDBOX'},
|
||||
{label: '江西工贸', value: 'JXGM'},
|
||||
{label: '扬州工业', value: 'RICHOR_YGY'},
|
||||
{label: '苏安院', value: 'SAY'}
|
||||
{label: '苏安院', value: 'SAY'},
|
||||
{label: '众合-陕铁院', value: 'UNITTEC_STY'}
|
||||
],
|
||||
projectMap: {
|
||||
designxty: 'XTY',
|
||||
@ -58,7 +59,8 @@ export default {
|
||||
designsrsandbox: 'SR_SANDBOX',
|
||||
designjxgm: 'JXGM',
|
||||
designygy: 'RICHOR_YGY',
|
||||
designsay: 'SAY'
|
||||
designsay: 'SAY',
|
||||
designunittecsty: 'UNITTEC_STY'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
|
@ -41,7 +41,7 @@ export default {
|
||||
},
|
||||
goRoutePath(data) {
|
||||
const againEnter = getSessionStorage('againEnter') || null;
|
||||
if (!againEnter) {
|
||||
if (!againEnter && !this.$route.query.thirdJump) {
|
||||
const project = getSessionStorage('project');
|
||||
const userId = this.$store.state.user.id;
|
||||
const path = localStore.get('trainingPlatformRoute' + userId + project);
|
||||
|