diff --git a/src/jmapNew/config/skinCode/chengdu_03.js b/src/jmapNew/config/skinCode/chengdu_03.js
index 97d86d895..301fbb1e0 100644
--- a/src/jmapNew/config/skinCode/chengdu_03.js
+++ b/src/jmapNew/config/skinCode/chengdu_03.js
@@ -346,14 +346,15 @@ class SkinCode extends defaultStyle {
this[deviceType.StationTurnBack] = { // 站后折返
lamp: {
- fill: '#f1f1f1', // 填充色
- radiusR: 7 // 控制灯大小
+ fill: '#ccc', // 填充色
+ radiusR: 6,
+ otherFill: '#0F0' // 控制灯大小
},
text: {
titleTextShow: false,
fontWeight: 580,
fontSize: 10,
- distance: 10
+ distance: 5
},
rect: {
fill: 'rgba(0,0,0,0)',
diff --git a/src/jmapNew/shape/graph/StationTurnBack/index.js b/src/jmapNew/shape/graph/StationTurnBack/index.js
index 7c3fd90ca..10d053a5b 100644
--- a/src/jmapNew/shape/graph/StationTurnBack/index.js
+++ b/src/jmapNew/shape/graph/StationTurnBack/index.js
@@ -166,6 +166,11 @@ export default class StationTurnBack extends Group {
this.control && this.control.highlightType3(this.style.ReturnModeGroup.highlightColor);
}
}
+ if (this.style.StationTurnBack.lamp.otherFill) {
+ if (name == '自动折返' || name == '固定折返轨1' || name == '固定折返轨1') {
+ this.control && this.control.setStyle({fill: this.style.StationTurnBack.lamp.otherFill});
+ }
+ }
}
setAshShow() {
diff --git a/src/jmapNew/theme/chengdu_03/menus/dialog/stationBackStrategy.vue b/src/jmapNew/theme/chengdu_03/menus/dialog/stationBackStrategy.vue
new file mode 100644
index 000000000..972a0992b
--- /dev/null
+++ b/src/jmapNew/theme/chengdu_03/menus/dialog/stationBackStrategy.vue
@@ -0,0 +1,174 @@
+
+
+ 变通节点
+
+
+
+ 当前变通策略
+
+
+
+ 变通策略选项
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/chengdu_03/menus/dispatchWorkMenu.vue b/src/jmapNew/theme/chengdu_03/menus/dispatchWorkMenu.vue
index ed43be196..2edc6a1b6 100644
--- a/src/jmapNew/theme/chengdu_03/menus/dispatchWorkMenu.vue
+++ b/src/jmapNew/theme/chengdu_03/menus/dispatchWorkMenu.vue
@@ -8,6 +8,7 @@
+
@@ -24,6 +25,7 @@ import MenuSwitch from './menuSwitch';
import MenuSection from './menuSection';
import MenuStation from './menuStation';
import MenuTrain from './menuTrain';
+import MenuStationTurnBack from './menuStationTurnBack.vue';
import PassiveAlarm from './passiveDialog/alarm';
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
@@ -40,7 +42,8 @@ export default {
MenuTrain,
PassiveAlarm,
PassiveContorl,
- PassiveTimeout
+ PassiveTimeout,
+ MenuStationTurnBack
},
props: {
selected: {
diff --git a/src/jmapNew/theme/chengdu_03/menus/menuButton.vue b/src/jmapNew/theme/chengdu_03/menus/menuButton.vue
index bc55f7cd9..62e77beb5 100644
--- a/src/jmapNew/theme/chengdu_03/menus/menuButton.vue
+++ b/src/jmapNew/theme/chengdu_03/menus/menuButton.vue
@@ -350,7 +350,7 @@ export default {
}
}
// 如果该信号机红灯亮 而且 所属区段左右两侧区段锁闭 执行信号重启操作
- if (signal.aspect == 'R' && isArrangementRoute) { // 信号重启
+ if (signal.lockedRouteCode) { // 信号重启
operate.over = true;
operate.cmdType = CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL;
operate.code = deviceList[0].code;
@@ -370,7 +370,8 @@ export default {
this.routeList.forEach(item => {
// item.endButtonSignalCode
// 起始信号机 和 结束信号机按钮 过滤进路
- if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) {
+ const endSignalCode = item.endButtonSignalCode || item.endSignalCode;
+ if (item.startSignalCode === deviceList[0].code && endSignalCode === deviceList[1].code) {
operate.over = true;
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_ROUTE;
operate.code = deviceList[1].code;
@@ -396,19 +397,28 @@ export default {
operation: this.$store.state.menuOperation.buttonOperation,
param: {}
};
- if (model._type === 'StationStand' && subType === 'StopJumpLamp') {
+ let controlMode = '';
+ const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
+ if (station) {
+ controlMode = station.controlMode;
+ // if (station.controlMode == 'Local' || station.controlMode == 'Emergency') {
+ // controlFlag = true;Interlock
+ // }
+ }
+ const list2 = ['Local', 'Emergency'];
+ if (model._type === 'StationStand' && subType === 'StopJumpLamp' && list2.includes(controlMode)) {
operate.cmdType = CMD.Stand.CMD_STAND_SET_JUMP_STOP;
operate.param = {standCode: model.code, trainGroupNumber: ''};
operate.code = model.code;
- } else if (model._type === 'StationStand' && subType === 'CancelStopJumpLamp') {
+ } else if (model._type === 'StationStand' && subType === 'CancelStopJumpLamp' && list2.includes(controlMode)) {
operate.cmdType = CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP;
operate.param = {standCode: model.code, trainGroupNumber: ''};
operate.code = model.code;
- } else if (model._type === 'AutoTurnBack' ) {
+ } else if (model._type === 'AutoTurnBack' && controlMode === 'Interlock') {
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK;
operate.param = {cycleCode: model.cycleCode};
operate.code = model.code;
- } else if (model._type === 'AutomaticRoute') {
+ } else if (model._type === 'AutomaticRoute' && controlMode === 'Interlock') {
const route = this.routeData[model.automaticRouteCode];
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO;
operate.param = {signalCode: route.startSignalCode};
@@ -436,13 +446,16 @@ export default {
operate.code = model.code;
break;
case 'interconnected':
- operate.cmdType = CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL;
+ operate.cmdType = CMD.ControlConvertMenu.CMD_CM_INTERLOCK_CONTROL;
delete operate.over;
operate.subType = 'interconnected';
operate.param = {stationCodes: [model.code]};
operate.code = model.code;
break;
}
+ } else {
+ this.$message.info('请检查操作设备或控制权');
+ return;
}
this.$store.dispatch('trainingNew/next', operate).then(({ valid, response }) => {
// 判断是否需要 弹窗密码框
@@ -559,7 +572,8 @@ export default {
};
let flag = false;
this.routeList.forEach(item => {
- if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) {
+ const endSignalCode = item.endButtonSignalCode || item.endSignalCode;
+ if (item.startSignalCode === deviceList[0].code && endSignalCode === deviceList[1].code) {
operate.param = {routeCode: item.code, signalCode: deviceList[0].code};
this.deviceList = [];
flag = true;
@@ -705,38 +719,37 @@ export default {
this.handelFunctionButton(model, subType);
} else {
const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
+ const list1 = ['Local', 'Emergency', 'Interlock'];
+ const list2 = ['Local', 'Emergency'];
if (station) {
- if (station.controlMode == 'Local' || station.controlMode == 'Emergency') {
if (buttonOperation && this.commandTypeList.includes(model._type)) {
this.deviceList.push(model);
- if (buttonOperation === this.Signal.arrangementRoute.button.operation) {
+ if (buttonOperation === this.Signal.arrangementRoute.button.operation && list1.includes(station.controlMode)) {
this.arrangementRouteOperation(this.deviceList);
} else if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
this.handelTotalCancel(model, subType);
- } else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) {
+ } else if (buttonOperation === this.Signal.humanTrainRoute.button.operation && list1.includes(station.controlMode)) {
this.handleTotalHumanSolution(model);
- } else if (buttonOperation === this.Signal.guide.button.operation) {
+ } else if (buttonOperation === this.Signal.guide.button.operation && list1.includes(station.controlMode)) {
this.handleGuideRoute(this.deviceList);
- } else if (buttonOperation === this.Signal.atsAutoControl.button.operation || buttonOperation === this.Signal.humanControl.button.operation) {
+ } else if ((buttonOperation === this.Signal.atsAutoControl.button.operation || buttonOperation === this.Signal.humanControl.button.operation) && list2.includes(station.controlMode)) {
this.handelControlRoute(model);
- } else if (switchOperation.includes(buttonOperation)) {
+ } else if (switchOperation.includes(buttonOperation) && list1.includes(station.controlMode)) {
this.handelSwitchOperate(model);
- } else if (buttonOperation === this.MixinCommand.block.button.operation || buttonOperation === this.MixinCommand.unblock.button.operation) {
+ } else if ((buttonOperation === this.MixinCommand.block.button.operation || buttonOperation === this.MixinCommand.unblock.button.operation) && list1.includes(station.controlMode)) {
this.handelBlockOrUnblock(model);
- } else if (buttonOperation === this.Station.guideLock.button.operation) {
+ } else if (buttonOperation === this.Station.guideLock.button.operation && station.controlMode === 'Interlock') {
this.handelGuideLock(model);
- } else if (buttonOperation === this.Section.fault.button.operation) {
+ } else if (buttonOperation === this.Section.fault.button.operation && list1.includes(station.controlMode)) {
this.handelFaultSection(model);
} else {
this.clearOperate();
+ this.operatemode != OperateMode.FAULT && this.$message.info('请检查操作设备或控制权');
}
} else {
this.clearOperate();
+ this.operatemode != OperateMode.FAULT && this.$message.info('请检查操作设备或控制权');
}
- } else {
- this.clearOperate();
- this.operatemode != OperateMode.FAULT && this.$message.info('请先切换到站控或紧急站控');
- }
}
}
},
diff --git a/src/jmapNew/theme/chengdu_03/menus/menuStationTurnBack.vue b/src/jmapNew/theme/chengdu_03/menus/menuStationTurnBack.vue
new file mode 100644
index 000000000..099530489
--- /dev/null
+++ b/src/jmapNew/theme/chengdu_03/menus/menuStationTurnBack.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
diff --git a/src/jmapNew/theme/datie_02/menus/ctcWorkMenu.vue b/src/jmapNew/theme/datie_02/menus/ctcWorkMenu.vue
index 7a3b42018..8e8455050 100644
--- a/src/jmapNew/theme/datie_02/menus/ctcWorkMenu.vue
+++ b/src/jmapNew/theme/datie_02/menus/ctcWorkMenu.vue
@@ -299,7 +299,7 @@ export default {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCodes && picture.stationCodes.includes(this.roleDeviceCode) && picture.type === 'lucency');
if (picture) {
this.$jlmap.updateShowStation(list, '');
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
@@ -320,7 +320,7 @@ export default {
if (this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCodes && picture.stationCodes.includes(this.roleDeviceCode) && picture.type === 'chainStation');
if (picture) {
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
diff --git a/src/jmapNew/theme/datie_02/menus/dialog/regionBatchOperation.vue b/src/jmapNew/theme/datie_02/menus/dialog/regionBatchOperation.vue
index d022f2322..2c838be88 100644
--- a/src/jmapNew/theme/datie_02/menus/dialog/regionBatchOperation.vue
+++ b/src/jmapNew/theme/datie_02/menus/dialog/regionBatchOperation.vue
@@ -100,7 +100,7 @@ export default {
this.show = true
this.$nextTick(() => {
const picData = this.mapData.pictureList.find(pic => pic.stationCodes.includes(stationCode) && pic.type === 'regionBatchOperation')
- this.$store.dispatch('map/setPictureDeviceMap', picData.deviceMap)
+ this.$store.dispatch('map/setPictureDeviceMap', picData.deviceMap || {})
const list = []
for (const deviceCode in picData.deviceMap) {
list.push(deviceCode)
diff --git a/src/views/designPlatform/bigScreen.vue b/src/views/designPlatform/bigScreen.vue
index 7df15f81d..ff8303706 100644
--- a/src/views/designPlatform/bigScreen.vue
+++ b/src/views/designPlatform/bigScreen.vue
@@ -131,7 +131,7 @@ export default {
picture = this.$store.state.map.map.pictureList.find(picture => picture.type === 'bigScreen');
}
if (picture) {
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
diff --git a/src/views/newMap/display/terminals/bigScreen.vue b/src/views/newMap/display/terminals/bigScreen.vue
index a67e34b82..16de62378 100644
--- a/src/views/newMap/display/terminals/bigScreen.vue
+++ b/src/views/newMap/display/terminals/bigScreen.vue
@@ -49,7 +49,7 @@ export default {
if (this.mapData && this.mapData.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.type === 'bigScreen');
if (picture) {
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
diff --git a/src/views/newMap/display/terminals/dispatchWork.vue b/src/views/newMap/display/terminals/dispatchWork.vue
index e29d64eb1..a0105ee85 100644
--- a/src/views/newMap/display/terminals/dispatchWork.vue
+++ b/src/views/newMap/display/terminals/dispatchWork.vue
@@ -97,7 +97,7 @@ export default {
list.push(this.mapDevice[key]);
deviceList.push(key);
}
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
setTimeout(() => {
this.$jlmap.updatePicture(deviceList);
const trainingDetail = this.$store.state.trainingNew.trainingDetail;
diff --git a/src/views/newMap/display/terminals/emergencyDispatchWork.vue b/src/views/newMap/display/terminals/emergencyDispatchWork.vue
index cc5e16649..3a6e13e4e 100644
--- a/src/views/newMap/display/terminals/emergencyDispatchWork.vue
+++ b/src/views/newMap/display/terminals/emergencyDispatchWork.vue
@@ -61,7 +61,7 @@ export default {
if (this.mapData && this.mapData.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.type === 'bigScreen');
if (picture) {
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
diff --git a/src/views/newMap/display/terminals/interlockWork.vue b/src/views/newMap/display/terminals/interlockWork.vue
index 4c3bc082a..a34bfbf03 100644
--- a/src/views/newMap/display/terminals/interlockWork.vue
+++ b/src/views/newMap/display/terminals/interlockWork.vue
@@ -82,7 +82,7 @@ export default {
deviceList.push(key);
}
this.$jlmap.updateShowStation(list);
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
setTimeout(() => {
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
diff --git a/src/views/newMap/display/terminals/lineMonitor.vue b/src/views/newMap/display/terminals/lineMonitor.vue
index 1cf33fbb5..7f2d2fae3 100644
--- a/src/views/newMap/display/terminals/lineMonitor.vue
+++ b/src/views/newMap/display/terminals/lineMonitor.vue
@@ -89,7 +89,7 @@ export default {
list.push(this.mapDevice[key]);
deviceList.push(key);
}
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
setTimeout(() => {
this.$jlmap.updatePicture(deviceList);
const trainingDetail = this.$store.state.trainingNew.trainingDetail;
diff --git a/src/views/newMap/display/terminals/localWork.vue b/src/views/newMap/display/terminals/localWork.vue
index 446fbfc02..4bf81bb12 100644
--- a/src/views/newMap/display/terminals/localWork.vue
+++ b/src/views/newMap/display/terminals/localWork.vue
@@ -117,7 +117,7 @@ export default {
deviceList.push(key);
}
this.$jlmap.updateShowStation(list);
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
setTimeout(() => {
this.$jlmap.updatePicture(deviceList);
const trainingDetail = this.$store.state.trainingNew.trainingDetail;
diff --git a/src/views/newMap/display/terminals/trafficTerminalWork.vue b/src/views/newMap/display/terminals/trafficTerminalWork.vue
index 74b716050..5f411eadb 100644
--- a/src/views/newMap/display/terminals/trafficTerminalWork.vue
+++ b/src/views/newMap/display/terminals/trafficTerminalWork.vue
@@ -92,7 +92,7 @@ export default {
deviceList.push(key);
}
this.$jlmap.updateShowStation(list);
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
this.$store.dispatch('map/setShowCentralizedStationCode', this.centralizedStationMap[this.roleDeviceCode]);
diff --git a/src/views/newMap/display/terminals/troDetailWork.vue b/src/views/newMap/display/terminals/troDetailWork.vue
index b3e533f50..39aecdaa6 100644
--- a/src/views/newMap/display/terminals/troDetailWork.vue
+++ b/src/views/newMap/display/terminals/troDetailWork.vue
@@ -118,7 +118,7 @@ export default {
list.push(this.mapDevice[key]);
deviceList.push(key);
}
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
setTimeout(() => {
this.$jlmap.updatePicture(deviceList);
const trainingDetail = this.$store.state.trainingNew.trainingDetail;
diff --git a/src/views/newMap/display/terminals/troWork.vue b/src/views/newMap/display/terminals/troWork.vue
index 4bdbe10bb..4224380b0 100644
--- a/src/views/newMap/display/terminals/troWork.vue
+++ b/src/views/newMap/display/terminals/troWork.vue
@@ -48,7 +48,7 @@ export default {
if (this.mapData && this.mapData.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.type === 'bigScreen');
if (picture) {
- this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap || {});
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
diff --git a/src/views/newMap/mapDraftPicture/index.vue b/src/views/newMap/mapDraftPicture/index.vue
index d896b8a9e..538b0554d 100644
--- a/src/views/newMap/mapDraftPicture/index.vue
+++ b/src/views/newMap/mapDraftPicture/index.vue
@@ -451,7 +451,7 @@ export default {
this.$refs.mapOperate.pictureChanged(pictureName);
const pictureModel = this.$store.state.map.map.pictureList.find(elem => elem.name == pictureName);
const deviceMap = pictureModel ? pictureModel.deviceMap : {};
- this.$store.dispatch('map/setPictureDeviceMap', deviceMap);
+ this.$store.dispatch('map/setPictureDeviceMap', deviceMap || {});
const deviceList = [];
const map = this.$store.state.map.map;
const mapDevice = this.$store.state.map.mapDevice;
diff --git a/src/views/newMap/newMapdraft/mapoperate/simulationMember/index.vue b/src/views/newMap/newMapdraft/mapoperate/simulationMember/index.vue
index 8e8b9005e..ccd7bd1f7 100644
--- a/src/views/newMap/newMapdraft/mapoperate/simulationMember/index.vue
+++ b/src/views/newMap/newMapdraft/mapoperate/simulationMember/index.vue
@@ -1199,7 +1199,13 @@ export default {
deviceCode: ''
};
memberMap[this.generationForm.systemType].push(memberEnvironmentDispatcher);
-
+ const memberScheduling = {
+ id: this.getMemberId(this.generationForm.systemType),
+ name: '',
+ type: 'SCHEDULING',
+ deviceCode: ''
+ };
+ memberMap[this.generationForm.systemType].push(memberScheduling);
}
this.$message.success('一键生成成功!');
this.resetForm();