diff --git a/src/jmapNew/shape/Section/ELines.js b/src/jmapNew/shape/Section/ELines.js index 8f9c6d261..bc26f614d 100644 --- a/src/jmapNew/shape/Section/ELines.js +++ b/src/jmapNew/shape/Section/ELines.js @@ -71,6 +71,14 @@ export default class ELines extends Group { }); } + setZleve(lev) { + this.eachChild((child) => { + if (child.setStyle && child.isLine) { + child.attr('z', lev); + } + }); + } + hide() { this.eachChild((child) => { child.hide(); diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js index d0fcbc824..db8ed1e42 100644 --- a/src/jmapNew/shape/Section/index.js +++ b/src/jmapNew/shape/Section/index.js @@ -38,18 +38,19 @@ export default class Section extends Group { const model = this.model; // 01:计轴区段;02逻辑区段;03道岔区段 04道岔计轴区段 this.createSectionText(); // 创建区段文字 - if ((model.type === '01' || model.type === '03') && ( - model.logicSectionNum.length <= 0 || - model.logicSectionNum.length == 1 && model.logicSectionNum[0] == 0) || - model.type === '02') { - this.createSection(); // 创建区段 - this.creatRelease(); // 创建延时释放 - this.createSeparator(); // 创建分隔符 - this.createTurnBack(); // 创建成都三号线 折返箭头 - if (model.type === '01' && model.type === '03') { - this.createAxles(); // 创建计轴 - } + // if ((model.type === '01' || model.type === '03') && ( + // model.logicSectionNum.length <= 0 || + // model.logicSectionNum.length == 1 && model.logicSectionNum[0] == 0) || + // model.type === '02') { + // if (model.type === '01' || model.type === '03') { + this.createSection(); // 创建区段 + this.creatRelease(); // 创建延时释放 + this.createSeparator(); // 创建分隔符 + this.createTurnBack(); // 创建成都三号线 折返箭头 + if (model.type === '01' && model.type === '03') { + this.createAxles(); // 创建计轴 } + // } } createMouseEvent() { @@ -70,7 +71,7 @@ export default class Section extends Group { // 创建区段 this.section = new ELines({ zlevel: this.zlevel, - z: this.z, + z: model.type == '02' ? this.z + 1 : this.z, // 逻辑区段层级降低一层 isSwitchSection: model.switchSection, isCurve: model.curve, points: model.points, @@ -574,9 +575,18 @@ export default class Section extends Group { }); } + setModelTypeLevel() { // 给含有逻辑区段的 section 层级加一 + if (this.model.type == '01' && this.model.logicSectionCodeList && this.model.logicSectionCodeList.length > 0) { + this.section.setZleve(this.z + 2); + } + } + /** 设置区段恢复默认状态*/ recover() { if (this.section) { + if (this.model.type == '01') { + this.section.setZleve(this.z); + } this.section.stopAnimation(true); this.sectionBlock && this.sectionBlock.hide(); // 因此特殊区段 this.section.setStyle({ @@ -623,6 +633,7 @@ export default class Section extends Group { stroke: this.style.Section.line.communicationOccupiedColor, lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth }); + this.setModelTypeLevel(); } } @@ -633,6 +644,7 @@ export default class Section extends Group { stroke: this.style.Section.line.unCommunicationOccupiedColor, lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth }); + this.setModelTypeLevel(); } } @@ -643,6 +655,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.setModelTypeLevel(); } } @@ -656,12 +669,13 @@ export default class Section extends Group { lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth }); } - if (this.style.Section.block.blockGlint) { - this.section && this.section.animateStyle(true, [ + if (this.style.Section.block.blockGlint && this.section) { + this.section.animateStyle(true, [ { time: 1000, styles: { stroke: this.style.backgroundColor } }, { time: 2000, styles: { stroke: this.style.Section.line.blockColor } } ]); } + this.setModelTypeLevel(); } /** 故障锁定状态 05*/ @@ -702,6 +716,7 @@ export default class Section extends Group { stroke: this.style.Section.line.protectiveLockColor, lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth }); + this.setModelTypeLevel(); } } @@ -751,6 +766,7 @@ export default class Section extends Group { { time: 1000, styles: { stroke: this.style.backgroundColor } }, { time: 2000, styles: { lineWidth: lineWidth } } ]); + this.setModelTypeLevel(); } } @@ -789,9 +805,6 @@ export default class Section extends Group { // 实际上就是 状态重置 必须在设置其他状态之前 设置颜色之类的 if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) { const switchModel = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode]; - // if (switchModel.name == 'D1801' || switchModel.name == 'D1802' || switchModel.name == 'D1803' || switchModel.name == 'D1804') { - // console.log('switchModel', switchModel, switchModel.name, switchModel.normalPosition, '1 定位 0 反位'); - // } if (switchModel.normalPosition != 0) { // 定位情况 const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode]; sectionC && sectionC.instance && sectionC.instance.section.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); diff --git a/src/jmapNew/theme/beijing_01/menus/menuSignal.vue b/src/jmapNew/theme/beijing_01/menus/menuSignal.vue index ab989dbe4..339333616 100644 --- a/src/jmapNew/theme/beijing_01/menus/menuSignal.vue +++ b/src/jmapNew/theme/beijing_01/menus/menuSignal.vue @@ -52,44 +52,6 @@ export default { oldSelected:null, menuNormal: { Local: [ - // { - // label: '排列进路', - // handler: this.arrangementRoute, - // cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE - // // auth: { station: false, center: true } - // }, - // { - // label: '取消进路', - // handler: this.cancelTrainRoute, - // cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE - // // auth: { station: false, center: true } - // }, - // { - // label: '信号重开', - // handler: this.reopenSignal, - // cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL - // // auth: { station: false, center: true } - // }, - // { - // type: 'separator' - // }, - // { - // label: '进路交人工控', - // handler: this.humanControl, - // cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING - // // auth: { station: false, center: true } - // }, - // { - // label: '进路交自动控', - // handler: this.atsAutoControl, - // cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING - // // auth: { station: false, center: true } - // }, - // { - // label: '查询进路控制状态', - // handler: this.detail, - // cmdType: CMD.Signal.CMD_SIGNAL_DETAIL - // } ], Center: [ { diff --git a/src/jmapNew/theme/chengdu_03/menus/menuButton.vue b/src/jmapNew/theme/chengdu_03/menus/menuButton.vue index 939e3f746..051396433 100644 --- a/src/jmapNew/theme/chengdu_03/menus/menuButton.vue +++ b/src/jmapNew/theme/chengdu_03/menus/menuButton.vue @@ -111,7 +111,7 @@ import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import OperationHandler from '@/scripts/cmdPlugin/OperationHandler'; import Handler from '@/scripts/cmdPlugin/Handler'; -// import { deepAssign } from '@/utils/index'; +import { getAutoReentryBySignalCode } from '@/utils/index'; import PasswordBox from './dialog/childDialog/passwordInputBox.vue'; import CMD from '@/scripts/cmdPlugin/CommandEnum'; import { mapGetters } from 'vuex'; @@ -144,7 +144,8 @@ export default { 'routeList', 'routeData', 'signalList', - 'autoReentryList' + 'autoReentryList', + 'autoReentryData' ]), Switch() { return OperationEvent.Switch; @@ -195,7 +196,7 @@ export default { case this.Signal.arrangementRoute.button.operation: // 排列进路 return CMD.Signal.CMD_SIGNAL_SET_ROUTE; case this.Signal.guide.button.operation: // 引导进路 - return CMD.Section.CMD_SIGNAL_ROUTE_GUIDE; + return CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE; case this.Signal.reopenSignal.button.operation: return CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL; } @@ -222,10 +223,10 @@ export default { type: 'mbm', operation: data.operateNext }; - this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { if (valid) { this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + } }).catch(() => { this.$refs.noticeInfo.doShow(operate); @@ -358,9 +359,12 @@ export default { } else if (model._type === 'MapCycleButtonVO' ) { operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK; operate.param = {cycleCode: model.cycleCode}; + } else if (model._type === 'AutomaticRoute') { + const route = this.routeData[model.automaticRouteCode]; + operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO; + operate.param = {signalCode: route.startSignalCode}; } this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {}); - console.log(operate); }, handelTotalCancel(model, subType) { const operate = { @@ -370,14 +374,75 @@ export default { param: {} }; if (model._type === 'Signal') { - operate.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE; - operate.param = {signalCode: model.code}; + const autoReentry = getAutoReentryBySignalCode(model.code, this.routeList, this.autoReentryList); + const autoReentryRel = this.autoReentryData[autoReentry.code]; + if (autoReentryRel.open) { + operate.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK; + operate.param = {cycleCode: model.cycleCode, cancelRoute: true}; + } else { + operate.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE; + operate.param = {signalCode: model.code}; + } } else if (model._type === 'MapCycleButtonVO') { operate.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK; operate.param = {cycleCode: model.cycleCode, cancelRoute: false}; + } else if (model._type === 'AutomaticRoute') { + const route = this.routeData[model.automaticRouteCode]; + operate.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO; + operate.param = {signalCode: route.startSignalCode}; } this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {}); - console.log(operate); + }, + handleGuideRoute(deviceList) { + if (deviceList.length === 1) { + let route = ''; + this.routeList.forEach(item => { + if (item.startSignalCode === deviceList[0].code && this.routeData[item.code].lock) { + route = item; + } + }); + if (!route) { + const operate = { + type: 'mbm', + operation: this.$store.state.menuOperation.buttonOperation, + operateNext: this.Command.close.password.operation + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + this.$refs.password.doShow(operate); + } + }); + } else { + const operate = { + send: true, + operation: this.$store.state.menuOperation.buttonOperation, + cmdType: this.cmdType, + param: {routeCode: route.code} + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + operate['operateNext'] = this.Command.close.password.operation; + this.operation = '0'; + this.$refs.password.doShow(operate); + } + }); + } + } else if (deviceList.length === 2) { + const operate = { + send: true, + operation: this.$store.state.menuOperation.buttonOperation, + cmdType: this.cmdType, + param: '' + }; + this.routeList.forEach(item => { + if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) { + operate.param = {routeCode: item.code}; + this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {}); + } + }); + } }, selectedChange() { // 按钮按下时 @@ -395,19 +460,15 @@ export default { this.handelFunctionButton(model, subType); } else if (this.$store.state.menuOperation.buttonOperation === this.MixinCommand.totalCancel.button.operation) { this.handelTotalCancel(model, subType); + } else if (this.$store.state.menuOperation.buttonOperation === this.Signal.guide.button.operation) { + if (model._type !== 'Signal') { + return; + } + this.handleGuideRoute(this.deviceList); } else { const operate = this.handelOperate(model); if (this.cmdTypeList.indexOf(model._type) >= 0) { - this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => { - if (valid) { - if (this.operation == this.Signal.guide.button.operation) { // 引导进路操作 显示密码窗 - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); - operate['operateNext'] = this.Command.close.password.operation; - this.operation = '0'; - this.$refs.password.doShow(operate); - } - } - }); + this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {}); } else { Handler.clear(); // 清空操作组 this.$store.dispatch('menuOperation/setButtonOperation', null); diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue index ff22f21c4..9e1e4176c 100644 --- a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue +++ b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue @@ -22,7 +22,7 @@ - + 激活 @@ -106,7 +106,7 @@ export default { this.sectionName += section.name; } } - this.sectionName += `-${selected.name}`; + this.sectionName += `${selected.name}`; const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode); if (station) { diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionUnLock.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionUnLock.vue index dbf186aae..730534019 100644 --- a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionUnLock.vue +++ b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionUnLock.vue @@ -15,11 +15,11 @@
操作设备
- + - 确认 - + 确认 +
@@ -28,13 +28,13 @@
操作设备
- - - + + + - 确认 - + 确认 +
@@ -126,7 +126,11 @@ export default { doShow(operate, selected) { this.selected = selected; if (!this.dialogShow) { - this.messageText1 = selected.name; + this.messageText1 = `${selected.name}(${selected.code})`; + // if (selected.parentCode) { + // const parentSection = this.$store.getters['map/getDeviceByCode'](selected.parentCode); + // this.messageText1 = `${parentSection.name}${selected.name}`; + // } this.operation = operate.operation; } @@ -137,6 +141,11 @@ export default { }, doClose() { this.dialogShow = false; + this.disabledConfirm1 = false; + this.disabledConfirm2 = true; + this.timeCountConfirm = -1; + this.messageText1 = ''; + this.messageText2 = ''; this.$store.dispatch('training/emitTipFresh'); this.mouseCancelState(this.selected); }, @@ -194,10 +203,10 @@ export default { if (this.operation == OperationEvent.Section.unlock.menu.operation) { operate.operation = OperationEvent.Section.unlock.confirm2.operation; - operate.cmdType = CMD.Section.CMD_SECTION_UNBLOCK + operate.cmdType = CMD.Section.CMD_SECTION_UNBLOCK; } else if (this.operation == OperationEvent.Section.fault.menu.operation) { operate.operation = OperationEvent.Section.fault.confirm2.operation; - operate.cmdType = CMD.Section.CMD_SECTION_FAULT_UNLOCK + operate.cmdType = CMD.Section.CMD_SECTION_FAULT_UNLOCK; } this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { @@ -214,7 +223,7 @@ export default { commit() { const operate = { over: true, - operation: '', + operation: '' }; if (this.operation == OperationEvent.Section.unlock.menu.operation) { @@ -224,7 +233,7 @@ export default { } this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.doClose(); }).catch((error) => { this.doClose(); diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/stationControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/stationControl.vue index 3922cc33c..47473fd91 100644 --- a/src/jmapNew/theme/ningbo_01/menus/dialog/stationControl.vue +++ b/src/jmapNew/theme/ningbo_01/menus/dialog/stationControl.vue @@ -215,11 +215,11 @@ export default { } }; if (this.controlMode == 'center') { - operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL; - operate.operation = OperationEvent.StationControl.requestCentralControl.menu.operation; - } else if (this.controlMode == 'local') { operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL; operate.operation = OperationEvent.StationControl.requestStationControl.menu.operation; + } else if (this.controlMode == 'local') { + operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL; + operate.operation = OperationEvent.StationControl.requestCentralControl.menu.operation; } this.loading = true; diff --git a/src/utils/mapList.js b/src/utils/mapList.js index e226d92bf..e6288eaae 100644 --- a/src/utils/mapList.js +++ b/src/utils/mapList.js @@ -14,7 +14,17 @@ export async function getMapListByProject(drawWay) { } export function getAutoReentryBySignalCode(signalCode, routeList, autoReentryList) { // 根据折返进路的始端信号机去找 + let route = ''; + let autoReentry = ''; routeList.forEach(item => { - + if (item.startSignalCode === signalCode && item.turnBack) { + route = item; + } }); + autoReentryList.forEach(item => { + if (item.turnBackRouteCode === route.code || item.turnBackRoute2Code === route.code) { + autoReentry = item; + } + }); + return autoReentry; }