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: '非常站控',
|
text: '非常站控',
|
||||||
lightColor: '#ff0',
|
lightColor: '#ff0',
|
||||||
defaultColor: '#ccc',
|
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,6 +22,28 @@ export default class SignalButton extends Group {
|
|||||||
create() {
|
create() {
|
||||||
const model = this.model;
|
const model = this.model;
|
||||||
const fillColor = this.getTypeColor();
|
const fillColor = this.getTypeColor();
|
||||||
|
const queryList = window.location.search.substring(1).split('&');
|
||||||
|
const queryCtc = queryList.find(item => {
|
||||||
|
return item.includes('ctc');
|
||||||
|
});
|
||||||
|
const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST'];
|
||||||
|
if (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({
|
this.rectButton = new Rect({
|
||||||
zlevel: this.zlevel,
|
zlevel: this.zlevel,
|
||||||
z: this.z,
|
z: this.z,
|
||||||
@ -39,6 +61,7 @@ export default class SignalButton extends Group {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.add(this.rectButton);
|
this.add(this.rectButton);
|
||||||
|
}
|
||||||
this.leftLine = new Line({
|
this.leftLine = new Line({
|
||||||
zlevel: this.zlevel,
|
zlevel: this.zlevel,
|
||||||
z: this.z + 1,
|
z: this.z + 1,
|
||||||
@ -200,9 +223,11 @@ export default class SignalButton extends Group {
|
|||||||
recover() {
|
recover() {
|
||||||
this.stopAnimation();
|
this.stopAnimation();
|
||||||
this.rectButton && this.rectButton.setStyle({ fill:this.getTypeColor() });
|
this.rectButton && this.rectButton.setStyle({ fill:this.getTypeColor() });
|
||||||
|
this.arcShape && this.arcShape.setStyle({ fill:this.getTypeColor() });
|
||||||
this.rightLine && this.rightLine.hide();
|
this.rightLine && this.rightLine.hide();
|
||||||
this.leftLine && this.leftLine.hide();
|
this.leftLine && this.leftLine.hide();
|
||||||
this.rectButton && this.rectButton.show();
|
this.rectButton && this.rectButton.show();
|
||||||
|
this.arcShape && this.arcShape.show();
|
||||||
this.buttonText && this.buttonText.show();
|
this.buttonText && this.buttonText.show();
|
||||||
this.leftBoard && this.leftBoard.hide();
|
this.leftBoard && this.leftBoard.hide();
|
||||||
this.rightBoard && this.rightBoard.hide();
|
this.rightBoard && this.rightBoard.hide();
|
||||||
@ -242,6 +267,7 @@ export default class SignalButton extends Group {
|
|||||||
this.rectButton && this.rectButton.hide();
|
this.rectButton && this.rectButton.hide();
|
||||||
this.leftLine && this.leftLine.hide();
|
this.leftLine && this.leftLine.hide();
|
||||||
this.rightLine && this.rightLine.hide();
|
this.rightLine && this.rightLine.hide();
|
||||||
|
this.arcShape && this.arcShape.hide();
|
||||||
} else {
|
} else {
|
||||||
if (model.hasSelected) {
|
if (model.hasSelected) {
|
||||||
this.startAnimate();
|
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 EMouse from './EMouse';
|
||||||
import EMouseDraw from './EMouseDraw';
|
import EMouseDraw from './EMouseDraw';
|
||||||
import ESingleControl from './ESingleControl';
|
import ESingleControl from './ESingleControl';
|
||||||
|
import EThreeLamp from './EThreeLamp';
|
||||||
import EArrow from './EArrow';
|
import EArrow from './EArrow';
|
||||||
import { arrow } from '../utils/ShapePoints';
|
import { arrow } from '../utils/ShapePoints';
|
||||||
import Rect from 'zrender/src/graphic/shape/Rect';
|
import Rect from 'zrender/src/graphic/shape/Rect';
|
||||||
@ -148,7 +149,13 @@ export default class Station extends Group {
|
|||||||
createControlMode() {
|
createControlMode() {
|
||||||
const model = this.model;
|
const model = this.model;
|
||||||
if (!this.style.Station.StationControl.disPlayNone) {
|
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 控制模式
|
if (model.visible && model.createControlMode) { // model.createControlMode 控制模式
|
||||||
this.createControlModeAU();
|
this.createControlModeAU();
|
||||||
this.createControlModeCC();
|
this.createControlModeCC();
|
||||||
@ -168,7 +175,122 @@ export default class Station extends Group {
|
|||||||
}
|
}
|
||||||
this.setState(model);
|
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() { // 西安二
|
createControlModeAU() { // 西安二
|
||||||
const model = this.model;
|
const model = this.model;
|
||||||
this.stationControlAU = new Text({
|
this.stationControlAU = new Text({
|
||||||
|
@ -519,20 +519,104 @@ export const menuOperate = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
CTC: {
|
CTC: {
|
||||||
// 接预
|
// 完成接预
|
||||||
receivingNotice: {
|
receivingNotice: {
|
||||||
operation: OperationEvent.CTCCommand.receivingNotice.menu.operation,
|
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: {
|
departureNotice: {
|
||||||
operation: OperationEvent.CTCCommand.departureNotice.menu.operation,
|
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: {
|
autoTrigger: {
|
||||||
operation: OperationEvent.CTCCommand.autoTrigger.menu.operation,
|
operation: OperationEvent.CTCCommand.autoTrigger.menu.operation,
|
||||||
cmdType: CMD.CTC.CTC_AUTO_TRIGGER
|
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) {
|
if (operate.operateNext) {
|
||||||
this.operation = operate.operateNext;
|
this.operation = operate.operateNext;
|
||||||
}
|
}
|
||||||
console.log(this.operate, '--------------0000operate');
|
|
||||||
this.dialogShow = true;
|
this.dialogShow = true;
|
||||||
this.checkHasInput = false;
|
this.checkHasInput = false;
|
||||||
this.$nextTick(function () {
|
this.$nextTick(function () {
|
||||||
@ -158,7 +157,6 @@ export default {
|
|||||||
this.encryptionPassword = this.passwordCheck;
|
this.encryptionPassword = this.passwordCheck;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
cancel() {
|
cancel() {
|
||||||
const operate = {
|
const operate = {
|
||||||
send: false,
|
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 () {
|
window.document.oncontextmenu = function () {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
console.log(this.mapData, '---------------');
|
||||||
if (this.mapData.skinVO) {
|
if (this.mapData && this.mapData.skinVO) {
|
||||||
const parser = parserFactory(ParserType.Graph.value);
|
const parser = parserFactory(ParserType.Graph.value);
|
||||||
this.mapDevice = parser.parser(this.mapData, this.mapData.skinVO.code, this.map.getShowConfig());
|
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>
|
@ -24,9 +24,13 @@
|
|||||||
</el-form>
|
</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;"><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 === '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 === '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;" disabled>取消接预</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>
|
||||||
<el-button @click="doClose" style="height: 50px;width: 50px;position: relative;left: 370px;">关闭</el-button>
|
<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>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -34,8 +38,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||||
import { getUploadFile } from '@/api/pdf';
|
|
||||||
import { DrawingType } from '@/scripts/ConstDic';
|
|
||||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -74,17 +76,6 @@ export default {
|
|||||||
]),
|
]),
|
||||||
show() {
|
show() {
|
||||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
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: {
|
methods: {
|
||||||
@ -105,8 +96,6 @@ export default {
|
|||||||
},
|
},
|
||||||
commit(type) {
|
commit(type) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
//menuOperate.CTC.receivingNotice
|
|
||||||
|
|
||||||
commitOperate(type, {stationCode: this.stationCode, tripNumber: this.tripNumber}, 3).then(({valid, operate})=>{
|
commitOperate(type, {stationCode: this.stationCode, tripNumber: this.tripNumber}, 3).then(({valid, operate})=>{
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
@ -116,7 +105,8 @@ export default {
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.doClose();
|
this.doClose();
|
||||||
console.error(error);
|
console.error(error);
|
||||||
this.$refs.noticeInfo.doShow();
|
// this.$refs.noticeInfo.doShow();
|
||||||
|
this.$message.error('操作失败!');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -124,7 +114,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.chengdou-03__systerm .el-dialog .base-label {
|
.chengdou-03__systerm .el-dialog .base-label {
|
||||||
background: rgba(0, 0, 0, x);
|
/*background: rgba(0, 0, 0, x);*/
|
||||||
position: relative;
|
position: relative;
|
||||||
left: -5px;
|
left: -5px;
|
||||||
top: -18px;
|
top: -18px;
|
||||||
|
@ -53,12 +53,12 @@
|
|||||||
<!--</el-row>-->
|
<!--</el-row>-->
|
||||||
<el-row style="margin-top: 10px;margin-bottom: 10px;">
|
<el-row style="margin-top: 10px;margin-bottom: 10px;">
|
||||||
<el-col :span="21" :offset="2">
|
<el-col :span="21" :offset="2">
|
||||||
<el-radio disabled v-model="radio" label="禁用">分段办理</el-radio>
|
<el-radio v-model="radio" disabled label="禁用">分段办理</el-radio>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div style="display: flex;justify-content: space-between;margin-bottom: 10px;">
|
<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 v-if="type === 'rec'" size="mini" :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 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>进路单锁</el-button>
|
<el-button size="mini" disabled>进路单锁</el-button>
|
||||||
<el-button size="mini" :disabled="cancelRouteDisabled" @click="commit">取消进路</el-button>
|
<el-button size="mini" :disabled="cancelRouteDisabled" @click="commit">取消进路</el-button>
|
||||||
@ -125,12 +125,13 @@ export default {
|
|||||||
return '进路办理';
|
return '进路办理';
|
||||||
},
|
},
|
||||||
cancelRouteDisabled() {
|
cancelRouteDisabled() {
|
||||||
return !!!this.route.lock || (this.type === 'rec' && !this.selected.receivingNotice) || (this.type === 'dep' && !this.selected.departureNotice)
|
return !this.route.lock || (this.type === 'rec' && !this.selected.receivingNotice) || (this.type === 'dep' && !this.selected.departureNotice);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {},
|
watch: {
|
||||||
created() {
|
'$store.state.map.mapDataLoadedCount': function (val) { // 地图数据加载完成
|
||||||
this.mapData = JSON.parse(JSON.stringify(this.$store.state.map.map));
|
this.mapData = JSON.parse(JSON.stringify(this.$store.state.map.map));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getRouteNames() {
|
getRouteNames() {
|
||||||
@ -230,7 +231,7 @@ export default {
|
|||||||
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 swch = deepAssign({}, this.$refs.map.getDeviceByCode(el.switchCode));
|
||||||
const sectionA = this.$refs.map.getDeviceByCode(swch.sectionACode);
|
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);
|
const sectionC = this.$refs.map.getDeviceByCode(swch.sectionCCode);
|
||||||
// normalPosition: el.normal, reversePosition: !el.normal
|
// normalPosition: el.normal, reversePosition: !el.normal
|
||||||
containSwitchList.push({code: el.switchCode, routeLock: true, pos:el.pos });
|
containSwitchList.push({code: el.switchCode, routeLock: true, pos:el.pos });
|
||||||
@ -275,7 +276,6 @@ export default {
|
|||||||
this.doClose();
|
this.doClose();
|
||||||
}
|
}
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
console.error(e);
|
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.doClose();
|
this.doClose();
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
|
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() {
|
handleTripNumber() {
|
||||||
|
this.judgeTripNumber();
|
||||||
|
},
|
||||||
|
judgeTripNumber() {
|
||||||
const figuresOfServiceMinNumber = 2;
|
const figuresOfServiceMinNumber = 2;
|
||||||
const figuresOfServiceMaxNumber = 6;
|
const figuresOfServiceMaxNumber = 6;
|
||||||
// this.$store.state.map.mapConfig.figuresOfServiceNumber;
|
// this.$store.state.map.mapConfig.figuresOfServiceNumber;
|
||||||
const tripNumber = this.tripNumber;
|
const tripNumber = this.tripNumber;
|
||||||
const judge = /^[a-zA-Z0-9]*[\d]$/.test(this.tripNumber);
|
const judge = /^[a-zA-Z0-9]*[\d]$/.test(this.tripNumber);
|
||||||
|
let result = false;
|
||||||
if (judge) {
|
if (judge) {
|
||||||
if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) {
|
if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) {
|
||||||
this.messageTip1 = '车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位';
|
this.messageTip1 = '车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位';
|
||||||
|
result = false;
|
||||||
} else {
|
} else {
|
||||||
// this.tripNumber = tripNumber;
|
|
||||||
this.messageTip1 = '';
|
this.messageTip1 = '';
|
||||||
|
result = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.tripNumber = '';
|
this.tripNumber = '';
|
||||||
this.messageTip1 = '请输入车次号(最后一位数字)';
|
this.messageTip1 = '请输入车次号(最后一位数字)';
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
},
|
},
|
||||||
commit() {
|
commit() {
|
||||||
const figuresOfServiceMinNumber = 2;
|
const result = this.judgeTripNumber();
|
||||||
const figuresOfServiceMaxNumber = 6;
|
|
||||||
let result = false;
|
|
||||||
const tripNumber = this.tripNumber;
|
|
||||||
if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) {
|
|
||||||
result = false;
|
|
||||||
} else {
|
|
||||||
result = true;
|
|
||||||
}
|
|
||||||
if (this.tripNumber && result) {
|
if (this.tripNumber && result) {
|
||||||
const params = {
|
const params = {
|
||||||
tripNumber: this.tripNumber
|
tripNumber: this.tripNumber
|
||||||
@ -114,15 +112,7 @@ export default {
|
|||||||
this.doClose();
|
this.doClose();
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
|
||||||
if (this.tripNumber) {
|
|
||||||
this.messageTip1 = '该车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位';
|
|
||||||
} else {
|
|
||||||
this.messageTip1 = '请输入车次号(最后一位数字)';
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
const operate = {
|
const operate = {
|
||||||
|
@ -1,45 +1,39 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="menus" :style="{width: width + 'px'}">
|
<div class="menus" :style="{width: width + 'px'}">
|
||||||
<menu-bar v-if="isCtc" ref="menuBar" :selected="selected" />
|
<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>
|
||||||
<div v-if="isCtc" style="display: flex;position: absolute; top: 6px;z-index: 13;left: 50px;">
|
<menu-bar v-if="isCtc" ref="menuBar" :date-strin="dateString1" :selected="selected" />
|
||||||
<img :src="ctcBarIcon1" class="img-box" />
|
<div v-if="isCtc" style="position: absolute; top: 64px;z-index: 10;background: #F0F0F0;padding: 2px;height: 65px;width: 100%;">
|
||||||
<img :src="ctcBarIcon2" class="img-box" />
|
<div style="display: flex;">
|
||||||
<img :src="ctcBarIcon3" class="img-box" />
|
<img :src="ctcBarIcon1" class="img-box">
|
||||||
<img :src="ctcBarIcon4" class="img-box" />
|
<img :src="ctcBarIcon2" class="img-box">
|
||||||
<img :src="ctcBarIcon5" class="img-box" />
|
<img :src="ctcBarIcon3" class="img-box">
|
||||||
<img :src="ctcBarIcon6" class="img-box" />
|
<img :src="ctcBarIcon4" class="img-box">
|
||||||
<img :src="ctcBarIcon7" class="img-box" />
|
<img :src="ctcBarIcon5" class="img-box">
|
||||||
<img :src="ctcBarIcon8" class="img-box" />
|
<img :src="ctcBarIcon6" class="img-box">
|
||||||
<img :src="ctcBarIcon9" class="img-box" />
|
<img :src="ctcBarIcon7" class="img-box">
|
||||||
<img :src="ctcBarIcon10" class="img-box" />
|
<img :src="ctcBarIcon8" class="img-box">
|
||||||
<img :src="ctcBarIcon11" class="img-box" />
|
<img :src="ctcBarIcon9" class="img-box">
|
||||||
<img :src="ctcBarIcon12" class="img-box" />
|
<img :src="ctcBarIcon10" class="img-box">
|
||||||
<img :src="ctcBarIcon13" class="img-box" />
|
<img :src="ctcBarIcon11" class="img-box">
|
||||||
<img :src="ctcBarIcon14" class="img-box" />
|
<img :src="ctcBarIcon12" class="img-box">
|
||||||
<img :src="ctcBarIcon15" class="img-box" />
|
<img :src="ctcBarIcon13" class="img-box">
|
||||||
<img :src="ctcBarIcon16" class="img-box" />
|
<img :src="ctcBarIcon14" class="img-box">
|
||||||
<img :src="ctcBarIcon17" class="img-box" />
|
<img :src="ctcBarIcon15" class="img-box">
|
||||||
<img :src="ctcBarIcon18" 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>
|
||||||
<!--<div v-if="$store.state.training.prdType == '01'" class="alarm-window">-->
|
<div style="display: flex;padding: 2px;border-top: 2px solid #D1D1D1;margin-top: 3px">
|
||||||
<!--<div v-for="elem in alarmMessages" :key="elem.id" style="font-size: 14px;">-->
|
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;">调度命令</div>
|
||||||
<!--{{ elem.message }}-->
|
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;" />
|
||||||
<!--</div>-->
|
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;margin-left: 100px;">阶段计划</div>
|
||||||
<!--</div>-->
|
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;margin-left: 5px;">阶段记事</div>
|
||||||
<!--<div class="device-status-window">-->
|
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">{{ dateString1 + ' ' + time }}</div>
|
||||||
<!--<div class="device-status-button" :style="{background: mode === 'liansuo' ? '#0f0': '#f00'}" @click="selectedMode('liansuo')">联锁I</div>-->
|
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">同步站机通信中断</div>
|
||||||
<!--<div class="device-status-button" :style="{background: mode === 'ctc' ? '#0f0': '#f00'}" @click="selectedMode('ctc')">CTC</div>-->
|
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">与中心通信正常</div>
|
||||||
<!--<div class="device-status-button" style="background: #f00;">联锁II</div>-->
|
</div>
|
||||||
<!--<div class="device-status-button" style="background: #0f0;">操作A</div>-->
|
</div>
|
||||||
<!--<div class="device-status-button" style="background: #ff0;">操作B</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 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: 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 style="width: 40%;height: 30px;line-height: 30px;text-align: center;border-left: 2px #ccc solid;">{{ '操控A:主机' + ' ' + dateString + ' ' + time }}</div>
|
||||||
</div>
|
</div>
|
||||||
@ -54,6 +48,9 @@
|
|||||||
<passive-alarm ref="passiveAlarm" />
|
<passive-alarm ref="passiveAlarm" />
|
||||||
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
||||||
<passive-Timeout ref="passiveTimeout" />
|
<passive-Timeout ref="passiveTimeout" />
|
||||||
|
<runplan-pane v-if="isCtc" ref="runplanPane" />
|
||||||
|
<bottom-table ref="bottomTable" />
|
||||||
|
<menu-panel v-if="isCtc" ref="menuPanel" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -68,11 +65,14 @@ import MenuTrain from './menuTrain';
|
|||||||
import MenuStation from './menuStation';
|
import MenuStation from './menuStation';
|
||||||
import MenuBar from './menuBar';
|
import MenuBar from './menuBar';
|
||||||
import MenuButtonCtc from './menuButtonCtc';
|
import MenuButtonCtc from './menuButtonCtc';
|
||||||
|
import RunplanPane from './runplanPane';
|
||||||
import PassiveAlarm from './passiveDialog/alarm';
|
import PassiveAlarm from './passiveDialog/alarm';
|
||||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||||
import PassiveTimeout from './passiveDialog/timeout';
|
import PassiveTimeout from './passiveDialog/timeout';
|
||||||
import { timeFormat } from '@/utils/date';
|
import { timeFormat } from '@/utils/date';
|
||||||
import { prefixIntrger } 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 CtcBarIcon1 from '@/assets/ctc_icon/pic1.png';
|
||||||
import CtcBarIcon2 from '@/assets/ctc_icon/pic2.png';
|
import CtcBarIcon2 from '@/assets/ctc_icon/pic2.png';
|
||||||
import CtcBarIcon3 from '@/assets/ctc_icon/pic3.png';
|
import CtcBarIcon3 from '@/assets/ctc_icon/pic3.png';
|
||||||
@ -106,7 +106,10 @@ export default {
|
|||||||
PassiveAlarm,
|
PassiveAlarm,
|
||||||
PassiveContorl,
|
PassiveContorl,
|
||||||
PassiveTimeout,
|
PassiveTimeout,
|
||||||
MenuButtonCtc
|
MenuButtonCtc,
|
||||||
|
RunplanPane,
|
||||||
|
BottomTable,
|
||||||
|
MenuPanel
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
@ -125,7 +128,7 @@ export default {
|
|||||||
{ id: 4, message: '这是告警信息四' },
|
{ id: 4, message: '这是告警信息四' },
|
||||||
{ id: 5, message: '这是告警信息五' },
|
{ id: 5, message: '这是告警信息五' },
|
||||||
{ id: 6, message: '这是告警信息六' },
|
{ id: 6, message: '这是告警信息六' },
|
||||||
{ id: 7, message: '这是告警信息七' },
|
{ id: 7, message: '这是告警信息七' }
|
||||||
],
|
],
|
||||||
warningMessages: [
|
warningMessages: [
|
||||||
{ id: 1, message: '这是预警信息一' },
|
{ id: 1, message: '这是预警信息一' },
|
||||||
@ -134,10 +137,11 @@ export default {
|
|||||||
{ id: 4, message: '这是预警信息四' },
|
{ id: 4, message: '这是预警信息四' },
|
||||||
{ id: 5, message: '这是预警信息五' },
|
{ id: 5, message: '这是预警信息五' },
|
||||||
{ id: 6, message: '这是预警信息六' },
|
{ id: 6, message: '这是预警信息六' },
|
||||||
{ id: 7, message: '这是预警信息七' },
|
{ id: 7, message: '这是预警信息七' }
|
||||||
],
|
],
|
||||||
time: '00:00:00',
|
time: '00:00:00',
|
||||||
dateString: '',
|
dateString: '',
|
||||||
|
dateString1: '',
|
||||||
ctcBarIcon1: CtcBarIcon1,
|
ctcBarIcon1: CtcBarIcon1,
|
||||||
ctcBarIcon2: CtcBarIcon2,
|
ctcBarIcon2: CtcBarIcon2,
|
||||||
ctcBarIcon3: CtcBarIcon3,
|
ctcBarIcon3: CtcBarIcon3,
|
||||||
@ -155,8 +159,8 @@ export default {
|
|||||||
ctcBarIcon15: CtcBarIcon15,
|
ctcBarIcon15: CtcBarIcon15,
|
||||||
ctcBarIcon16: CtcBarIcon16,
|
ctcBarIcon16: CtcBarIcon16,
|
||||||
ctcBarIcon17: CtcBarIcon17,
|
ctcBarIcon17: CtcBarIcon17,
|
||||||
ctcBarIcon18: CtcBarIcon18,
|
ctcBarIcon18: CtcBarIcon18
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters('config', [
|
...mapGetters('config', [
|
||||||
@ -166,7 +170,7 @@ export default {
|
|||||||
return this.$store.state.training.prdType && this.$store.state.training.prdType !== '07';
|
return this.$store.state.training.prdType && this.$store.state.training.prdType !== '07';
|
||||||
},
|
},
|
||||||
isCtc() {
|
isCtc() {
|
||||||
return this.$route.query.ctc
|
return this.$route.query.ctc;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -208,6 +212,10 @@ export default {
|
|||||||
if (months.length < 2) { months = '0' + months; }
|
if (months.length < 2) { months = '0' + months; }
|
||||||
if (dates.length < 2) { dates = '0' + dates; }
|
if (dates.length < 2) { dates = '0' + dates; }
|
||||||
this.dateString = years + months + dates;
|
this.dateString = years + months + dates;
|
||||||
|
this.dateString1 = years + '年' + months + '月' + dates + '日';
|
||||||
|
},
|
||||||
|
handleRunplan() {
|
||||||
|
this.$refs.runplanPane.doShow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -468,89 +476,273 @@ export default {
|
|||||||
font-weight: normal !important;
|
font-weight: normal !important;
|
||||||
color: #000 !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 {
|
.fuzhou-01__systerm .el-dialog .el-dialog__header {
|
||||||
|
padding: 5px;
|
||||||
|
height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fuzhou-01__systerm .el-dialog .el-dialog__footer {
|
||||||
|
background: #F0F0F0;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
height: 100px;
|
||||||
border: 2px inset #E2E2E2;
|
border: 2px inset #E2E2E2;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chengdou-03__systerm .el-dialog .table {
|
.fuzhou-01__systerm .el-dialog .table {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chengdou-03__systerm .el-dialog .notice {
|
.fuzhou-01__systerm .el-dialog .notice {
|
||||||
margin-left: 62px;
|
margin-left: 62px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chengdou-03__systerm .el-dialog .button-group {
|
.fuzhou-01__systerm .el-dialog .button-group {
|
||||||
margin-top: 20px;
|
margin-top: 10px;
|
||||||
}
|
|
||||||
.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;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
.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;
|
|
||||||
}
|
|
||||||
.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;
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
.img-box{
|
.img-box{
|
||||||
width: 28px;
|
width: 28px;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
border: 3px #ccc inset;
|
border: 2px #ccc outset;
|
||||||
|
margin-top: 0;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.img-box:active{
|
.img-box:active{
|
||||||
border: 3px #ccc outset;
|
border: 2px #ccc inset;
|
||||||
}
|
}
|
||||||
.img-box:hover{
|
.img-box:hover{
|
||||||
border: 3px #ccc outset;
|
border: 2px #ccc inset;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,26 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="menuBarChengdu3">
|
<div id="menuBarChengdu3">
|
||||||
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%" />
|
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;top: 30px;" />
|
||||||
<!--<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>-->
|
|
||||||
<station-control-convert ref="stationControlConvert" />
|
<station-control-convert ref="stationControlConvert" />
|
||||||
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
|
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
|
||||||
<view-name ref="viewName" />
|
<view-name ref="viewName" />
|
||||||
@ -45,24 +25,7 @@ import ViewName from './menuDialog/viewName';
|
|||||||
import ManageUser from './menuDialog/manageUser';
|
import ManageUser from './menuDialog/manageUser';
|
||||||
import HelpAbout from './menuDialog/helpAbout';
|
import HelpAbout from './menuDialog/helpAbout';
|
||||||
import SetLimitSpeed from './menuDialog/setLimitSpeed';
|
import SetLimitSpeed from './menuDialog/setLimitSpeed';
|
||||||
import CtcBarIcon1 from '@/assets/ctc_icon/pic1.png';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
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';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MenuBarChengdu03',
|
name: 'MenuBarChengdu03',
|
||||||
@ -78,31 +41,20 @@ export default {
|
|||||||
HelpAbout,
|
HelpAbout,
|
||||||
SetLimitSpeed
|
SetLimitSpeed
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
dateString: {
|
||||||
|
type: String,
|
||||||
|
default: () => {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
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: {
|
menuNormal: {
|
||||||
Local: [
|
Local: [
|
||||||
{
|
{
|
||||||
title: '系统',
|
title: '登录',
|
||||||
// operate: OperationEvent.Command.mBar.system,
|
|
||||||
operate: '',
|
operate: '',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@ -113,20 +65,6 @@ export default {
|
|||||||
title: '注销',
|
title: '注销',
|
||||||
click: this.undeveloped
|
click: this.undeveloped
|
||||||
},
|
},
|
||||||
{
|
|
||||||
type: 'separator'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '连接主用中心',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '连接备用中心',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'separator'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '退出',
|
title: '退出',
|
||||||
click: this.undeveloped
|
click: this.undeveloped
|
||||||
@ -134,125 +72,45 @@ export default {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '临时限速',
|
title: '显示',
|
||||||
operate: OperationEvent.Command.mBar.limitSpeed,
|
operate: '',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
title: '设置临时限速',
|
title: '工具栏',
|
||||||
operate: OperationEvent.Section.setLimitSpeed,
|
operate: '',
|
||||||
click: this.setLimitSpeed
|
children: [
|
||||||
|
{
|
||||||
|
title: '标准按钮',
|
||||||
|
click: this.undeveloped
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '取消临时限速',
|
title: '签收栏',
|
||||||
operate: OperationEvent.Section.cancelSpeed,
|
click: this.undeveloped
|
||||||
click: this.cancleLimitSpeed
|
},
|
||||||
|
{
|
||||||
|
title: '显示系统信息窗口',
|
||||||
|
click: this.undeveloped
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '显示进路序列管理窗口',
|
||||||
|
click: this.bottomTableShowOrHidden
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '显示信号员计划表',
|
||||||
|
click: this.undeveloped
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '显示信号员注意事项',
|
||||||
|
click: this.undeveloped
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '查看',
|
title: '站场图',
|
||||||
// operate: OperationEvent.Command.mBar.check,
|
|
||||||
operate: '',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
title: '运行图',
|
|
||||||
click: this.undeveloped
|
click: this.undeveloped
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '报告分析',
|
title: '行车日志',
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'separator'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '视图',
|
|
||||||
click: this.undeveloped,
|
|
||||||
operate: '',
|
|
||||||
children: [{
|
|
||||||
title: '报警',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '列车运行信息',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '设备状态',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
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
|
|
||||||
},
|
|
||||||
{
|
|
||||||
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: '恢复',
|
|
||||||
click: this.undeveloped
|
click: this.undeveloped
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -264,110 +122,92 @@ export default {
|
|||||||
// ]
|
// ]
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
title: '显示',
|
title: '工具',
|
||||||
// operate: OperationEvent.Command.mBar.view,
|
// operate: OperationEvent.Command.mBar.view,
|
||||||
operate: '',
|
operate: '',
|
||||||
hide: true,
|
hide: true,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
title: '设置列车识别号显示',
|
title: '调度命令管理',
|
||||||
click: this.setTrainIdDisplay,
|
click: this.undeveloped
|
||||||
operate: OperationEvent.Command.view.setTrainIdDisplay
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '设置名称显示',
|
title: '甩挂车作业',
|
||||||
click: this.setNameDisplay,
|
click: this.undeveloped
|
||||||
operate: OperationEvent.Command.view.setNameDisplay
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '设置设备显示',
|
title: '列车编组(速报表)',
|
||||||
click: this.setDeviceDisplay,
|
click: this.undeveloped
|
||||||
operate: OperationEvent.Command.view.setDeviceDisplay
|
},
|
||||||
|
{
|
||||||
|
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: 'ATS终端操作',
|
title: '调试',
|
||||||
operate: '',
|
operate: '',
|
||||||
children: [
|
children: []
|
||||||
{
|
|
||||||
title: '当天运行车计划',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '出入库预告',
|
title: '窗口',
|
||||||
click: this.undeveloped
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '计划车操作',
|
|
||||||
operate: '',
|
operate: '',
|
||||||
children: [
|
children: []
|
||||||
{
|
|
||||||
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
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '取消下行全线扣车',
|
|
||||||
click: this.undeveloped
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '信息管理',
|
|
||||||
operate: '',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
title: '调度日志',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '调度留言提醒',
|
|
||||||
click: this.undeveloped
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '报警设置',
|
|
||||||
click: this.undeveloped
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '帮助',
|
title: '帮助',
|
||||||
operate: '',
|
operate: '',
|
||||||
children: [
|
children: []
|
||||||
{
|
|
||||||
title: '关于ITS GPC 工作站',
|
|
||||||
click: this.about,
|
|
||||||
operate: OperationEvent.Command.help.about
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
Center: [
|
Center: [
|
||||||
@ -671,7 +511,6 @@ export default {
|
|||||||
mapLocation(code) {
|
mapLocation(code) {
|
||||||
if (code) {
|
if (code) {
|
||||||
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: code });
|
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: code });
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 关于
|
// 关于
|
||||||
@ -720,6 +559,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
bottomTableShowOrHidden() {
|
||||||
|
EventBus.$emit('bottomTableShowOrHidden');
|
||||||
|
},
|
||||||
undeveloped() {
|
undeveloped() {
|
||||||
this.$refs.menuBar.doClose();
|
this.$refs.menuBar.doClose();
|
||||||
this.$alert('实现中......', '提示', {
|
this.$alert('实现中......', '提示', {
|
||||||
|
@ -1,102 +1,108 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="isShowBtn" id="menuButtons_box" class="menu menuButton" style="height: 35px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
|
<div v-if="isShowBtn" id="menuButtons_box" class="menu menuButton" style="height: 35px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
|
||||||
<button :id="Signal.arrangementRoute.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal'])">
|
<button :id="Signal.arrangementRoute.button.domId" class="button_box" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal','SignalButton'])">
|
||||||
<span style="color: black">
|
<span :style="{ color: operation === Signal.arrangementRoute.button.operation ? '#ccc':'black'}">
|
||||||
<center><b>进</b><b>路</b></center>
|
<center><b>进</b><b>路</b></center>
|
||||||
<center><b>建</b><b>立</b></center>
|
<center><b>建</b><b>立</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="MixinCommand.totalCancel.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(MixinCommand.totalCancel.button.operation, ['Signal','SignalButton'])">
|
<button :id="MixinCommand.totalCancel.button.domId" class="button_box" @click="buttonDown(MixinCommand.totalCancel.button.operation, ['Signal','SignalButton'])">
|
||||||
<span style="color: black;">
|
<span :style="{color: operation === MixinCommand.totalCancel.button.operation ? '#ccc': 'black'}">
|
||||||
<center><b>总</b></center>
|
<center><b>总</b></center>
|
||||||
<center><b>取</b><b>消</b></center>
|
<center><b>取</b><b>消</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Signal.reopenSignal.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.reopenSignal.button.operation, ['Signal'])">
|
<button :id="Signal.reopenSignal.button.domId" class="button_box" @click="buttonDown(Signal.reopenSignal.button.operation, ['Signal'])">
|
||||||
<span style="color: black;">
|
<span :style="{color: operation === Signal.reopenSignal.button.operation ? '#ccc': 'black'}">
|
||||||
<center><b>信</b><b>号</b></center>
|
<center><b>信</b><b>号</b></center>
|
||||||
<center><b>重</b><b>开</b></center>
|
<center><b>重</b><b>开</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Station.guideLock.button.domId" class="button_box" :style="{width: width+'px', backgroundColor: guideLockLeftFlag? guideColorDown: guideColorUp}" @click="guideLockLeftButtonDown()">
|
<button :id="Signal.guide.button.domId" class="button_box" @click="buttonDown(Signal.guide.button.operation, ['SignalButton'])">
|
||||||
<span style="color: #800000">
|
<span :style="{color: operation === Signal.guide.button.operation? '#ccc':'#800000'}">
|
||||||
|
<center><b>引</b><b>导</b></center>
|
||||||
|
<center><b>按</b><b>钮</b></center>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
<button :id="Station.guideLock.button.domId" :disabled="true" class="button_box" @click="buttonDown(Station.guideLock.button.operation, ['Button'])">
|
||||||
|
<span :style="{color: operation === Station.guideLock.button.operation?'#ccc':'#800000'}">
|
||||||
<center><b>引</b><b>导</b></center>
|
<center><b>引</b><b>导</b></center>
|
||||||
<center><b>总</b><b>锁</b></center>
|
<center><b>总</b><b>锁</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Signal.humanTrainRoute.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.humanTrainRoute.button.operation, ['Signal','SignalButton'])">
|
<button :id="Signal.humanTrainRoute.button.domId" class="button_box" @click="buttonDown(Signal.humanTrainRoute.button.operation, ['Signal'])">
|
||||||
<span style="color: #800000">
|
<span :style="{color: operation === Signal.humanTrainRoute.button.operation ? '#ccc':'#800000'}">
|
||||||
<center><b>总</b></center>
|
<center><b>总</b></center>
|
||||||
<center><b>人</b><b>解</b></center>
|
<center><b>人</b><b>解</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Switch.locate.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Switch.locate.button.operation, ['Switch'])">
|
<button :id="Switch.locate.button.domId" class="button_box" @click="buttonDown(Switch.locate.button.operation, ['Switch'])">
|
||||||
<span style="color: black">
|
<span :style="{color: operation === Switch.locate.button.operation? '#ccc':'black'}">
|
||||||
<center><b>道</b><b>岔</b></center>
|
<center><b>道</b><b>岔</b></center>
|
||||||
<center><b>总</b><b>定</b></center>
|
<center><b>总</b><b>定</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Switch.reverse.button.domId" class="button_box" :style="{width: width+'px',backgroundColor:buttonUpColor}" @click="buttonDown(Switch.reverse.button.operation, ['Switch'])">
|
<button :id="Switch.reverse.button.domId" class="button_box" @click="buttonDown(Switch.reverse.button.operation, ['Switch'])">
|
||||||
<span style="color: black">
|
<span :style="{color: operation === Switch.reverse.button.operation? '#ccc':'black'}">
|
||||||
<center><b>道</b><b>岔</b></center>
|
<center><b>道</b><b>岔</b></center>
|
||||||
<center><b>总</b><b>反</b></center>
|
<center><b>总</b><b>反</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Switch.lock.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Switch.lock.button.operation, ['Switch'])">
|
<button :id="Switch.lock.button.domId" class="button_box" @click="buttonDown(Switch.lock.button.operation, ['Switch'])">
|
||||||
<span style="color: black">
|
<span :style="{color: operation === Switch.lock.button.operation ? '#ccc':'black'}">
|
||||||
<center><b>道</b><b>岔</b></center>
|
<center><b>道</b><b>岔</b></center>
|
||||||
<center><b>单</b><b>锁</b></center>
|
<center><b>单</b><b>锁</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Switch.unlock.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Switch.unlock.button.operation, ['Switch'])">
|
<button :id="Switch.unlock.button.domId" class="button_box" @click="buttonDown(Switch.unlock.button.operation, ['Switch'])">
|
||||||
<span style="color: black">
|
<span :style="{color: operation === Switch.unlock.button.operation ? '#ccc':'black'}">
|
||||||
<center><b>道</b><b>岔</b></center>
|
<center><b>道</b><b>岔</b></center>
|
||||||
<center><b>解</b><b>锁</b></center>
|
<center><b>解</b><b>锁</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="MixinCommand.block.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(MixinCommand.lock.button.operation, ['Switch', 'Signal'])">
|
<button :id="MixinCommand.block.button.domId" class="button_box" @click="buttonDown(MixinCommand.lock.button.operation, ['Switch', 'Signal'])">
|
||||||
<span style="color: black">
|
<span :style="{color: operation === MixinCommand.block.button.operation ? '#ccc':'black'}">
|
||||||
<center><b>封</b><b>锁</b></center>
|
<center><b>封</b><b>锁</b></center>
|
||||||
<center><b>按</b><b>钮</b></center>
|
<center><b>按</b><b>钮</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="MixinCommand.functionButton.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(MixinCommand.functionButton.button.operation, ['StationStand', 'Station'])">
|
<button :id="MixinCommand.functionButton.button.domId" class="button_box" @click="buttonDown(MixinCommand.functionButton.button.operation, ['StationStand', 'Station'])">
|
||||||
<span style="color: black;">
|
<span :style="{color: operation === MixinCommand.functionButton.button.operation ? '#ccc':'black'}">
|
||||||
<center><b>功</b><b>能</b></center>
|
<center><b>功</b><b>能</b></center>
|
||||||
<center><b>按</b><b>钮</b></center>
|
<center><b>按</b><b>钮</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="111" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown()">
|
<button :id="111" class="button_box" @click="buttonDown()">
|
||||||
<span style="color: black;">
|
<span style="color: black;">
|
||||||
<center><b>坡</b><b>道</b></center>
|
<center><b>坡</b><b>道</b></center>
|
||||||
<center><b>解</b><b>锁</b></center>
|
<center><b>解</b><b>锁</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :disabled="true" :id="222" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown()">
|
<button :id="222" :disabled="true" class="button_box" @click="buttonDown()">
|
||||||
<span style="color: black;">
|
<span style="color: black;">
|
||||||
<center><b>分</b><b>路</b></center>
|
<center><b>分</b><b>路</b></center>
|
||||||
<center><b>不</b><b>良</b></center>
|
<center><b>不</b><b>良</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="Command.cancel.clearMbm.domId" class="button_box" :style="{width:width+'px',backgroundColor:buttonUpColor}" @click="buttonDown(Command.cancel.clearMbm.operation)">
|
<button :id="Command.cancel.clearMbm.domId" class="button_box" @click="commandClear">
|
||||||
<span style="color: black;">
|
<span style="color: black;">
|
||||||
<center><b>命</b><b>令</b></center>
|
<center><b>命</b><b>令</b></center>
|
||||||
<center><b>清</b><b>除</b></center>
|
<center><b>清</b><b>除</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="333" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown()">
|
<button :id="333" class="button_box" @click="commandOrders">
|
||||||
<span style="color: black;">
|
<span style="color: black;">
|
||||||
<center><b>命</b><b>令</b></center>
|
<center><b>命</b><b>令</b></center>
|
||||||
<center><b>下</b><b>达</b></center>
|
<center><b>下</b><b>达</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="444" class="button_box" :style="{width: width+'px', backgroundColor: buttonUpColor}" @click="buttonDown()">
|
<button :id="444" class="button_box" @click="buttonDown()">
|
||||||
<span style="color: black;">
|
<span style="color: black;">
|
||||||
<center><b>状</b><b>态</b></center>
|
<center><b>状</b><b>态</b></center>
|
||||||
<center><b>选</b><b>择</b></center>
|
<center><b>选</b><b>择</b></center>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button :id="555" class="button_box" :style="{width: width+'px', backgroundColor: buttonUpColor}" @click="buttonDown()">
|
<button :id="555" class="button_box" @click="buttonDown()">
|
||||||
<span style="color: black;">
|
<span style="color: black;">
|
||||||
<center><b>模</b><b>式</b></center>
|
<center><b>模</b><b>式</b></center>
|
||||||
<center><b>转</b><b>换</b></center>
|
<center><b>转</b><b>换</b></center>
|
||||||
@ -104,26 +110,35 @@
|
|||||||
</button>
|
</button>
|
||||||
<password-box ref="password" @checkOver="passWordCommit" @checkCancel="clearOperate" />
|
<password-box ref="password" @checkOver="passWordCommit" @checkCancel="clearOperate" />
|
||||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||||
|
<pop-menu ref="popMenu" :menu="menu" />
|
||||||
|
<train-route ref="trainRoute" @routeCommit="routeCommit" @routeCancel="clearOperate" />
|
||||||
|
<shunt-route ref="shuntRoute" @routeCommit="routeCommit" @routeCancel="clearOperate" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import PopMenu from '@/components/PopMenu';
|
||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||||
import Handler from '@/scripts/cmdPlugin/Handler';
|
import Handler from '@/scripts/cmdPlugin/Handler';
|
||||||
import PasswordBox from './dialog/childDialog/passwordInputBox.vue';
|
import PasswordBox from './dialog/childDialog/passwordInputBox.vue';
|
||||||
|
import TrainRoute from './dialog/trainRoute.vue';
|
||||||
|
import ShuntRoute from './dialog/shuntRoute.vue';
|
||||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||||
import { MouseEvent } from '@/scripts/ConstDic';
|
import { MouseEvent, DeviceMenu } from '@/scripts/ConstDic';
|
||||||
import CenterConfig from '../../../../views/newMap/newMapdraft/mapoperate/displayConfig/centerConfig';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MapButtonMenu',
|
name: 'MapButtonMenu',
|
||||||
components: {
|
components: {
|
||||||
CenterConfig,
|
// CenterConfig,
|
||||||
PasswordBox,
|
PasswordBox,
|
||||||
NoticeInfo
|
NoticeInfo,
|
||||||
|
PopMenu,
|
||||||
|
TrainRoute,
|
||||||
|
ShuntRoute
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
@ -137,26 +152,37 @@
|
|||||||
return {
|
return {
|
||||||
point: {
|
point: {
|
||||||
x: 0,
|
x: 0,
|
||||||
y: 30
|
y: 0
|
||||||
},
|
},
|
||||||
operation: '0',
|
operation: '',
|
||||||
buttonName: '',
|
buttonName: '',
|
||||||
guideColorDown: '#FEEE1A',
|
guideColorDown: '#FEEE1A',
|
||||||
guideColorUp: '#DCDCDC',
|
guideColorUp: '#DCDCDC',
|
||||||
buttonDownColor: '#FEEE1A',
|
buttonDownColor: '#FBFBFB',
|
||||||
buttonUpColor: '#DCDCDC',
|
buttonUpColor: '#F0F0F0',
|
||||||
width: 60,
|
width: 45,
|
||||||
tempData: null,
|
tempData: null,
|
||||||
offset: {},
|
offset: {},
|
||||||
commandTypeList: [],
|
commandTypeList: [],
|
||||||
|
menuSignal: null,
|
||||||
cmdTypeList: [],
|
cmdTypeList: [],
|
||||||
deviceList: [],
|
deviceList: [],
|
||||||
timeNode: 0, // 按钮 15秒 计时
|
timeNode: 0, // 按钮 15秒 计时
|
||||||
deviceTimeNode: 0, // 信号按钮设备15秒 计时
|
deviceTimeNode: 0, // 信号按钮设备15秒 计时
|
||||||
routeDataMap: null, // btnCodeList 为key
|
routeDataMap: null, // btnCodeList 为key
|
||||||
routeButtonCodeList: [], // btnCodeList 拼接code list
|
routeButtonCodeList: [], // btnCodeList 拼接code list
|
||||||
guideLockRightFlag: false,
|
menu: [
|
||||||
guideLockLeftFlag: false
|
{
|
||||||
|
label: '命令下达',
|
||||||
|
handler: this.commandOrders
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '命令清除',
|
||||||
|
handler: this.commandClear
|
||||||
|
}
|
||||||
|
],
|
||||||
|
switchOperation: [],
|
||||||
|
route: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -234,8 +260,13 @@
|
|||||||
this.commandTypeList = [];
|
this.commandTypeList = [];
|
||||||
this.$store.dispatch('menuOperation/setButtonOperation', null);
|
this.$store.dispatch('menuOperation/setButtonOperation', null);
|
||||||
this.clearOperate();
|
this.clearOperate();
|
||||||
this.guideLockRightFlag = false;
|
},
|
||||||
this.guideLockLeftFlag = false;
|
'$store.state.menuOperation.menuCount': function (val) {
|
||||||
|
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel)) {
|
||||||
|
this.$refs && this.$refs.popMenu && this.$refs.popMenu.resetShowPosition(this.$store.state.menuOperation.menuPosition);
|
||||||
|
} else {
|
||||||
|
this.$refs && this.$refs.popMenu && this.$refs.popMenu.close();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'$store.state.socket.simulationTimeSync': function (val) {
|
'$store.state.socket.simulationTimeSync': function (val) {
|
||||||
if (this.timeNode && val - this.timeNode >= 15) {
|
if (this.timeNode && val - this.timeNode >= 15) {
|
||||||
@ -255,6 +286,33 @@
|
|||||||
this.routeDataMap = null;
|
this.routeDataMap = null;
|
||||||
this.routeButtonCodeList = [];
|
this.routeButtonCodeList = [];
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
EventBus.$on('arrangementRouteMenu', (signal) => {
|
||||||
|
this.clearOperate();
|
||||||
|
this.buttonDown(this.Signal.arrangementRoute.button.operation, ['Signal', 'SignalButton']);
|
||||||
|
if (signal.signalButtonList && signal.signalButtonList.length) {
|
||||||
|
const deviceCode = signal.signalButtonList.find(buttonCode => {
|
||||||
|
const device = this.$store.getters['map/getDeviceByCode'](buttonCode);
|
||||||
|
return device.type === 'PICK';
|
||||||
|
});
|
||||||
|
this.deviceList.push(this.$store.getters['map/getDeviceByCode'](deviceCode));
|
||||||
|
}
|
||||||
|
this.menuSignal = signal;
|
||||||
|
this.arrangementRouteOperation(this.deviceList, this.menuSignal);
|
||||||
|
});
|
||||||
|
this.buttonDown(this.Signal.arrangementRoute.button.operation, ['Signal', 'SignalButton']);
|
||||||
|
this.switchOperation = [
|
||||||
|
this.Switch.lock.button.operation,
|
||||||
|
this.Switch.unlock.button.operation,
|
||||||
|
this.Switch.locate.button.operation,
|
||||||
|
this.Switch.reverse.button.operation,
|
||||||
|
this.Switch.block.button.operation,
|
||||||
|
this.Switch.unblock.button.operation
|
||||||
|
];
|
||||||
|
EventBus.$on('setMenuButtonPosition', (offset) => {
|
||||||
|
this.point.y = offset;
|
||||||
|
});
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 输入密码正确回调
|
// 输入密码正确回调
|
||||||
passWordCommit(data) {
|
passWordCommit(data) {
|
||||||
@ -278,12 +336,6 @@
|
|||||||
trainingOperation(operate) {
|
trainingOperation(operate) {
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
/* 引导总锁输入面后 处理按钮选中状态 */
|
|
||||||
if (operate.operationPre === this.Switch.guideLock.leftButton.operation || operate.operation === this.Switch.guideLock.leftButton.operation) {
|
|
||||||
this.guideLockLeftFlag = !this.guideLockLeftFlag;
|
|
||||||
} else if (operate.operationPre === this.Switch.guideLock.rightButton.operation || operate.operation === this.Switch.guideLock.rightButton.operation) {
|
|
||||||
this.guideLockRightFlag = !this.guideLockRightFlag;
|
|
||||||
}
|
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
@ -319,10 +371,8 @@
|
|||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// 引导总锁弹出 调用取消引导总锁指令
|
// 引导总锁弹出 调用取消引导总锁指令
|
||||||
if (this.guideLockRightFlag) {
|
|
||||||
operate.nextCmdType = CMD.Switch.CMD_SWITCH_MASTER_UNBLOCK;
|
operate.nextCmdType = CMD.Switch.CMD_SWITCH_MASTER_UNBLOCK;
|
||||||
operate.param = {right: false};
|
operate.param = {right: false};
|
||||||
}
|
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
operate['operateNext'] = this.Command.close.password.operation;
|
operate['operateNext'] = this.Command.close.password.operation;
|
||||||
this.$refs.password.doShow(operate);
|
this.$refs.password.doShow(operate);
|
||||||
@ -337,10 +387,8 @@
|
|||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// 引导总锁弹出 调用取消引导总锁指令
|
// 引导总锁弹出 调用取消引导总锁指令
|
||||||
if (this.guideLockRightFlag) {
|
|
||||||
operate.nextCmdType = CMD.Switch.CMD_SWITCH_MASTER_UNBLOCK;
|
operate.nextCmdType = CMD.Switch.CMD_SWITCH_MASTER_UNBLOCK;
|
||||||
operate.param = {right: true};
|
operate.param = {right: true};
|
||||||
}
|
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
operate['operateNext'] = this.Command.close.password.operation;
|
operate['operateNext'] = this.Command.close.password.operation;
|
||||||
this.$refs.password.doShow(operate);
|
this.$refs.password.doShow(operate);
|
||||||
@ -353,8 +401,12 @@
|
|||||||
const operate = {
|
const operate = {
|
||||||
operation: operation
|
operation: operation
|
||||||
};
|
};
|
||||||
// 以下 会弹出密码框 (总人解,区故解) 铅封按钮
|
// 以下 会弹出密码框 (总人解,区故解) 铅封按钮 684
|
||||||
const operationList = [this.Signal.humanTrainRoute.button.operation, this.Section.fault.button.operation];
|
const operationList = [
|
||||||
|
this.Signal.humanTrainRoute.button.operation,
|
||||||
|
this.Section.fault.button.operation,
|
||||||
|
this.Signal.guide.button.operation
|
||||||
|
];
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.operation = operation;
|
this.operation = operation;
|
||||||
@ -400,15 +452,27 @@
|
|||||||
deviceList.forEach((device, index) =>{
|
deviceList.forEach((device, index) =>{
|
||||||
name = name + (index ? '-' : '') + device.code;
|
name = name + (index ? '-' : '') + device.code;
|
||||||
});
|
});
|
||||||
|
if (this.menuSignal) {
|
||||||
|
const signalName = this.menuSignal.code;
|
||||||
|
return this.routeButtonCodeList.some(item => item.includes(name) || item.includes(signalName));
|
||||||
|
} else {
|
||||||
return this.routeButtonCodeList.some(item => item.includes(name));
|
return this.routeButtonCodeList.some(item => item.includes(name));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// 排列进路 OR 信号重开操作
|
// 信号重开
|
||||||
arrangementRouteOperation(deviceList) {
|
handelReopenSignal(device) {
|
||||||
const operate = {
|
const operate = {
|
||||||
operation: this.Signal.arrangementRoute.button.operation
|
operation: this.Signal.reopenSignal.button.operation,
|
||||||
|
code: device.code,
|
||||||
|
param: { signalCode: device.code }
|
||||||
};
|
};
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({valid, response}) => {
|
||||||
|
}).catch(() => this.$refs.noticeInfo.doShow() );
|
||||||
|
},
|
||||||
|
// 排列进路
|
||||||
|
arrangementRouteOperation(deviceList) {
|
||||||
|
const operate = { operation: this.Signal.arrangementRoute.button.operation };
|
||||||
if (!this.routeDataMap) { this.handleRouteDataMap(); }
|
if (!this.routeDataMap) { this.handleRouteDataMap(); }
|
||||||
|
|
||||||
if (!this.checkHaveRoute(deviceList)) { // 无效的进路按钮选择 清除deviceList
|
if (!this.checkHaveRoute(deviceList)) { // 无效的进路按钮选择 清除deviceList
|
||||||
this.$message.error('无效的进路按钮');
|
this.$message.error('无效的进路按钮');
|
||||||
this.clearOperate();
|
this.clearOperate();
|
||||||
@ -416,7 +480,6 @@
|
|||||||
}
|
}
|
||||||
this.deviceTimeNode = this.$store.state.socket.simulationTimeSync;
|
this.deviceTimeNode = this.$store.state.socket.simulationTimeSync;
|
||||||
const signal = this.$store.getters['map/getDeviceByCode'](deviceList[0].signalCode || deviceList[0].code);// deviceList[0] 为 SignalButton || Signal
|
const signal = this.$store.getters['map/getDeviceByCode'](deviceList[0].signalCode || deviceList[0].code);// deviceList[0] 为 SignalButton || Signal
|
||||||
console.log(deviceList, signal, '***************');
|
|
||||||
if (deviceList.length === 1 && !signal.routeLock) { // 排列进路 处理始端信号机状态
|
if (deviceList.length === 1 && !signal.routeLock) { // 排列进路 处理始端信号机状态
|
||||||
operate.code = deviceList[0].code;
|
operate.code = deviceList[0].code;
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
@ -429,15 +492,6 @@
|
|||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
});
|
});
|
||||||
} else if (deviceList.length === 1 && signal.routeLock) { // 信号重开
|
|
||||||
operate.operation = this.Signal.reopenSignal.button.operation;
|
|
||||||
operate.over = true;
|
|
||||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL;
|
|
||||||
operate.code = signal.code;
|
|
||||||
operate.param = {signalCode: signal.code};
|
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({valid, response}) => {
|
|
||||||
this.clearOperate();
|
|
||||||
}).catch(() => this.$refs.noticeInfo.doShow() );
|
|
||||||
} else if (deviceList.length > 1) {
|
} else if (deviceList.length > 1) {
|
||||||
let key = '';
|
let key = '';
|
||||||
deviceList.forEach((item, index) => {
|
deviceList.forEach((item, index) => {
|
||||||
@ -445,83 +499,91 @@
|
|||||||
});
|
});
|
||||||
const route = this.routeDataMap[key];
|
const route = this.routeDataMap[key];
|
||||||
if (route) {
|
if (route) {
|
||||||
operate.over = true;
|
|
||||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_ROUTE;
|
|
||||||
operate.code = deviceList[deviceList.length - 1].code;
|
operate.code = deviceList[deviceList.length - 1].code;
|
||||||
operate.param = {routeCode: route.code};
|
operate.param = {routeCode: route.code};
|
||||||
|
this.route = route;
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
this.deviceTimeNode = 0;
|
this.deviceTimeNode = 0;
|
||||||
|
this.$store.dispatch('training/updateMapState',
|
||||||
|
[{code: this.deviceList[0].code, _type: this.deviceList[0]._type, hasSelected: 0}, {code: this.deviceList[1].code, _type: this.deviceList[1]._type, hasSelected: 1}]);
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.deviceTimeNode = 0;
|
this.deviceTimeNode = 0;
|
||||||
|
this.clearOperate();
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
}).finally(() => { this.clearOperate(); });
|
});
|
||||||
|
} else if (this.menuSignal) {
|
||||||
|
key = '';
|
||||||
|
deviceList.forEach((item, index) => {
|
||||||
|
key = key + (index ? '-' : '') + (index ? item.code : this.menuSignal.code);
|
||||||
|
});
|
||||||
|
const route = this.routeDataMap[key];
|
||||||
|
if (route) {
|
||||||
|
operate.code = deviceList[deviceList.length - 1].code;
|
||||||
|
operate.param = {routeCode: route.code};
|
||||||
|
this.route = route;
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
this.deviceTimeNode = 0;
|
||||||
|
this.$store.dispatch('training/updateMapState',
|
||||||
|
[{code: this.deviceList[0].code, _type: this.deviceList[0]._type, hasSelected: 0}, {code: this.deviceList[1].code, _type: this.deviceList[1]._type, hasSelected: 1}]);
|
||||||
|
}).catch(() => {
|
||||||
|
this.deviceTimeNode = 0;
|
||||||
|
this.clearOperate();
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 总取消
|
// 总取消
|
||||||
handelTotalCancel(model) {
|
handelTotalCancel(model) {
|
||||||
const operate = {
|
const operate = {
|
||||||
over: true,
|
|
||||||
code: model.code,
|
code: model.code,
|
||||||
operation: this.$store.state.menuOperation.buttonOperation,
|
operation: this.$store.state.menuOperation.buttonOperation,
|
||||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE,
|
|
||||||
param: {
|
param: {
|
||||||
signalCode: model._type === 'Signal' ? model.code : model.signalCode
|
signalCode: model._type === 'Signal' ? model.code : model.signalCode
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
this.clearOperate();
|
}).catch(() => {
|
||||||
}).catch((error) => {
|
|
||||||
this.clearOperate();
|
|
||||||
console.error(error);
|
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 引导信号
|
// 引导信号
|
||||||
handleGuideSignal(model) {
|
handleGuideSignal(model) {
|
||||||
const operate = {
|
const operate = {
|
||||||
over: true,
|
|
||||||
code: model.code,
|
code: model.code,
|
||||||
operation: this.Signal.guide.button.operation,
|
operation: this.Signal.guide.button.operation,
|
||||||
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
|
||||||
param: {signalCode: model.signalCode}
|
param: {signalCode: model.signalCode}
|
||||||
};
|
};
|
||||||
const signal = this.$store.getters['map/getDeviceByCode'](model.signalCode);
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
// 信号机引导时间15s以内再次点击引导不需要进行密码输入
|
this.$store.dispatch('training/updateMapState', [{code: model.code, _type: model._type, hasSelected: 1}]);
|
||||||
if (signal.guideTime) {
|
}).catch(() => {
|
||||||
this.sendCommand(operate);
|
this.$refs.noticeInfo.doShow();
|
||||||
} else {
|
});
|
||||||
operate.nextCmdType = CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE;
|
|
||||||
this.$refs.password.doShow(operate);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
// 人解进路
|
// 人解进路
|
||||||
handleTotalHumanSolution(model) {
|
handleTotalHumanSolution(model) {
|
||||||
const operate = {
|
const operate = {
|
||||||
over: true,
|
|
||||||
code: model.code,
|
code: model.code,
|
||||||
operation: this.$store.state.menuOperation.buttonOperation,
|
operation: this.$store.state.menuOperation.buttonOperation,
|
||||||
val: model.code,
|
val: model.code,
|
||||||
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
|
param: { signalCode: model.code }
|
||||||
};
|
};
|
||||||
const signal = this.$store.getters['map/getDeviceByCode'](model.signalCode || model.code);
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
if (model._type === 'SignalButton' && model.type === 'PICK' && signal.routeLock) {
|
}).catch(() => {
|
||||||
operate.param = {signalCode: model.signalCode};
|
this.$refs.noticeInfo.doShow();
|
||||||
this.sendCommand(operate);
|
});
|
||||||
} else if (model._type === 'Signal' && model.type === 'SHUNTING' && signal.routeLock) {
|
|
||||||
operate.param = {signalCode: model.code};
|
|
||||||
this.sendCommand(operate);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
handelSwitchOperate(model) {
|
handelSwitchOperate(model) {
|
||||||
const operate = {
|
const operate = {
|
||||||
over: true,
|
|
||||||
code: model.code,
|
code: model.code,
|
||||||
operation: this.$store.state.menuOperation.buttonOperation,
|
operation: this.$store.state.menuOperation.buttonOperation,
|
||||||
cmdType: this.cmdType,
|
|
||||||
param: { switchCode: model.code}
|
param: { switchCode: model.code}
|
||||||
};
|
};
|
||||||
this.sendCommand(operate);
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
}).catch(() => {
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 发送指令
|
// 发送指令
|
||||||
sendCommand(operate) {
|
sendCommand(operate) {
|
||||||
@ -572,17 +634,16 @@
|
|||||||
this.sendCommand(operate);
|
this.sendCommand(operate);
|
||||||
},
|
},
|
||||||
handleGuideLock(model) {
|
handleGuideLock(model) {
|
||||||
const signal = this.$store.getters['map/getDeviceByCode'](model.signalCode);
|
|
||||||
if (signal && (this.guideLockRightFlag && signal.right) || (this.guideLockLeftFlag && !signal.right)) {
|
|
||||||
const operate = {
|
const operate = {
|
||||||
over: true,
|
|
||||||
code: model.code,
|
code: model.code,
|
||||||
operation: this.guideLockRightFlag ? this.Switch.guideLock.rightButton : this.Switch.guideLock.leftButton,
|
operation: this.Signal.guide.button.operation,
|
||||||
nextCmdType: CMD.Switch.CMD_SWITCH_MASTER_LOCK,
|
|
||||||
param: {signalCode: model.signalCode}
|
param: {signalCode: model.signalCode}
|
||||||
};
|
};
|
||||||
this.$refs.password.doShow(operate);
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
}
|
}).catch((e) => {
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
this.clearOperate();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handelFaultSection(model) {
|
handelFaultSection(model) {
|
||||||
if (model._type === 'Section') {
|
if (model._type === 'Section') {
|
||||||
@ -604,27 +665,28 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const buttonOperation = this.$store.state.menuOperation.buttonOperation;
|
const buttonOperation = this.$store.state.menuOperation.buttonOperation;
|
||||||
const switchOperation = [
|
// if (model._type === 'SignalButton' && model.type === 'GUIDE') {
|
||||||
this.Switch.lock.button.operation,
|
// this.handleGuideLock(model);
|
||||||
this.Switch.unlock.button.operation,
|
// this.handleGuideSignal(model);
|
||||||
this.Switch.locate.button.operation,
|
// } else
|
||||||
this.Switch.reverse.button.operation,
|
if (buttonOperation && this.commandTypeList.includes(model._type)) {
|
||||||
this.Switch.block.button.operation,
|
|
||||||
this.Switch.unblock.button.operation
|
|
||||||
];
|
|
||||||
if ((this.guideLockLeftFlag || this.guideLockRightFlag) && model._type === 'SignalButton' && model.type === 'GUIDE') {
|
|
||||||
this.handleGuideLock(model);
|
|
||||||
} else if (buttonOperation && this.commandTypeList.includes(model._type)) {
|
|
||||||
if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
|
if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
|
||||||
this.handelTotalCancel(model);
|
this.handelTotalCancel(model);
|
||||||
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) {
|
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) {
|
||||||
this.handleTotalHumanSolution(model);
|
this.handleTotalHumanSolution(model);
|
||||||
} else if (switchOperation.includes(buttonOperation)) {
|
} else if (this.switchOperation.includes(buttonOperation)) {
|
||||||
this.handelSwitchOperate(model);
|
this.handelSwitchOperate(model);
|
||||||
} else if (buttonOperation === this.Signal.lock.button.operation || buttonOperation === this.Signal.unlock.button.operation) {
|
} else if (buttonOperation === this.Signal.lock.button.operation || buttonOperation === this.Signal.unlock.button.operation) {
|
||||||
this.handelSignalBlockOrUnblock(model);
|
this.handelSignalBlockOrUnblock(model);
|
||||||
} else if (buttonOperation === this.Section.fault.button.operation) {
|
} else if (buttonOperation === this.Section.fault.button.operation) {
|
||||||
this.handelFaultSection(model);
|
this.handelFaultSection(model);
|
||||||
|
} else if (buttonOperation === this.Signal.reopenSignal.button.operation) {
|
||||||
|
this.handelReopenSignal(model);
|
||||||
|
} else if (buttonOperation === this.Signal.arrangementRoute.button.operation) {
|
||||||
|
this.deviceList.push(model);
|
||||||
|
this.arrangementRouteOperation(this.deviceList);
|
||||||
|
} else if (buttonOperation === this.Signal.guide.button.operation ) {
|
||||||
|
this.handleGuideSignal(model);
|
||||||
} else {
|
} else {
|
||||||
this.clearOperate();
|
this.clearOperate();
|
||||||
}
|
}
|
||||||
@ -633,7 +695,8 @@
|
|||||||
this.handleGuideSignal(model);
|
this.handleGuideSignal(model);
|
||||||
} else if (model._type === 'SignalButton' && model.type === 'CHANGE_DIRECTION') {
|
} else if (model._type === 'SignalButton' && model.type === 'CHANGE_DIRECTION') {
|
||||||
// 改方操作
|
// 改方操作
|
||||||
this.changeDirection(model);
|
// this.changeDirection(model);
|
||||||
|
this.clearOperate();
|
||||||
} else if (model._type === 'SignalButton' && !this.checkSignalBlock(model.signalCode) || (model._type === 'Signal' && !model.blockade)) {
|
} else if (model._type === 'SignalButton' && !this.checkSignalBlock(model.signalCode) || (model._type === 'Signal' && !model.blockade)) {
|
||||||
this.deviceList.push(model);
|
this.deviceList.push(model);
|
||||||
this.arrangementRouteOperation(this.deviceList);
|
this.arrangementRouteOperation(this.deviceList);
|
||||||
@ -650,29 +713,80 @@
|
|||||||
} else { return false; }
|
} else { return false; }
|
||||||
},
|
},
|
||||||
clearOperate() { // 清除操作
|
clearOperate() { // 清除操作
|
||||||
this.deviceList && this.deviceList.length && this.$store.dispatch('training/updateMapState', [{code: this.deviceList[0].code, _type: this.deviceList[0]._type, hasSelected: 0}]);
|
const deviceState = [];
|
||||||
this.deviceList = [];
|
if (this.deviceList && this.deviceList[0]) {
|
||||||
Handler.clear(); // 清空操作组
|
deviceState.push({code: this.deviceList[0].code, _type: this.deviceList[0]._type, hasSelected: 0});
|
||||||
this.$store.dispatch('menuOperation/setButtonOperation', null);
|
|
||||||
},
|
|
||||||
changeDirection(model) {
|
|
||||||
const operate = {
|
|
||||||
over: true,
|
|
||||||
code: model.code,
|
|
||||||
operation: this.CTCCommand.assistPressDownTurnDirection.menu.operation,
|
|
||||||
cmdType: CMD.CTC.CTC_ASSIST_PRESS_DOWN_TURN_DIRECTION,
|
|
||||||
param: {
|
|
||||||
labelEnum:model.labelEnum,
|
|
||||||
stationCode:model.stationCode
|
|
||||||
}
|
}
|
||||||
};
|
if (this.deviceList && this.deviceList[1]) {
|
||||||
|
deviceState.push({code: this.deviceList[1].code, _type: this.deviceList[0]._type, hasSelected: 0});
|
||||||
|
}
|
||||||
|
this.$store.dispatch('training/updateMapState', deviceState);
|
||||||
|
this.deviceList = [];
|
||||||
|
this.menuSignal = null;
|
||||||
|
Handler.clear(); // 清空操作组
|
||||||
|
this.$store.dispatch('menuOperation/setButtonOperation', this.operation);
|
||||||
|
},
|
||||||
|
routeCommit(trainCode, duration) {
|
||||||
|
const operate = {over: true, cmdType: CMD.CTC.CTC_SET_ROUTE, param:{ tripNumber: trainCode || '', duration: duration >= 0 ? duration : null, force: false }};
|
||||||
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
// this.clearOperate();
|
this.clearOperate();
|
||||||
}).catch((error) => {
|
}).catch((e) => {
|
||||||
// this.clearOperate();
|
console.log(e, 'error');
|
||||||
console.error(error);
|
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
|
this.clearOperate();
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
commandOrders() {
|
||||||
|
if (this.operation === OperationEvent.Signal.arrangementRoute.button.operation) {
|
||||||
|
if (this.deviceList && this.deviceList[0] && this.deviceList[0].type === 'PICK') {
|
||||||
|
this.$refs.trainRoute.doShow(this.route);
|
||||||
|
} else if (this.deviceList && this.deviceList[0] && this.deviceList[0]._type === 'Signal') {
|
||||||
|
this.$refs.shuntRoute.doShow(this.route);
|
||||||
|
} else {
|
||||||
|
this.routeCommit();
|
||||||
|
}
|
||||||
|
} else if (this.operation === OperationEvent.MixinCommand.totalCancel.button.operation) {
|
||||||
|
const operate = {over: true, cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE};
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
this.clearOperate();
|
||||||
|
}).catch((e) => {
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
this.clearOperate();
|
||||||
|
});
|
||||||
|
} else if (this.operation === OperationEvent.Signal.reopenSignal.button.operation) {
|
||||||
|
const operate = {over: true, cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL};
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
this.clearOperate();
|
||||||
|
}).catch(() => {
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
this.clearOperate();
|
||||||
|
});
|
||||||
|
} else if (this.operation === OperationEvent.Signal.guide.button.operation) {
|
||||||
|
const operate = {over: true, cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE};
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
this.$store.dispatch('training/updateMapState', [{code: this.selected.code, _type: this.selected._type, hasSelected: 0}]);
|
||||||
|
this.clearOperate();
|
||||||
|
}).catch(() => {
|
||||||
|
this.$store.dispatch('training/updateMapState', [{code: this.selected.code, _type: this.selected._type, hasSelected: 0}]);
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
this.clearOperate();
|
||||||
|
});
|
||||||
|
} else if (this.operation === OperationEvent.Signal.humanTrainRoute.button.operation) {
|
||||||
|
const operate = {over: true, cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE};
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
}).catch((e) => {
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
}).finally(() => { this.clearOperate(); });
|
||||||
|
} else if (this.switchOperation.includes(this.operation)) {
|
||||||
|
const operate = {over:true, cmdType: this.cmdType};
|
||||||
|
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||||
|
}).catch(() => {
|
||||||
|
this.$refs.noticeInfo.doShow();
|
||||||
|
}).finally(() => { this.clearOperate(); });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
commandClear() {
|
||||||
|
this.clearOperate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -685,9 +799,15 @@
|
|||||||
float: left;
|
float: left;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
height: 35px;
|
height: 35px;
|
||||||
|
width: 45px;
|
||||||
|
background: #F0F0F0;
|
||||||
}
|
}
|
||||||
.menu {
|
.menu {
|
||||||
background-color: $bg;
|
background: -webkit-linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
background: -o-linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
background: -moz-linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
background: linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
width: 100%;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
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 { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||||
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
||||||
import { menuOperate, commitOperate } from '@/jmapNew/theme/components/utils/menuOperate';
|
import { menuOperate, commitOperate } from '@/jmapNew/theme/components/utils/menuOperate';
|
||||||
// import LoadSpareTrain from '@/jmapNew/theme/components/menus/dialog/loadSpareTrain';
|
|
||||||
import AddSpareTrain from './dialog/addSpareTrain';
|
import AddSpareTrain from './dialog/addSpareTrain';
|
||||||
|
|
||||||
import DrawSelect from './dialog/drawSelect';
|
import DrawSelect from './dialog/drawSelect';
|
||||||
@ -122,7 +121,8 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.menuOperation.menuCount': function (val) {
|
'$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);
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||||
} else {
|
} else {
|
||||||
this.doClose();
|
this.doClose();
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||||
<password-box ref="passwordBox" pop-class="chengdou-03__systerm" @checkOver="passWordCommit" />
|
<password-box ref="passwordBox" pop-class="chengdou-03__systerm" @checkOver="passWordCommit" />
|
||||||
<draw-select ref="drawSelect" />
|
<draw-select ref="drawSelect" />
|
||||||
|
<route-cancel ref="routeCancel" />
|
||||||
<set-fault ref="setFault" pop-class="chengdou-03__systerm" />
|
<set-fault ref="setFault" pop-class="chengdou-03__systerm" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -21,6 +22,7 @@ import RouteSelection from './dialog/routeSelection';
|
|||||||
import RouteDetail from './dialog/routeDetail';
|
import RouteDetail from './dialog/routeDetail';
|
||||||
import RouteHandControl from './dialog/routeHandControl';
|
import RouteHandControl from './dialog/routeHandControl';
|
||||||
import RouteGuide from './dialog/routeGuide';
|
import RouteGuide from './dialog/routeGuide';
|
||||||
|
import RouteCancel from './menuDialog/routeCancel';
|
||||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
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 PasswordBox from '@/jmapNew/theme/components/menus/childDialog/passwordInputBox';
|
||||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||||
import DrawSelect from './dialog/drawSelect';
|
import DrawSelect from './dialog/drawSelect';
|
||||||
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SignalMenu',
|
name: 'SignalMenu',
|
||||||
@ -42,7 +45,8 @@ export default {
|
|||||||
NoticeInfo,
|
NoticeInfo,
|
||||||
PasswordBox,
|
PasswordBox,
|
||||||
SetFault,
|
SetFault,
|
||||||
DrawSelect
|
DrawSelect,
|
||||||
|
RouteCancel
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
@ -57,49 +61,52 @@ export default {
|
|||||||
menu: [],
|
menu: [],
|
||||||
menuNormal: {
|
menuNormal: {
|
||||||
Local: [
|
Local: [
|
||||||
// {
|
{
|
||||||
// label: '图纸调用',
|
label: '办理 通过进路',
|
||||||
// handler: this.drawingCall
|
handler: this.arrangementRoute,
|
||||||
// },
|
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||||
// {
|
},
|
||||||
// label: '基础设备培训',
|
{
|
||||||
// handler: this.baDeTrCall
|
type: 'separator'
|
||||||
// }
|
},
|
||||||
// {
|
{
|
||||||
// label: '办理进路',
|
label: '列车 办理进路',
|
||||||
// handler: this.arrangementRoute,
|
handler: this.arrangementRoute,
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// label: '办理引导进路',
|
label: '取消进路',
|
||||||
// handler: this.guide,
|
handler: this.cancelTrainRoute,
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// label: '取消进路',
|
label: '信号重开',
|
||||||
// handler: this.cancelTrainRoute,
|
handler: this.reopenSignal,
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// label: '总人解', // 取消引导进路
|
label: '封锁/解封',
|
||||||
// handler: this.humanTrainRoute,
|
handler: '',
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
|
cmdType: ''
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// label: '进路收人工控',
|
label: '总人解',
|
||||||
// handler: this.humanControl,
|
handler: this.humanTrainRoute,
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// label: '进路交自动控',
|
type: 'separator'
|
||||||
// handler: this.atsAutoControl,
|
},
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
{
|
||||||
// },
|
label: '引导',
|
||||||
// {
|
handler: this.guide,
|
||||||
// label: '进路信息',
|
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
||||||
// handler: this.detail,
|
},
|
||||||
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
{
|
||||||
// }
|
label: '坡道解锁',
|
||||||
|
handler: '',
|
||||||
|
cmdType: ''
|
||||||
|
}
|
||||||
],
|
],
|
||||||
Center: [
|
Center: [
|
||||||
// {
|
// {
|
||||||
@ -190,7 +197,8 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.menuOperation.menuCount': function (val) {
|
'$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);
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||||
} else {
|
} else {
|
||||||
this.doClose();
|
this.doClose();
|
||||||
@ -262,7 +270,8 @@ export default {
|
|||||||
arrangementRoute() {
|
arrangementRoute() {
|
||||||
commitOperate(menuOperate.Signal.arrangementRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
commitOperate(menuOperate.Signal.arrangementRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||||
if (valid) {
|
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() {
|
guide() {
|
||||||
commitOperate(menuOperate.Signal.guide, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
commitOperate(menuOperate.Signal.guide, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||||
if (valid) {
|
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() {
|
cancelTrainRoute() {
|
||||||
commitOperate(menuOperate.Signal.cancelTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
commitOperate(menuOperate.Signal.cancelTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$refs.routeControl.doShow(operate, this.selected);
|
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -286,8 +296,7 @@ export default {
|
|||||||
humanTrainRoute() {
|
humanTrainRoute() {
|
||||||
commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
Object.assign(operate, {operation: OperationEvent.Signal.humanTrainRoute.button.operation });
|
this.$refs.routeCancel.doShow(operate, this.selected);
|
||||||
this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -295,10 +304,25 @@ export default {
|
|||||||
reopenSignal() {
|
reopenSignal() {
|
||||||
commitOperate(menuOperate.Signal.reopenSignal, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
commitOperate(menuOperate.Signal.reopenSignal, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||||
if (valid) {
|
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() {
|
lock() {
|
||||||
commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
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" />
|
<switch-hook-lock ref="switchHookLock" pop-class="chengdou-03__systerm" />
|
||||||
<set-fault ref="setFault" pop-class="datie-02__systerm" />
|
<set-fault ref="setFault" pop-class="datie-02__systerm" />
|
||||||
<draw-select ref="drawSelect" />
|
<draw-select ref="drawSelect" />
|
||||||
|
<route-cancel ref="routeCancel" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -23,6 +24,7 @@ import CancelMouseState from '@/mixin/CancelMouseState';
|
|||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
||||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||||
|
import RouteCancel from './menuDialog/routeCancel';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SwitchMenu',
|
name: 'SwitchMenu',
|
||||||
@ -33,7 +35,8 @@ export default {
|
|||||||
NoticeInfo,
|
NoticeInfo,
|
||||||
SetFault,
|
SetFault,
|
||||||
SwitchHookLock,
|
SwitchHookLock,
|
||||||
DrawSelect
|
DrawSelect,
|
||||||
|
RouteCancel
|
||||||
},
|
},
|
||||||
mixins: [
|
mixins: [
|
||||||
CancelMouseState
|
CancelMouseState
|
||||||
@ -51,14 +54,66 @@ export default {
|
|||||||
menu: [],
|
menu: [],
|
||||||
menuNormal: {
|
menuNormal: {
|
||||||
Local: [
|
Local: [
|
||||||
// {
|
{
|
||||||
// label: '图纸调用',
|
label: '定操',
|
||||||
// handler: this.drawingCall
|
handler: this.locate,
|
||||||
// },
|
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
|
||||||
// {
|
},
|
||||||
// label: '基础设备培训',
|
{
|
||||||
// handler: this.baDeTrCall
|
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: [
|
Center: [
|
||||||
// {
|
// {
|
||||||
@ -132,7 +187,7 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.menuOperation.menuCount': function (val) {
|
'$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);
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||||
} else {
|
} else {
|
||||||
this.doClose();
|
this.doClose();
|
||||||
@ -243,7 +298,8 @@ export default {
|
|||||||
locate() {
|
locate() {
|
||||||
commitOperate(menuOperate.Switch.locate, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
|
commitOperate(menuOperate.Switch.locate, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
|
||||||
if (valid) {
|
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() {
|
reverse() {
|
||||||
commitOperate(menuOperate.Switch.reverse, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
|
commitOperate(menuOperate.Switch.reverse, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
|
||||||
if (valid) {
|
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: {
|
watch: {
|
||||||
'$store.state.menuOperation.menuCount': function () {
|
'$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);
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||||
} else {
|
} else {
|
||||||
this.doClose();
|
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 {loginInfo, ProjectCode, localPackageProject} from '@/scripts/ProjectConfig';
|
||||||
import NProgress from 'nprogress';
|
import NProgress from 'nprogress';
|
||||||
import 'nprogress/nprogress.css';
|
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 { getBaseUrlByProject } from '@/api/projectServer';
|
||||||
import localStore from 'storejs';
|
import localStore from 'storejs';
|
||||||
import { handlerUrl } from '@/utils/baseUrl';
|
import { handlerUrl } from '@/utils/baseUrl';
|
||||||
@ -69,6 +69,10 @@ function handleRoute(to, next, loginPath) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
router.beforeEach( async (to, from, next) => {
|
router.beforeEach( async (to, from, next) => {
|
||||||
|
if (to.query.thirdJump) {
|
||||||
|
setToken(to.query.key);
|
||||||
|
setSessionStorage('project', to.query.project);
|
||||||
|
}
|
||||||
let project = '';
|
let project = '';
|
||||||
if (to.path.includes('login')) {
|
if (to.path.includes('login')) {
|
||||||
project = to.query.project;
|
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 DesignDisplayNew = () => import('@/views/newMap/displayNew/scriptDisplay/scriptPreview/index');
|
||||||
const PracticeDisplay = () => import('@/views/newMap/displayNew/practiceDisplay');
|
const PracticeDisplay = () => import('@/views/newMap/displayNew/practiceDisplay');
|
||||||
const BigLPFStrategy = () => import('@/views/newMap/displayNew/bigLPFStrategy');
|
const BigLPFStrategy = () => import('@/views/newMap/displayNew/bigLPFStrategy');
|
||||||
|
const BigTrainRunplanManage = () => import('@/views/bigTrainRunplanManage/index');
|
||||||
|
|
||||||
const JointTrainingNew = () => import('@/views/newMap/jointTrainingNew/index');
|
const JointTrainingNew = () => import('@/views/newMap/jointTrainingNew/index');
|
||||||
const jointTrainingNewCCTV = () => import('@/views/newMap/jointTrainingNew/realCCTV');
|
const jointTrainingNewCCTV = () => import('@/views/newMap/jointTrainingNew/realCCTV');
|
||||||
@ -680,7 +681,14 @@ export const publicAsyncRoute = [
|
|||||||
hidden: true
|
hidden: true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
// 大铁项目 管理终端
|
||||||
|
path: '/bigTrainRunplanManage',
|
||||||
|
component: BigTrainRunplanManage,
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
|
||||||
];
|
];
|
||||||
// 城市轨道项目
|
// 城市轨道项目
|
||||||
export const asyncRouter = [
|
export const asyncRouter = [
|
||||||
|
@ -17,11 +17,13 @@ import FaviconSdy from '@/assets/icon/favicon_jdy.png';
|
|||||||
import FaviconCgy from '@/assets/icon/favicon_cgy.png';
|
import FaviconCgy from '@/assets/icon/favicon_cgy.png';
|
||||||
import FaviconRichor from '@/assets/icon/favicon_richor.png';
|
import FaviconRichor from '@/assets/icon/favicon_richor.png';
|
||||||
import FaviconZzww from '@/assets/icon/favicon_zzww.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 FaviconSay from '@/assets/icon/favicon_say.png';
|
||||||
import Link_Bxkc from '@/assets/icon/link_bxkc.png';
|
import Link_Bxkc from '@/assets/icon/link_bxkc.png';
|
||||||
import Link_Crsc from '@/assets/icon/link_crsc.png';
|
import Link_Crsc from '@/assets/icon/link_crsc.png';
|
||||||
import Link_Hls from '@/assets/icon/link_hls.png';
|
import Link_Hls from '@/assets/icon/link_hls.png';
|
||||||
import Link_Bjd from '@/assets/icon/link_bjd.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';
|
import TransparentIcon from '@/assets/icon/transparent.png';
|
||||||
|
|
||||||
// title:页面title; loginPath:退出登录跳转路径; loginParam:登录接口参数project;loginTitle:登录页左上角title;logoWidth:登录页左上角logo宽度;
|
// title:页面title; loginPath:退出登录跳转路径; loginParam:登录接口参数project;loginTitle:登录页左上角title;logoWidth:登录页左上角logo宽度;
|
||||||
@ -569,6 +571,30 @@ export const loginInfo = {
|
|||||||
navigationMarginLeft: '60px',
|
navigationMarginLeft: '60px',
|
||||||
systemType: '011'
|
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: {
|
designjxgm: {
|
||||||
title: '江西工业贸易职业技术学院城市轨道交通设计平台',
|
title: '江西工业贸易职业技术学院城市轨道交通设计平台',
|
||||||
loginPath: '/design/login?project=jxgm',
|
loginPath: '/design/login?project=jxgm',
|
||||||
@ -622,6 +648,30 @@ export const loginInfo = {
|
|||||||
navigationLogoWidth: '40px',
|
navigationLogoWidth: '40px',
|
||||||
navigationMarginLeft: '60px',
|
navigationMarginLeft: '60px',
|
||||||
systemType: '026'
|
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,
|
richorygy: FaviconRichor,
|
||||||
designrichorygy: FaviconRichor,
|
designrichorygy: FaviconRichor,
|
||||||
say: FaviconSay,
|
say: FaviconSay,
|
||||||
designsay: FaviconSay
|
designsay: FaviconSay,
|
||||||
|
unittecsty: FaviconUnittec,
|
||||||
|
designunittecsty: FaviconUnittec
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ProjectCode = {
|
export const ProjectCode = {
|
||||||
@ -731,18 +783,20 @@ export const ProjectCode = {
|
|||||||
say: 'SAY',
|
say: 'SAY',
|
||||||
designsay: 'SAY',
|
designsay: 'SAY',
|
||||||
xzexam:'SAY',
|
xzexam:'SAY',
|
||||||
|
unittecsty: 'UNITTEC_STY',
|
||||||
|
designunittecsty: 'UNITTEC_STY'
|
||||||
};
|
};
|
||||||
/** 嵌入第三方平台 导航栏右上角 清空 */
|
/** 嵌入第三方平台 导航栏右上角 清空 */
|
||||||
export const ThirdLoginList = ['richor', 'designrichor', 'richorygy', 'designrichorygy'];
|
export const ThirdLoginList = ['richor', 'designrichor', 'richorygy', 'designrichorygy'];
|
||||||
/** 底部栏仅展示公司信息不展示备案号 */
|
/** 底部栏仅展示公司信息不展示备案号 */
|
||||||
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls',
|
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',
|
'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo', 'richorygy',
|
||||||
'designrichorygy'];
|
'designrichorygy', 'unittecsty', 'designunittecsty'];
|
||||||
/** 实训设计平台通过项目code获取地图列表的项目 */
|
/** 实训设计平台通过项目code获取地图列表的项目 */
|
||||||
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls',
|
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',
|
'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',
|
'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'];
|
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',
|
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',
|
'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 登录输入框上方 大字体 加粗居中 */
|
/** 登录页项目 title 登录输入框上方 大字体 加粗居中 */
|
||||||
export const ProjectLoginStyleList = ['gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc',
|
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',
|
'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',
|
'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'];
|
export const NoQrcodeList = ['heb', 'designheb', 'cgy', 'designcgy', 'ntyl', 'designntyl'];
|
||||||
/** 综合演练 无二维码 */
|
/** 综合演练 无二维码 */
|
||||||
@ -811,7 +865,9 @@ export const goOtherPlatformMenu = {
|
|||||||
jxgm: '/design/login?project=jxgm',
|
jxgm: '/design/login?project=jxgm',
|
||||||
designjxgm: '/login?project=jxgm',
|
designjxgm: '/login?project=jxgm',
|
||||||
say: '/design/login?project=say',
|
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 = [
|
export const ProjectList = [
|
||||||
{value:'xty', label:'西铁院'},
|
{value:'xty', label:'西铁院'},
|
||||||
@ -836,7 +892,8 @@ export const ProjectList = [
|
|||||||
{value: 'sr_sandbox', label: '上饶沙盘'},
|
{value: 'sr_sandbox', label: '上饶沙盘'},
|
||||||
{value: 'jxgm', label: '江西工贸' },
|
{value: 'jxgm', label: '江西工贸' },
|
||||||
{value: 'richor_ygy', label: '扬州工业'},
|
{value: 'richor_ygy', label: '扬州工业'},
|
||||||
{value: 'say', label: '苏安院'}
|
{value: 'say', label: '苏安院'},
|
||||||
|
{value: 'unittec_sty', label: '众合-陕铁院'}
|
||||||
];
|
];
|
||||||
/** 本地项目打包 */
|
/** 本地项目打包 */
|
||||||
export const localPackageProject = {
|
export const localPackageProject = {
|
||||||
|
@ -379,8 +379,14 @@ export default {
|
|||||||
CMD_DIRECTION_CHANGE: {value: 'Direction_Change', label: '切换方向'}
|
CMD_DIRECTION_CHANGE: {value: 'Direction_Change', label: '切换方向'}
|
||||||
},
|
},
|
||||||
CTC: {
|
CTC: {
|
||||||
CTC_RECEIVING_NOTICE: {value: 'CTC_RECEIVING_NOTICE', label: '接预'},
|
CTC_FINISH_RECEIVING_NOTICE: {value: 'CTC_FINISH_RECEIVING_NOTICE', label: '完成接预'},
|
||||||
CTC_DEPARTURE_NOTICE: {value: 'CTC_DEPARTURE_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_ASSIST_PRESS_DOWN_TURN_DIRECTION:{value:'ASSIST_PRESS_DOWN_TURN_DIRECTION', label:'改方'},
|
||||||
CTC_AUTO_TRIGGER: {value: 'CTC_AUTO_TRIGGER', label: '自动触发'},
|
CTC_AUTO_TRIGGER: {value: 'CTC_AUTO_TRIGGER', label: '自动触发'},
|
||||||
CTC_ASSIST_PRESS_MAIN_ASSIST:{value: 'ASSIST_PRESS_MAIN_ASSIST', 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_DELIVER_ASSIST:{value: 'ASSIST_PRESS_DELIVER_ASSIST', label: '发辅助'},
|
||||||
CTC_ASSIST_PRESS_BLOCK:{value: 'ASSIST_PRESS_BLOCK', label: '阻塞'},
|
CTC_ASSIST_PRESS_BLOCK:{value: 'ASSIST_PRESS_BLOCK', label: '阻塞'},
|
||||||
CTC_ASSIST_PRESS_RESTORE:{value: 'ASSIST_PRESS_RESTORE', 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办理进路'}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -3666,8 +3666,126 @@ export const OperationEvent = {
|
|||||||
operation: '1109',
|
operation: '1109',
|
||||||
domId: '_Tips-CTC-AssistPressAccident-Menu{TOP}'
|
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 store from '@/store/index';
|
||||||
|
import { copyAssign } from '@/utils/index';
|
||||||
import { Notification } from 'element-ui';
|
import { Notification } from 'element-ui';
|
||||||
|
|
||||||
function handleSockInfo(state, msg, type) {
|
function handleSockInfo(state, msg, type) {
|
||||||
@ -201,8 +202,72 @@ function handle(state, data) {
|
|||||||
case 'Simulation_RailCtcStatus':
|
case 'Simulation_RailCtcStatus':
|
||||||
state.railCtcStatusMsg = msg;
|
state.railCtcStatusMsg = msg;
|
||||||
break;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 操作聊天信息
|
// 操作聊天信息
|
||||||
@ -353,6 +418,10 @@ const socket = {
|
|||||||
simulationPlanChange:{}, // 运行图加线/抽线/变化推送消息
|
simulationPlanChange:{}, // 运行图加线/抽线/变化推送消息
|
||||||
loggedOutMsg: '',
|
loggedOutMsg: '',
|
||||||
railCtcStatusMsg: {}, // 占线板信息
|
railCtcStatusMsg: {}, // 占线板信息
|
||||||
|
railCtcRunplanInitMsg:{}, // 大铁项目 ctc 运行图初始化信息
|
||||||
|
railCtcRunplanChange:0, // 大铁项目 ctc 运行图信息变化
|
||||||
|
railCtcStationManageRpMsg:{}, // 大铁项目 ctc 车务管理 端运行图信息
|
||||||
|
railCtcStationManageRpChange:0 // 大铁项目 ctc 车务管理 运行图信息变化
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
},
|
},
|
||||||
|
@ -24,7 +24,7 @@ export function handlerUrl(data) {
|
|||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
// const data = null;
|
// const data = null;
|
||||||
// BASE_API = 'https://joylink.club/jlcloud';
|
// 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://114.116.51.125/jlcloud';
|
||||||
// BASE_API = 'http://192.168.8.152:9000'; // 袁琪
|
// BASE_API = 'http://192.168.8.152:9000'; // 袁琪
|
||||||
// BASE_API = 'http://192.168.8.172:9200'; // 旭强
|
// 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://192.168.3.37:9000'; // 卫志宏
|
||||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||||
// BASE_API = 'http://2925963m2a.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 ? 'https://' + data.domainName : BASE_API;
|
||||||
BASE_API = data && data.domainName ? 'http://' + 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';
|
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 };
|
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) {
|
// export function deepAssign(obj, item) {
|
||||||
// function * colneData(item) {
|
// function * colneData(item) {
|
||||||
// for (const keys in item) {
|
// for (const keys in item) {
|
||||||
|
@ -31,7 +31,15 @@ export function getTopic(type, group, stationCode) {
|
|||||||
case 'ISCSPIS':
|
case 'ISCSPIS':
|
||||||
topic = `/queue/simulation/${group}/iscs/pis`;
|
topic = `/queue/simulation/${group}/iscs/pis`;
|
||||||
break;
|
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;
|
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-form-item :label="this.$t('ibp.yCoordinate')">
|
||||||
<el-input-number v-model="form.y" controls-position="right" :min="1" />
|
<el-input-number v-model="form.y" controls-position="right" :min="1" />
|
||||||
</el-form-item>
|
</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-form-item label="方向">
|
||||||
<el-select v-model="form.direction" placeholder="请选择">
|
<el-select v-model="form.direction" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
@ -50,6 +60,7 @@ export default {
|
|||||||
x: 10,
|
x: 10,
|
||||||
y: 10,
|
y: 10,
|
||||||
direction: null,
|
direction: null,
|
||||||
|
mean: ''
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
code: [
|
code: [
|
||||||
@ -64,6 +75,10 @@ export default {
|
|||||||
{ name: '上行', value: true},
|
{ name: '上行', value: true},
|
||||||
{ name: '下行', value: false},
|
{ name: '下行', value: false},
|
||||||
],
|
],
|
||||||
|
showMeanList: [
|
||||||
|
{label: '信号-蜂鸣器', value: 'SIGNAL_ALARM'},
|
||||||
|
{label: '屏蔽门-蜂鸣器', value: 'PSD_ALARM'}
|
||||||
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -80,6 +95,7 @@ export default {
|
|||||||
this.form.alarmWidth = model.width;
|
this.form.alarmWidth = model.width;
|
||||||
this.form.x = model.point.x;
|
this.form.x = model.point.x;
|
||||||
this.form.y = model.point.y;
|
this.form.y = model.point.y;
|
||||||
|
this.form.mean = model.mean;
|
||||||
this.form.direction = model.direction
|
this.form.direction = model.direction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -96,6 +112,7 @@ export default {
|
|||||||
y: this.form.y
|
y: this.form.y
|
||||||
},
|
},
|
||||||
code: this.form.code,
|
code: this.form.code,
|
||||||
|
mean: this.form.mean,
|
||||||
_type: 'Alarm',
|
_type: 'Alarm',
|
||||||
width: this.form.alarmWidth,
|
width: this.form.alarmWidth,
|
||||||
direction: this.form.direction
|
direction: this.form.direction
|
||||||
@ -115,6 +132,7 @@ export default {
|
|||||||
},
|
},
|
||||||
code: this.form.code,
|
code: this.form.code,
|
||||||
_type: 'Alarm',
|
_type: 'Alarm',
|
||||||
|
mean: this.form.mean,
|
||||||
width: this.form.alarmWidth,
|
width: this.form.alarmWidth,
|
||||||
direction: this.form.direction
|
direction: this.form.direction
|
||||||
};
|
};
|
||||||
@ -130,6 +148,7 @@ export default {
|
|||||||
alarmWidth: '',
|
alarmWidth: '',
|
||||||
x: 10,
|
x: 10,
|
||||||
y: 10,
|
y: 10,
|
||||||
|
mean: '',
|
||||||
direction: null
|
direction: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -100,7 +100,9 @@ export default {
|
|||||||
{ label: "计轴复位", value: "AXLE_RESET" },
|
{ label: "计轴复位", value: "AXLE_RESET" },
|
||||||
{ label: "计轴区段复位", value: "AXLE_PRE_RESET" },
|
{ label: "计轴区段复位", value: "AXLE_PRE_RESET" },
|
||||||
{ label: "计轴预复位", value: "PRERESET_Z" },
|
{ label: "计轴预复位", value: "PRERESET_Z" },
|
||||||
{ label: "试灯", value: "SD" }
|
{ label: "试灯", value: "SD" },
|
||||||
|
{ label: "首末开门", value: 'PSD_SMKM' },
|
||||||
|
{ label: "屏蔽门试灯", value: 'PSD_SD' }
|
||||||
],
|
],
|
||||||
colors: ["red", "yellow", "blue", "green", "gray"],
|
colors: ["red", "yellow", "blue", "green", "gray"],
|
||||||
operateWithoutDirections: ["AXLE_RESET", "AXLE_PRE_RESET", "PRERESET_Z", "SD"],
|
operateWithoutDirections: ["AXLE_RESET", "AXLE_PRE_RESET", "PRERESET_Z", "SD"],
|
||||||
|
@ -71,7 +71,8 @@ export default {
|
|||||||
},
|
},
|
||||||
operateMeanList: [
|
operateMeanList: [
|
||||||
{ label: '上行钥匙', value: 'SXYS' },
|
{ label: '上行钥匙', value: 'SXYS' },
|
||||||
{ label: '下行钥匙', value: 'XXYS' }
|
{ label: '下行钥匙', value: 'XXYS' },
|
||||||
|
{ label: '互锁解除', value: 'PSD_HSJC' }
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
code: [
|
code: [
|
||||||
|
@ -59,6 +59,10 @@ export default {
|
|||||||
{label: '关门灯', value: 'gmLight'},
|
{label: '关门灯', value: 'gmLight'},
|
||||||
{label: '开门灯', value: 'kmLight'},
|
{label: '开门灯', value: 'kmLight'},
|
||||||
{label: '紧急停车灯', value: 'jjtcLight'},
|
{label: '紧急停车灯', value: 'jjtcLight'},
|
||||||
|
{label: '操作允许灯', value: 'PSD_CZYX_LIGHT'},
|
||||||
|
{label: '互锁解除灯', value: 'PSD_HSJC_LIGHT'},
|
||||||
|
{label: '手动操作灯', value: 'PSD_SDCZ_LIGHT'},
|
||||||
|
{label: '故障报警灯', value: 'PSD_GZBJ_LIGHT'}
|
||||||
],
|
],
|
||||||
form: {
|
form: {
|
||||||
code: '',
|
code: '',
|
||||||
|
@ -159,7 +159,7 @@ export default {
|
|||||||
{label: '交流输出电压', value: 'acOutputVoltage'},
|
{label: '交流输出电压', value: 'acOutputVoltage'},
|
||||||
{label: '直流电压信号', value: 'dcVoltageSignal'}
|
{label: '直流电压信号', value: 'dcVoltageSignal'}
|
||||||
];
|
];
|
||||||
} else if (this.$router.query.lineCode === '01') {
|
} else if (this.$route.query.lineCode === '01') {
|
||||||
return [
|
return [
|
||||||
{label: 'ibp操作允许上行', value: 'ibpOperationAllowsUp'},
|
{label: 'ibp操作允许上行', value: 'ibpOperationAllowsUp'},
|
||||||
{label: 'ibp操作允许下行', value: 'ibpOperationAllowsDown'},
|
{label: 'ibp操作允许下行', value: 'ibpOperationAllowsDown'},
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="!syncLogin" class="content-box" :style="noQrcodeList.includes(project)?'width: 450px;':''">
|
<div v-if="!syncLogin" class="content-box" :style="noQrcodeList.includes(project)?'width: 450px;':''">
|
||||||
<div v-if="isProject && !syncLogin" class="text-box" :style="{top: titleDistance}">
|
<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>
|
<span>{{ title }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!noQrcodeList.includes(project)" class="qrcode-main">
|
<div v-if="!noQrcodeList.includes(project)" class="qrcode-main">
|
||||||
@ -245,6 +245,9 @@ export default {
|
|||||||
titleDistance() {
|
titleDistance() {
|
||||||
return loginInfo[this.project].titleDistance || '-60px';
|
return loginInfo[this.project].titleDistance || '-60px';
|
||||||
},
|
},
|
||||||
|
titleImgWidth() {
|
||||||
|
return loginInfo[this.project].titleImgWidth || '80px';
|
||||||
|
},
|
||||||
logoImg() {
|
logoImg() {
|
||||||
const projectName = this.project;
|
const projectName = this.project;
|
||||||
return ProjectIcon[projectName];
|
return ProjectIcon[projectName];
|
||||||
|
@ -10,18 +10,18 @@
|
|||||||
top="25vh"
|
top="25vh"
|
||||||
>
|
>
|
||||||
<el-form ref="ruleForm" :model="form" :rules="rules" label-width="110px" class="demo-ruleForm">
|
<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">
|
<el-form-item prop="nickname">
|
||||||
<template slot="label">
|
<template slot="label">
|
||||||
<span>昵  称:</span>
|
<span>昵  称:</span>
|
||||||
</template>
|
</template>
|
||||||
<el-input v-model="form.nickname" autocomplete="new-password" />
|
<el-input v-model="form.nickname" autocomplete="new-password" />
|
||||||
</el-form-item>
|
</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">
|
<el-form-item label="密码:" prop="password">
|
||||||
<template slot="label">
|
<template slot="label">
|
||||||
<span>密  码:</span>
|
<span>密  码:</span>
|
||||||
|
@ -3,28 +3,48 @@
|
|||||||
title="车站股道图"
|
title="车站股道图"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="99%"
|
width="99%"
|
||||||
|
z-index="3000"
|
||||||
top="5vh"
|
top="5vh"
|
||||||
class="lineBoard"
|
class="lineBoard"
|
||||||
center
|
center
|
||||||
:before-close="handleClose">
|
:before-close="handleClose"
|
||||||
|
>
|
||||||
<div style="height: 500px; overflow-y: auto;background: #DFE3E6;padding: 7px;">
|
<div style="height: 500px; overflow-y: auto;background: #DFE3E6;padding: 7px;">
|
||||||
<div style="width: 100%;display: flex;align-items: center;margin-bottom: 10px;">
|
<div style="width: 100%;display: flex;align-items: center;margin-bottom: 10px;">
|
||||||
<div
|
<div
|
||||||
:key="item.code"
|
|
||||||
v-for="item in stationList"
|
v-for="item in stationList"
|
||||||
|
:key="item.code"
|
||||||
class="tab-box"
|
class="tab-box"
|
||||||
|
:style="{background: selectCode === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode === item.code ? '#000': '#ccc'}"
|
||||||
@click="selectStandCode(item.code)"
|
@click="selectStandCode(item.code)"
|
||||||
:style="{background: selectCode === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode === item.code ? '#000': '#ccc'}">
|
>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</div>
|
</div>
|
||||||
</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 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;"
|
<!--<div
|
||||||
:style="{borderColor: item.occupied ? '#f00': '#DFE3E6', fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00':'#1e2024' }">{{item.trackName}}</div>
|
style="padding: 5px 20px;border-radius: 5px;border-width: 2px;border-style: solid;width: 120px;"
|
||||||
<div>{{item.tripNumber}}</div>
|
:style="{borderColor: item.occupied ? '#f00': '#DFE3E6', fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00':'#1e2024' }"
|
||||||
<div style="background: #FFCBEC;border: 1px solid #315FD1;border-radius: 3px;font-size: 10px;">{{ item.trainType?'客':'' }}</div>
|
>{{ item.trackName }}</div>-->
|
||||||
<div>{{item.trainDistanceInfo}}</div>
|
<div style="width: 150px;display: flex;">
|
||||||
<div>
|
<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-select v-model="item.process" placeholder="请选择" size="mini" style="width: 120px;" :disabled="true">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="elem in sectionStatusList"
|
v-for="elem in sectionStatusList"
|
||||||
@ -34,60 +54,96 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex;">
|
<div v-show="!item.noData" style="display: flex;width: 300px;">
|
||||||
<div :style="{ background: item.receivingNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'rec')">接预</div>
|
<div v-show="item.receivingRouteCode" :style="{ background: item.receivingNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'rec')">接预</div>
|
||||||
<div
|
<div
|
||||||
|
v-show="item.receivingRouteCode"
|
||||||
class="button-box-sec"
|
class="button-box-sec"
|
||||||
:style="{ background: handleBackground(item.receivingRouteLock, item.receivingRouteAutoTrigger) }"
|
:style="{ background: handleBackground(item.receivingRouteLock, item.receivingRouteAutoTrigger) }"
|
||||||
@contextmenu="popMenuShow(item, 'rec' ,$event)"
|
@contextmenu="popMenuShow(item, 'rec' ,$event)"
|
||||||
@click="doShowRoute(item, 'rec')">
|
@click="doShowRoute(item, 'rec')"
|
||||||
|
>
|
||||||
{{ '接路' + (item.receivingRouteLock ? '':getRouteName(item.receivingRouteCode)) }}
|
{{ '接路' + (item.receivingRouteLock ? '':getRouteName(item.receivingRouteCode)) }}
|
||||||
</div>
|
</div>
|
||||||
<div :style="{ background: item.arrive ? '#29CA42': '#ccc' }" class="button-box-fir" style="margin-left: 10px;cursor: default;">到点</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>
|
||||||
<div>
|
<div v-show="!item.noData" style="width: 120px;color: #f00;">
|
||||||
<div>{{item.arriveTime}}</div>
|
<el-row><div>{{ item.arriveTime || '-' }}</div></el-row>
|
||||||
<div>{{item.departureTime}}</div>
|
<el-row><div>{{ item.departureTime|| '-' }}</div></el-row>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-show="!item.noData" style="width: 120px;color: #f00;font-style:italic;">
|
||||||
<div>{{ item.planArriveTime }}</div>
|
<el-row><div>{{ item.planArriveTime|| '-' }}</div></el-row>
|
||||||
<div>{{ item.planDepartureTime }}</div>
|
<el-row><div>{{ item.planDepartureTime || '-' }}</div></el-row>
|
||||||
</div>
|
</div>
|
||||||
<div></div><!--起点--终点-->
|
<div v-show="!item.noData" style="width: 150px;color: #f00;">
|
||||||
<div style="display: flex;">
|
<el-row>{{ item.receivingDirection||'-' }}</el-row>
|
||||||
<div :style="{ background: item.departureNotice ? '#29CA42': '#ccc' }" class="button-box-fir" @click="doShowRecDep(item,'dep')">发预</div>
|
<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
|
<div
|
||||||
|
v-show="item.departureRouteCode"
|
||||||
class="button-box-sec"
|
class="button-box-sec"
|
||||||
:style="{ background: handleBackground(item.departureRouteLock, item.departureRouteAutoTrigger) }"
|
:style="{ background: handleBackground(item.departureRouteLock, item.departureRouteAutoTrigger) }"
|
||||||
@contextmenu="popMenuShow(item, 'dep' ,$event)"
|
@contextmenu="popMenuShow(item, 'dep' ,$event)"
|
||||||
@click="doShowRoute(item, 'dep')">
|
@click="doShowRoute(item, 'dep')"
|
||||||
|
>
|
||||||
{{ '发路' + (item.departureRouteLock ? '':getRouteName(item.departureRouteCode)) }}
|
{{ '发路' + (item.departureRouteLock ? '':getRouteName(item.departureRouteCode)) }}
|
||||||
</div>
|
</div>
|
||||||
<div :style="{ background: item.departure ? '#29CA42': '#ccc' }" class="button-box-fir" style="margin-left: 10px;cursor: default;">发点</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>{{ item.tripNumber }}</div>
|
|
||||||
<div :style="{fontWeight: item.occupied? 'bold': 'normal', color:item.occupied? '#f00': '#1e2024' }">{{ item.trackName }}</div>
|
|
||||||
</div>
|
</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="display: flex;margin-top: 5px;justify-content: space-around;background: #DEE2E5;">
|
||||||
<div style="width: 49%;margin-top: 10px;">
|
<div style="width: 49%;margin-top: 10px;">
|
||||||
<div style="display: flex;align-items: center;">
|
<div style="display: flex;align-items: center;">
|
||||||
<div style="background: #0f0;">{{ `进路序列模式:<${readOnly ? '只读':'可修改'}>` }}</div>
|
<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;" 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-button size="mini" style="padding: 7px 4px;margin-left: 30px;">查找列车</el-button>
|
||||||
<el-input style="width: 70px;height: 25px;" size="mini" v-model="searchTrain" />
|
<el-input v-model="searchTrain" style="width: 70px;height: 25px;" size="mini" />
|
||||||
<div style="margin-left: 10px;">上下行</div>
|
<div style="margin-left: 10px;">上下行</div>
|
||||||
<el-select size="mini" v-model="andDown" style="width: 80px;margin-left: 5px;">
|
<el-select v-model="andDown" size="mini" style="width: 80px;margin-left: 5px;">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in andDownList"
|
v-for="item in andDownList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -96,7 +152,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<div style="margin-left: 10px;">接车口</div>
|
<div style="margin-left: 10px;">接车口</div>
|
||||||
<el-select size="mini" v-model="andDown" style="width: 100px;margin-left: 5px;" disabled>
|
<el-select v-model="andDown" size="mini" style="width: 100px;margin-left: 5px;" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in andDownList"
|
v-for="item in andDownList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -105,7 +161,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<div style="margin-left: 10px;">发车口</div>
|
<div style="margin-left: 10px;">发车口</div>
|
||||||
<el-select size="mini" v-model="andDown" style="width: 100px;margin-left: 5px;" disabled>
|
<el-select v-model="andDown" size="mini" style="width: 100px;margin-left: 5px;" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in andDownList"
|
v-for="item in andDownList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -115,11 +171,12 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
:data="tableData"
|
:data="sequenceList"
|
||||||
style="width: 100%;margin-top: 10px;"
|
style="width: 100%;margin-top: 10px;"
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
:row-style="{ background: '#ff0' }"
|
:row-style="{ background: '#ff0' }"
|
||||||
height="180"
|
height="180"
|
||||||
|
:default-sort="{prop: 'startTime', order: 'ascending'}"
|
||||||
border
|
border
|
||||||
>
|
>
|
||||||
<el-table-column width="50" label="序号" align="center">
|
<el-table-column width="50" label="序号" align="center">
|
||||||
@ -136,8 +193,16 @@
|
|||||||
<div style="width: 100%;height: 22px;" @contextmenu="popMenuShow(scope.row, '' ,$event)">{{ scope.row.autoTrigger? '√':'' }}</div>
|
<div style="width: 100%;height: 22px;" @contextmenu="popMenuShow(scope.row, '' ,$event)">{{ scope.row.autoTrigger? '√':'' }}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column property="type" label="类型"/>
|
<el-table-column property="departure" label="类型">
|
||||||
<el-table-column property="status" 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="startTime" label="开始时间" />
|
||||||
<el-table-column property="planTime" label="计划时间" />
|
<el-table-column property="planTime" label="计划时间" />
|
||||||
<el-table-column property="direction" label="方向" />
|
<el-table-column property="direction" label="方向" />
|
||||||
@ -149,18 +214,19 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<div style="width: 100%;display: flex;align-items: center;margin: 5px 0;">
|
<div style="width: 100%;display: flex;align-items: center;margin: 5px 0;">
|
||||||
<div
|
<div
|
||||||
:key="item.code"
|
|
||||||
v-for="item in stationList"
|
v-for="item in stationList"
|
||||||
|
:key="item.code"
|
||||||
class="tab-box"
|
class="tab-box"
|
||||||
|
:style="{background: selectCode1 === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode1 === item.code ? '#000': '#ccc'}"
|
||||||
@click="selectStandCode1(item.code)"
|
@click="selectStandCode1(item.code)"
|
||||||
:style="{background: selectCode1 === item.code ? '#F1F1F1': '#DBDBDB', color: selectCode1 === item.code ? '#000': '#ccc'}">
|
>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 49%;margin-top: 10px;">
|
<div style="width: 49%;margin-top: 10px;">
|
||||||
<div style="display: flex;align-items: center;">
|
<div style="display: flex;align-items: center;">
|
||||||
<el-select size="mini" v-model="unknow" disabled>
|
<el-select v-model="unknow" size="mini" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in unknowList"
|
v-for="item in unknowList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -170,7 +236,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
<div>调机-J101</div>
|
<div>调机-J101</div>
|
||||||
<el-button size="mini" disabled>进路预览</el-button>
|
<el-button size="mini" disabled>进路预览</el-button>
|
||||||
<el-select size="mini" v-model="unknow1" disabled>
|
<el-select v-model="unknow1" size="mini" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in unknowList1"
|
v-for="item in unknowList1"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -213,16 +279,18 @@
|
|||||||
import PicT3 from '@/assets/datie/picT3.png';
|
import PicT3 from '@/assets/datie/picT3.png';
|
||||||
import ControlPanelPic from '@/assets/datie/controlPanel.png';
|
import ControlPanelPic from '@/assets/datie/controlPanel.png';
|
||||||
import ControlPanel2Pic from '@/assets/datie/controlPanel2.png';
|
import ControlPanel2Pic from '@/assets/datie/controlPanel2.png';
|
||||||
import TrainPic from '@/assets/datie/train.png';
|
import RecDep from '@/jmapNew/theme/datie_02/menus/dialog/recDep';
|
||||||
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 RouteSelection from '@/jmapNew/theme/datie_02/menus/dialog/routeSelection1';
|
||||||
import PopMenu from '@/components/PopMenu';
|
import PopMenu from '@/components/PopMenu';
|
||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
|
||||||
import { menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
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 {
|
export default {
|
||||||
name: 'lineBoard',
|
name: 'LineBoard',
|
||||||
components: {
|
components: {
|
||||||
RecDep,
|
RecDep,
|
||||||
RouteSelection,
|
RouteSelection,
|
||||||
@ -231,23 +299,24 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
menu: [{label: '设置自触', handler: this.setTrigger, disabled: false}, {label: '取消自触', handler: this.cancelTrigger, disabled: false}],
|
menu: [{label: '设置自触', handler: this.setTrigger, disabled: false}, {label: '取消自触', handler: this.cancelTrigger, disabled: false}],
|
||||||
dialogVisible: false,
|
dialogVisible: true,
|
||||||
triggerParam: {},
|
triggerParam: {},
|
||||||
selectCode: '',
|
selectCode: '',
|
||||||
selectCode1: '',
|
selectCode1: '',
|
||||||
readOnly: '',
|
|
||||||
arrowPic: ArrowPic,
|
arrowPic: ArrowPic,
|
||||||
picT3: PicT3,
|
picT3: PicT3,
|
||||||
controlPanelPic: ControlPanelPic,
|
controlPanelPic: ControlPanelPic,
|
||||||
trainPic: TrainPic,
|
|
||||||
controlPanel2Pic: ControlPanel2Pic,
|
controlPanel2Pic: ControlPanel2Pic,
|
||||||
|
t3Pic: T3Pic,
|
||||||
|
panelPic: PanelPic,
|
||||||
|
trainPic: TrainPic,
|
||||||
linkPic: LinkPic,
|
linkPic: LinkPic,
|
||||||
cameraPic: CameraPic,
|
cameraPic: CameraPic,
|
||||||
|
unknowPic: UnknowPic,
|
||||||
searchTrain: '',
|
searchTrain: '',
|
||||||
andDown: 'all',
|
andDown: 'all',
|
||||||
unknow: '',
|
unknow: '',
|
||||||
unknow1: '',
|
unknow1: '',
|
||||||
tableData: [],
|
|
||||||
tableData1: [],
|
tableData1: [],
|
||||||
unknowList1: [{label: '全部机车', value: 'all'}],
|
unknowList1: [{label: '全部机车', value: 'all'}],
|
||||||
unknowList: [{label: 'J101-执行中', value: 'J101'}],
|
unknowList: [{label: 'J101-执行中', value: 'J101'}],
|
||||||
@ -263,8 +332,12 @@
|
|||||||
{label: '流程终止', value: 'FINISH'}
|
{label: '流程终止', value: 'FINISH'}
|
||||||
],
|
],
|
||||||
stationDataMap: {},
|
stationDataMap: {},
|
||||||
infoList : []
|
sequenceMap: {},
|
||||||
}
|
sequenceList: [],
|
||||||
|
readOnlyMap: {},
|
||||||
|
standTrackSectionMap: {},
|
||||||
|
trackList: []
|
||||||
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters('map', [
|
...mapGetters('map', [
|
||||||
@ -276,15 +349,64 @@
|
|||||||
'$store.state.socket.railCtcStatusMsg': function (val) {
|
'$store.state.socket.railCtcStatusMsg': function (val) {
|
||||||
if (val && val.length) {
|
if (val && val.length) {
|
||||||
val.forEach(item => {
|
val.forEach(item => {
|
||||||
if (item) {
|
if (item && item.routeSequence && item.routeSequence.lines && item.routeSequence.lines.length) {
|
||||||
this.stationDataMap[item.stationCode] = { trackView: item.trackView, routeSequence: item.routeSequence };
|
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.infoList = this.stationDataMap[this.selectCode] ? this.stationDataMap[this.selectCode].trackView.lines: [];
|
this.readOnlyMap[item.stationCode] = item.readOnly;
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
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: {
|
methods: {
|
||||||
handleClose() {
|
handleClose() {
|
||||||
@ -292,26 +414,53 @@
|
|||||||
},
|
},
|
||||||
doShow() {
|
doShow() {
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true;
|
||||||
this.selectCode = this.stationList[0].code;
|
if (this.stationList[0]) {
|
||||||
this.selectCode1 = this.stationList[0].code;
|
this.selectStandCode(this.stationList[0].code);
|
||||||
this.infoList = this.stationDataMap[this.selectCode] ? this.stationDataMap[this.selectCode].trackView.lines: [];
|
this.selectStandCode1(this.stationList[0].code);
|
||||||
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) {
|
selectStandCode(code) {
|
||||||
this.selectCode = code;
|
this.selectCode = code;
|
||||||
this.infoList = this.stationDataMap[this.selectCode].trackView.lines;
|
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) {
|
selectStandCode1(code) {
|
||||||
this.selectCode1 = code;
|
this.selectCode1 = code;
|
||||||
this.tableData = this.stationDataMap[this.selectCode1].routeSequence.lines;
|
this.sequenceList = [];
|
||||||
this.readOnly = this.stationDataMap[this.selectCode1].routeSequence.readOnly;
|
for (const key in this.sequenceMap) {
|
||||||
|
if (this.sequenceMap[key].stationCode === this.selectCode1) {
|
||||||
|
this.sequenceList.push(this.sequenceMap[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
getRouteName(code) {
|
getRouteName(code) {
|
||||||
if (code) {
|
if (code) {
|
||||||
const route = this.$store.state.map.routeData[code];
|
const route = this.$store.state.map.routeData[code];
|
||||||
return route? route.name: ''
|
return route ? route.name : '';
|
||||||
} else { return '' }
|
} else { return ''; }
|
||||||
},
|
},
|
||||||
handleBackground(flag, trigger) {
|
handleBackground(flag, trigger) {
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@ -330,27 +479,26 @@
|
|||||||
if (type === 'rec') {
|
if (type === 'rec') {
|
||||||
this.menu[0].disabled = item.receivingRouteAutoTrigger;
|
this.menu[0].disabled = item.receivingRouteAutoTrigger;
|
||||||
this.menu[1].disabled = !item.receivingRouteAutoTrigger;
|
this.menu[1].disabled = !item.receivingRouteAutoTrigger;
|
||||||
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.receivingRouteCode }
|
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.receivingRouteCode };
|
||||||
} else if (type === 'dep') {
|
} else if (type === 'dep') {
|
||||||
this.menu[0].disabled = item.departureRouteAutoTrigger;
|
this.menu[0].disabled = item.departureRouteAutoTrigger;
|
||||||
this.menu[1].disabled = !item.departureRouteAutoTrigger;
|
this.menu[1].disabled = !item.departureRouteAutoTrigger;
|
||||||
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.departureRouteCode }
|
this.triggerParam = { stationCode: this.selectCode, tripNumber: item.tripNumber, routeCode: item.departureRouteCode };
|
||||||
} else {
|
} else {
|
||||||
this.menu[0].disabled = item.autoTrigger;
|
this.menu[0].disabled = item.autoTrigger;
|
||||||
this.menu[1].disabled = !item.autoTrigger;
|
this.menu[1].disabled = !item.autoTrigger;
|
||||||
this.triggerParam = { stationCode: this.selectCode1, tripNumber: item.tripNumber, routeCode: item.routeCode }
|
this.triggerParam = { stationCode: this.selectCode1, tripNumber: item.tripNumber, routeCode: item.routeCode };
|
||||||
}
|
}
|
||||||
this.$refs.popMenu.resetShowPosition({x: e.x, y:e.y});
|
this.$refs.popMenu.resetShowPosition({x: e.x, y:e.y});
|
||||||
},
|
},
|
||||||
setTrigger() {
|
setTrigger() {
|
||||||
const param = { ...this.triggerParam, trigger: true };
|
const param = { ...this.triggerParam, trigger: true };
|
||||||
|
|
||||||
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.triggerParam = {};
|
this.triggerParam = {};
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.doClose();
|
this.doClose();
|
||||||
this.$message.success('设置自动触发成功!')
|
this.$message.success('设置自动触发成功!');
|
||||||
}
|
}
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
@ -362,16 +510,15 @@
|
|||||||
},
|
},
|
||||||
cancelTrigger() {
|
cancelTrigger() {
|
||||||
const param = { ...this.triggerParam, trigger: false };
|
const param = { ...this.triggerParam, trigger: false };
|
||||||
console.log(menuOperate.CTC.autoTrigger, 'trigger');
|
|
||||||
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
commitOperate(menuOperate.CTC.autoTrigger, param, 3).then(({valid, operate})=>{
|
||||||
this.triggerParam = {};
|
this.triggerParam = {};
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$message.success('取消自动触发成功!')
|
this.$message.success('取消自动触发成功!');
|
||||||
}
|
}
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
this.triggerParam = {};
|
this.triggerParam = {};
|
||||||
this.$message.error('取消自动触发失败!')
|
this.$message.error('取消自动触发失败!');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -437,4 +584,27 @@
|
|||||||
.pop-background {
|
.pop-background {
|
||||||
background: #DFE3E6;
|
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>
|
</style>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<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>
|
<div class="btn_hover" @click="menuClick">菜单</div>
|
||||||
<el-button-group ref="button_group_box" class="button_group_box" :style="`margin-left:-${btnWidth}px`">
|
<el-button-group ref="button_group_box" class="button_group_box" :style="`margin-left:-${btnWidth}px`">
|
||||||
<!-- 地图错误判断 -->
|
<!-- 地图错误判断 -->
|
||||||
@ -143,6 +143,9 @@ export default {
|
|||||||
},
|
},
|
||||||
isLocal() { // 是否为本地项目
|
isLocal() { // 是否为本地项目
|
||||||
return process.env.VUE_APP_PRO === 'local';
|
return process.env.VUE_APP_PRO === 'local';
|
||||||
|
},
|
||||||
|
isCtc() {
|
||||||
|
return this.$route.query.ctc
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -183,6 +183,10 @@ export default {
|
|||||||
this.textStatusHeight = textStatus.offsetHeight || 0;
|
this.textStatusHeight = textStatus.offsetHeight || 0;
|
||||||
textStatus.style.top = this.offset - 15 + 'px';
|
textStatus.style.top = this.offset - 15 + 'px';
|
||||||
}
|
}
|
||||||
|
if (this.$route.query.ctc) {
|
||||||
|
this.offset = 65;
|
||||||
|
this.offsetBottom = 2;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 缩放设置
|
// 缩放设置
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
@runPlanLoadShow="runPlanLoadShow"
|
@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">
|
<el-button-group class="button-group-box">
|
||||||
<template v-if="!dataError&&project != 'bjd'">
|
<template v-if="!dataError&&project != 'bjd'">
|
||||||
<template v-if="isScriptRun">
|
<template v-if="isScriptRun">
|
||||||
@ -36,7 +36,7 @@
|
|||||||
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
|
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</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>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -155,6 +155,12 @@ export default {
|
|||||||
isDisable() {
|
isDisable() {
|
||||||
return this.$store.state.training.started;
|
return this.$store.state.training.started;
|
||||||
},
|
},
|
||||||
|
isCtc() {
|
||||||
|
return !!this.$route.query.ctc
|
||||||
|
},
|
||||||
|
zIndex() {
|
||||||
|
return this.$route.query.ctc ? 11:0
|
||||||
|
},
|
||||||
project() {
|
project() {
|
||||||
return getSessionStorage('project');
|
return getSessionStorage('project');
|
||||||
},
|
},
|
||||||
@ -399,7 +405,7 @@ export default {
|
|||||||
// || this.project === 'bjd'
|
// || this.project === 'bjd'
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (this.project === 'bjd') {
|
if (this.project === 'bjd' || this.isCtc) {
|
||||||
window.close();
|
window.close();
|
||||||
} else {
|
} else {
|
||||||
this.$store.dispatch('map/setShowCentralizedStationCode', '');
|
this.$store.dispatch('map/setShowCentralizedStationCode', '');
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
<template v-if="!dataError">
|
<template v-if="!dataError">
|
||||||
<el-button-group v-if="project !== 'bjd'">
|
<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'&&!isCtc" size="small" @click="goCtc">CTC</el-button>
|
||||||
<el-button v-if="$route.query.lineCode === '16'" 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="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="isScheduling && isDepot" size="small" type="primary" @click="runPlanEditShow">运行图编辑</el-button>
|
||||||
<!-- 加载剧本 -->
|
<!-- 加载剧本 -->
|
||||||
@ -196,6 +196,9 @@ export default {
|
|||||||
this.changeOperateMode();
|
this.changeOperateMode();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
EventBus.$on('showLineBoard', () => {
|
||||||
|
this.showLineBoard();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
loadRunData() {
|
loadRunData() {
|
||||||
@ -234,6 +237,22 @@ export default {
|
|||||||
});
|
});
|
||||||
window.open(routeData.href, '_blank');
|
window.open(routeData.href, '_blank');
|
||||||
},
|
},
|
||||||
|
goRpManage() {
|
||||||
|
const routeData = this.$router.resolve({
|
||||||
|
path:'/bigTrainRunplanManage',
|
||||||
|
query:{
|
||||||
|
group: this.$route.query.group,
|
||||||
|
mapId:this.$route.query.mapId,
|
||||||
|
project: this.project,
|
||||||
|
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() {
|
changeOperateMode() {
|
||||||
this.faultMode = !this.faultMode;
|
this.faultMode = !this.faultMode;
|
||||||
let mode = OperateMode.NORMAL;
|
let mode = OperateMode.NORMAL;
|
||||||
|
@ -130,7 +130,6 @@ export default {
|
|||||||
var device = null;
|
var device = null;
|
||||||
const point = { x: em.clientX, y: em.clientY };
|
const point = { x: em.clientX, y: em.clientY };
|
||||||
const lineCode = this.$store.getters['map/lineCode'];
|
const lineCode = this.$store.getters['map/lineCode'];
|
||||||
|
|
||||||
if (em.subType === 'TrainWindow') {
|
if (em.subType === 'TrainWindow') {
|
||||||
if (lineCode != '06') {
|
if (lineCode != '06') {
|
||||||
device = { _type: deviceType.TrainWindow, code: em.deviceCode, _event: MouseEvent.Right };
|
device = { _type: deviceType.TrainWindow, code: em.deviceCode, _event: MouseEvent.Right };
|
||||||
@ -182,7 +181,6 @@ export default {
|
|||||||
} else if (em.deviceCode && !this.isScreen) {
|
} else if (em.deviceCode && !this.isScreen) {
|
||||||
device = this.getDeviceByEm(em);
|
device = this.getDeviceByEm(em);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device) {
|
if (device) {
|
||||||
device = this.getSelectedByLineCode(device);
|
device = this.getSelectedByLineCode(device);
|
||||||
this.selected = { ...device, _event: MouseEvent.Right};
|
this.selected = { ...device, _event: MouseEvent.Right};
|
||||||
@ -197,6 +195,10 @@ export default {
|
|||||||
menu = getDeviceMenuByDeviceType(device._type);
|
menu = getDeviceMenuByDeviceType(device._type);
|
||||||
this.$store.dispatch('menuOperation/setPopMenu', { position: point, menu: menu });
|
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 {
|
} else {
|
||||||
menu = getDeviceMenuByDeviceType('Cancel');
|
menu = getDeviceMenuByDeviceType('Cancel');
|
||||||
|
@ -120,6 +120,9 @@ export default {
|
|||||||
const header = { group: this.$route.query.group || '', 'X-Token': getToken() };
|
const header = { group: this.$route.query.group || '', 'X-Token': getToken() };
|
||||||
creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
|
creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
|
||||||
creatSubscribe(getTopic('STATE', 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');
|
await this.$store.dispatch('training/setHasSubscribed');
|
||||||
},
|
},
|
||||||
async subscribeNew() {
|
async subscribeNew() {
|
||||||
@ -137,7 +140,10 @@ export default {
|
|||||||
},
|
},
|
||||||
clearSubscribe() {
|
clearSubscribe() {
|
||||||
clearSubscribe(`${displayTopic}\/${this.groupModel}`);
|
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) {
|
setCenter(code) {
|
||||||
this.$refs.mapCommon && this.$refs.mapCommon.setCenter(code);
|
this.$refs.mapCommon && this.$refs.mapCommon.setCenter(code);
|
||||||
|
@ -49,6 +49,10 @@
|
|||||||
title: 'code',
|
title: 'code',
|
||||||
prop: 'code'
|
prop: 'code'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '名称',
|
||||||
|
prop: 'name'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '关联车站',
|
title: '关联车站',
|
||||||
prop: 'stationCode',
|
prop: 'stationCode',
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
<el-form-item v-if="isModify" label="编号:" prop="code">
|
<el-form-item v-if="isModify" label="编号:" prop="code">
|
||||||
<el-input v-model="addModel.code" style="width: 220px;" disabled />
|
<el-input v-model="addModel.code" style="width: 220px;" disabled />
|
||||||
</el-form-item>
|
</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-form-item label="关联车站:" prop="stationCode">
|
||||||
<el-select v-model="addModel.stationCode" clearable filterable>
|
<el-select v-model="addModel.stationCode" clearable filterable>
|
||||||
<el-option
|
<el-option
|
||||||
@ -145,6 +148,7 @@
|
|||||||
directionLabelList: ConstConfig.ConstSelect.directionLabelList,
|
directionLabelList: ConstConfig.ConstSelect.directionLabelList,
|
||||||
addModel:{
|
addModel:{
|
||||||
id: '',
|
id: '',
|
||||||
|
name:'',
|
||||||
stationCode: '',
|
stationCode: '',
|
||||||
labelEnum:'',
|
labelEnum:'',
|
||||||
sectionList: [],
|
sectionList: [],
|
||||||
@ -155,6 +159,9 @@
|
|||||||
relativeLabelEnum: ''
|
relativeLabelEnum: ''
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
|
'name':[
|
||||||
|
{ required: true, message: '请输入名称', trigger: 'blur' },
|
||||||
|
],
|
||||||
'stationCode':[
|
'stationCode':[
|
||||||
{ required: true, message: '请选择关联车站', trigger: 'blur' },
|
{ required: true, message: '请选择关联车站', trigger: 'blur' },
|
||||||
{ required: true, message: '请选择关联车站', trigger: 'change' },
|
{ required: true, message: '请选择关联车站', trigger: 'change' },
|
||||||
@ -260,6 +267,7 @@
|
|||||||
this.$refs.form.resetFields();
|
this.$refs.form.resetFields();
|
||||||
this.addModel = {
|
this.addModel = {
|
||||||
id: '',
|
id: '',
|
||||||
|
name:'',
|
||||||
stationCode: '',
|
stationCode: '',
|
||||||
labelEnum:'',
|
labelEnum:'',
|
||||||
sectionList: [],
|
sectionList: [],
|
||||||
|
@ -47,7 +47,8 @@ export default {
|
|||||||
{label: '上饶沙盘', value: 'SR_SANDBOX'},
|
{label: '上饶沙盘', value: 'SR_SANDBOX'},
|
||||||
{label: '江西工贸', value: 'JXGM'},
|
{label: '江西工贸', value: 'JXGM'},
|
||||||
{label: '扬州工业', value: 'RICHOR_YGY'},
|
{label: '扬州工业', value: 'RICHOR_YGY'},
|
||||||
{label: '苏安院', value: 'SAY'}
|
{label: '苏安院', value: 'SAY'},
|
||||||
|
{label: '众合-陕铁院', value: 'UNITTEC_STY'}
|
||||||
],
|
],
|
||||||
projectMap: {
|
projectMap: {
|
||||||
designxty: 'XTY',
|
designxty: 'XTY',
|
||||||
@ -58,7 +59,8 @@ export default {
|
|||||||
designsrsandbox: 'SR_SANDBOX',
|
designsrsandbox: 'SR_SANDBOX',
|
||||||
designjxgm: 'JXGM',
|
designjxgm: 'JXGM',
|
||||||
designygy: 'RICHOR_YGY',
|
designygy: 'RICHOR_YGY',
|
||||||
designsay: 'SAY'
|
designsay: 'SAY',
|
||||||
|
designunittecsty: 'UNITTEC_STY'
|
||||||
},
|
},
|
||||||
queryForm: {
|
queryForm: {
|
||||||
labelWidth: '120px',
|
labelWidth: '120px',
|
||||||
|
@ -41,7 +41,7 @@ export default {
|
|||||||
},
|
},
|
||||||
goRoutePath(data) {
|
goRoutePath(data) {
|
||||||
const againEnter = getSessionStorage('againEnter') || null;
|
const againEnter = getSessionStorage('againEnter') || null;
|
||||||
if (!againEnter) {
|
if (!againEnter && !this.$route.query.thirdJump) {
|
||||||
const project = getSessionStorage('project');
|
const project = getSessionStorage('project');
|
||||||
const userId = this.$store.state.user.id;
|
const userId = this.$store.state.user.id;
|
||||||
const path = localStore.get('trainingPlatformRoute' + userId + project);
|
const path = localStore.get('trainingPlatformRoute' + userId + project);
|
||||||
|