diff --git a/src/assets/ctc_icon/camera.png b/src/assets/ctc_icon/camera.png new file mode 100644 index 000000000..a9a52f334 Binary files /dev/null and b/src/assets/ctc_icon/camera.png differ diff --git a/src/assets/ctc_icon/link.png b/src/assets/ctc_icon/link.png new file mode 100644 index 000000000..9b772658f Binary files /dev/null and b/src/assets/ctc_icon/link.png differ diff --git a/src/assets/ctc_icon/panel.png b/src/assets/ctc_icon/panel.png new file mode 100644 index 000000000..837ab56f7 Binary files /dev/null and b/src/assets/ctc_icon/panel.png differ diff --git a/src/assets/ctc_icon/rpb.png b/src/assets/ctc_icon/rpb.png new file mode 100644 index 000000000..cf8124350 Binary files /dev/null and b/src/assets/ctc_icon/rpb.png differ diff --git a/src/assets/ctc_icon/rpd.png b/src/assets/ctc_icon/rpd.png new file mode 100644 index 000000000..6bdbc1e2c Binary files /dev/null and b/src/assets/ctc_icon/rpd.png differ diff --git a/src/assets/ctc_icon/rpdu.png b/src/assets/ctc_icon/rpdu.png new file mode 100644 index 000000000..8507d1437 Binary files /dev/null and b/src/assets/ctc_icon/rpdu.png differ diff --git a/src/assets/ctc_icon/rpe.png b/src/assets/ctc_icon/rpe.png new file mode 100644 index 000000000..01c4eda05 Binary files /dev/null and b/src/assets/ctc_icon/rpe.png differ diff --git a/src/assets/ctc_icon/rph.png b/src/assets/ctc_icon/rph.png new file mode 100644 index 000000000..5c84cc8a6 Binary files /dev/null and b/src/assets/ctc_icon/rph.png differ diff --git a/src/assets/ctc_icon/rpsa.png b/src/assets/ctc_icon/rpsa.png new file mode 100644 index 000000000..66df38ac6 Binary files /dev/null and b/src/assets/ctc_icon/rpsa.png differ diff --git a/src/assets/ctc_icon/rpsw.png b/src/assets/ctc_icon/rpsw.png new file mode 100644 index 000000000..5199f9b40 Binary files /dev/null and b/src/assets/ctc_icon/rpsw.png differ diff --git a/src/assets/ctc_icon/rpu.png b/src/assets/ctc_icon/rpu.png new file mode 100644 index 000000000..4c81a8aaf Binary files /dev/null and b/src/assets/ctc_icon/rpu.png differ diff --git a/src/assets/ctc_icon/rpvb.png b/src/assets/ctc_icon/rpvb.png new file mode 100644 index 000000000..197c9413f Binary files /dev/null and b/src/assets/ctc_icon/rpvb.png differ diff --git a/src/assets/ctc_icon/rpvs.png b/src/assets/ctc_icon/rpvs.png new file mode 100644 index 000000000..79fc1f57c Binary files /dev/null and b/src/assets/ctc_icon/rpvs.png differ diff --git a/src/assets/ctc_icon/rpw.png b/src/assets/ctc_icon/rpw.png new file mode 100644 index 000000000..39bc7b8d0 Binary files /dev/null and b/src/assets/ctc_icon/rpw.png differ diff --git a/src/assets/ctc_icon/rpwp.png b/src/assets/ctc_icon/rpwp.png new file mode 100644 index 000000000..e002f4479 Binary files /dev/null and b/src/assets/ctc_icon/rpwp.png differ diff --git a/src/assets/ctc_icon/setting.png b/src/assets/ctc_icon/setting.png new file mode 100644 index 000000000..c430b609a Binary files /dev/null and b/src/assets/ctc_icon/setting.png differ diff --git a/src/assets/ctc_icon/shutdown.png b/src/assets/ctc_icon/shutdown.png new file mode 100644 index 000000000..47332b051 Binary files /dev/null and b/src/assets/ctc_icon/shutdown.png differ diff --git a/src/assets/ctc_icon/t3.png b/src/assets/ctc_icon/t3.png new file mode 100644 index 000000000..59343058a Binary files /dev/null and b/src/assets/ctc_icon/t3.png differ diff --git a/src/assets/ctc_icon/train.png b/src/assets/ctc_icon/train.png new file mode 100644 index 000000000..fdaffdfe3 Binary files /dev/null and b/src/assets/ctc_icon/train.png differ diff --git a/src/assets/ctc_icon/unknow.png b/src/assets/ctc_icon/unknow.png new file mode 100644 index 000000000..d68596528 Binary files /dev/null and b/src/assets/ctc_icon/unknow.png differ diff --git a/src/assets/icon/favicon_unittec.png b/src/assets/icon/favicon_unittec.png new file mode 100644 index 000000000..45013b586 Binary files /dev/null and b/src/assets/icon/favicon_unittec.png differ diff --git a/src/assets/icon/link_unittec.png b/src/assets/icon/link_unittec.png new file mode 100644 index 000000000..b25ad8269 Binary files /dev/null and b/src/assets/icon/link_unittec.png differ diff --git a/src/jmapNew/config/skinCode/datie_02.js b/src/jmapNew/config/skinCode/datie_02.js index f303b3f28..81c06cf43 100644 --- a/src/jmapNew/config/skinCode/datie_02.js +++ b/src/jmapNew/config/skinCode/datie_02.js @@ -451,6 +451,54 @@ class SkinCode extends defaultStyle { text: '非常站控', lightColor: '#ff0', defaultColor: '#ccc', + }, + selfDisciplineThree: { + offset: { x: 0, y: 0 }, + text: '分散自律', + lightColor: '#0f0', + defaultColor: '#ccc' + }, + graphRoad: { + show: true, + offset: { x: 0, y: 0 }, + text: '按图排路', + lightColor: '#0f0', + defaultColor: '#ccc' + }, + planControl: { + show: true, + offset: { x: 0, y: 0 }, + text: '计划控制', + lightColor: '#0f0', + defaultColor: '#ccc' + }, + centerCommunication: { + show: true, + offset: { x: 0, y: 30 }, + text: '中心通信', + lightColor: '#0f0', + defaultColor: '#ccc' + }, + selfDisciplineCommunication: { + show: true, + offset: { x: 0, y: 30 }, + text: '自律机通信', + lightColor: '#0f0', + defaultColor: '#ccc' + }, + allowedTurnBack: { + show: true, + offset: { x: 0, y: 30 }, + text: '允许转回', + lightColor: '#0f0', + defaultColor: '#ccc' + }, + trainControl: { + show: true, + offset: { x: 0, y: 30 }, + text: '列控', + lightColor: '#0f0', + defaultColor: '#ccc' } } }; diff --git a/src/jmapNew/shape/graph/SignalButton/index.js b/src/jmapNew/shape/graph/SignalButton/index.js index 5aedfe2de..a533eafb0 100644 --- a/src/jmapNew/shape/graph/SignalButton/index.js +++ b/src/jmapNew/shape/graph/SignalButton/index.js @@ -22,23 +22,46 @@ export default class SignalButton extends Group { create() { const model = this.model; const fillColor = this.getTypeColor(); - this.rectButton = new Rect({ - zlevel: this.zlevel, - z: this.z, - shape: { - x: model.position.x, - y: model.position.y, - width: 14, - height: 14 - }, - style: { - lineDash: null, - stroke: '#69666E', - lineWidth:1, - fill: fillColor - } - }); - this.add(this.rectButton); + const queryList = window.location.search.substring(1).split('&'); + const queryCtc = queryList.find(item => { + return item.includes('ctc'); + }); + const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST']; + if (queryCtc && ctcArcList.includes(model.type)){ + this.arcShape = new Arc({ + zlevel: this.zlevel, + z: this.z, + shape: { + cx: this.model.position.x + 7, + cy: this.model.position.y + 7, + r: 7 + }, + style: { + stroke: '#69666E', + lineWidth: 1, + fill: fillColor + } + }); + this.add(this.arcShape); + } else { + this.rectButton = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: model.position.x, + y: model.position.y, + width: 14, + height: 14 + }, + style: { + lineDash: null, + stroke: '#69666E', + lineWidth:1, + fill: fillColor + } + }); + this.add(this.rectButton); + } this.leftLine = new Line({ zlevel: this.zlevel, z: this.z + 1, @@ -200,9 +223,11 @@ export default class SignalButton extends Group { recover() { this.stopAnimation(); this.rectButton && this.rectButton.setStyle({ fill:this.getTypeColor() }); + this.arcShape && this.arcShape.setStyle({ fill:this.getTypeColor() }); this.rightLine && this.rightLine.hide(); this.leftLine && this.leftLine.hide(); this.rectButton && this.rectButton.show(); + this.arcShape && this.arcShape.show(); this.buttonText && this.buttonText.show(); this.leftBoard && this.leftBoard.hide(); this.rightBoard && this.rightBoard.hide(); @@ -242,6 +267,7 @@ export default class SignalButton extends Group { this.rectButton && this.rectButton.hide(); this.leftLine && this.leftLine.hide(); this.rightLine && this.rightLine.hide(); + this.arcShape && this.arcShape.hide(); } else { if (model.hasSelected) { this.startAnimate(); diff --git a/src/jmapNew/shape/graph/Station/EThreeLamp.js b/src/jmapNew/shape/graph/Station/EThreeLamp.js new file mode 100644 index 000000000..ea80858a0 --- /dev/null +++ b/src/jmapNew/shape/graph/Station/EThreeLamp.js @@ -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; + } +} diff --git a/src/jmapNew/shape/graph/Station/index.js b/src/jmapNew/shape/graph/Station/index.js index 4c91004de..ab27d491e 100644 --- a/src/jmapNew/shape/graph/Station/index.js +++ b/src/jmapNew/shape/graph/Station/index.js @@ -7,6 +7,7 @@ import EControl from '../element/EControl'; import EMouse from './EMouse'; import EMouseDraw from './EMouseDraw'; import ESingleControl from './ESingleControl'; +import EThreeLamp from './EThreeLamp'; import EArrow from './EArrow'; import { arrow } from '../utils/ShapePoints'; import Rect from 'zrender/src/graphic/shape/Rect'; @@ -148,7 +149,13 @@ export default class Station extends Group { createControlMode() { const model = this.model; if (!this.style.Station.StationControl.disPlayNone) { - if (this.style.Station.StationControl.special) { + const queryList = window.location.search.substring(1).split('&'); + const queryCtc = queryList.find(item => { + return item.includes('ctc'); + }); + if (queryCtc) { + this.createCtcControlMode() + } else if (this.style.Station.StationControl.special) { if (model.visible && model.createControlMode) { // model.createControlMode 控制模式 this.createControlModeAU(); this.createControlModeCC(); @@ -168,7 +175,122 @@ export default class Station extends Group { } this.setState(model); } - + createCtcControlMode() {//大铁 + //非常站控 + const model = this.model; + // 分散自律 + this.selfDisciplineThree = new EThreeLamp({ + _subType: 'veryControl', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.selfDisciplineThree.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.selfDisciplineThree.offset.y + }, + context: this.style.Station.StationControl.selfDisciplineThree.text, + pop: false + }); + this.add(this.selfDisciplineThree); + // 非常站控 + this.veryControl = new ESingleControl({ + _subType: 'veryControl', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.veryControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.veryControl.offset.y + }, + context: this.style.Station.StationControl.veryControl.text, + pop: false + }); + this.add(this.veryControl); + //按图排路 + this.graphRoad = new ESingleControl({ + _subType: 'graphRoad', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.graphRoad.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.graphRoad.offset.y + }, + context: this.style.Station.StationControl.graphRoad.text, + pop: false + }); + this.add(this.graphRoad); + //计划控制 + this.planControl = new ESingleControl({ + _subType: 'planControl', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.planControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.planControl.offset.y + }, + context: this.style.Station.StationControl.planControl.text, + pop: false + }); + this.add(this.planControl); + //中心通信 + this.centerCommunication = new ESingleControl({ + _subType: 'centerCommunication', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.centerCommunication.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.centerCommunication.offset.y + }, + context: this.style.Station.StationControl.centerCommunication.text, + pop: false + }); + this.add(this.centerCommunication); + //自律机通信 + this.selfDisciplineCommunication = new ESingleControl({ + _subType: 'selfDisciplineCommunication', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.selfDisciplineCommunication.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.selfDisciplineCommunication.offset.y + }, + context: this.style.Station.StationControl.selfDisciplineCommunication.text, + pop: false + }); + this.add(this.selfDisciplineCommunication); + //允许转回 + this.allowedTurnBack = new ESingleControl({ + _subType: 'allowedTurnBack', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 / 3 + this.style.Station.StationControl.allowedTurnBack.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.allowedTurnBack.offset.y + }, + context: this.style.Station.StationControl.allowedTurnBack.text, + pop: false + }); + this.add(this.allowedTurnBack); + // 列控 + this.trainControl = new ESingleControl({ + _subType: 'trainControl', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.trainControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.trainControl.offset.y + }, + context: this.style.Station.StationControl.trainControl.text, + pop: false + }); + this.add(this.trainControl); + } createControlModeAU() { // 西安二 const model = this.model; this.stationControlAU = new Text({ diff --git a/src/jmapNew/theme/components/utils/menuOperate.js b/src/jmapNew/theme/components/utils/menuOperate.js index 56b9af7c4..b7ada1a2e 100644 --- a/src/jmapNew/theme/components/utils/menuOperate.js +++ b/src/jmapNew/theme/components/utils/menuOperate.js @@ -519,20 +519,104 @@ export const menuOperate = { } }, CTC: { - // 接预 + // 完成接预 receivingNotice: { operation: OperationEvent.CTCCommand.receivingNotice.menu.operation, - cmdType: CMD.CTC.CTC_RECEIVING_NOTICE + cmdType: CMD.CTC.CTC_FINISH_RECEIVING_NOTICE }, - // 发预 + // 取消接预 + cancelReceivingNotice: { + operation: OperationEvent.CTCCommand.cancelReceivingNotice.menu.operation, + cmdType: CMD.CTC.CTC_CANCEL_RECEIVING_NOTICE + }, + // 完成到点 + finishArrive: { + operation: OperationEvent.CTCCommand.finishArrive.menu.operation, + cmdType: CMD.CTC.CTC_FINISH_ARRIVE + }, + // 取消到点 + cancelArrive: { + operation: OperationEvent.CTCCommand.cancelArrive.menu.operation, + cmdType: CMD.CTC.CTC_CANCEL_ARRIVE + }, + // 完成发预 departureNotice: { operation: OperationEvent.CTCCommand.departureNotice.menu.operation, - cmdType: CMD.CTC.CTC_DEPARTURE_NOTICE + cmdType: CMD.CTC.CTC_FINISH_DEPARTURE_NOTICE + }, + // 取消发预 + cancelDepartureNotice: { + operation: OperationEvent.CTCCommand.cancelDepartureNotice.menu.operation, + cmdType: CMD.CTC.CTC_CANCEL_DEPARTURE_NOTICE + }, + // 完成发点 + finishDeparture: { + operation: OperationEvent.CTCCommand.finishDeparture.menu.operation, + cmdType: CMD.CTC.CTC_FINISH_DEPARTURE + }, + // 取消发点 + cancelDeparture: { + operation: OperationEvent.CTCCommand.cancelDeparture.menu.operation, + cmdType: CMD.CTC.CTC_CANCEL_DEPARTURE }, // 自动触发 autoTrigger: { operation: OperationEvent.CTCCommand.autoTrigger.menu.operation, cmdType: CMD.CTC.CTC_AUTO_TRIGGER + }, + // 批量修改股道 + batchModifyTrackSection:{ + operation: OperationEvent.CTCCommand.batchModifyTrackSection.menu.operation, + cmdType: CMD.CTC.CTC_BATCH_MODIFY_RUN_PLAN + }, + // 移除行车日志 + deleteRunplan:{ + operation: OperationEvent.CTCCommand.deleteRunplan.menu.operation, + cmdType: CMD.CTC.CTC_REMOVE_RUN_PLAN + }, + // 修改行车计划的邻站信息 + modifyAdjacentStation:{ + operation: OperationEvent.CTCCommand.modifyAdjacentStation.menu.operation, + cmdType: CMD.CTC.CTC_MODIFY_ADJACENT_STATION + }, + // 修改车次号(大铁CTC) + modifyTripNumber:{ + operation: OperationEvent.CTCCommand.modifyTripNumber.menu.operation, + cmdType: CMD.CTC.CTC_MODIFY_TRIP_NUMBER + }, + // 发送发车预告 + sendNotcie:{ + operation: OperationEvent.CTCCommand.sendNotcie.menu.operation, + cmdType: CMD.CTC.CTC_SEND_NOTICE + }, + // 同意发车预告 + agreeNotcie:{ + operation: OperationEvent.CTCCommand.agreeNotcie.menu.operation, + cmdType: CMD.CTC.CTC_AGREE_NOTICE + }, + // 增加列车固定径路 + addTrainFixedPath:{ + operation: OperationEvent.CTCCommand.addTrainFixedPath.menu.operation, + cmdType: CMD.CTC.CTC_ADD_RUN_PLAN_LIST_TO_EDIT_AREA + }, + // 导入列车固定径路 + importTrainFixedPath:{ + operation: OperationEvent.CTCCommand.importTrainFixedPath.menu.operation, + cmdType: CMD.CTC.CTC_COVER_RUN_PLAN_LIST_TO_EDIT_AREA + }, + // 删除列车固定径路 + deleteTrainFixedPath:{ + operation: OperationEvent.CTCCommand.deleteTrainFixedPath.menu.operation, + cmdType: CMD.CTC.CTC_REMOVE_RUN_PLAN_FROM_EDIT_AREA + }, + // 运行计划发布至CTC + releaseTrainFixedPath:{ + operation: OperationEvent.CTCCommand.releaseTrainFixedPath.menu.operation, + cmdType: CMD.CTC.CTC_RELEASE_RUN_PLAN_TO_SIMULATION + }, + setRoute: { + operation: OperationEvent.CTCCommand.setRoute.menu.operation, + cmdType: CMD.CTC.CTC_SET_ROUTE } } diff --git a/src/jmapNew/theme/datie_02/menus/bottomTable.vue b/src/jmapNew/theme/datie_02/menus/bottomTable.vue new file mode 100644 index 000000000..e5687c866 --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/bottomTable.vue @@ -0,0 +1,292 @@ + + + + + + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/childDialog/passwordInputBox.vue b/src/jmapNew/theme/datie_02/menus/dialog/childDialog/passwordInputBox.vue index 6a406a2b9..eec77511b 100644 --- a/src/jmapNew/theme/datie_02/menus/dialog/childDialog/passwordInputBox.vue +++ b/src/jmapNew/theme/datie_02/menus/dialog/childDialog/passwordInputBox.vue @@ -115,7 +115,6 @@ export default { if (operate.operateNext) { this.operation = operate.operateNext; } - console.log(this.operate, '--------------0000operate'); this.dialogShow = true; this.checkHasInput = false; this.$nextTick(function () { @@ -158,7 +157,6 @@ export default { this.encryptionPassword = this.passwordCheck; } }, - cancel() { const operate = { send: false, diff --git a/src/jmapNew/theme/datie_02/menus/dialog/deleteRunplan.vue b/src/jmapNew/theme/datie_02/menus/dialog/deleteRunplan.vue new file mode 100644 index 000000000..0b9134b52 --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/dialog/deleteRunplan.vue @@ -0,0 +1,99 @@ + + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/mapVisual.vue b/src/jmapNew/theme/datie_02/menus/dialog/mapVisual.vue index 479b9be60..f7e172930 100644 --- a/src/jmapNew/theme/datie_02/menus/dialog/mapVisual.vue +++ b/src/jmapNew/theme/datie_02/menus/dialog/mapVisual.vue @@ -110,8 +110,8 @@ export default { window.document.oncontextmenu = function () { return false; }; - - if (this.mapData.skinVO) { + console.log(this.mapData, '---------------'); + if (this.mapData && this.mapData.skinVO) { const parser = parserFactory(ParserType.Graph.value); this.mapDevice = parser.parser(this.mapData, this.mapData.skinVO.code, this.map.getShowConfig()); } diff --git a/src/jmapNew/theme/datie_02/menus/dialog/modifyAdjacentStation.vue b/src/jmapNew/theme/datie_02/menus/dialog/modifyAdjacentStation.vue new file mode 100644 index 000000000..53bf85a71 --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/dialog/modifyAdjacentStation.vue @@ -0,0 +1,154 @@ + + + + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/modifyTripNumber.vue b/src/jmapNew/theme/datie_02/menus/dialog/modifyTripNumber.vue new file mode 100644 index 000000000..dd92fc91d --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/dialog/modifyTripNumber.vue @@ -0,0 +1,224 @@ + + + + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/recDep.vue b/src/jmapNew/theme/datie_02/menus/dialog/recDep.vue index d30bf974a..1d99ffe15 100644 --- a/src/jmapNew/theme/datie_02/menus/dialog/recDep.vue +++ b/src/jmapNew/theme/datie_02/menus/dialog/recDep.vue @@ -13,20 +13,24 @@
- + - + + + + - - - -
完成接预
-
完成发预
-
取消接预
-
取消接预
- 关闭 +
完成接预
+
完成发预
+
取消接预
+
取消发预
+
完成到点
+
取消到点
+
完成发点
+
取消发点
+ 关闭
@@ -34,8 +38,6 @@ + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/shuntRoute.vue b/src/jmapNew/theme/datie_02/menus/dialog/shuntRoute.vue new file mode 100644 index 000000000..78727e7cc --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/dialog/shuntRoute.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/trainRoute.vue b/src/jmapNew/theme/datie_02/menus/dialog/trainRoute.vue new file mode 100644 index 000000000..98e3e4b46 --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/dialog/trainRoute.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/jmapNew/theme/datie_02/menus/dialog/updateTrip.vue b/src/jmapNew/theme/datie_02/menus/dialog/updateTrip.vue index 0e985813a..49a60e088 100644 --- a/src/jmapNew/theme/datie_02/menus/dialog/updateTrip.vue +++ b/src/jmapNew/theme/datie_02/menus/dialog/updateTrip.vue @@ -71,33 +71,31 @@ export default { }); }, handleTripNumber() { + this.judgeTripNumber(); + }, + judgeTripNumber() { const figuresOfServiceMinNumber = 2; const figuresOfServiceMaxNumber = 6; // this.$store.state.map.mapConfig.figuresOfServiceNumber; const tripNumber = this.tripNumber; const judge = /^[a-zA-Z0-9]*[\d]$/.test(this.tripNumber); + let result = false; if (judge) { if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) { this.messageTip1 = '车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位'; + result = false; } else { - // this.tripNumber = tripNumber; this.messageTip1 = ''; + result = true; } } else { this.tripNumber = ''; this.messageTip1 = '请输入车次号(最后一位数字)'; } + return result; }, commit() { - const figuresOfServiceMinNumber = 2; - const figuresOfServiceMaxNumber = 6; - let result = false; - const tripNumber = this.tripNumber; - if (tripNumber.toString().length > figuresOfServiceMaxNumber || tripNumber.toString().length < figuresOfServiceMinNumber) { - result = false; - } else { - result = true; - } + const result = this.judgeTripNumber(); if (this.tripNumber && result) { const params = { tripNumber: this.tripNumber @@ -114,15 +112,7 @@ export default { this.doClose(); this.$refs.noticeInfo.doShow(); }); - - } else { - if (this.tripNumber) { - this.messageTip1 = '该车次号长度' + figuresOfServiceMinNumber + '-' + figuresOfServiceMaxNumber + '位'; - } else { - this.messageTip1 = '请输入车次号(最后一位数字)'; - } } - }, cancel() { const operate = { diff --git a/src/jmapNew/theme/datie_02/menus/index.vue b/src/jmapNew/theme/datie_02/menus/index.vue index 6158fbfdd..5a2c3827c 100644 --- a/src/jmapNew/theme/datie_02/menus/index.vue +++ b/src/jmapNew/theme/datie_02/menus/index.vue @@ -1,50 +1,44 @@ @@ -68,11 +65,14 @@ import MenuTrain from './menuTrain'; import MenuStation from './menuStation'; import MenuBar from './menuBar'; import MenuButtonCtc from './menuButtonCtc'; +import RunplanPane from './runplanPane'; import PassiveAlarm from './passiveDialog/alarm'; import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control'; import PassiveTimeout from './passiveDialog/timeout'; import { timeFormat } from '@/utils/date'; import { prefixIntrger } from '@/utils/date'; +import BottomTable from './bottomTable'; +import MenuPanel from './menuPanel'; import CtcBarIcon1 from '@/assets/ctc_icon/pic1.png'; import CtcBarIcon2 from '@/assets/ctc_icon/pic2.png'; import CtcBarIcon3 from '@/assets/ctc_icon/pic3.png'; @@ -106,7 +106,10 @@ export default { PassiveAlarm, PassiveContorl, PassiveTimeout, - MenuButtonCtc + MenuButtonCtc, + RunplanPane, + BottomTable, + MenuPanel }, props: { selected: { @@ -116,48 +119,49 @@ export default { } } }, - data() { - return { - alarmMessages: [ - { id: 1, message: '这是告警信息一' }, - { id: 2, message: '这是告警信息二' }, - { id: 3, message: '这是告警信息三' }, - { id: 4, message: '这是告警信息四' }, - { id: 5, message: '这是告警信息五' }, - { id: 6, message: '这是告警信息六' }, - { id: 7, message: '这是告警信息七' }, - ], - warningMessages: [ - { id: 1, message: '这是预警信息一' }, - { id: 2, message: '这是预警信息二' }, - { id: 3, message: '这是预警信息三' }, - { id: 4, message: '这是预警信息四' }, - { id: 5, message: '这是预警信息五' }, - { id: 6, message: '这是预警信息六' }, - { id: 7, message: '这是预警信息七' }, - ], - time: '00:00:00', - dateString: '', - ctcBarIcon1: CtcBarIcon1, - ctcBarIcon2: CtcBarIcon2, - ctcBarIcon3: CtcBarIcon3, - ctcBarIcon4: CtcBarIcon4, - ctcBarIcon5: CtcBarIcon5, - ctcBarIcon6: CtcBarIcon6, - ctcBarIcon7: CtcBarIcon7, - ctcBarIcon8: CtcBarIcon8, - ctcBarIcon9: CtcBarIcon9, - ctcBarIcon10: CtcBarIcon10, - ctcBarIcon11: CtcBarIcon11, - ctcBarIcon12: CtcBarIcon12, - ctcBarIcon13: CtcBarIcon13, - ctcBarIcon14: CtcBarIcon14, - ctcBarIcon15: CtcBarIcon15, - ctcBarIcon16: CtcBarIcon16, - ctcBarIcon17: CtcBarIcon17, - ctcBarIcon18: CtcBarIcon18, - } - }, + data() { + return { + alarmMessages: [ + { id: 1, message: '这是告警信息一' }, + { id: 2, message: '这是告警信息二' }, + { id: 3, message: '这是告警信息三' }, + { id: 4, message: '这是告警信息四' }, + { id: 5, message: '这是告警信息五' }, + { id: 6, message: '这是告警信息六' }, + { id: 7, message: '这是告警信息七' } + ], + warningMessages: [ + { id: 1, message: '这是预警信息一' }, + { id: 2, message: '这是预警信息二' }, + { id: 3, message: '这是预警信息三' }, + { id: 4, message: '这是预警信息四' }, + { id: 5, message: '这是预警信息五' }, + { id: 6, message: '这是预警信息六' }, + { id: 7, message: '这是预警信息七' } + ], + time: '00:00:00', + dateString: '', + dateString1: '', + ctcBarIcon1: CtcBarIcon1, + ctcBarIcon2: CtcBarIcon2, + ctcBarIcon3: CtcBarIcon3, + ctcBarIcon4: CtcBarIcon4, + ctcBarIcon5: CtcBarIcon5, + ctcBarIcon6: CtcBarIcon6, + ctcBarIcon7: CtcBarIcon7, + ctcBarIcon8: CtcBarIcon8, + ctcBarIcon9: CtcBarIcon9, + ctcBarIcon10: CtcBarIcon10, + ctcBarIcon11: CtcBarIcon11, + ctcBarIcon12: CtcBarIcon12, + ctcBarIcon13: CtcBarIcon13, + ctcBarIcon14: CtcBarIcon14, + ctcBarIcon15: CtcBarIcon15, + ctcBarIcon16: CtcBarIcon16, + ctcBarIcon17: CtcBarIcon17, + ctcBarIcon18: CtcBarIcon18 + }; + }, computed: { ...mapGetters('config', [ 'width' @@ -165,19 +169,19 @@ export default { isShowBar() { return this.$store.state.training.prdType && this.$store.state.training.prdType !== '07'; }, - isCtc() { - return this.$route.query.ctc - } + isCtc() { + return this.$route.query.ctc; + } }, watch: { isShowBar(val) { val && this.$store.dispatch('config/updateMenuBar'); }, - '$store.state.socket.simulationTimeSync': function (time) { // 仿真时间更新 - this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`)); - const date = new Date(+new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`)); - this.initDate(date); - } + '$store.state.socket.simulationTimeSync': function (time) { // 仿真时间更新 + this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`)); + const date = new Date(+new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`)); + this.initDate(date); + } }, mounted() { this.$nextTick(() => { @@ -199,17 +203,21 @@ export default { beforeDestroy() { window.onclick = function (e) {}; }, - methods: { - initDate(date) { - this.time = `${prefixIntrger(date.getHours(), 2)}:${prefixIntrger(date.getMinutes(), 2)}:${prefixIntrger(date.getSeconds(), 2)}`; - const years = date.getFullYear() + ''; - let months = date.getMonth() + 1 + ''; - let dates = date.getDate() + ''; - if (months.length < 2) { months = '0' + months; } - if (dates.length < 2) { dates = '0' + dates; } - this.dateString = years + months + dates; - } - } + methods: { + initDate(date) { + this.time = `${prefixIntrger(date.getHours(), 2)}:${prefixIntrger(date.getMinutes(), 2)}:${prefixIntrger(date.getSeconds(), 2)}`; + const years = date.getFullYear() + ''; + let months = date.getMonth() + 1 + ''; + let dates = date.getDate() + ''; + if (months.length < 2) { months = '0' + months; } + if (dates.length < 2) { dates = '0' + dates; } + this.dateString = years + months + dates; + this.dateString1 = years + '年' + months + '月' + dates + '日'; + }, + handleRunplan() { + this.$refs.runplanPane.doShow(); + } + } }; @@ -468,89 +476,273 @@ export default { font-weight: normal !important; color: #000 !important; } + .fuzhou-01__systerm .el-dialog { + background: rgba(100, 100, 100, 0.3); + border: 2px solid rgb(144, 144, 144, 0.8); + border-radius: 6px; + color: #000; + font-size: 14px; + } - .chengdou-03__systerm .el-dialog .context { - height: 100px; - border: 2px inset #E2E2E2; - overflow-y: scroll; - } - - .chengdou-03__systerm .el-dialog .table { - margin-top: 10px; - } - - .chengdou-03__systerm .el-dialog .notice { - margin-left: 62px; - line-height: 30px; - } - - .chengdou-03__systerm .el-dialog .button-group { - margin-top: 20px; - } - .alarm-window { - width: 450px; - height: 100px; - position: fixed; - top: 10px; - left: 55px; - background: #f00; - z-index: 10; - overflow-y: scroll; - border-bottom: 6px #ccc solid; - border-top: 6px #ccc solid; - border-right: 3px #ccc solid; - border-left: 3px #ccc solid; + .fuzhou-01__systerm .el-dialog .el-dialog__header { padding: 5px; + height: 26px; } - .device-status-window { - width: 160px; - height: 35px; - position: fixed; - top: 50px; - right: 10px; - z-index: 10; - display: flex; - border: 2px #FBFCFB solid; - align-items: center; - justify-content: center; + + .fuzhou-01__systerm .el-dialog .el-dialog__footer { + background: #F0F0F0; + opacity: 1; } - .device-status-button { - border-top: 2px #808080 solid; - border-left: 2px #808080 solid; - border-right: 2px #FDFBF9 solid; - border-bottom: 2px #FDFBF9 solid; - width: 79px; - height: 30px; - text-align: center; + + .fuzhou-01__systerm .el-dialog .el-dialog__body { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 5px; + padding-right: 5px; + margin: 0px 5px 5px; + border: 2px solid rgba(120, 121, 123, 0.5); + box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset; + background: #F0F0F0; + opacity: 1; + } + + .fuzhou-01__systerm .el-dialog .el-dialog__title { + position: absolute; + top: 4px; + color: #000; + border-radius: 4px; + padding: 0px 2px; + height: 20px; + line-height: 20px + } + + .fuzhou-01__systerm .el-dialog .el-dialog__title::before { + content: ''; + position: absolute; + top: 0; + left: 0; + -webkit-filter: blur(10px); + filter: blur(10px); + height: 20px; + width: -webkit-fill-available; + background: rgba(128, 128, 128, 0.8); + z-index: -1; + } + + .fuzhou-01__systerm .el-dialog .el-dialog__headerbtn { + background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770); + border: 1px solid #fff; + border-radius: 4px; + top: 4px; + right: 5px; + line-height: 16px; + } + + .fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before { + font-size: 16px; + } + + .fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close { + color: #fff; + } + + .fuzhou-01__systerm .el-dialog .el-button { + height: 32px; + line-height: 32px; + padding: 0px; + width: 80px; + border: 2px outset #E2E2E2; + border-radius: 0px !important; + color: #000; + background: #F0F0F0; + } + + .fuzhou-01__systerm .el-dialog .el-button:focus span { + border: 1px dashed gray; + } + + .fuzhou-01__systerm .el-dialog .el-button:active { + border: 2px inset #E2E2E2; + } + + .fuzhou-01__systerm .el-dialog .el-button:disabled { + border: 2px inset #E2E2E2; + } + + .fuzhou-01__systerm .el-dialog .el-button:disabled span { + border: 0px; + } + + .fuzhou-01__systerm .el-dialog .el-input { + border: 2px inset #E9E9E9; + } + + .fuzhou-01__systerm .el-dialog .el-input .el-input__inner { + color: #000; + background: #fff !important; + border: 0px; + border-radius: 0px !important; + box-sizing: border-box; + } + + .fuzhou-01__systerm .el-dialog .el-input.is-disabled .el-input__inner { + background: #F0F0F0 !important; + } + + .fuzhou-01__systerm .el-dialog .el-textarea { + border: 2px inset #E9E9E9; + border-radius: 0px; + } + + .fuzhou-01__systerm .el-dialog .el-textarea .el-textarea__inner { + color: #000; + background: #fff !important; + border: 0px; + border-radius: 0px !important; + box-sizing: border-box; + } + + .fuzhou-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner { + background: #F0F0F0 !important; + } + + .fuzhou-01__systerm .el-dialog .el-table { + border: 2px inset #E9E9E9; + color: #000 !important; + } + + .fuzhou-01__systerm .el-dialog .el-table .cell { + line-height: unset !important; + } + + .fuzhou-01__systerm .el-dialog .el-table th.is-leaf { + background: #F0F0F0 !important; + border-right: 1px solid #BDBDBD !important; + border-bottom: 1px solid #BDBDBD !important; + color: #000 !important; + height: 20px !important; + padding: 0px; + } + + .fuzhou-01__systerm .el-dialog .el-table tr td { + height: 20px !important; + padding: 0px; + } + + .fuzhou-01__systerm .el-dialog .el-table .el-table__empty-text { + top: 15px !important; + } + + .fuzhou-01__systerm .el-dialog .current-row>td { + background: #3399FF !important; + color: #fff !important; + } + + .fuzhou-01__systerm .el-dialog .el-checkbox__inner { + border: 1px inset #dcdfe6 !important; + } + + .fuzhou-01__systerm .el-dialog .el-checkbox__label { + color: #000 !important; + } + + .fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner { + background: #E6E6E6 !important; + } + + .fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label { + color: #C5C9CC !important; + } + + .fuzhou-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner { + background: #fff !important; + border: 1px inset #dcdfe6 !important; + } + + .fuzhou-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after { + position: absolute; + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ""; + border: 1px solid #000; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + top: 1px; + } + + .fuzhou-01__systerm .el-dialog .el-radio__inner { + border: 1px inset #dcdfe6 !important; + } + + .fuzhou-01__systerm .el-dialog .el-radio__label { + color: #000 !important; + } + + .fuzhou-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner { + background: #fff !important; + border: 1px inset #dcdfe6 !important; + } + + .fuzhou-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after { + width: 4px; + height: 4px; + border-radius: 100%; + background-color: #000 !important; + position: absolute; + left: 50%; + top: 50%; + } + + .fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner { + background: #E6E6E6 !important; + } + + .fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label { + color: #C5C9CC !important; + } + + .fuzhou-01__systerm .el-dialog .base-label { + background: rgb(240 240 240); + position: relative; + } + + .fuzhou-01__systerm .el-dialog .el-form-item label { + font-weight: normal !important; + color: #000 !important; + } + + .fuzhou-01__systerm .el-dialog .context { + height: 100px; + border: 2px inset #E2E2E2; + overflow-y: scroll; + } + + .fuzhou-01__systerm .el-dialog .table { + margin-top: 10px; + } + + .fuzhou-01__systerm .el-dialog .notice { + margin-left: 62px; line-height: 30px; - cursor: pointer; } - .warning-window { - width: 400px; - height: 100px; - position: fixed; - right: 10px; - top: 60px; - background: #808080; - z-index: 10; - overflow-y: scroll; - border-bottom: 6px #ccc solid; - border-top: 6px #ccc solid; - border-right: 3px #ccc solid; - border-left: 3px #ccc solid; - padding: 5px; + + .fuzhou-01__systerm .el-dialog .button-group { + margin-top: 10px; } .img-box{ width: 28px; height: 28px; - border: 3px #ccc inset; + border: 2px #ccc outset; + margin-top: 0; background: #fff; cursor: pointer; } .img-box:active{ - border: 3px #ccc outset; + border: 2px #ccc inset; } .img-box:hover{ - border: 3px #ccc outset; + border: 2px #ccc inset; } diff --git a/src/jmapNew/theme/datie_02/menus/menuBar.vue b/src/jmapNew/theme/datie_02/menus/menuBar.vue index 5eff1b54a..160111b8c 100644 --- a/src/jmapNew/theme/datie_02/menus/menuBar.vue +++ b/src/jmapNew/theme/datie_02/menus/menuBar.vue @@ -1,26 +1,6 @@ @@ -21,6 +22,7 @@ import RouteSelection from './dialog/routeSelection'; import RouteDetail from './dialog/routeDetail'; import RouteHandControl from './dialog/routeHandControl'; import RouteGuide from './dialog/routeGuide'; +import RouteCancel from './menuDialog/routeCancel'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import { mapGetters } from 'vuex'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; @@ -29,6 +31,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum'; import PasswordBox from '@/jmapNew/theme/components/menus/childDialog/passwordInputBox'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import DrawSelect from './dialog/drawSelect'; +import { EventBus } from '@/scripts/event-bus'; export default { name: 'SignalMenu', @@ -42,7 +45,8 @@ export default { NoticeInfo, PasswordBox, SetFault, - DrawSelect + DrawSelect, + RouteCancel }, props: { selected: { @@ -57,49 +61,52 @@ export default { menu: [], menuNormal: { Local: [ - // { - // label: '图纸调用', - // handler: this.drawingCall - // }, - // { - // label: '基础设备培训', - // handler: this.baDeTrCall - // } - // { - // label: '办理进路', - // handler: this.arrangementRoute, - // cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE - // }, - // { - // label: '办理引导进路', - // handler: this.guide, - // cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE - // }, - // { - // label: '取消进路', - // handler: this.cancelTrainRoute, - // cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE - // }, - // { - // label: '总人解', // 取消引导进路 - // handler: this.humanTrainRoute, - // cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE - // }, - // { - // label: '进路收人工控', - // handler: this.humanControl, - // cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING - // }, - // { - // label: '进路交自动控', - // handler: this.atsAutoControl, - // cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING - // }, - // { - // label: '进路信息', - // handler: this.detail, - // cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING - // } + { + label: '办理 通过进路', + handler: this.arrangementRoute, + cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE + }, + { + type: 'separator' + }, + { + label: '列车 办理进路', + handler: this.arrangementRoute, + cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE + }, + { + label: '取消进路', + handler: this.cancelTrainRoute, + cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE + }, + { + label: '信号重开', + handler: this.reopenSignal, + cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL + }, + { + label: '封锁/解封', + handler: '', + cmdType: '' + }, + { + label: '总人解', + handler: this.humanTrainRoute, + cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE + }, + { + type: 'separator' + }, + { + label: '引导', + handler: this.guide, + cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE + }, + { + label: '坡道解锁', + handler: '', + cmdType: '' + } ], Center: [ // { @@ -190,7 +197,8 @@ export default { }, watch: { '$store.state.menuOperation.menuCount': function (val) { - if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && !this.buttonOperation) { + console.log(DeviceMenu.Signal, val, this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal), this.buttonOperation); + if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && (!this.buttonOperation || this.$route.query.ctc)) { this.doShow(this.$store.state.menuOperation.menuPosition); } else { this.doClose(); @@ -262,7 +270,8 @@ export default { arrangementRoute() { commitOperate(menuOperate.Signal.arrangementRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { if (valid) { - this.$refs.routeSelection.doShow(operate, this.selected, this.getRouteList(this.selected)); + // this.$refs.routeSelection.doShow(operate, this.selected, this.getRouteList(this.selected)); + EventBus.$emit('arrangementRouteMenu', this.selected); } }); }, @@ -270,7 +279,8 @@ export default { guide() { commitOperate(menuOperate.Signal.guide, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { if (valid) { - this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}, ...{routesList: this.getRouteList(this.selected)}}); + // this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}, ...{routesList: this.getRouteList(this.selected)}}); + this.$refs.routeCancel.doShow(operate, this.selected) } }); }, @@ -278,7 +288,7 @@ export default { cancelTrainRoute() { commitOperate(menuOperate.Signal.cancelTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { if (valid) { - this.$refs.routeControl.doShow(operate, this.selected); + this.$refs.routeCancel.doShow(operate, this.selected); } }); }, @@ -286,8 +296,7 @@ export default { humanTrainRoute() { commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { if (valid) { - Object.assign(operate, {operation: OperationEvent.Signal.humanTrainRoute.button.operation }); - this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}}); + this.$refs.routeCancel.doShow(operate, this.selected); } }); }, @@ -295,10 +304,25 @@ export default { reopenSignal() { commitOperate(menuOperate.Signal.reopenSignal, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { if (valid) { - this.$refs.routeControl.doShow(operate, this.selected); + this.$refs.routeCancel.doShow(operate, this.selected); } }); }, + lockOrUnlock() { + if (this.selected.lock) { + commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { + if (valid) { + this.$refs.routeControl.doShow(operate, this.selected); + } + }) + } else { + commitOperate(menuOperate.Signal.unlock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { + if (valid) { + this.$refs.routeControl.doShow(operate, this.selected); + } + }) + } + }, // 信号封锁 lock() { commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { diff --git a/src/jmapNew/theme/datie_02/menus/menuSwitch.vue b/src/jmapNew/theme/datie_02/menus/menuSwitch.vue index a4fee8475..5dca3a78b 100644 --- a/src/jmapNew/theme/datie_02/menus/menuSwitch.vue +++ b/src/jmapNew/theme/datie_02/menus/menuSwitch.vue @@ -7,6 +7,7 @@ + @@ -23,6 +24,7 @@ import CancelMouseState from '@/mixin/CancelMouseState'; import { mapGetters } from 'vuex'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; +import RouteCancel from './menuDialog/routeCancel'; export default { name: 'SwitchMenu', @@ -33,7 +35,8 @@ export default { NoticeInfo, SetFault, SwitchHookLock, - DrawSelect + DrawSelect, + RouteCancel }, mixins: [ CancelMouseState @@ -51,14 +54,66 @@ export default { menu: [], menuNormal: { Local: [ - // { - // label: '图纸调用', - // handler: this.drawingCall - // }, - // { - // label: '基础设备培训', - // handler: this.baDeTrCall - // } + { + label: '定操', + handler: this.locate, + cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION + }, + { + label: '反操', + handler: this.reverse, + cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION + }, + { + label: '单锁', + handler: this.lock, + cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK + }, + { + label: '单解', + handler: this.unlock, + cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK + }, + { + label: '封锁/解封', + handle: '' + }, + { + label: '区故解', + handle: '' + }, + { + label: '岔前 分路不良', + handle: '' + }, + { + label: '定位 分路不良', + handle: '' + }, + { + label: '反位 分路不良', + handle: '' + }, + { + label: '接触网定位无电', + handle: '' + }, + { + label: '接触网反位无电', + handle: '' + }, + { + label: '添加调机号', + handle: '' + }, + { + label: '删除调机号', + handle: '' + }, + { + label: '修改调机号', + handle: '' + } ], Center: [ // { @@ -132,7 +187,7 @@ export default { }, watch: { '$store.state.menuOperation.menuCount': function (val) { - if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && !this.buttonOperation) { + if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && (!this.buttonOperation || this.$route.query.ctc)) { this.doShow(this.$store.state.menuOperation.menuPosition); } else { this.doClose(); @@ -243,7 +298,8 @@ export default { locate() { commitOperate(menuOperate.Switch.locate, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{ if (valid) { - this.$refs.switchControl.doShow(operate, this.selected); + // this.$refs.switchControl.doShow(operate, this.selected); + this.$refs.routeCancel.doShow(operate, this.selected); } }); }, @@ -251,7 +307,8 @@ export default { reverse() { commitOperate(menuOperate.Switch.reverse, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{ if (valid) { - this.$refs.switchControl.doShow(operate, this.selected); + // this.$refs.switchControl.doShow(operate, this.selected); + this.$refs.routeCancel.doShow(operate, this.selected); } }); }, diff --git a/src/jmapNew/theme/datie_02/menus/menuTrain.vue b/src/jmapNew/theme/datie_02/menus/menuTrain.vue index 2df0d8537..1df99fa4e 100644 --- a/src/jmapNew/theme/datie_02/menus/menuTrain.vue +++ b/src/jmapNew/theme/datie_02/menus/menuTrain.vue @@ -227,7 +227,7 @@ export default { }, watch: { '$store.state.menuOperation.menuCount': function () { - if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Train) && !this.buttonOperation) { + if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Train) && (!this.buttonOperation || this.$route.query.ctc)) { this.doShow(this.$store.state.menuOperation.menuPosition); } else { this.doClose(); diff --git a/src/jmapNew/theme/datie_02/menus/runplanPane.vue b/src/jmapNew/theme/datie_02/menus/runplanPane.vue new file mode 100644 index 000000000..f73af8add --- /dev/null +++ b/src/jmapNew/theme/datie_02/menus/runplanPane.vue @@ -0,0 +1,1085 @@ + + + + diff --git a/src/permission.js b/src/permission.js index eb4b75e03..4b1730460 100644 --- a/src/permission.js +++ b/src/permission.js @@ -4,7 +4,7 @@ import router from './router/index'; import {loginInfo, ProjectCode, localPackageProject} from '@/scripts/ProjectConfig'; import NProgress from 'nprogress'; import 'nprogress/nprogress.css'; -import { setToken, getToken, removeToken, getSessionStorage } from '@/utils/auth'; +import { setToken, getToken, removeToken, getSessionStorage, setSessionStorage } from '@/utils/auth'; import { getBaseUrlByProject } from '@/api/projectServer'; import localStore from 'storejs'; import { handlerUrl } from '@/utils/baseUrl'; @@ -69,6 +69,10 @@ function handleRoute(to, next, loginPath) { } router.beforeEach( async (to, from, next) => { + if (to.query.thirdJump) { + setToken(to.query.key); + setSessionStorage('project', to.query.project); + } let project = ''; if (to.path.includes('login')) { project = to.query.project; diff --git a/src/router/index.js b/src/router/index.js index 59471c241..5297f6210 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -44,6 +44,7 @@ const DisplayBaSiDi = () => import('@/views/newMap/displayBaSiDi/index'); const DesignDisplayNew = () => import('@/views/newMap/displayNew/scriptDisplay/scriptPreview/index'); const PracticeDisplay = () => import('@/views/newMap/displayNew/practiceDisplay'); const BigLPFStrategy = () => import('@/views/newMap/displayNew/bigLPFStrategy'); +const BigTrainRunplanManage = () => import('@/views/bigTrainRunplanManage/index'); const JointTrainingNew = () => import('@/views/newMap/jointTrainingNew/index'); const jointTrainingNewCCTV = () => import('@/views/newMap/jointTrainingNew/realCCTV'); @@ -680,7 +681,14 @@ export const publicAsyncRoute = [ hidden: true } ] - } + }, + { + // 大铁项目 管理终端 + path: '/bigTrainRunplanManage', + component: BigTrainRunplanManage, + hidden: true + }, + ]; // 城市轨道项目 export const asyncRouter = [ diff --git a/src/scripts/ProjectConfig.js b/src/scripts/ProjectConfig.js index c377ae14b..d039dbced 100644 --- a/src/scripts/ProjectConfig.js +++ b/src/scripts/ProjectConfig.js @@ -17,11 +17,13 @@ import FaviconSdy from '@/assets/icon/favicon_jdy.png'; import FaviconCgy from '@/assets/icon/favicon_cgy.png'; import FaviconRichor from '@/assets/icon/favicon_richor.png'; import FaviconZzww from '@/assets/icon/favicon_zzww.png'; +import FaviconUnittec from '@/assets/icon/favicon_unittec.png'; import FaviconSay from '@/assets/icon/favicon_say.png'; import Link_Bxkc from '@/assets/icon/link_bxkc.png'; import Link_Crsc from '@/assets/icon/link_crsc.png'; import Link_Hls from '@/assets/icon/link_hls.png'; import Link_Bjd from '@/assets/icon/link_bjd.png'; +import Link_Unittec from '@/assets/icon/link_unittec.png'; import TransparentIcon from '@/assets/icon/transparent.png'; // title:页面title; loginPath:退出登录跳转路径; loginParam:登录接口参数project;loginTitle:登录页左上角title;logoWidth:登录页左上角logo宽度; @@ -569,6 +571,30 @@ export const loginInfo = { navigationMarginLeft: '60px', systemType: '011' }, + designrichorhhcj: { + title: '红河财经学校城市轨道交通设计平台', + loginPath: '/design/login?project=richorhhcj', + bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081', + loginParam: 'RICHOR_HHCJ', + linkIcon: FaviconRichor, + titleIcon: FaviconRichor, + titleDistance: '-150px', + navigationLogoWidth: '40px', + navigationMarginLeft: '60px', + systemType: '011' + }, + richorhhcj: { + title: '红河财经学校城市轨道交通实训平台', + loginPath: '/login?project=richorhhcj', + bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081', + loginParam: 'RICHOR_HHCJ', + linkIcon: FaviconRichor, + titleIcon: FaviconRichor, + titleDistance: '-150px', + navigationLogoWidth: '40px', + navigationMarginLeft: '60px', + systemType: '011' + }, designjxgm: { title: '江西工业贸易职业技术学院城市轨道交通设计平台', loginPath: '/design/login?project=jxgm', @@ -622,6 +648,30 @@ export const loginInfo = { navigationLogoWidth: '40px', navigationMarginLeft: '60px', systemType: '026' + }, + unittecsty: { + title: '城市轨道交通实训平台', + loginPath: '/login?project=unittecsty', + loginParam: 'UNITTEC_STY', + titleDistance: '-150px', + titleIcon: Link_Unittec, + linkIcon: Link_Unittec, + titleImgWidth: '250px', + navigationLogoWidth: '60px', + navigationMarginLeft: '80px', + systemType: '011' + }, + designunittecsty: { + title: '城市轨道交通设计平台', + loginPath: '/design/login?project=unittecsty', + loginParam: 'UNITTEC_STY', + titleDistance: '-150px', + titleIcon: Link_Unittec, + linkIcon: Link_Unittec, + titleImgWidth: '250px', + navigationLogoWidth: '60px', + navigationMarginLeft: '80px', + systemType: '011' } }; @@ -681,7 +731,9 @@ export const ProjectIcon = { richorygy: FaviconRichor, designrichorygy: FaviconRichor, say: FaviconSay, - designsay: FaviconSay + designsay: FaviconSay, + unittecsty: FaviconUnittec, + designunittecsty: FaviconUnittec }; export const ProjectCode = { @@ -731,18 +783,20 @@ export const ProjectCode = { say: 'SAY', designsay: 'SAY', xzexam:'SAY', + unittecsty: 'UNITTEC_STY', + designunittecsty: 'UNITTEC_STY' }; /** 嵌入第三方平台 导航栏右上角 清空 */ export const ThirdLoginList = ['richor', 'designrichor', 'richorygy', 'designrichorygy']; /** 底部栏仅展示公司信息不展示备案号 */ export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo', 'richorygy', - 'designrichorygy']; + 'designrichorygy', 'unittecsty', 'designunittecsty']; /** 实训设计平台通过项目code获取地图列表的项目 */ export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls', 'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'designbjd', 'cgy', 'designcgy', 'zzww', 'zzwwtest', 'richor', 'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo', 'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', - 'richorygy', 'designrichorygy', 'say', 'designsay']; + 'richorygy', 'designrichorygy', 'say', 'designsay', 'unittecsty', 'designunittecsty']; /** 案例展示隐藏的项目 */ export const CaseHideProjectList = ['heb', 'designheb', 'cgy', 'designcgy']; /** 登录页右下角版本开发基于不展示 */ @@ -751,12 +805,12 @@ export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts' /** 登录页右下角主体不展示 */ export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'xadt', 'designxadt', 'richor', 'richorlesson3d', 'richorjoint', 'nologo', 'designnologo', - 'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', 'xzexam', 'richorygy', 'designrichorygy']; + 'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', 'xzexam', 'richorygy', 'designrichorygy', 'unittecsty', 'designunittecsty']; /** 登录页项目 title 登录输入框上方 大字体 加粗居中 */ export const ProjectLoginStyleList = ['gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'drts', 'wjls', 'hyd', 'designhyd', 'nty', 'designnty', 'bjd', 'designbjd', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'cgy', 'designcgy', 'zzww', 'zzwwtest', 'srsandbox', 'designsrsandbox', 'designhlsdrts', 'hlsdrts', 'jxgm', 'designjxgm', 'xzexam', - 'richorygy', 'designrichorygy', 'say', 'designsay']; + 'richorygy', 'designrichorygy', 'say', 'designsay', 'unittecsty', 'designunittecsty']; /** 登录页 登录输入框无二维码 */ export const NoQrcodeList = ['heb', 'designheb', 'cgy', 'designcgy', 'ntyl', 'designntyl']; /** 综合演练 无二维码 */ @@ -811,7 +865,9 @@ export const goOtherPlatformMenu = { jxgm: '/design/login?project=jxgm', designjxgm: '/login?project=jxgm', say: '/design/login?project=say', - designsay: '/login?project=say' + designsay: '/login?project=say', + unittecsty: '/design/login?project=unittecsty', + designunittecsty: '/login?project=unittecsty' }; export const ProjectList = [ {value:'xty', label:'西铁院'}, @@ -836,7 +892,8 @@ export const ProjectList = [ {value: 'sr_sandbox', label: '上饶沙盘'}, {value: 'jxgm', label: '江西工贸' }, {value: 'richor_ygy', label: '扬州工业'}, - {value: 'say', label: '苏安院'} + {value: 'say', label: '苏安院'}, + {value: 'unittec_sty', label: '众合-陕铁院'} ]; /** 本地项目打包 */ export const localPackageProject = { diff --git a/src/scripts/cmdPlugin/CommandEnum.js b/src/scripts/cmdPlugin/CommandEnum.js index ebd795620..b0035ab3c 100644 --- a/src/scripts/cmdPlugin/CommandEnum.js +++ b/src/scripts/cmdPlugin/CommandEnum.js @@ -379,8 +379,14 @@ export default { CMD_DIRECTION_CHANGE: {value: 'Direction_Change', label: '切换方向'} }, CTC: { - CTC_RECEIVING_NOTICE: {value: 'CTC_RECEIVING_NOTICE', label: '接预'}, - CTC_DEPARTURE_NOTICE: {value: 'CTC_DEPARTURE_NOTICE', label: '发预'}, + CTC_FINISH_RECEIVING_NOTICE: {value: 'CTC_FINISH_RECEIVING_NOTICE', label: '完成接预'}, + CTC_CANCEL_RECEIVING_NOTICE: {value: 'CTC_CANCEL_RECEIVING_NOTICE', label: '取消接预'}, + CTC_FINISH_ARRIVE: {value: 'CTC_FINISH_ARRIVE', label: '完成到点'}, + CTC_CANCEL_ARRIVE: {value: 'CTC_CANCEL_ARRIVE', label: '取消到点'}, + CTC_FINISH_DEPARTURE_NOTICE: {value: 'CTC_FINISH_DEPARTURE_NOTICE', label: '完成发预'}, + CTC_CANCEL_DEPARTURE_NOTICE: {value: 'CTC_CANCEL_DEPARTURE_NOTICE', label: '取消发预'}, + CTC_FINISH_DEPARTURE: {value: 'CTC_FINISH_DEPARTURE', label: '完成发点'}, + CTC_CANCEL_DEPARTURE: {value: 'CTC_CANCEL_DEPARTURE', label: '取消发点'}, CTC_ASSIST_PRESS_DOWN_TURN_DIRECTION:{value:'ASSIST_PRESS_DOWN_TURN_DIRECTION', label:'改方'}, CTC_AUTO_TRIGGER: {value: 'CTC_AUTO_TRIGGER', label: '自动触发'}, CTC_ASSIST_PRESS_MAIN_ASSIST:{value: 'ASSIST_PRESS_MAIN_ASSIST', label: '总辅助'}, @@ -388,6 +394,17 @@ export default { CTC_ASSIST_PRESS_DELIVER_ASSIST:{value: 'ASSIST_PRESS_DELIVER_ASSIST', label: '发辅助'}, CTC_ASSIST_PRESS_BLOCK:{value: 'ASSIST_PRESS_BLOCK', label: '阻塞'}, CTC_ASSIST_PRESS_RESTORE:{value: 'ASSIST_PRESS_RESTORE', label: '复原'}, - CTC_ASSIST_PRESS_ACCIDENT:{value: 'ASSIST_PRESS_ACCIDENT', label: '事故'} + CTC_ASSIST_PRESS_ACCIDENT:{value: 'ASSIST_PRESS_ACCIDENT', label: '事故'}, + CTC_BATCH_MODIFY_RUN_PLAN:{value: 'CTC_BATCH_MODIFY_RUN_PLAN', label: '批量修改股道'}, + CTC_REMOVE_RUN_PLAN:{value: 'CTC_REMOVE_RUN_PLAN', label: '移除行车日志'}, + CTC_MODIFY_ADJACENT_STATION:{value: 'CTC_MODIFY_ADJACENT_STATION', label: '修改邻站信息'}, + CTC_MODIFY_TRIP_NUMBER:{value: 'CTC_MODIFY_TRIP_NUMBER', label: '修改车次号(大铁CTC)'}, + CTC_SEND_NOTICE:{value: 'CTC_SEND_NOTICE', label: '发送发车预告'}, + CTC_AGREE_NOTICE:{value: 'CTC_AGREE_NOTICE', label: '同意发车预告'}, + CTC_ADD_RUN_PLAN_LIST_TO_EDIT_AREA:{value: 'CTC_ADD_RUN_PLAN_LIST_TO_EDIT_AREA', label: '增加列车固定径路'}, + CTC_COVER_RUN_PLAN_LIST_TO_EDIT_AREA:{value: 'CTC_COVER_RUN_PLAN_LIST_TO_EDIT_AREA', label: '导入列车固定径路'}, + CTC_REMOVE_RUN_PLAN_FROM_EDIT_AREA:{value: 'CTC_REMOVE_RUN_PLAN_FROM_EDIT_AREA', label: '删除列车固定径路'}, + CTC_RELEASE_RUN_PLAN_TO_SIMULATION:{value: 'CTC_RELEASE_RUN_PLAN_TO_SIMULATION', label: '运行计划发布至CTC'}, + CTC_SET_ROUTE:{value: 'CTC_SET_ROUTE', label: 'CTC办理进路'} } }; diff --git a/src/scripts/cmdPlugin/OperationHandler.js b/src/scripts/cmdPlugin/OperationHandler.js index b75a736d9..404e9e199 100644 --- a/src/scripts/cmdPlugin/OperationHandler.js +++ b/src/scripts/cmdPlugin/OperationHandler.js @@ -1761,15 +1761,15 @@ export const OperationEvent = { }, // 点灯 (大铁) signalLight: { - menuButton: { - operation: '3231', + menuButton: { + operation: '3231', domId: '_Tips-Signal-signalLight-MenuButton{BOTTOM}' } }, // 灭灯 (大铁) signalDestroy: { - menuButton: { - operation: '3232', + menuButton: { + operation: '3232', domId: '_Tips-Signal-signalDestroy-MenuButton{BOTTOM}' } } @@ -2991,16 +2991,16 @@ export const OperationEvent = { }, // 引导总锁Station_Master_Lock stationMasterLock: { - menuButton: { - operation: '621', + menuButton: { + operation: '621', domId: '_Tips-Station-stationMasterLock' }, leftButton: { - operation: '6211', + operation: '6211', domId: '_Tips-Station-stationMasterLock-leftButton' }, rightButton: { - operation: '6212', + operation: '6212', domId: '_Tips-Station-stationMasterLock-rightButton' } } @@ -3607,15 +3607,15 @@ export const OperationEvent = { } }, CTCCommand: { - receivingNotice: { - menu: { - operation: '1100', + receivingNotice: { + menu: { + operation: '1100', domId: '_Tips-CTC-ReceivingNotice-Menu{TOP}' } }, departureNotice: { - menu: { - operation: '1101', + menu: { + operation: '1101', domId: '_Tips-CTC-DepartureNotice-Menu{TOP}' } }, @@ -3626,48 +3626,166 @@ export const OperationEvent = { } }, autoTrigger: { - menu: { - operation: '1103', + menu: { + operation: '1103', domId: '_Tips-CTC-AutoTrigger-Menu{TOP}' } }, assistPressMainAssist:{ menu: { - operation: '1104', + operation: '1104', domId: '_Tips-CTC-AssistPressMainAssist-Menu{TOP}' } }, assistPressReceiveAssist:{ menu: { - operation: '1105', + operation: '1105', domId: '_Tips-CTC-AssistPressReceiveAssist-Menu{TOP}' } }, assistPressDeliverAssist:{ menu: { - operation: '1106', + operation: '1106', domId: '_Tips-CTC-AssistPressDeliverAssist-Menu{TOP}' } }, assistPressBlock:{ menu: { - operation: '1107', + operation: '1107', domId: '_Tips-CTC-AssistPressBlock-Menu{TOP}' } }, assistPressRestore:{ menu: { - operation: '1108', + operation: '1108', domId: '_Tips-CTC-AssistPressRestore-Menu{TOP}' } }, assistPressAccident:{ menu: { - operation: '1109', + operation: '1109', domId: '_Tips-CTC-AssistPressAccident-Menu{TOP}' } + }, + // 批量修改股道 + batchModifyTrackSection:{ + menu: { + operation: '1111', + domId: '_Tips-CTC-batchModifyTrackSection-Menu{TOP}' + } + }, + // 移除行车日志 + deleteRunplan:{ + menu: { + operation: '1112', + domId: '_Tips-CTC-deleteRunplan-Menu{TOP}' + } + }, + // 修改行车计划的邻站信息 + modifyAdjacentStation:{ + menu: { + operation: '1113', + domId: '_Tips-CTC-modifyAdjacentStation-Menu{TOP}' + } + }, + // 修改车次号(大铁CTC) + modifyTripNumber:{ + menu: { + operation: '1114', + domId: '_Tips-CTC-modifyTripNumber-Menu{TOP}' + } + }, + // 发送发车预告 + sendNotcie:{ + menu: { + operation: '1115', + domId: '_Tips-CTC-sendNotcie-Menu{TOP}' + } + }, + // 同意发车预告 + agreeNotcie:{ + menu: { + operation: '1116', + domId: '_Tips-CTC-agreeNotcie-Menu{TOP}' + } + }, + // 取消接预 + cancelReceivingNotice: { + menu: { + operation: '1117', + domId: '_Tips-CTC-CancelReceivingNotice-Menu{TOP}' + } + }, + // 取消发预 + cancelDepartureNotice: { + menu: { + operation: '1118', + domId: '_Tips-CTC-CancelDepartureNotice-Menu{TOP}' + } + }, + // 完成到点 FINISH_ARRIVE + finishArrive: { + menu: { + operation: '1119', + domId: '_Tips-CTC-FinishArrive-Menu{TOP}' + } + }, + // 取消到点 + cancelArrive: { + menu: { + operation: '1120', + domId: '_Tips-CTC-CancelArrive-Menu{TOP}' + } + }, + // 完成发点 CTC_FINISH_DEPARTURE + finishDeparture: { + menu: { + operation: '1121', + domId: '_Tips-CTC_FinishDeparture-Menu{TOP}' + } + }, + // 取消发点 + cancelDeparture: { + menu: { + operation: '1122', + domId: '_Tips-CTC_CancelDeparture-Menu{TOP}' + } + }, + // 增加列车固定径路 + addTrainFixedPath:{ + menu: { + operation: '1123', + domId: '_Tips-CTC-addTrainFixedPath-Menu{TOP}' + } + }, + // 导入列车固定径路 + importTrainFixedPath:{ + menu: { + operation: '1124', + domId: '_Tips-CTC-importTrainFixedPath-Menu{TOP}' + } + }, + // 删除列车固定径路 + deleteTrainFixedPath:{ + menu: { + operation: '1125', + domId: '_Tips-CTC-deleteTrainFixedPath-Menu{TOP}' + } + }, + // 运行计划发布至CTC + releaseTrainFixedPath:{ + menu: { + operation: '1126', + domId: '_Tips-CTC-releaseTrainFixedPath-Menu{TOP}' + } + }, + // 设置进路 + setRoute: { + menu: { + operation: '1127', + domId: '_Tips-CTC-setRoute-Menu{TOP}' + } } - } }; diff --git a/src/store/modules/socket.js b/src/store/modules/socket.js index 00e59053e..5472e1d28 100644 --- a/src/store/modules/socket.js +++ b/src/store/modules/socket.js @@ -1,4 +1,5 @@ import store from '@/store/index'; +import { copyAssign } from '@/utils/index'; import { Notification } from 'element-ui'; function handleSockInfo(state, msg, type) { @@ -198,11 +199,75 @@ function handle(state, data) { state.simulationPlanChange = msg; break; // 占线板信息 - case 'Simulation_RailCtcStatus': - state.railCtcStatusMsg = msg; - break; + case 'Simulation_RailCtcStatus': + state.railCtcStatusMsg = msg; + break; + // 大铁项目 ctc 运行图初始化信息 + case 'SIMULATION_CTC_RUN_PLAN_INIT': + msg.forEach(element => { + const tripNumberDe = element.departRunPlan && element.departRunPlan.tripNumber; + const tripNumberAr = element.arriveRunPlan && element.arriveRunPlan.tripNumber; + if (tripNumberDe) { parseInt(tripNumberDe[tripNumberDe.length - 1]) % 2 == 0 ? element.departRunPlan.up = tripNumberDe : element.departRunPlan.down = tripNumberDe; } + if (tripNumberAr) { parseInt(tripNumberAr[tripNumberAr.length - 1]) % 2 == 0 ? element.arriveRunPlan.up = tripNumberAr : element.arriveRunPlan.down = tripNumberAr; } + const code = element.stationCode + '' + element.code; + state.railCtcRunplanInitMsg[code] = element; + }); + break; + // 大铁项目 ctc 运行图改变信息 + case 'SIMULATION_CTC_RUN_PLAN_CHANGE': + msg.forEach(element => { + const tripNumberDe = element.departRunPlan && element.departRunPlan.tripNumber; + const tripNumberAr = element.arriveRunPlan && element.arriveRunPlan.tripNumber; + if (tripNumberDe) { + element.departRunPlan.up = ''; + element.departRunPlan.down = ''; + parseInt(tripNumberDe[tripNumberDe.length - 1]) % 2 == 0 ? element.departRunPlan.up = tripNumberDe : element.departRunPlan.down = tripNumberDe; + } + if (tripNumberAr) { + element.arriveRunPlan.up = ''; + element.arriveRunPlan.down = ''; + parseInt(tripNumberAr[tripNumberAr.length - 1]) % 2 == 0 ? element.arriveRunPlan.up = tripNumberAr : element.arriveRunPlan.down = tripNumberAr; + } + const code = element.stationCode + '' + element.code; + state.railCtcRunplanInitMsg[code] = copyAssign(state.railCtcRunplanInitMsg[code], element); + }); + state.railCtcRunplanChange++; + break; + // 大铁项目 ctc 车务管理端 初始化消息 + case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_INIT': + state.railCtcStationManageRpMsg = {}; + msg.forEach(element => { + const code = element.stationCode + '' + element.tripNumber; + state.railCtcStationManageRpMsg[code] = element; + }); + // state.railCtcStationManageRpChange++; + break; + // 大铁项目 ctc 车务管理端 修改/增加消息 + case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_CHANGE': + msg.forEach(element => { + const code = element.stationCode + '' + element.tripNumber; + state.railCtcStationManageRpMsg[code] = copyAssign(state.railCtcStationManageRpMsg[code] || {}, element); + }); + state.railCtcStationManageRpChange++; + break; + // 大铁项目 ctc 车务管理端 移除消息 + case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_REMOVE': + msg.forEach(element => { + const code = element.stationCode + '' + element.tripNumber; + delete state.railCtcStationManageRpMsg[code]; + }); + state.railCtcStationManageRpChange++; + break; + // // 大铁项目 ctc 车务管理端 覆盖消息 + // case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_COVER': + // state.railCtcStationManageRpMsg = {}; + // msg.forEach(element => { + // const code = element.stationCode + '' + element.tripNumber; + // state.railCtcStationManageRpMsg[code] = element; + // }); + // state.railCtcStationManageRpChange++; + // break; } - } // 操作聊天信息 @@ -352,7 +417,11 @@ const socket = { simulationPslStatus: [], // PSL面板按钮状态信息 simulationPlanChange:{}, // 运行图加线/抽线/变化推送消息 loggedOutMsg: '', - railCtcStatusMsg: {}, // 占线板信息 + railCtcStatusMsg: {}, // 占线板信息 + railCtcRunplanInitMsg:{}, // 大铁项目 ctc 运行图初始化信息 + railCtcRunplanChange:0, // 大铁项目 ctc 运行图信息变化 + railCtcStationManageRpMsg:{}, // 大铁项目 ctc 车务管理 端运行图信息 + railCtcStationManageRpChange:0 // 大铁项目 ctc 车务管理 运行图信息变化 }, getters: { }, diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index 05d02e164..f2ce36aff 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -24,7 +24,7 @@ export function handlerUrl(data) { if (process.env.NODE_ENV === 'development') { // const data = null; // BASE_API = 'https://joylink.club/jlcloud'; - BASE_API = 'https://test.joylink.club/jlcloud'; + // BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'http://114.116.51.125/jlcloud'; // BASE_API = 'http://192.168.8.152:9000'; // 袁琪 // BASE_API = 'http://192.168.8.172:9200'; // 旭强 @@ -33,7 +33,7 @@ export function handlerUrl(data) { // BASE_API = 'http://192.168.3.37:9000'; // 卫志宏 // BASE_API = 'http://b29z135112.zicp.vip'; // BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康 - // BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛 + BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛 // BASE_API = data && data.domainName ? 'https://' + data.domainName : BASE_API; BASE_API = data && data.domainName ? 'http://' + data.domainName : BASE_API; VOICE_API = data && data.resourcesDomainName ? 'https://' + data.resourcesDomainName : 'https://joylink.club/oss/joylink'; diff --git a/src/utils/index.js b/src/utils/index.js index fd7687409..72288aaa6 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -185,6 +185,18 @@ export function segmentsIntr(a, b, c, d) { return { x: a.x + dx, y: a.y + dy }; } +export function copyAssign(...param) { + const result = Object.assign({}, ...param); + for (const item of param) { + for (const [idx, val] of Object.entries(item)) { + if (typeof val === 'object') { + result[idx] = copyAssign(result[idx], val); + } + } + } + return result; +} + // export function deepAssign(obj, item) { // function * colneData(item) { // for (const keys in item) { diff --git a/src/utils/stomp.js b/src/utils/stomp.js index c420e0fbb..208d283f7 100644 --- a/src/utils/stomp.js +++ b/src/utils/stomp.js @@ -31,7 +31,15 @@ export function getTopic(type, group, stationCode) { case 'ISCSPIS': topic = `/queue/simulation/${group}/iscs/pis`; break; + case 'CTC': + topic = `/user/queue/simulation/${group}/ctc`; + break; + case 'CTC_MANAGE': + // topic = `/user/queue/simulation/${group}/ctc/manage`; + topic = `/user/queue/simulation/${group}/ctcManage`; + break; } + return topic; } diff --git a/src/views/bigTrainRunplanManage/addRunplan.vue b/src/views/bigTrainRunplanManage/addRunplan.vue new file mode 100644 index 000000000..6ecb487f7 --- /dev/null +++ b/src/views/bigTrainRunplanManage/addRunplan.vue @@ -0,0 +1,424 @@ + + + + diff --git a/src/views/bigTrainRunplanManage/index.vue b/src/views/bigTrainRunplanManage/index.vue new file mode 100644 index 000000000..63e450986 --- /dev/null +++ b/src/views/bigTrainRunplanManage/index.vue @@ -0,0 +1,308 @@ + + + + diff --git a/src/views/bigTrainRunplanManage/stationTrack.vue b/src/views/bigTrainRunplanManage/stationTrack.vue new file mode 100644 index 000000000..a11129d7f --- /dev/null +++ b/src/views/bigTrainRunplanManage/stationTrack.vue @@ -0,0 +1,168 @@ + + + + diff --git a/src/views/bigTrainRunplanManage/terminalStationList.vue b/src/views/bigTrainRunplanManage/terminalStationList.vue new file mode 100644 index 000000000..5f6c4251b --- /dev/null +++ b/src/views/bigTrainRunplanManage/terminalStationList.vue @@ -0,0 +1,113 @@ + + + + diff --git a/src/views/bigTrainRunplanManage/trainFixedPath.vue b/src/views/bigTrainRunplanManage/trainFixedPath.vue new file mode 100644 index 000000000..8cbb64706 --- /dev/null +++ b/src/views/bigTrainRunplanManage/trainFixedPath.vue @@ -0,0 +1,492 @@ + + + + + diff --git a/src/views/ibp/ibpDraw/ibpOperate/ibpAlarm.vue b/src/views/ibp/ibpDraw/ibpOperate/ibpAlarm.vue index 6d37838e8..9ab2c6af7 100644 --- a/src/views/ibp/ibpDraw/ibpOperate/ibpAlarm.vue +++ b/src/views/ibp/ibpDraw/ibpOperate/ibpAlarm.vue @@ -15,10 +15,20 @@ + + + + + - -
- + {{ title }}
@@ -245,6 +245,9 @@ export default { titleDistance() { return loginInfo[this.project].titleDistance || '-60px'; }, + titleImgWidth() { + return loginInfo[this.project].titleImgWidth || '80px'; + }, logoImg() { const projectName = this.project; return ProjectIcon[projectName]; diff --git a/src/views/login/register.vue b/src/views/login/register.vue index a96dc2548..c47c3c35a 100644 --- a/src/views/login/register.vue +++ b/src/views/login/register.vue @@ -10,18 +10,18 @@ top="25vh" > - - - - + + + +