diff --git a/src/assets/home_exam/exam1.png b/src/assets/home_exam/exam1.png new file mode 100644 index 000000000..be00bfa22 Binary files /dev/null and b/src/assets/home_exam/exam1.png differ diff --git a/src/assets/home_simulation/simulation1.png b/src/assets/home_simulation/simulation1.png new file mode 100644 index 000000000..49dd9eebd Binary files /dev/null and b/src/assets/home_simulation/simulation1.png differ diff --git a/src/assets/home_simulation/simulation2.png b/src/assets/home_simulation/simulation2.png new file mode 100644 index 000000000..a572f06fe Binary files /dev/null and b/src/assets/home_simulation/simulation2.png differ diff --git a/src/assets/home_simulation/simulation3.png b/src/assets/home_simulation/simulation3.png new file mode 100644 index 000000000..8e9bbd9b2 Binary files /dev/null and b/src/assets/home_simulation/simulation3.png differ diff --git a/src/assets/home_simulation/simulation4.png b/src/assets/home_simulation/simulation4.png new file mode 100644 index 000000000..b07e288f2 Binary files /dev/null and b/src/assets/home_simulation/simulation4.png differ diff --git a/src/assets/home_simulation/simulation5.png b/src/assets/home_simulation/simulation5.png new file mode 100644 index 000000000..4c28059a0 Binary files /dev/null and b/src/assets/home_simulation/simulation5.png differ diff --git a/src/assets/home_teach/teach1.png b/src/assets/home_teach/teach1.png new file mode 100644 index 000000000..887d8c01e Binary files /dev/null and b/src/assets/home_teach/teach1.png differ diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index 738915a37..64c6eb003 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -183,6 +183,7 @@ class SkinCode extends defaultStyle { }, auto: { signalFrontTriangle: false, // 信号灯前三角展示 + autoRouteType:'line', // 自动进路类型 line 为西安二号线的类型(只更改信号机灯柱的颜色) direction: false, // 自动通过方向 offset: { x: -4, y: 0}, // 自动通过偏移量 width: 5, // 自动宽度 diff --git a/src/jmapNew/mouseController.js b/src/jmapNew/mouseController.js index 92865276e..c72b4e8a5 100644 --- a/src/jmapNew/mouseController.js +++ b/src/jmapNew/mouseController.js @@ -247,6 +247,14 @@ class MouseController extends Eventful { x2: item.namePosition.x, y2: item.namePosition.y }; + } else if (item.type == '05') { + const rect = item.instance.getBoundingRect(); + deviceBoundingRect = { + x1: rect.x, + y1: rect.y, + x2: rect.x + rect.width, + y2:rect.y + rect.height + }; } else { deviceBoundingRect = { x1: item.points[0].x, diff --git a/src/jmapNew/shape/Section/ELines.js b/src/jmapNew/shape/Section/ELines.js index c8278822f..c72fb9127 100644 --- a/src/jmapNew/shape/Section/ELines.js +++ b/src/jmapNew/shape/Section/ELines.js @@ -362,6 +362,9 @@ export default class ELines extends Group { this.routeArrowRight.hide(); this.routeLineRight.hide(); } + if (model.type == '01' && model.parentCode) { + this.section.setStyle({stroke:'#5b5b5b'}); + } } } @@ -374,7 +377,8 @@ export default class ELines extends Group { } setOrignalCross() { - this.crossSection && this.crossSection.setStyle({lineWidth:0, fill:this.model.style.Section.cross.crossSection.fillColor}); + this.crossSection && this.crossSection.setStyle({lineWidth:0 }); + // fill:this.model.style.Section.cross.crossSection.fillColor } setCrossBlock() { @@ -384,12 +388,11 @@ export default class ELines extends Group { this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.defaultColor}); } setCrossSpeedUpperLimit(speedLimit) { - if (speedLimit) { - debugger; - this.crossSpeedText && this.crossSpeedText.setStyle({text:speedLimit, textFill: 'red' }); - } + this.crossSpeedText && this.crossSpeedText.setStyle({text:speedLimit, textFill: 'red' }); + } + setCrossDefault() { + this.crossSection && this.crossSection.setStyle({fill:this.model.style.Section.cross.crossSection.fillColor}); } - setZleve(lev) { this.section && this.section.attr('z', lev); } @@ -402,9 +405,17 @@ export default class ELines extends Group { show() { this.section && this.section.show(); this.crossSection && this.crossSection.show(); + this.crossText && this.crossText.show(); + this.crossSpeedText && this.crossSpeedText.show(); this.centerSquare && this.centerSquare.show(); } + setCrossRouteLock() { + if (this.crossSection) { + this.crossSection.setStyle({fill:'rgba(0,0,0,0)'}); + } + } + animateStyle(loop, animates) { if (animates && animates.length) { if (this.section && this.section.animateStyle && this.section.isLine) { diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js index fc30a3994..5a0bc429c 100644 --- a/src/jmapNew/shape/Section/index.js +++ b/src/jmapNew/shape/Section/index.js @@ -90,11 +90,16 @@ export default class Section extends Group { this.line.stopAnimation(true); this.sectionBlock && this.sectionBlock.hide(); // 因此特殊区段 this.sectionBlock && this.sectionBlock.stopAnimation(); - this.line.setStyle({ - stroke: this.style.Section.line.spareColor, - lineWidth: this.style.Section.line.width - }); + if (this.model.type == '01' && this.model.parentCode) { + this.line.setStyle({stroke:'#5b5b5b'}); + } else { + this.line.setStyle({ + stroke: this.style.Section.line.spareColor, + lineWidth: this.style.Section.line.width + }); + } this.line.setCrossSpeedUpperLimit(''); + this.line.setCrossDefault(); } this.name && this.name.recover(); this.speedLimit && this.speedLimit.hide(); @@ -121,10 +126,15 @@ export default class Section extends Group { /** 空闲状态 01*/ spare() { if (this.line) { - this.line.setStyle({ - stroke: this.style.Section.line.spareColor, - lineWidth: this.style.Section.line.width - }); + if (this.model.type == '01' && this.model.parentCode) { + this.section.setStyle({stroke:'#5b5b5b'}); + } else { + this.line.setStyle({ + stroke: this.style.Section.line.spareColor, + lineWidth: this.style.Section.line.width + }); + } + } } @@ -172,6 +182,7 @@ export default class Section extends Group { stroke: this.style.Section.line.routeLockColor, lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth }); + this.line.setCrossRouteLock(); this.line.setRouteLock(lockRight); } } @@ -179,6 +190,7 @@ export default class Section extends Group { /** 封锁 06*/ block(routeLock) { if (this.sectionBlock && this.model.type !== '03') { + this.sectionBlock.setStyle({stroke: this.style.Section.line.blockColor}); this.sectionBlock.show(); routeLock && this.style.Section.line.routeBlockFlashing && this.sectionBlock.animateStyle(true, [ { time: 500, styles: { stroke: this.style.backgroundColor } }, @@ -277,20 +289,31 @@ export default class Section extends Group { this.line && this.line.setStyle({stroke: '#7F7F7F'}); this.name && this.name.setStyle({textFill: '#7F7F7f'}); } + // 南京二号线 + setSwitchSectionColor(section1, section2) { + section1 && section1.instance && section1.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); + section2 && section2.instance && section2.instance.setState(section2, true); + } handleSwitchSection(model, flag) { // 哈尔滨线路 南京二 道岔相关区段设置 默认颜色 if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) { const switchModel = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode]; const sectionB = Vue.prototype.$jlmap.mapDevice[switchModel.sectionBCode]; const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode]; - if (switchModel && (switchModel.normalPosition === 1 || (switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse'))) { // 定位情况 - sectionC && sectionC.instance && sectionC.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); - sectionB && sectionB.instance && sectionB.instance.setState(sectionB, true); - } else if (switchModel && switchModel.reversePosition === 1 || (switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal')) { // 反位情况 - sectionB && sectionB.instance && sectionB.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); - sectionC && sectionC.instance && sectionC.instance.setState(sectionC, true); + if (switchModel && switchModel.normalPosition === 1) { + this.setSwitchSectionColor(sectionC, sectionB);// 定位 + } else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse' && switchModel.fault !== 'SPLIT') { + this.setSwitchSectionColor(sectionC, sectionB);// 反位转定位前 + } else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal' && (switchModel.fault === 'SPLIT' || switchModel.fault === 'NORMAL_SPLIT')) { + this.setSwitchSectionColor(sectionC, sectionB);// 定位变失表或定位失表 + } else if (switchModel && switchModel.reversePosition === 1) { + this.setSwitchSectionColor(sectionB, sectionC); // 反位 + } else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal' && switchModel.fault !== 'SPLIT') { + this.setSwitchSectionColor(sectionB, sectionC); // 定位转反位前 + } else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse' && (switchModel.fault === 'SPLIT' || switchModel.fault === 'REVERSE_SPLIT')) { + this.setSwitchSectionColor(sectionB, sectionC);// 反位变失表后反位失表 } - if (this.style.Section.switchFault && switchModel.split) { + if (this.style.Section.switchFault && switchModel.fault === 'SQUEEZE') { if (sectionB && sectionB.instance) { sectionB.instance.setState(sectionB, true); sectionB.instance.line.animateStyle(true, [ diff --git a/src/jmapNew/shape/Signal/index.js b/src/jmapNew/shape/Signal/index.js index c8546adde..89c390695 100644 --- a/src/jmapNew/shape/Signal/index.js +++ b/src/jmapNew/shape/Signal/index.js @@ -613,7 +613,7 @@ class Signal extends Group { this.sigRoute.show(); this.sigRoute.setStyle({ fill: this.style.Signal.auto.autoRoute }); } else { - if (this.style.Signal.auto.autoRouteType != 'text') { + if (this.style.Signal.auto.autoRouteType != 'text' && this.style.Signal.auto.autoRouteType != 'line') { this.sigAuto.setColor(this.style.Signal.auto.autoRoute); this.sigAuto.show(); } @@ -625,7 +625,7 @@ class Signal extends Group { if (this.style.Signal.post.autoRouteColor) { this.sigPost.setColor(this.style.Signal.post.autoRouteColor); } else if (this.style.Signal.post.autoRouteVerColor) { - this.sigPost.setVerColor(this.style.Signal.post.setVerColor); + this.sigPost.setVerColor(this.style.Signal.post.autoRouteVerColor); } } @@ -801,11 +801,11 @@ class Signal extends Group { }); } } - if ( model.level === 3) { + if ( model.level === 3 && this.style.Signal.post.mainSignalVerColor && !model.fleetMode) { this.sigPost.setVerColor(this.style.Signal.post.mainSignalVerColor); - } else if (model.level === 1 && this.style.Signal.post.closeSignalVerColor) { + } else if (model.level === 1 && this.style.Signal.post.closeSignalVerColor && !model.fleetMode) { this.sigPost.setVerColor(this.style.Signal.post.closeSignalVerColor); - } else if (model.level === 2 && this.style.Signal.post.guideSignalVerColor) { + } else if (model.level === 2 && this.style.Signal.post.guideSignalVerColor && !model.fleetMode) { this.sigPost.setVerColor(this.style.Signal.post.guideSignalVerColor); } // 信号机故障 diff --git a/src/jmapNew/shape/Switch/index.js b/src/jmapNew/shape/Switch/index.js index 3a7788976..96b8a2e19 100644 --- a/src/jmapNew/shape/Switch/index.js +++ b/src/jmapNew/shape/Switch/index.js @@ -151,6 +151,8 @@ export default class Switch extends Group { const arrowTextY = model.intersection.y + 15; const nameTextX = model.namePosition.x + model.intersection.x + directx * (style.Section.line.width * 3 + style.Switch.text.offset.x) * this.triangle.getCotRate(); const nameTextY = model.namePosition.y + model.intersection.y + style.Switch.text.offset.y * (style.Switch.text.position || directy); + const eTextX = nameTextX + const eTextY = nameTextY + (directy == 1? 6 * directy: 3 * directy); this.name = new ESwName({ // 道岔名称 zlevel: this.zlevel, @@ -168,16 +170,15 @@ export default class Switch extends Group { this.enabledName = new Text({ // 道岔使能 E 西安二号线独有 zlevel: this.zlevel, - z: this.z + 6, + z: this.z + 99, _subType: 'enabled', // 标识 style: { - x: nameTextX, - // y: nameTextY + directy * 20, - y: nameTextY + 20, + x: eTextX, + y: eTextY, fontSize: 12, text: 'E', textAlign: 'center', - textVerticalAlign: 'middle', + textVerticalAlign: directy == 1 ? 'top': 'bottom', textFill: 'yellow' } }); @@ -326,7 +327,7 @@ export default class Switch extends Group { } } // 南京二号线 A,B闪烁 - shapeFlashing(split) { + shapeFlashing(fault) { let bColor = '#7F7F7F'; let aColor = '#7F7F7F'; if (this.switchPosition === 'normal') { @@ -351,19 +352,19 @@ export default class Switch extends Group { .start(); }); }, 100); - if (split) { + if (fault === 'SQUEEZE') { this.shapeModelA.hide(); this.shapeModelB.hide(); this.shapeModelC.hide(); } } /** 失去*/ - setLossAction(split) { + setLossAction(fault) { this.shapeModelA.show(); this.shapeModelB.show(); this.shapeModelC.show(); this.shapeModelC.setColor(this.style.backgroundColor); - this.style.Switch.shapeFlash && this.shapeFlashing(split); + this.style.Switch.shapeFlash && this.shapeFlashing(fault); this.setTextColor(this.style.Switch.text.lossColor); this.style.Switch.text.faultFlashing && this.nameTextAnimation(); @@ -374,18 +375,18 @@ export default class Switch extends Group { .when(1000, { stroke: this.style.backgroundColor }) .start(); } - setSwitchFault(split, normalPosition, reversePosition) { - if (this.style.Switch.jointImg.faultStatus && split && !reversePosition && !normalPosition ) { // 宁波线失表状态 + setSwitchFault(fault, normalPosition, reversePosition) { + if (this.style.Switch.jointImg.faultStatus && fault && !reversePosition && !normalPosition ) { // 宁波线失表状态 this.setForkAction(); // 道岔挤岔 } else if (this.style.Switch.faultNoHandle ) { this.shapeModelA.hide(); this.shapeModelB.hide(); this.shapeModelC.hide(); } else { - if (this.model.switchFaultCode && split) { + if (this.model.switchFaultCode && fault) { const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode); switchFault.instance.setControlColor('#F00', true); - } else if (this.model.switchFaultCode && !split) { + } else if (this.model.switchFaultCode && !fault) { const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode); switchFault.instance.setControlColor(this.style.backgroundColor, false); } @@ -578,7 +579,7 @@ export default class Switch extends Group { setState(model) { if (!this.isShowShape) return; this.recover(); - this.setSwitchFault(model.split, model.normalPosition, model.reversePosition); + this.setSwitchFault(model.fault, model.normalPosition, model.reversePosition); if (model.normalPosition) { this.switchPosition = 'normal'; this.setLocationAction(model); /** 定位*/ @@ -586,7 +587,7 @@ export default class Switch extends Group { this.switchPosition = 'reverse'; this.setInversionAction(model); /** 反位*/ } else { - this.setLossAction(model.split); // 失去 + this.setLossAction(model.fault); // 失去 } model.isCiConfirm && this.setCiConfirm(); // 道岔使能显示 diff --git a/src/jmapNew/theme/chengdu_03/menus/menuButton.vue b/src/jmapNew/theme/chengdu_03/menus/menuButton.vue index 42fe107e9..00d6ef30c 100644 --- a/src/jmapNew/theme/chengdu_03/menus/menuButton.vue +++ b/src/jmapNew/theme/chengdu_03/menus/menuButton.vue @@ -117,6 +117,7 @@ import PasswordBox from './dialog/childDialog/passwordInputBox.vue'; import CMD from '@/scripts/cmdPlugin/CommandEnum'; import { mapGetters } from 'vuex'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; +import { OperateMode } from '@/scripts/ConstDic'; export default { name: 'MapButtonMenu', @@ -143,13 +144,15 @@ export default { }; }, computed: { + ...mapGetters('training', [ + 'operatemode' + ]), ...mapGetters('map', [ 'routeList', 'routeData', 'signalList', 'autoReentryList', 'autoReentryData', - '' ]), Switch() { return OperationEvent.Switch; @@ -330,7 +333,7 @@ export default { const operate = { operation: this.$store.state.menuOperation.buttonOperation }; - let isArrangementRoute = false; + let isArrangementRoute = false; if (deviceList.length === 1) { const signal = deviceList[0]; const sectionModel = this.$store.getters['map/getDeviceByCode'](signal.sectionCode); @@ -694,8 +697,8 @@ export default { this.clearOperate(); } } else { - this.clearOperate(); - // this.$messageBox('请先切换到站控或紧急站控'); + this.clearOperate(); + this.operatemode != OperateMode.FAULT && this.$message.info('请先切换到站控或紧急站控'); } } } diff --git a/src/jmapNew/theme/chengdu_03/operationConfig.js b/src/jmapNew/theme/chengdu_03/operationConfig.js index 005f2c587..92bbbc49d 100644 --- a/src/jmapNew/theme/chengdu_03/operationConfig.js +++ b/src/jmapNew/theme/chengdu_03/operationConfig.js @@ -8,6 +8,39 @@ // STAND 站台 // ROUTE 进路 // CYCLE 自动折返 + +// {id: "1", trainingType: "ControlConvertMenu", name: "车站名称"} +// {id: "2", trainingType: "ControlConvertMenu", name: "车站控制模式编号"} +// {id: "3", trainingType: "Signal", name: "进路名称"} +// {id: "4", trainingType: "Signal", name: "进路编号"} +// {id: "5", trainingType: "Signal", name: "信号机名称"} +// {id: "6", trainingType: "Signal", name: "信号机编号"} + +// {id: "7", trainingType: "Switch", name: "道岔名称"} + +// {id: "8", trainingType: "Section", name: "物理区段名称"} +// {id: "9", trainingType: "Section", name: "逻辑区段名称"} + +// {id: "10", trainingType: "Stand", name: "车站名称"} +// {id: "11", trainingType: "Stand", name: "站台行驶方向编号"} +// {id: "12", trainingType: "Stand", name: "站台行驶方向"} +// {id: "13", trainingType: "Stand", name: "站台行驶方向编号(反)"} +// {id: "14", trainingType: "Stand", name: "站台行驶方向(反)"} + +// {id: "15", trainingType: "Switch", name: "道岔位置"} +// {id: "16", trainingType: "Switch", name: "道岔位置(反)"} +// {id: "17", trainingType: "Switch", name: "道岔编码"} + +// {id: "18", trainingType: "Section", name: "逻辑区段编码"} +// {id: "19", trainingType: "Section", name: "区段编号"} +// {id: "20", trainingType: "Section", name: "车站名称"} + +// {id: "21", trainingType: "Switch", name: "车站名称"} +// {id: "22", trainingType: "Section", name: "车站编号"} +// {id: "23", trainingType: "Switch", name: "车站编号"} +// {id: "24", trainingType: "Switch", name: "道岔计轴区段编号"} +// {id: "25", trainingType: "Switch", name: "道岔计轴区段名称"} + import CMD from '@/scripts/cmdPlugin/CommandEnum'; export default { list: [ @@ -85,7 +118,8 @@ export default { { deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'START_SIGNAL' }, { deviceType: '04', orderNum: 3, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'END_SIGNAL' } ] - }, + }, + { maxDuration: 15, minDuration: 8, diff --git a/src/jmapNew/theme/foshan_01/menus/menuSwitch.vue b/src/jmapNew/theme/foshan_01/menus/menuSwitch.vue index 3592d34fe..42f6c6803 100644 --- a/src/jmapNew/theme/foshan_01/menus/menuSwitch.vue +++ b/src/jmapNew/theme/foshan_01/menus/menuSwitch.vue @@ -52,16 +52,16 @@ export default { menu: [], menuNormal: { Local: [ - { - 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.locate, + // cmdType:CMD.Switch.CMD_SWITCH_NORMAL_POSITION + // }, + // { + // label: '道岔强扳反位', + // handler: this.reverse, + // cmdType:CMD.Switch.CMD_SWITCH_REVERSE_POSITION + // }, { label: '区段激活', handler: this.active, diff --git a/src/jmapNew/theme/fuzhou_01/operationConfig.js b/src/jmapNew/theme/fuzhou_01/operationConfig.js index af686fd4e..c895ea357 100644 --- a/src/jmapNew/theme/fuzhou_01/operationConfig.js +++ b/src/jmapNew/theme/fuzhou_01/operationConfig.js @@ -91,7 +91,35 @@ export default { { deviceType: '05', orderNum: 7, operateCode: '0013', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '05', orderNum: 8, operateCode: '000', tip: '鼠标左键点击【关闭】按钮' } ] - }, + }, + // 未生成 + { + maxDuration: 15, + minDuration: 8, + operateType: 'CMD_STATION_SET_CI_AUTO_TRIGGER', + skinCode: '07', + trainingName: '全站设置联锁自动触发({26})', + trainingRemark: '全站设置联锁自动触发', + trainingType: 'Station', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '601', tip: '鼠标右键菜单选择【全站设置联锁自动触发】' }, + ] + }, + // 未生成 + { + maxDuration: 15, + minDuration: 8, + operateType: 'CMD_STATION_CANCEL_CI_AUTO_TRIGGER', + skinCode: '07', + trainingName: '全站取消联锁自动触发({26})', + trainingRemark: '全站取消联锁自动触发', + trainingType: 'Station', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '602', tip: '鼠标右键菜单选择【全站取消联锁自动触发】' }, + ] + }, { maxDuration: 15, @@ -364,24 +392,25 @@ export default { { deviceType: '03', orderNum: 1, operateCode: '406', tip: '鼠标右键菜单选择【区段激活】' }, { deviceType: '03', orderNum: 2, operateCode: '406', tip: '鼠标左键点击【确定】按钮' } ] + }, + // 未生成 + { + maxDuration: 15, + minDuration: 8, + operateType: 'Section_Axis_Pre_Reset', + skinCode: '02', + trainingName: '计轴预复位({8}{9})', + trainingRemark: '计轴预复位功能', + trainingType: 'Section', + productTypes: ['01', '02'], + stepVOList: [ + { deviceType: '03', orderNum: 1, operateCode: '409', tip: '鼠标右键菜单选择【区段计轴预复位】' }, + { deviceType: '03', orderNum: 2, operateCode: '4091', tip: '鼠标左键点击【下达】按钮' }, + { deviceType: '03', orderNum: 3, operateCode: '4093', tip: '鼠标左键点击【确认1】按钮' }, + { deviceType: '03', orderNum: 4, operateCode: '4094', tip: '鼠标左键点击【确认2】按钮' }, + { deviceType: '03', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } + ] }, - // { - // maxDuration: 15, - // minDuration: 8, - // operateType: 'Section_Axis_Pre_Reset', - // skinCode: '02', - // trainingName: '计轴预复位({8}{9})', - // trainingRemark: '计轴预复位功能', - // trainingType: 'Section', - // productTypes: ['01', '02'], - // stepVOList: [ - // { deviceType: '03', orderNum: 1, operateCode: '409', tip: '鼠标右键菜单选择【区段计轴预复位】' }, - // { deviceType: '03', orderNum: 2, operateCode: '4091', tip: '鼠标左键点击【下达】按钮' }, - // { deviceType: '03', orderNum: 3, operateCode: '4093', tip: '鼠标左键点击【确认1】按钮' }, - // { deviceType: '03', orderNum: 4, operateCode: '4094', tip: '鼠标左键点击【确认2】按钮' }, - // { deviceType: '03', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } - // ] - // }, { maxDuration: 15, minDuration: 8, @@ -543,24 +572,25 @@ export default { { deviceType: '02', orderNum: 4, operateCode: '1094', tip: '鼠标左键点击【确认2】按钮' }, { deviceType: '02', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } ] + }, + // 未生成实训 + { + maxDuration: 15, + minDuration: 8, + operateType: 'Switch_Axis_Pre_Reset', + skinCode: '02', + trainingName: '道岔计轴预复位({7})', + trainingRemark: '道岔计轴预复位功能', + trainingType: 'Switch', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '110', tip: '鼠标右键菜单选择【道岔计轴预复位】' }, + { deviceType: '02', orderNum: 2, operateCode: '1101', tip: '鼠标左键点击【下达】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '1103', tip: '鼠标左键点击【确认1】按钮' }, + { deviceType: '02', orderNum: 4, operateCode: '1104', tip: '鼠标左键点击【确认2】按钮' }, + { deviceType: '02', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } + ] }, - // { // 未生成实训 - // maxDuration: 15, - // minDuration: 8, - // operateType: 'Switch_Axis_Pre_Reset', - // skinCode: '02', - // trainingName: '道岔计轴预复位({7})', - // trainingRemark: '道岔计轴预复位功能', - // trainingType: 'Switch', - // productTypes: ['01'], - // stepVOList: [ - // { deviceType: '02', orderNum: 1, operateCode: '110', tip: '鼠标右键菜单选择【道岔计轴预复位】' }, - // { deviceType: '02', orderNum: 2, operateCode: '1101', tip: '鼠标左键点击【下达】按钮' }, - // { deviceType: '02', orderNum: 3, operateCode: '1103', tip: '鼠标左键点击【确认1】按钮' }, - // { deviceType: '02', orderNum: 4, operateCode: '1104', tip: '鼠标左键点击【确认2】按钮' }, - // { deviceType: '02', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } - // ] - // }, { maxDuration: 15, minDuration: 8, @@ -642,6 +672,20 @@ export default { { deviceType: '04', orderNum: 3, operateCode: '301', tip: '鼠标左键点击【确定】按钮', val: '{4}' }, { deviceType: '04', orderNum: 4, operateCode: '3012', tip: '鼠标左键点击【确定】按钮' } ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: 'Signal_Find_Routes_Status', + skinCode: '04', + trainingName: '查询进路控制模式({5} 信号机)', + trainingRemark: '查询进路控制模式', + trainingType:'Signal', + productTypes: ['01', '02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【查询进路控制模式】' }, + { deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' } + ] }, { maxDuration: 15, @@ -733,6 +777,23 @@ export default { { deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '04', orderNum: 3, operateCode: '3041', tip: '鼠标左键点击【确定】按钮' } ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: 'Signal_Set_Guide', + skinCode: '02', + trainingName: '进路引导({3})', + trainingRemark: '进路办理信号引导', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【进路引导】' }, + { deviceType: '04', orderNum: 2, operateCode: '3081', tip: '鼠标左键点击【下达】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '3083', tip: '鼠标左键点击【确认1】按钮' }, + { deviceType: '04', orderNum: 4, operateCode: '3084', tip: '鼠标左键点击【确认2】按钮' }, + { deviceType: '04', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } + ] }, { maxDuration: 15, @@ -742,9 +803,9 @@ export default { trainingName: '引导进路办理({3})', trainingRemark: '进路办理信号引导', trainingType: 'Signal', - productTypes: ['01'], + productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【进路引导】' }, + { deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【引导进路办理】' }, { deviceType: '04', orderNum: 2, operateCode: '3081', tip: '鼠标左键点击【下达】按钮' }, { deviceType: '04', orderNum: 3, operateCode: '3083', tip: '鼠标左键点击【确认1】按钮' }, { deviceType: '04', orderNum: 4, operateCode: '3084', tip: '鼠标左键点击【确认2】按钮' }, diff --git a/src/jmapNew/theme/nanjing_02/menus/menuButton.vue b/src/jmapNew/theme/nanjing_02/menus/menuButton.vue index 1446fba85..e410497c3 100644 --- a/src/jmapNew/theme/nanjing_02/menus/menuButton.vue +++ b/src/jmapNew/theme/nanjing_02/menus/menuButton.vue @@ -995,12 +995,12 @@ export default { { name: '预复位', cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '封锁岔心', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '解封岔心', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '强解岔心', cmdType: CMD.Section.CMD_SECTION_FORCE_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch } + { name: '强解岔心', cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch } ] : [ { name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '轨区消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '强行消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '强解区段', cmdType: CMD.Section.CMD_SECTION_FORCE_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, + { name: '强解区段', cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '预复位', cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '解封区段', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch } @@ -1010,7 +1010,7 @@ export default { { name: '岔区消限', cmdType: CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED, operate: OperationEvent.Switch.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '转换道岔', cmdType: CMD.Switch.CMD_SWITCH_TURN, operate: OperationEvent.Switch.locate.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '强行转岔', cmdType: CMD.Switch.CMD_SWITCH_FORCE_TURN, operate: OperationEvent.Switch.locate.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, - { name: '强解道岔', cmdType: '', operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, + { name: '强解道岔', cmdType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '挤岔恢复', cmdType: '', operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, { name: '单独锁定', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK, operate: OperationEvent.Switch.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch }, { name: '取消锁定', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK, operate: OperationEvent.Switch.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }, diff --git a/src/jmapNew/theme/ningbo_01/menus/menuBar.vue b/src/jmapNew/theme/ningbo_01/menus/menuBar.vue index c90624d31..c175707c4 100644 --- a/src/jmapNew/theme/ningbo_01/menus/menuBar.vue +++ b/src/jmapNew/theme/ningbo_01/menus/menuBar.vue @@ -162,7 +162,7 @@ export default { }, { title: '站遥控', - operate: OperationEvent.MixinCommand.remoteControl.mbar, + operate: OperationEvent.Command.mBar.remoteControl, click: this.stationRemoteControl }, { diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControl.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControl.vue index 219792dfc..c92fc9e1c 100644 --- a/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControl.vue +++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControl.vue @@ -85,22 +85,23 @@ export default { return this.dialogShow && !this.$store.state.menuOperation.break; }, domIdChooseControl() { - return this.dialogShow ? OperationEvent.Command.order.choose.domId : ''; + return this.dialogShow ? OperationEvent.MixinCommand.remoteControl.select.domId : ''; }, domIdChooseStation() { return this.dialogShow ? OperationEvent.Command.order.choose1.domId : ''; }, domIdCommit() { if (this.dialogShow) { - if (this.stationType == '01') { - return OperationEvent.StationControl.requestCentralControl.menu.domId; - } else if (this.stationType == '02') { - return OperationEvent.StationControl.requestStationControl.menu.domId; - } else if (this.stationType == '03') { - return OperationEvent.StationControl.emergencyStationControl.menu.domId; - } else { - return ''; - } + // if (this.stationType == '01') { + // return OperationEvent.StationControl.requestCentralControl.menu.domId; + // } else if (this.stationType == '02') { + // return OperationEvent.StationControl.requestStationControl.menu.domId; + // } else if (this.stationType == '03') { + // return OperationEvent.StationControl.emergencyStationControl.menu.domId; + // } else { + // return ''; + // } + return OperationEvent.MixinCommand.remoteControl.confirm.domId; } else { return ''; } diff --git a/src/jmapNew/theme/ningbo_01/operationConfig.js b/src/jmapNew/theme/ningbo_01/operationConfig.js index f9f9fba3e..acfe06693 100644 --- a/src/jmapNew/theme/ningbo_01/operationConfig.js +++ b/src/jmapNew/theme/ningbo_01/operationConfig.js @@ -779,6 +779,22 @@ export default { { deviceType: '05', orderNum: 2, operateCode: '2023', tip: '鼠标左键点击【应用】' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: 'CM_Emergency_Station_Control', + skinCode: '06', + trainingName: '紧急站控({1})', + trainingRemark: '控制权限转换,中控转紧急站控', + trainingType: 'ControlConvertMenu', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mBar', orderNum: 1, operateCode: '002', tip: '鼠标左键点击【系统】' }, + { deviceType: '05', orderNum: 2, operateCode: '0024', tip: '鼠标左键点击【站遥控】' }, + { deviceType: '05', orderNum: 3, operateCode: '299b', tip: '选择【紧急站控】' }, + { deviceType: '05', orderNum: 4, operateCode: '299c', tip: '鼠标左键点击【设置】' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -864,7 +880,6 @@ export default { productTypes: ['01'], stepVOList: [ { deviceType: '05', orderNum: 1, operateCode: '602', tip: '鼠标右键菜单选择【全站取消联锁自动触发】'} - // { deviceType: '05', orderNum: 2, operateCode: '602', tip: '鼠标左键点击【确定】' } ] }, { @@ -878,8 +893,52 @@ export default { productTypes: ['01'], stepVOList: [ { deviceType: '05', orderNum: 1, operateCode: '601', tip: '鼠标右键菜单选择【全站设置联锁自动触发】'} - // { deviceType: '05', orderNum: 2, operateCode: '601', tip: '鼠标左键点击【确定】' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: 'Station_Set_Turn_Back_Strategy', + skinCode: '06', + trainingName: '设置折返策略({1})({折返策略})', + trainingRemark: '设置折返策略', + trainingType: 'Station', + productTypes: ['01'], + stepVOList: [ + { deviceType: '', orderNum: 1, operateCode: '', tip: '鼠标右键菜单选择【设置折返策略】'}, + { deviceType: '', orderNum: 2, operateCode: '', tip: '选择折返策略' }, + { deviceType: '', orderNum: 3, operateCode: '', tip: '鼠标左键点击【确定】' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: 'Station_Key_Operation_Test', + skinCode: '06', + trainingName: '执行关键性操作测试({1})', + trainingRemark: '执行关键性操作测试', + trainingType: 'Station', + productTypes: ['01', '02'], + stepVOList: [ + { deviceType: '05', orderNum: 1, operateCode: '604', tip: '鼠标右键菜单选择【执行关键性操作测试】' }, + { deviceType: '05', orderNum: 2, operateCode: '6041', tip: '鼠标左键点击【下达】' }, + { deviceType: '05', orderNum: 3, operateCode: '6042', tip: '鼠标左键点击【确认1】' }, + { deviceType: '05', orderNum: 4, operateCode: '6043', tip: '鼠标左键点击【确认2】'}, + { deviceType: '05', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } ] } + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Station_Power_On_Unlock', + // skinCode: '06', + // trainingName: '上电解锁({1})', + // trainingRemark: '上电解锁', + // trainingType: 'Station', + // productTypes: ['01'], + // stepVOList:[ + // {deviceType: '05', orderNum: 1, operateCode: '603', tip: '鼠标右键菜单'} + // ] + // } ] }; diff --git a/src/jmapNew/theme/xian_02/menus/dialog/sectionUnLock.vue b/src/jmapNew/theme/xian_02/menus/dialog/sectionUnLock.vue index dfd159c89..5b2a6b341 100644 --- a/src/jmapNew/theme/xian_02/menus/dialog/sectionUnLock.vue +++ b/src/jmapNew/theme/xian_02/menus/dialog/sectionUnLock.vue @@ -99,15 +99,27 @@ export default { }, commit() { const operate = { - operation: OperationEvent.Section.unlock.confirm.operation - }; + }; + + let name = ''; + let cmdType = ''; + if (this.operation == OperationEvent.Section.unlock.menu.operation) { + operate.operation = OperationEvent.Section.unlock.confirm.operation; + cmdType = CMD.Section.CMD_SECTION_UNBLOCK; + name = '区段解锁'; + } else if (this.operation == OperationEvent.Section.fault.menu.operation) { + operate.operation = OperationEvent.Section.fault.confirm.operation; + cmdType = CMD.Section.CMD_SECTION_FAULT_UNLOCK; + name = '区段故障解锁'; + } + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { if (valid) { this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, - operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '区段解锁'}, - cmdType: CMD.Section.CMD_SECTION_UNBLOCK, + operation: { code: OperationEvent.Command.commandXian.confirm.operation, name }, + cmdType, param: { sectionCode: this.selected.code } diff --git a/src/jmapNew/theme/xian_02/menus/menuSection.vue b/src/jmapNew/theme/xian_02/menus/menuSection.vue index 486ad7657..c5144f563 100644 --- a/src/jmapNew/theme/xian_02/menus/menuSection.vue +++ b/src/jmapNew/theme/xian_02/menus/menuSection.vue @@ -22,7 +22,7 @@ import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo' import { mapGetters } from 'vuex'; import CMD from '@/scripts/cmdPlugin/CommandEnum'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; -// import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; +import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import LoadSpareTrain from '@/jmapNew/theme/components/menus/dialog/loadSpareTrain'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; @@ -58,27 +58,27 @@ export default { label: '区段故障解锁', handler: this.fault, cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK - }, - { - label: '区段跟踪激活', - handler: this.active, - cmdType: CMD.Section.CMD_SECTION_ACTIVE - }, - { - label: '区段跟踪切除', - handler: this.split, - cmdType: CMD.Section.CMD_SECTION_CUT_OFF - }, - { - label: '区段封锁', - handler: this.lock, - cmdType: CMD.Section.CMD_SECTION_BLOCK - }, - { - label: '区段解封', - handler: this.unlock, - cmdType: CMD.Section.CMD_SECTION_UNBLOCK } + // { + // label: '区段跟踪激活', + // handler: this.active, + // cmdType: CMD.Section.CMD_SECTION_ACTIVE + // }, + // { + // label: '区段跟踪切除', + // handler: this.split, + // cmdType: CMD.Section.CMD_SECTION_CUT_OFF + // } + // { + // label: '区段封锁', + // handler: this.lock, + // cmdType: CMD.Section.CMD_SECTION_BLOCK + // }, + // { + // label: '区段解封', + // handler: this.unlock, + // cmdType: CMD.Section.CMD_SECTION_UNBLOCK + // } ], Center: [ { @@ -181,9 +181,9 @@ export default { }, initMenu() { // 编辑模式菜单列表 - // this.menu = MenuContextHandler.covert(this.menuNormal); if (this.selected.type != '04') { - this.menu = this.menuNormal.Center; + // this.menu = this.menuNormal.Center; + this.menu = MenuContextHandler.covert2(this.menuNormal); } else { this.menu = []; } diff --git a/src/jmapNew/theme/xian_02/menus/menuSignal.vue b/src/jmapNew/theme/xian_02/menus/menuSignal.vue index 0e58b33f5..28aa72961 100644 --- a/src/jmapNew/theme/xian_02/menus/menuSignal.vue +++ b/src/jmapNew/theme/xian_02/menus/menuSignal.vue @@ -54,13 +54,13 @@ export default { }, { label: '开放自动进路', - handler: this.atsAutoControl, - cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING + handler: this.setAutoInterlock, + cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO }, { label: '关闭自动进路', - handler: this.humanControl, - cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING + handler: this.cancelAutoInterlock, + cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO }, { label: '终端信号封锁', @@ -117,13 +117,13 @@ export default { }, { label: '开放自动进路', - handler: this.atsAutoControl, - cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING + handler: this.setAutoInterlock, + cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO }, { label: '关闭自动进路', - handler: this.humanControl, - cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING + handler: this.cancelAutoInterlock, + cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO }, { label: '终端信号封锁', @@ -451,20 +451,13 @@ export default { this.$refs.noticeInfo.doShow(); }); }, - // 进路交人工控 - humanControl() { - const routeCodeList = []; - this.routeList.forEach(item => { - if (item.startSignalCode === this.selected.code) { - routeCodeList.push(item.code); - } - }); + // 取消联锁自动进路 + cancelAutoInterlock() { const step = { code: `${this.selected.code}`, - operation: OperationEvent.Signal.humanControl.menu.operation, + operation: OperationEvent.Signal.cancelAutoInterlock.menu.operation, param: { - signalCode: this.selected.code, - routeCodeList: routeCodeList + signalCode: this.selected.code } }; this.$store.dispatch('training/nextNew', step).then(({ valid }) => { @@ -473,7 +466,7 @@ export default { this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '关闭自动进路'}, - cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, + cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO, param: step.param }); } else { @@ -483,20 +476,13 @@ export default { this.$refs.noticeInfo.doShow(); }); }, - // 进路交自动控 - atsAutoControl() { - const routeCodeList = []; - this.routeList.forEach(item => { - if (item.startSignalCode === this.selected.code) { - routeCodeList.push(item.code); - } - }); + // 设置联锁自动进路 + setAutoInterlock() { const step = { code: `${this.selected.code}`, - operation: OperationEvent.Signal.atsAutoControl.menu.operation, + operation: OperationEvent.Signal.setAutoInterlock.menu.operation, param: { - signalCode: this.selected.code, - routeCodeList: routeCodeList + signalCode: this.selected.code } }; this.$store.dispatch('training/nextNew', step).then(({ valid }) => { @@ -505,7 +491,7 @@ export default { this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '开放自动进路'}, - cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, + cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO, param: step.param }); } else { diff --git a/src/jmapNew/theme/xian_02/operationConfig.js b/src/jmapNew/theme/xian_02/operationConfig.js index 6cdec3529..16cd3d620 100644 --- a/src/jmapNew/theme/xian_02/operationConfig.js +++ b/src/jmapNew/theme/xian_02/operationConfig.js @@ -32,20 +32,6 @@ export default { { deviceType: '06', orderNum: 4, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } ] }, - // { - // maxDuration: 15, - // minDuration: 8, - // operateType: 'Stand_Early_Depart', - // skinCode: '09', - // trainingName: '提前发车({10}-{12}站台)', - // trainingRemark: '提前发车功能', - // trainingType: 'Stand', - // productTypes: ['01', '02'], - // stepVOList: [ - // { deviceType: '06', orderNum: 1, operateCode: '501', tip: '鼠标右键菜单选择【提前发车】' }, - // { deviceType: '06', orderNum: 2, operateCode: '501', tip: '鼠标左键点击【确定】按钮' } - // ] - // }, { maxDuration: 15, minDuration: 8, @@ -151,79 +137,77 @@ export default { trainingType: 'Section', productTypes: ['01'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区段故障解锁】' }, - { deviceType: '03', orderNum: 2, operateCode: '4024', tip: '鼠标左键点击【确定】按钮' }, - { deviceType: '03', orderNum: 3, operateCode: '4028', tip: '鼠标左键选择({8}{9})区段', val: '{19}' }, - { deviceType: '03', orderNum: 4, operateCode: '4025', tip: '鼠标左键点击【确定】按钮' }, - { deviceType: '03', orderNum: 5, operateCode: '4023', tip: '鼠标左键点击【关闭】按钮' } - ] - }, - { - maxDuration: 15, - minDuration: 8, - operateType: 'Section_Cut_Off', - skinCode: '09', - trainingName: '区段跟踪切除({8}{9})', - trainingRemark: '区段跟踪切除', - trainingType: 'Section', - productTypes: ['01'], - stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '405', tip: '鼠标右键菜单选择【区段跟踪切除】' }, - { deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } - ] - }, - { - maxDuration: 15, - minDuration: 8, - operateType: 'Section_Active', - skinCode: '09', - trainingName: '区段跟踪激活({8}{9})', - trainingRemark: '区段跟踪激活功能', - trainingType: 'Section', - productTypes: ['01'], - stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '406', tip: '鼠标右键菜单选择【区段跟踪激活】' }, - { deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } - ] - }, - { - maxDuration: 15, - minDuration: 8, - operateType: 'Section_Set_Limit_Speed', - skinCode: '09', - trainingName: '设置临时限速({8}{9})', - trainingRemark: '设置临时限速功能(限速值:5)', - trainingType: 'Section', - productTypes: ['02'], - stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' }, - { deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【限速值5】', val: '5' }, - { deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' }, - { deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' }, - { deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' }, - { deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '5' }, - { deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } - ] - }, - { - maxDuration: 15, - minDuration: 8, - operateType: 'Section_Set_Limit_Speed', - skinCode: '09', - trainingName: '设置临时限速({8}{9})', - trainingRemark: '设置临时限速功能-取消临时限速(限速值:不限速)', - trainingType: 'Section', - productTypes: ['02'], - stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' }, - { deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【不限速】', val: '0' }, - { deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' }, - { deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' }, - { deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' }, - { deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '0' }, - { deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } + { deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区段故障解锁】' }, + { deviceType: '03', orderNum: 2, operateCode: '4023', tip: '鼠标左键点击【确定】按钮' }, + { deviceType: '03', orderNum: 3, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } ] }, + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Section_Cut_Off', + // skinCode: '09', + // trainingName: '区段跟踪切除({8}{9})', + // trainingRemark: '区段跟踪切除', + // trainingType: 'Section', + // productTypes: ['01'], + // stepVOList: [ + // { deviceType: '03', orderNum: 1, operateCode: '405', tip: '鼠标右键菜单选择【区段跟踪切除】' }, + // { deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } + // ] + // }, + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Section_Active', + // skinCode: '09', + // trainingName: '区段跟踪激活({8}{9})', + // trainingRemark: '区段跟踪激活功能', + // trainingType: 'Section', + // productTypes: ['01'], + // stepVOList: [ + // { deviceType: '03', orderNum: 1, operateCode: '406', tip: '鼠标右键菜单选择【区段跟踪激活】' }, + // { deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } + // ] + // }, + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Section_Set_Limit_Speed', + // skinCode: '09', + // trainingName: '设置临时限速({8}{9})', + // trainingRemark: '设置临时限速功能(限速值:5)', + // trainingType: 'Section', + // productTypes: ['02'], + // stepVOList: [ + // { deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' }, + // { deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【限速值5】', val: '5' }, + // { deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' }, + // { deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' }, + // { deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' }, + // { deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '5' }, + // { deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } + // ] + // }, + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Section_Set_Limit_Speed', + // skinCode: '09', + // trainingName: '设置临时限速({8}{9})', + // trainingRemark: '设置临时限速功能-取消临时限速(限速值:不限速)', + // trainingType: 'Section', + // productTypes: ['02'], + // stepVOList: [ + // { deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' }, + // { deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【不限速】', val: '0' }, + // { deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' }, + // { deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' }, + // { deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' }, + // { deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '0' }, + // { deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' } + // ] + // }, { maxDuration: 15, minDuration: 8, @@ -339,35 +323,34 @@ export default { productTypes: ['01', '02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '303', tip: '鼠标右键菜单选择【取消进路】' }, - // { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' } { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } ] }, { maxDuration: 15, minDuration: 8, - operateType: 'Signal_Open_Auto_Setting', + operateType: 'Signal_Set_CI_Auto', skinCode: '09', - trainingName: '进路交自动控({5})', - trainingRemark: '进路交自动控', + trainingName: '开放自动进路({5})', + trainingRemark: '设置联锁自动进路', trainingType: 'Signal', productTypes: ['01', '02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【开放自动进路】' }, + { deviceType: '04', orderNum: 1, operateCode: '309', tip: '鼠标右键菜单选择【开放自动进路】' }, { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' } ] }, { maxDuration: 15, minDuration: 8, - operateType: 'Signal_Close_Auto_Setting', + operateType: 'Signal_Cancel_CI_Auto', skinCode: '09', - trainingName: '进路交人工控({5})', - trainingRemark: '进路交人工控', + trainingName: '关闭自动进路({5})', + trainingRemark: '取消自动联锁进路', trainingType: 'Signal', productTypes: ['01', '02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【关闭自动进路】' }, + { deviceType: '04', orderNum: 1, operateCode: '310', tip: '鼠标右键菜单选择【关闭自动进路】' }, { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' } ] }, @@ -379,7 +362,7 @@ export default { trainingName: '终端信号封锁({5})', trainingRemark: '终端信号封锁功能', trainingType: 'Signal', - productTypes: ['01', '02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '306', tip: '鼠标右键菜单选择【终端信号封锁】' }, { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } @@ -393,7 +376,7 @@ export default { trainingName: '终端信号解封({5})', trainingRemark: '终端信号解封功能', trainingType: 'Signal', - productTypes: ['01', '02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '307', tip: '鼠标右键菜单选择【终端信号解封】', codeType:'SIGNAL' }, { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }, @@ -429,35 +412,34 @@ export default { // { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' } // ] // }, - { - maxDuration: 15, - minDuration: 8, - operateType: 'Train_Hold', - skinCode: '09', - trainingName: '列车扣车({5})', - trainingRemark: '列车扣车功能', - trainingType: 'Train', - productTypes: ['02'], - stepVOList: [ - { deviceType: '07', orderNum: 1, operateCode: '70k', tip: '鼠标右键菜单选择【列车/扣车】' }, - { deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } - ] - }, - { - maxDuration: 15, - minDuration: 8, - operateType: 'Train_Cancel_Hold', - skinCode: '09', - trainingName: '列车放行({5})', - trainingRemark: '列车放行功能', - trainingType: 'Train', - productTypes: ['02'], - stepVOList: [ - { deviceType: '07', orderNum: 1, operateCode: '70l', tip: '鼠标右键菜单选择【列车/放行】' }, - { deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } - ] - }, - + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Train_Hold', + // skinCode: '09', + // trainingName: '列车扣车({5})', + // trainingRemark: '列车扣车功能', + // trainingType: 'Train', + // productTypes: ['02'], + // stepVOList: [ + // { deviceType: '07', orderNum: 1, operateCode: '70k', tip: '鼠标右键菜单选择【列车/扣车】' }, + // { deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } + // ] + // }, + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: 'Train_Cancel_Hold', + // skinCode: '09', + // trainingName: '列车放行({5})', + // trainingRemark: '列车放行功能', + // trainingType: 'Train', + // productTypes: ['02'], + // stepVOList: [ + // { deviceType: '07', orderNum: 1, operateCode: '70l', tip: '鼠标右键菜单选择【列车/放行】' }, + // { deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' } + // ] + // }, { maxDuration: 20, minDuration: 15, diff --git a/src/layout/components/Entry.vue b/src/layout/components/Entry.vue index 86ddfbfac..801f84396 100644 --- a/src/layout/components/Entry.vue +++ b/src/layout/components/Entry.vue @@ -13,11 +13,8 @@ - - 西安铁路职业技术学院 - - - 贵州装备制造职业学院 + + {{el.name}} @@ -85,7 +82,21 @@ export default { hidden: getSessionStorage('project').endsWith('heb') } - ], + ], + caseList: [ + { + name: '西安铁路职业技术学院', + url: 'https://joylink.club/oss/portal/cases/西安铁路职业技术学院.pdf' + }, + { + name: '贵州装备制造职业学院', + url: 'https://joylink.club/oss/portal/cases/贵州装备制造职业学院机电技术专业实训室建设.pdf' + }, + { + name: '江苏电子信息职业学院', + url: 'https://joylink.club/oss/portal/cases/江苏电子信息职业学院-城市轨道交通行车组织综合实训室.pdf' + } + ], stomp: null, header: null, lang: 'zh' @@ -134,13 +145,8 @@ export default { window.open(href, '_blank'); }, goEmpty() {}, - goToCaseShow() { - const href = 'https://joylink.club/oss/portal/cases/西安铁路职业技术学院.pdf'; - window.open(href, '_blank'); - }, - goToCase() { - const href = 'https://joylink.club/oss/portal/cases/贵州装备制造职业学院机电技术专业实训室建设.pdf'; - window.open(href, '_blank'); + goToCaseShow(item) { + window.open(item.url, '_blank'); }, goToTraining() { const routeData = this.$router.resolve({ diff --git a/src/router/index.js b/src/router/index.js index 3cae3f850..6247f7c8a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -141,6 +141,7 @@ const BoardManage = () => import('@/views/messageBoard/manage'); const DraftLessonManage = () => import('@/views/teach/draftLessonManage'); const OrganizationManage = () => import('@/views/organization/index'); const RunPlanViewWindow = () => import('@/views/newMap/displayNew/demon/runPlanViewWindow'); +const SecondaryHome = () => import('@/views/trainingPlatform/secondaryHome'); // import { GenerateRouteProjectList } from '@/scripts/ProjectConfig'; // import { getSessionStorage } from '@/utils/auth'; @@ -625,6 +626,11 @@ export const asyncRouter = [ path: 'permission/:mapId', component: Package, hidden: true + }, + { // 二级home页面 + path: 'secondaryHome', + component: SecondaryHome, + hidden: true } ] } diff --git a/src/scripts/ConstDic.js b/src/scripts/ConstDic.js index 39a244814..bbe9e5bb1 100644 --- a/src/scripts/ConstDic.js +++ b/src/scripts/ConstDic.js @@ -2,10 +2,10 @@ * 鼠标事件 */ export const MouseEvent = { - Left: 1, - Right: 2, - Wheel: 3 -} + Left: 1, + Right: 2, + Wheel: 3 +}; /** * 权限类型 */ @@ -194,7 +194,8 @@ export const UrlConfig = { course: '/trainingPlatform/course', practical: '/trainingPlatform/practical', permission: '/trainingPlatform/permission', - pay: '/trainingPlatform/pay' + pay: '/trainingPlatform/pay', + secondaryHome: '/trainingPlatform/secondaryHome' }, bank: { questionCreate: '/design/race/questionCreate', diff --git a/src/scripts/cmdPlugin/CommandEnum.js b/src/scripts/cmdPlugin/CommandEnum.js index e5c6a2f83..2cdcbb602 100644 --- a/src/scripts/cmdPlugin/CommandEnum.js +++ b/src/scripts/cmdPlugin/CommandEnum.js @@ -181,9 +181,9 @@ export default { /** 站台总取消 */ CMD_STAND_TOTAL_CANCLE:{value:'Stand_Total_Cancle', label: '站台总取消'}, /** 手动开启屏蔽门 */ - CMD_STAND_OPEN_PSD:{value:'Stand_Open_Psd', label: '手动开启屏蔽门'}, - /** 取消设置*/ - CMD_STAND_CANCEL_SETTING: {value: 'Stand_Cancel_Setting', label: '取消设置'} + CMD_STAND_OPEN_PSD:{value:'Stand_Open_Psd', label: '手动开启屏蔽门'}, + /** 取消设置*/ + CMD_STAND_CANCEL_SETTING: {value: 'Stand_Cancel_Setting', label: '取消设置'} }, Station: { diff --git a/src/scripts/cmdPlugin/Config.js b/src/scripts/cmdPlugin/Config.js index 671ed1c8a..127970360 100644 --- a/src/scripts/cmdPlugin/Config.js +++ b/src/scripts/cmdPlugin/Config.js @@ -38,7 +38,8 @@ export const deviceFaultType = { Switch: [ {label: '失表', value: 'SPLIT'}, {label: '定位失表', value: 'NORMAL_SPLIT'}, - {label: '反位失表', value: 'REVERSE_SPLIT'} + {label: '反位失表', value: 'REVERSE_SPLIT'}, + {label: '挤岔', value: 'SQUEEZE'} // {label: '道岔区段计轴故障', value: 'AXLE_FAULT'} ], StationStand: [ diff --git a/src/scripts/cmdPlugin/MenuContextHandler.js b/src/scripts/cmdPlugin/MenuContextHandler.js index a198d2630..4d48ba018 100644 --- a/src/scripts/cmdPlugin/MenuContextHandler.js +++ b/src/scripts/cmdPlugin/MenuContextHandler.js @@ -60,6 +60,28 @@ class MenuContextHandler { return result; } + covert2(menuList) { + const selected = this.getCurrentStateObject(); + let menu = []; + const control = this.getStationControl(selected); + if (control && !store.state.scriptRecord.audioPlay) { + if (this.getPrdType() != '' && this.getPrdType() != null) { + const type = State2SimulationMap[this.getPrdType()]; + const status = State2ControlMap[control.controlMode]; // 判断当前模式 + if (type) { + menu = [...menuList[type]]; + } + // 特殊处理站台的右键操作( 因为小站台不允许有操作 ) + if (selected._type == 'StationStand') { + if (selected.small) { + menu = []; + } + } + } + } + return menu; + } + covert(menuList) { const selected = this.getCurrentStateObject(); let menu = []; diff --git a/src/scripts/cmdPlugin/OperationHandler.js b/src/scripts/cmdPlugin/OperationHandler.js index 1628f28e2..44d2efb5c 100644 --- a/src/scripts/cmdPlugin/OperationHandler.js +++ b/src/scripts/cmdPlugin/OperationHandler.js @@ -97,11 +97,11 @@ export const OperationEvent = { domId: '_Tips-Mbar-0-detainControl' }, cbtcMode: { - operation: '0030', + operation: '002a', domId: '_Tips-Mbar-0-cbtcMode' }, reserveMode: { - operation: '0031', + operation: '002b', domId: '_Tips-Mbar-0-reserveMode' } }, @@ -2522,13 +2522,6 @@ export const OperationEvent = { // 混合指令 MixinCommand: { - /** 控制模式操作 */ - remoteControl: { - mbar: { - operation: '2999', - domId: '_Tips-Control-StationControl-Mbar{TOP}' - } - }, // 封锁 block: { button: { @@ -2584,6 +2577,21 @@ export const OperationEvent = { operation: '2998', domId: '_Tips-SetLink-Menu{TOP}' } + }, + /** 控制模式操作 */ + remoteControl: { + mbar: { + operation: '299a', + domId: '_Tips-Control-StationControl-Mbar{TOP}' + }, + select: { + operation: '299b', + domId: '_Tips-Control-StationControl-Select{TOP}' + }, + confirm: { + operation: '299c', + domId: '_Tips-Control-StationControl-Confirm{TOP}' + } } } diff --git a/src/views/newMap/newMapdraft/mapoperate/config/list.vue b/src/views/newMap/newMapdraft/mapoperate/config/list.vue index fd52cf13e..f77938083 100644 --- a/src/views/newMap/newMapdraft/mapoperate/config/list.vue +++ b/src/views/newMap/newMapdraft/mapoperate/config/list.vue @@ -102,10 +102,12 @@ {{ item.placeholder }} + {{ item.buttonText }} @@ -279,6 +281,21 @@ + diff --git a/src/views/newMap/newMapdraft/mapoperate/models.js b/src/views/newMap/newMapdraft/mapoperate/models.js index 3920312f2..dbe02b2f5 100644 --- a/src/views/newMap/newMapdraft/mapoperate/models.js +++ b/src/views/newMap/newMapdraft/mapoperate/models.js @@ -53,6 +53,7 @@ class Model { this.belongStation = ''; // 所属车站 this.rightAxleOffset = { x: 0, y: 0 }; this.leftAxleOffset = { x: 0, y: 0 }; + this.logicLengthList = []; } SignalModel() { this._type = 'Signal'; diff --git a/src/views/newMap/newMapdraft/mapoperate/section/batchSettings.vue b/src/views/newMap/newMapdraft/mapoperate/section/batchSettings.vue index b64da4906..989eb5889 100644 --- a/src/views/newMap/newMapdraft/mapoperate/section/batchSettings.vue +++ b/src/views/newMap/newMapdraft/mapoperate/section/batchSettings.vue @@ -315,19 +315,12 @@ export default { let startOffset = 0; const sectionMap = {}; if (section.logicSectionCodeList && section.logicSectionCodeList.length) { - const sectionModel = deepAssign({}, section); - sectionModel.lengthFact = Number(sectionModel.logicSectionCodeList.reduce((pre, code) => pre + Number(this.$store.getters['map/getDeviceByCode'](code).lengthFact), 0).toFixed(3)); - models.push(sectionModel); section.logicSectionCodeList.forEach(sectionCode => { const logicSection = this.$store.getters['map/getDeviceByCode'](sectionCode); sectionMap[logicSection.points[0].x + 's' + logicSection.points[0].y] = logicSection; }); while (sectionMap[startPoint]) { const model = deepAssign({}, sectionMap[startPoint]); - if (!model.lengthFact) { - const length = section.lengthFact / section.logicSectionCodeList.length; - model.lengthFact = length.toFixed(3); - } model.logicSectionStartOffset = startOffset; model.logicSectionEndOffset = (model.lengthFact * 1000 + startOffset * 1000) / 1000; models.push(model); diff --git a/src/views/newMap/newMapdraft/mapoperate/section/index.vue b/src/views/newMap/newMapdraft/mapoperate/section/index.vue index 73250087f..9d399dfbd 100644 --- a/src/views/newMap/newMapdraft/mapoperate/section/index.vue +++ b/src/views/newMap/newMapdraft/mapoperate/section/index.vue @@ -7,7 +7,7 @@
{{ $t('map.updateObj') }} - {{ $t('map.deleteObj') }} + {{ $t('map.deleteObj') }}
@@ -206,13 +206,12 @@ export default { item: [ { prop: 'stationCode', label: this.$t('map.equipmentStation') + ':', type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', disabled: this.isStationCodeDisabled, options: this.centralizedStationList, isHidden: this.isStationCodeDisabled }, { prop: 'belongStation', label: '所属车站:', type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', options: this.stationList, isHidden: !this.editModel.standTrack && !this.editModel.reentryTrack && !this.editModel.transferTrack }, - { prop: 'lengthFact', label: this.$t('map.actualLength') + ':', type: 'number', min: 0, placeholder: this.$t('map.meter'), isHidden: !this.isSwitchSectionType || !this.isCrossSectionType }, + { prop: 'lengthFact', label: this.$t('map.actualLength') + ':', type: 'number', min: 0, placeholder: this.$t('map.meter'), disabled: this.isStationCodeDisabled, isHidden: !this.isSwitchSectionType || !this.isCrossSectionType, button:true, clickFunction: this.divideLength, buttonText: '均分长度' }, + { prop: 'logicLengthList', label: '逻辑区段实际长度:', type: 'lengthFact', isHidden: !this.isHasLogicPhysicalSection, mergeLength: this.mergeLength, width: '160px'}, { prop: 'leftStopPointOffset', label: this.$t('map.leftStopPointOffset'), type: 'number', min: 0, max: this.maxLengthFact, isHidden: !this.isStopPointOffset }, // 左向停车点偏移量 { prop: 'rightStopPointOffset', label: this.$t('map.rightStopPointOffset'), type: 'number', min: 0, max: this.maxLengthFact, isHidden: !this.isStopPointOffset }, // 右向停车点偏移量 { prop: 'region', label: this.$t('map.sectionColon'), type: 'select', optionLabel: 'label', optionValue: 'value', options: this.regionList, isHidden: !this.sectionColonShow }, { prop: 'trainWindowCode', label: '关联车次窗', type: 'input', disabled: true, isHidden: !this.isSwitchSectionShow || !this.isCrossSectionType } - // { prop: 'kmRangeLeft', label: this.$t('map.leftKilometerMark'), type: 'number', min: 0, placeholder: this.$t('map.meter') }, - // { prop: 'kmRangeRight', label: this.$t('map.rightKilometerMark'), type: 'number', min: 0, placeholder: this.$t('map.meter') } ] } } @@ -228,20 +227,6 @@ export default { callback(); } }; - // var validateLeftStopPointOffset = (rule, value, callback) => { - // if (value != this.editModel.rightStopPointOffset) { - // callback(); - // } else { - // callback(new Error('不能与右侧停车点一致')); - // } - // }; - // var validateRightStopPointOffset = (rule, value, callback) => { - // if (value != this.editModel.leftStopPointOffset) { - // callback(); - // } else { - // callback(new Error('不能与左侧停车点一致')); - // } - // }; const rules = { code: [ { required: true, message: this.$t('rules.selectEquipment'), trigger: 'change' } @@ -252,14 +237,6 @@ export default { type: [ { required: true, message: this.$t('rules.pleaseEnterSectionType'), trigger: 'blur' } ], - // leftStopPointOffset: [ - // { required: true, message: this.$t('rules.pleaseEnterLeftStopPointOffset'), trigger: 'blur' }, - // { validator: validateLeftStopPointOffset, trigger: 'blur' } - // ], - // rightStopPointOffset: [ - // { required: true, message: this.$t('rules.rightStopPointOffset'), trigger: 'blur' }, - // { validator: validateRightStopPointOffset, trigger: 'blur' } - // ], 'destinationCodePoint.x': [ { required: true, message: this.$t('rules.destinationCodePointX'), trigger: 'blur' } ], @@ -367,7 +344,9 @@ export default { isStopPointOffset() { return this.editModel.type !== '04' && (this.editModel.reentryTrack || this.editModel.standTrack || this.editModel.transferTrack); }, - + isHasLogicPhysicalSection() { // 有逻辑区段的物理区段 + return this.editModel.type == '01' && this.editModel.logicSectionCodeList && this.editModel.logicSectionCodeList.length; + }, isLeftSectionButtonShow() { return this.field === 'leftSection'; }, @@ -446,6 +425,7 @@ export default { this.clear(); this.handleInit(); this.activeName = 'first'; + this.handleLogicLengthList(selected); this.editModel = deepAssign(this.editModel, selected); this.oldPoint = JSON.parse(JSON.stringify(selected.points)); this.oldLeftSectionCode = selected.leftSectionCode; @@ -505,6 +485,30 @@ export default { this.$emit('deviceSelect', ''); } }, + handleLogicLengthList(selected) { + if (selected.type === '01' && selected.logicSectionCodeList && selected.logicSectionCodeList.length) { + const logicLengthList = []; + selected.logicSectionCodeList.forEach(sectionCode => { + const section = this.$store.getters['map/getDeviceByCode'](sectionCode); + logicLengthList.push({code: section.code, name: section.name, lengthFact: section.lengthFact}); + }); + // this.$set(this.editModel, 'logicLengthList', logicLengthList); + this.editModel.logicLengthList = [...logicLengthList]; + } + }, + divideLength() { + const logicLength = this.editModel.lengthFact / this.editModel.logicSectionCodeList.length; + this.editModel.logicLengthList.forEach(logic => { + logic.lengthFact = logicLength.toFixed(3); + }); + }, + mergeLength() { + let physicalLength = 0; + this.editModel.logicLengthList.forEach(logic => { + physicalLength += logic.lengthFact * 1000; + }); + this.editModel.lengthFact = (physicalLength / 1000).toFixed(3); + }, addPoint(index) { const data = { x: 0, y: 0 }; this.editModel.points.splice(index + 1, 0, data); @@ -529,7 +533,6 @@ export default { const changeSectionList = this.handleOtherSectionChange(model); const changeStandList = this.handleRelevanceStand(model); models = [...changeSectionList, ...changeStandList]; - this.$emit('updateMapModel', models); this.oldPoint = JSON.parse(JSON.stringify(model.points)); this.oldLeftSectionCode = model.leftSectionCode; @@ -540,6 +543,7 @@ export default { this.$message('还有属性未填写,修改未生效!'); this.$emit('deviceSelect', ''); } + // debugger; }); }, handleRelevanceStand(model) { // 站台轨关联站台调整 所属集中站 @@ -559,39 +563,13 @@ export default { let models = [model]; const pointModel = []; const slope1 = (this.oldPoint[this.oldPoint.length - 1].y - this.oldPoint[0].y) / (this.oldPoint[this.oldPoint.length - 1].x - this.oldPoint[0].x); + const logicLengthMap = {}; + this.editModel.logicLengthList.forEach(item => { logicLengthMap[item.code] = item.lengthFact; }); this.sectionList.forEach(section => { - if (section.type == '02') { - // section.parentCode - // const sectionModel = this.$store.getters['map/getDeviceByCode'](section.parentCode); - // const copySection = deepAssign({}, sectionModel); - // // if (section.leftSectionCode) { - // // console.log(section.leftSectionCode, '111111'); - // // } - // if (section.rightSectionCode) { - // const sectionModel1 = this.$store.getters['map/getDeviceByCode'](section.rightSectionCode); - // if (sectionModel1.type == '02') { - // copySection.rightSectionCode = sectionModel1.parentCode; - // } else { - // copySection.rightSectionCode = section.rightSectionCode; - // } - // console.log(section.rightSectionCode, '22222'); - // } - // models.push(copySection); - // console.log(section.rightSectionCode, section.leftSectionCode); - // const copySection = deepAssign({}, section); - // if (section.rightSectionCode) { - // delete copySection.rightSectionCode; - // } - // if (section.leftSectionCode) { - // delete copySection.leftSectionCode; - // } - // models.push(copySection); - } if (section.parentCode == model.code && section.type == '02') { // 逻辑区段 const copySection = deepAssign({}, section); copySection.stationCode = model.stationCode; // 给元素 子逻辑区段设置 设备集中站 - const length = model.lengthFact / model.logicSectionCodeList.length; - copySection.lengthFact = length.toFixed(3); + copySection.lengthFact = logicLengthMap[copySection.code]; if (this.checkPointsCoincide(this.oldPoint[0], copySection.points[0])) { copySection.points[0] = model.points[0]; } @@ -622,24 +600,6 @@ export default { } } } - - if (model.parentCode == copySection.code) { // 物理区段 - let lengthFact = copySection.logicSectionCodeList.filter(code => model.code != code).reduce((pre, code) => { - const length = this.$store.getters['map/getDeviceByCode'](code).lengthFact; - return pre + Number(length); - }, 0); - lengthFact += model.lengthFact; - copySection.lengthFact = Number(lengthFact.toFixed(3)); // 自动获取 物理区段的 实际长度 是由逻辑区段相加 - const logicSectionCodeList = copySection.logicSectionCodeList; - const last = deepAssign({}, this.$store.getters['map/getDeviceByCode'](logicSectionCodeList[logicSectionCodeList.length - 1])); - last.logicSectionEndOffset = copySection.lengthFact; - models.push(last); - if (copySection.lengthFact > 5) { - copySection.leftStopPointOffset = copySection.leftStopPointOffset || 5; - copySection.rightStopPointOffset = copySection.rightStopPointOffset || copySection.lengthFact - 5; - } - updataFlag = true; - } if (this.checkPointsCoincide(this.oldPoint[0], section.points[section.points.length - 1])) { pointModel.push(copySection); } @@ -670,20 +630,10 @@ export default { } }); - if (!model.parentCode) { + if (model.type === '01') { const arr = this.setLogicOffset(model, models); models = [...models, ...arr]; - } else { - const sectionModel = this.$store.getters['map/getDeviceByCode'](model.parentCode); - let arr = []; - if (sectionModel) { - arr = this.setLogicOffset(sectionModel, models); - } else { - arr = this.setLogicOffset(model, models); - } - models = [...models, ...arr]; } - return models; }, selectSectionCode(code, list) { @@ -708,10 +658,6 @@ export default { }); while (sectionMap[startPoint]) { const model = sectionMap[startPoint].deepFlag ? sectionMap[startPoint] : deepAssign({}, sectionMap[startPoint]); - if (!model.lengthFact) { - const length = section.lengthFact / section.logicSectionCodeList.length; - model.lengthFact = length.toFixed(3); - } model.logicSectionStartOffset = startOffset; const lastData = Object.keys(sectionMap); const temp = lastData[lastData.length - 1]; diff --git a/src/views/trainingPlatform/demonList.vue b/src/views/trainingPlatform/demonList.vue index b126bc3cd..891d046d1 100644 --- a/src/views/trainingPlatform/demonList.vue +++ b/src/views/trainingPlatform/demonList.vue @@ -101,6 +101,9 @@ export default { this.mapId = obj.id; const router = { path: `${UrlConfig.trainingPlatform.permission}/${this.mapId}`}; this.toNextPage(isReplace, router); + } else if ( obj.type === 'System' ) { + const router = { path: `${UrlConfig.trainingPlatform.secondaryHome}`, query: { type: obj.id } }; + this.toNextPage(isReplace, router); } else if ( obj.type === 'MapSystem') { getSubSystemInfo(obj.id).then(resp => { // 查询子系统信息 let router = ''; diff --git a/src/views/trainingPlatform/secondaryHome.vue b/src/views/trainingPlatform/secondaryHome.vue new file mode 100644 index 000000000..11afde3d1 --- /dev/null +++ b/src/views/trainingPlatform/secondaryHome.vue @@ -0,0 +1,119 @@ + + + +