diff --git a/src/api/ibp.js b/src/api/ibp.js
index a80778999..a3b1bea69 100644
--- a/src/api/ibp.js
+++ b/src/api/ibp.js
@@ -70,7 +70,7 @@ export function getIbpInfoByStation(mapId, stationCode) {
// 获取IBP盘数据
export function getIbpList(params) {
return request({
- url: `/api/ibp/list`,
+ url: `/api/ibp`,
method: 'get',
params: params
});
diff --git a/src/assets/ibp_images/key.png b/src/assets/ibp_images/key.png
index 1ae5dc44d..7ab133914 100644
Binary files a/src/assets/ibp_images/key.png and b/src/assets/ibp_images/key.png differ
diff --git a/src/assets/ibp_images/key_on.png b/src/assets/ibp_images/key_on.png
index 7ab133914..1ae5dc44d 100644
Binary files a/src/assets/ibp_images/key_on.png and b/src/assets/ibp_images/key_on.png differ
diff --git a/src/i18n/langs/en/router.js b/src/i18n/langs/en/router.js
index 528c66e39..542b1d872 100644
--- a/src/i18n/langs/en/router.js
+++ b/src/i18n/langs/en/router.js
@@ -87,5 +87,6 @@ export default {
AuthorList: 'Authorization code list',
questionsRuleManage: 'Question rule manage',
preTheoryData: 'Pre Theory Data',
- boardManage: 'Message Board Manage'
+ boardManage: 'Message Board Manage',
+ publishIBPManage:'publish IBP Manage'
};
diff --git a/src/i18n/langs/zh/router.js b/src/i18n/langs/zh/router.js
index 353967be8..4b0964ce8 100644
--- a/src/i18n/langs/zh/router.js
+++ b/src/i18n/langs/zh/router.js
@@ -92,5 +92,6 @@ export default {
AuthorList: '授权列表',
questionsRuleManage: '出题规则管理',
preTheoryData: '理论导入预处理',
- boardManage: '留言板管理'
+ boardManage: '留言板管理',
+ publishIBPManage:'发布IBP盘管理'
};
diff --git a/src/jmapNew/shape/StationStand/emergent/EEmergentCross.js b/src/jmapNew/shape/StationStand/emergent/EEmergentCross.js
index 9060d3733..afd57c29d 100644
--- a/src/jmapNew/shape/StationStand/emergent/EEmergentCross.js
+++ b/src/jmapNew/shape/StationStand/emergent/EEmergentCross.js
@@ -14,13 +14,13 @@ class EEmergentCross extends Group {
const model = this.model.modelData;
const style = this.model.style;
- const emergentOffset = model.inside ? style.StationStand.emergentCross.insideOffset : style.StationStand.emergentCross.outsideOffset;
+ const emergentOffset = model.inside ? style.StationStand.emergentRhombus.insideOffset : style.StationStand.emergentRhombus.outsideOffset;
const emergentH = model.right ? 1 : -1;
const emergentX = model.position.x + emergentH * emergentOffset.x;
const emergentY = model.position.y + emergentH * emergentOffset.y;
- model.r = style.StationStand.emergentCross.mergentR;
- model.n = style.StationStand.emergentCross.mergentN;
+ model.r = style.StationStand.emergentRhombus.mergentR;
+ model.n = style.StationStand.emergentRhombus.mergentN;
this.emergent = new Isogon({
zlevel: this.model.zlevel,
@@ -33,7 +33,7 @@ class EEmergentCross extends Group {
},
style: {
lineWidth: 2,
- stroke:style.StationStand.emergentCross.defaultColor
+ stroke:style.StationStand.emergentRhombus.defaultColor
}
});
this.add(this.emergent);
@@ -52,7 +52,7 @@ class EEmergentCross extends Group {
},
style:{
lineWidth:2,
- stroke:style.StationStand.emergentCross.defaultColor
+ stroke:style.StationStand.emergentRhombus.defaultColor
}
});
this.emergentLine2 = new Line({
@@ -66,7 +66,7 @@ class EEmergentCross extends Group {
},
style:{
lineWidth:2,
- stroke:style.StationStand.emergentCross.defaultColor
+ stroke:style.StationStand.emergentRhombus.defaultColor
}
});
this.add(this.emergentLine1);
diff --git a/src/jmapNew/shape/StationStand/safeStand/EHollowStand.js b/src/jmapNew/shape/StationStand/safeStand/EHollowStand.js
index 6132f8af1..c59733a18 100644
--- a/src/jmapNew/shape/StationStand/safeStand/EHollowStand.js
+++ b/src/jmapNew/shape/StationStand/safeStand/EHollowStand.js
@@ -49,7 +49,7 @@ class EHollowStand extends Group {
// 停车
model.trainParking && this.setColor(style.StationStand.hollowStand.doorOpenColor);
// 紧急停车
- model.emergencyClosed && this.setColor(this.style.StationStand.hollowStand.spareColor);
+ model.emergencyClosed && this.setColor(style.StationStand.hollowStand.spareColor);
}
}
diff --git a/src/jmapNew/shape/StationStand/safeStand/ESolidStand.js b/src/jmapNew/shape/StationStand/safeStand/ESolidStand.js
index 3c9b45fdf..221096554 100644
--- a/src/jmapNew/shape/StationStand/safeStand/ESolidStand.js
+++ b/src/jmapNew/shape/StationStand/safeStand/ESolidStand.js
@@ -84,7 +84,7 @@ class ESolidStand extends Group {
model.trainParking && this.setColor(style.StationStand.solidStand.stopColor);
model.trainParking && this.setStroke(style.StationStand.solidStand.doorOpenColor);
// 紧急停车
- model.emergencyClosed && this.setColor(this.style.StationStand.solidStand.spareColor);
+ model.emergencyClosed && this.setColor(style.StationStand.solidStand.spareColor);
} else {
this.handlePassagerColor(model.num);
}
diff --git a/src/jmapNew/theme/chengdu_01/menus/menuTrain.vue b/src/jmapNew/theme/chengdu_01/menus/menuTrain.vue
index c74ce85ec..85ba831c9 100644
--- a/src/jmapNew/theme/chengdu_01/menus/menuTrain.vue
+++ b/src/jmapNew/theme/chengdu_01/menus/menuTrain.vue
@@ -154,10 +154,10 @@ export default {
}
],
menuSpeed: [
- {
- label: '确认运行至前方站',
- handler: this.limitSpeed
- }
+ // {
+ // label: '列车限速',
+ // handler: this.limitSpeed
+ // }
]
};
},
diff --git a/src/jmapNew/theme/fuzhou_01/menus/dialog/standRunLevel.vue b/src/jmapNew/theme/fuzhou_01/menus/dialog/standRunLevel.vue
index 8569aa354..e58c2b90a 100644
--- a/src/jmapNew/theme/fuzhou_01/menus/dialog/standRunLevel.vue
+++ b/src/jmapNew/theme/fuzhou_01/menus/dialog/standRunLevel.vue
@@ -66,7 +66,7 @@
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex';
import ConfirmControl from './childDialog/confirmControl';
-import CMD from '@/scripts/cmdPlugin/CommandEnum';
+import { getStationList } from '@/api/runplan';
export default {
name: 'StandRunLevel',
@@ -84,7 +84,8 @@ export default {
selection: [],
isSelect: true,
isConfirm: false,
- time: ''
+ time: '',
+ sortStationList: []
};
},
computed: {
@@ -132,6 +133,7 @@ export default {
}
},
mounted() {
+ this.sortStationList = [];
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
@@ -139,21 +141,33 @@ export default {
methods: {
loadInitData(selected) {
this.tempData = [];
- const index = this.stationList.findIndex(n => n.code == selected.stationCode);
- if (selected.direction == '01') { // 下行
- // 下行时,此站不是最后一站
- if (index != 0) {
- const stationStand = this.$store.getters['map/getDeviceByCode'](this.stationStandList[index + 1].code);
- const station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
- this.tempData.push({ name: `${stationStand.name}(${station.name})`, time: selected.runLevelTime ? selected.runLevelTime : 0, check: !!selected.runLevelTimeForever });
- }
+ if (!this.sortStationList.length) {
+ getStationList(this.$route.query.mapId).then(resp => {
+ this.sortStationList = resp.data;
+ this.handleTempData(selected);
+ });
} else {
- // 上行时,此站不是最后一站
- if (index != this.stationList.length) {
- const stationStand = this.$store.getters['map/getDeviceByCode'](this.stationStandList[index + 1].code);
- const station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
- this.tempData.push({ name: `${stationStand.name}(${station.name})`, time: selected.runLevelTime ? selected.runLevelTime : 0, check: !!selected.runLevelTimeForever });
- }
+ this.handleTempData(selected);
+ }
+ },
+ handleTempData(selected) {
+ const stationIndex = this.sortStationList.findIndex((item) => item.code == selected.stationCode);
+ if (selected.right) {
+ const nextStation = this.sortStationList[stationIndex + 1];
+ const nextStationStand = this.stationStandList.find(stand => stand.stationCode === nextStation.code && stand.right);
+ nextStation && nextStationStand && this.tempData.push({
+ name: `${nextStationStand.name}(${nextStation.name})`,
+ time: selected.runLevelTime ? selected.runLevelTime : 0,
+ check: !!selected.runLevelTimeForever
+ });
+ } else {
+ const nextStation = this.sortStationList[stationIndex - 1];
+ const nextStationStand = this.stationStandList.find(stand => stand.stationCode === nextStation.code && !stand.right);
+ nextStation && nextStationStand && this.tempData.push({
+ name: `${nextStationStand.name}(${nextStation.name})`,
+ time: selected.runLevelTime ? selected.runLevelTime : 0,
+ check: !!selected.runLevelTimeForever
+ });
}
},
doShow(operate, selected) {
diff --git a/src/jmapNew/theme/fuzhou_01/menus/dialog/standStopTime.vue b/src/jmapNew/theme/fuzhou_01/menus/dialog/standStopTime.vue
index 372879040..2c605c30b 100644
--- a/src/jmapNew/theme/fuzhou_01/menus/dialog/standStopTime.vue
+++ b/src/jmapNew/theme/fuzhou_01/menus/dialog/standStopTime.vue
@@ -230,7 +230,7 @@ export default {
parkingTime: this.control === '01' ? -1 : this.time,
parkingAlwaysValid: this.control === '01' ? true : this.effective
},
- messages: [`${this.$t('menu.stopTime') + this.$t('global.colon') + this.stationName} - ${this.standName}, ${this.$t('menu.stopTimeIs')}${this.control == '01' ? this.$t('menu.automatic2') : this.time + this.$t('global.second')}, ${this.$t('menu.effectiveFrequencyIs')}${this.effective == false ? this.$t('menu.alwaysEffective') : this.$t('menu.onceEffective')}`]
+ messages: [`${this.$t('menu.stopTime') + this.$t('global.colon') + this.stationName} - ${this.standName}, ${this.$t('menu.stopTimeIs')}${this.control == '01' ? this.$t('menu.automatic2') : this.time + this.$t('global.second')}, ${this.$t('menu.effectiveFrequencyIs')}${this.effective == true ? this.$t('menu.alwaysEffective') : this.$t('menu.onceEffective')}`]
};
this.loading = true;
diff --git a/src/jmapNew/theme/haerbin_01/menus/menuButton.vue b/src/jmapNew/theme/haerbin_01/menus/menuButton.vue
index 31fe85e89..b943a1146 100644
--- a/src/jmapNew/theme/haerbin_01/menus/menuButton.vue
+++ b/src/jmapNew/theme/haerbin_01/menus/menuButton.vue
@@ -222,6 +222,19 @@ export default {
},
watch: {
'$store.state.menuOperation.setMenuChangeCount': function (val) {
+ const State2SimulationMap = {
+ '01': 'Local', // 现地工作站
+ '02': 'Center' // 中心调度工作站
+ };
+ if (this.selected._type) {
+ const control = this.getStationControl(this.selected);
+ const type = State2SimulationMap[this.$store.state.training.prdType];
+ if (control.controlMode != type) {
+ this.clearAllMenuShow();
+ this.centralizedStationList = new Array(15).fill({});
+ return false;
+ }
+ }
this.selectedObj = this.selected;
this.speedShowCon = false;
if (this.selectedObj._type) {
@@ -321,6 +334,23 @@ export default {
}
}
},
+ getStationControl(selected) {
+ let control;
+ if (selected._type == 'StationStand') {
+ control = this.$store.getters['map/getDeviceStationCodeByStationCode'](selected.deviceStationCode);
+ } else if (selected._type == 'Station') {
+ control = this.$store.getters['map/getDeviceStationCodeByStationCode'](selected.code);
+ } else if (selected._type == 'Train') { // 车次窗单独处理
+ control = this.$store.getters['map/getStationCodeByTrain'](selected);
+ } else if (selected._type == 'TrainWindow') {
+ control = this.$store.getters['map/getDeviceTrainWindowCodeByStationCode'](selected.code);
+ } else if (selected._type == 'LimitControl') {
+ control = {controlMode: 'Center'};
+ } else {
+ control = this.$store.getters['map/getDeviceStationCodeByStationCode'](selected.stationCode);
+ }
+ return control;
+ },
clickCommand(row) {
this.clearAllMenuShow();
const commandList = ['ATP进路', '取消ATP', '联锁进路', '取消联锁', '引导进路', '取消引导'];
diff --git a/src/jmapNew/theme/ningbo_03/menus/menuBar.vue b/src/jmapNew/theme/ningbo_03/menus/menuBar.vue
index b168223be..642257919 100644
--- a/src/jmapNew/theme/ningbo_03/menus/menuBar.vue
+++ b/src/jmapNew/theme/ningbo_03/menus/menuBar.vue
@@ -116,7 +116,6 @@