From 241dbcd36f6a0a1cd142425f9b7e08a550033a3d Mon Sep 17 00:00:00 2001 From: fan Date: Mon, 4 Dec 2023 17:55:20 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=B5=99=E5=A4=A7=E7=BD=91=E6=96=B0?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E8=B0=83=E6=95=B4=EF=BC=88=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E6=9D=83=E6=93=8D=E4=BD=9C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/config/skinCode/xian_02.js | 2 +- .../theme/xian_02/menus/menuStation.vue | 23 ++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index d659abf05..8037b3d0e 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -705,7 +705,7 @@ class SkinCode extends defaultStyle { trainNameFormat: 'serviceNumber:targetCode', // 列车显示格式 trainBodyFaultFlashColor:'#f00' // 列车故障闪烁颜色 }, - directionArrow: { + directionArrow: { }, hsda: { lrPaddingHSDA: 3, // HSDA两边间隔 diff --git a/src/jmapNew/theme/xian_02/menus/menuStation.vue b/src/jmapNew/theme/xian_02/menus/menuStation.vue index bd5c744d7..bb22e1223 100644 --- a/src/jmapNew/theme/xian_02/menus/menuStation.vue +++ b/src/jmapNew/theme/xian_02/menus/menuStation.vue @@ -64,8 +64,15 @@ export default { // 暂无功能,先disabled label: '授权', disabled: true, - handler: this.undeveloped, - isShow: (station, work) => false + handler: this.setStationControl, + isDisabled: (station, work) => { + if (work === 'localWork') { + return true; + } else { + return station.controlMode !== 'Center'; + } + }, + isShow: (station, work) => true }, { label: '取消', @@ -75,11 +82,11 @@ export default { if (work === 'localWork') { return station.controlMode === 'Center'; } else { - return station.controlMode !== 'Center'; + return true; } }, isShow: (station, work) => { - return work === 'localWork'; + return true; } }, // /** 紧急站控 */ @@ -89,10 +96,14 @@ export default { handler: this.setEmergencyControl, cmdType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL, isDisabled: (station, work) => { - return station.controlMode === 'Emergency'; + if (work === 'localWork') { + return station.controlMode === 'Emergency'; + } else { + return true; + } }, isShow: (station, work) => { - return work === 'localWork'; + return true; } } ] From 72f730aaa62b5220403429952b3ad2cd6273cf27 Mon Sep 17 00:00:00 2001 From: fan Date: Tue, 5 Dec 2023 10:34:14 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=B5=99=E5=A4=A7=E7=BD=91=E6=96=B0?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 1ecab822f41300bfb704f16b0e6636d910ff962f) --- src/jmapNew/config/skinCode/xian_02.js | 6 +++- .../StationStand/detain/EDetainCircle.js | 18 ++++++++++- src/jmapNew/shape/graph/Train/TrainBody.js | 13 ++++---- src/jmapNew/shape/graph/Train/TrainBodyBox.js | 30 +++++++++++-------- src/jmapNew/shape/graph/Train/index.js | 30 +++++++------------ 5 files changed, 59 insertions(+), 38 deletions(-) diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index 8037b3d0e..13cd7222f 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -282,6 +282,7 @@ class SkinCode extends defaultStyle { position: -1, // 扣车标识在站台上显示方向 text: 'H', // 扣车显示内容 offset: {x: 8, y: 0}, // 扣车偏移量 + ibpTrainColor: '#E4EF50', // ibp扣车颜色 centerTrainColor: '#E400E4', // 中心扣车颜色 andCenterTrainColor: 'red', // 车站+中心扣车颜色 detainTrainTextColor: '#E4EF50', // 车站扣除颜色 @@ -475,7 +476,10 @@ class SkinCode extends defaultStyle { spareColor: '#5b5b5b' // 区段显示颜色 }, core: { - length: 10 // 道岔单边长度 + length: 10, // 道岔单边长度 + graphShow: true, // 图形显示 + graphInversionColor: '#FFFF00', // 反位颜色 + graphLocalColor: '#00FF00' // 定位颜色 }, jointImg: { // 道岔 A B C D四元素属性配置 trapezoidLength: 8 // 直角梯形元素默认长度 diff --git a/src/jmapNew/shape/graph/StationStand/detain/EDetainCircle.js b/src/jmapNew/shape/graph/StationStand/detain/EDetainCircle.js index 46c4dfe8a..82c02edfb 100644 --- a/src/jmapNew/shape/graph/StationStand/detain/EDetainCircle.js +++ b/src/jmapNew/shape/graph/StationStand/detain/EDetainCircle.js @@ -18,7 +18,19 @@ class EDetainCircle extends Group { const x = computedPosition.x + (model.width / 2) * detainD + detainD * style.StationStand.detainCircle.offset.x + detainD * style.StationStand.detainCircle.circleWidth / 2; const y = computedPosition.y; const radius = style.StationStand.detainCircle.circleWidth / 2; - + this.ibpDetainCircle = new Circle({ + zlevel: this.model.zlevel, + z: this.model.z, + shape: { + cx: x + detainD * 12, + cy: y, + r: 3 + }, + style:{ + lineWidth:2, + stroke: '#ffff00' + } + }); this.detainCircle = new Circle({ zlevel: this.model.zlevel, z: this.model.z, @@ -61,6 +73,7 @@ class EDetainCircle extends Group { } }); this.add(this.detainCircle); + this.add(this.ibpDetainCircle); this.add(this.line1); this.add(this.line2); } @@ -74,6 +87,7 @@ class EDetainCircle extends Group { recover() { const style = this.model.style; this.detainCircle && this.detainCircle.show(); + this.ibpDetainCircle && this.ibpDetainCircle.hide(); this.line1 && this.line1.show(); this.line2 && this.line2.show(); this.setColor(style.StationStand.detainCircle.defaultColor); @@ -88,6 +102,8 @@ class EDetainCircle extends Group { this.setColor(style.StationStand.detainCircle.centerTrainColor); } else if (model.centerHoldTrain) { this.setColor(style.StationStand.detainCircle.centerTrainColor); + } else if (model.ibpHoldTrain) { + this.ibpDetainCircle && this.ibpDetainCircle.show(); } } } diff --git a/src/jmapNew/shape/graph/Train/TrainBody.js b/src/jmapNew/shape/graph/Train/TrainBody.js index 7fc7f5c8c..9d9262221 100644 --- a/src/jmapNew/shape/graph/Train/TrainBody.js +++ b/src/jmapNew/shape/graph/Train/TrainBody.js @@ -309,12 +309,12 @@ export default class TrainBody extends Group { setTrainBorderColor(color) { this.trainBodyBox && this.trainBodyBox.setColor('stroke', color); } - setHShow(isShow) { + setHShow(isShow, parking) { if (this.textH) { isShow ? this.textH.show() : this.textH.hide(); } - if (this.style.Train.common.HSDASpliceShow) { - isShow ? this.trainBodyBox.buckleTrain() : this.trainBodyBox.release(); + if (this.style.Train.common.HSDASpliceShow && isShow) { + this.trainBodyBox.buckleTrain(parking); } } setSShow(isShow) { @@ -551,9 +551,12 @@ export default class TrainBody extends Group { trainBodyFault() { this.trainBodyBox && this.trainBodyBox.trainBodyFault(); } - untrainBodyFault() { - this.trainBodyBox && this.trainBodyBox.untrainBodyFault(); + recoverTrainBoxAnimation() { + this.trainBodyBox && this.trainBodyBox.recoverAnimation(); } + // untrainBodyFault() { + // this.trainBodyBox && this.trainBodyBox.untrainBodyFault(); + // } updateTextPosition(point) { this.mouseEvent.updateTextPosition(point); } diff --git a/src/jmapNew/shape/graph/Train/TrainBodyBox.js b/src/jmapNew/shape/graph/Train/TrainBodyBox.js index 819fc9c98..7278c9144 100644 --- a/src/jmapNew/shape/graph/Train/TrainBodyBox.js +++ b/src/jmapNew/shape/graph/Train/TrainBodyBox.js @@ -38,10 +38,10 @@ export default class TrainBodyBox extends Group { } } // 列车扣车 - buckleTrain() { + buckleTrain(parking) { if (this.trainBodyBox) { - this.trainBodyBox.setStyle('fill', 'yellow'); - if (!this.model.speed) { // 列车停稳状态下开始闪烁 + if (parking) { // 列车停稳状态下开始闪烁 + this.trainBodyBox.setStyle('fill', 'yellow'); this.trainBodyBox.animateStyle(true) .when(0, { fill: this.model.style.backgroundColor }) .when(1000, { fill: 'yellow' }) @@ -50,13 +50,13 @@ export default class TrainBodyBox extends Group { } } } - // 列车放行 - release() { - if (this.trainBodyBox) { - this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor); - this.trainBodyBox.stopAnimation(false); - } - } + // // 列车放行 + // release() { + // if (this.trainBodyBox) { + // this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor); + // this.trainBodyBox.stopAnimation(false); + // } + // } // 西安二号线 列车停车状态 闪烁红色 trainBodyFault() { if (this.trainBodyBox) { @@ -69,8 +69,14 @@ export default class TrainBodyBox extends Group { } } - // 西安二号线 列车取消停车状态 - untrainBodyFault() { + // // 西安二号线 列车取消停车状态 + // untrainBodyFault() { + // if (this.trainBodyBox) { + // this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor); + // this.trainBodyBox.stopAnimation(false); + // } + // } + recoverAnimation() { if (this.trainBodyBox) { this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor); this.trainBodyBox.stopAnimation(false); diff --git a/src/jmapNew/shape/graph/Train/index.js b/src/jmapNew/shape/graph/Train/index.js index 9c30f5b25..0805dbd5e 100644 --- a/src/jmapNew/shape/graph/Train/index.js +++ b/src/jmapNew/shape/graph/Train/index.js @@ -221,7 +221,7 @@ export default class Train extends Group { // 恢复颜色状态 recover() { - this.trainB && this.trainB.setHShow(false); + this.trainB && this.trainB.setHShow(false, false); this.trainB && this.trainB.setSShow(false); this.trainB && this.trainB.setDShow(false); this.trainB && this.trainB.setAShow(false); @@ -231,6 +231,7 @@ export default class Train extends Group { this.trainL && this.trainL.setArrowShow(false); this.trainR && this.trainR.setArrowShow(false); this.trainB && this.trainB.setTrainBorderColor(this.style.Train.trainBody.trainSidelineColor || this.style.trainSidelineColor); + this.trainB && this.trainB.recoverTrainBoxAnimation(); } // 设置运行方向状态类型 @@ -327,11 +328,11 @@ export default class Train extends Group { this.trainB && this.trainB.setSoonerOrLater(dt); } // 设置扣车状态 - setHoldStatus(status) { + setHoldStatus(status, parking) { if (status) { - this.trainB && this.trainB.setHShow(true); + this.trainB && this.trainB.setHShow(true, parking); } else { - this.trainB && this.trainB.setHShow(false); + this.trainB && this.trainB.setHShow(false, parking); } } @@ -408,7 +409,7 @@ export default class Train extends Group { } this.setDoorStatus(model.doorCloseLock); this.setAlarmStatus(model.alarmStatus); - this.setHoldStatus(model.hold); + this.setHoldStatus(model.hold, model.parking); this.setJumpStatus(model.jump); // this.setSoonerOrLater(model.dt); this.setTrainTypeColor(model.type); @@ -421,10 +422,8 @@ export default class Train extends Group { if (store.state.map.picture == 'largePassengerView') { this.handlePassagerColor(model.num); } - if (style.Train.trainBody.trainBodyFaultFlashColor) { - // 西安二号线 列车停车状态 闪烁红色 - this.updateTrainBodyFault(model.orderStop); - } + // 西安二号线 列车停车状态 闪烁红色 + this.updateTrainBodyFault(model.orderStop); if (!model.groundCommunicable) { this.trainL && this.trainL.setColor('#f00'); this.trainR && this.trainR.setColor('#f00'); @@ -442,16 +441,9 @@ export default class Train extends Group { } updateTrainBodyFault(orderStop) { - if (orderStop) { - // 西安二号线 列车停车状态 闪烁红色 - if (this.trainB) { - this.trainB.trainBodyFault(); - } - } else { - // 西安二号线 列车取消停车状态 - if (this.trainB) { - this.trainB.untrainBodyFault(); - } + // 西安二号线 列车停车状态 闪烁红色 + if (this.style.Train.trainBody.trainBodyFaultFlashColor && orderStop && this.trainB) { + this.trainB.trainBodyFault(); } } From 6e477bef89ddf53e2b89d9aeb3338aa2e95910cb Mon Sep 17 00:00:00 2001 From: fan Date: Wed, 6 Dec 2023 17:23:47 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=B5=99=E5=A4=A7=E7=BD=91=E6=96=B0?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/map.js | 22 +++---- src/jmapNew/shape/graph/Station/index.js | 21 +++++- .../theme/components/utils/menuOperate.js | 8 +++ .../theme/xian_02/menus/menuStation.vue | 30 ++++++++- .../theme/xian_02/menus/menuStationStand.vue | 65 ++++++++++++++----- .../theme/xian_02/menus/popStationStand.vue | 4 +- 6 files changed, 115 insertions(+), 35 deletions(-) diff --git a/src/jmapNew/map.js b/src/jmapNew/map.js index eefb82d23..68b0b8a75 100644 --- a/src/jmapNew/map.js +++ b/src/jmapNew/map.js @@ -585,18 +585,16 @@ class Jlmap { if (elem.hasOwnProperty('applicantId')) { controlTransferList.push(elem); } - if (!elem.applicantId) { - const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig); - const guideLock = this.mapDevice[oDevice.guideLockCode]; - const guideLockStatus = {totalGuideLock: elem.totalGuideLock}; - if (guideLock && this.hookHandle(guideLock, guideLockStatus)) { - this.$painter.update(guideLock); - } - if (elem.dispose) { - this.$painter.delete(oDevice); - } else { - this.$painter.update(oDevice); - } + const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig); + const guideLock = this.mapDevice[oDevice.guideLockCode]; + const guideLockStatus = {totalGuideLock: elem.totalGuideLock}; + if (guideLock && this.hookHandle(guideLock, guideLockStatus)) { + this.$painter.update(guideLock); + } + if (elem.dispose) { + this.$painter.delete(oDevice); + } else { + this.$painter.update(oDevice); } store.commit('map/mapStationStateUpdate'); } else if (elem.deviceType === 'STATION_DIRECTION') { diff --git a/src/jmapNew/shape/graph/Station/index.js b/src/jmapNew/shape/graph/Station/index.js index 13a8bfd8a..fdaa931e8 100644 --- a/src/jmapNew/shape/graph/Station/index.js +++ b/src/jmapNew/shape/graph/Station/index.js @@ -954,6 +954,7 @@ export default class Station extends Group { this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor); this.emergencyArrowsControl && this.emergencyArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor); this.stationControlCC && this.stationControlCC.setStyle({text:'EL', textFill:this.style.Station.StationControl.text.emergencyControlColor}); + this.stationControlCC && this.stationControlCC.stopAnimation(true); this.veryControl && this.veryControl.setColor(this.style.Station.StationControl.veryControl.defaultColor); this.selfDiscipline && this.selfDiscipline.setColor(this.style.Station.StationControl.selfDiscipline.defaultColor); this.selfDisciplineControl && this.selfDisciplineControl.setColor(this.style.Station.StationControl.selfDisciplineControl.defaultColor); @@ -1047,7 +1048,25 @@ export default class Station extends Group { device && device.instance && device.instance.setCount(countNum); } } - + if (this.style.Station.StationControl.special && model.apply2TheControlMode) { + this.controlTextFlash(model.apply2TheControlMode); + } + } + } + controlTextFlash(apply2TheControlMode) { + if (this.stationControlCC && apply2TheControlMode === 'Local' ) { + let color; + if (apply2TheControlMode === 'Local') { + color = this.style.Station.StationControl.text.stationControlColor; + this.stationControlCC && this.stationControlCC.setStyle({text:'LC', textFill:color}); + } else if (apply2TheControlMode === 'Center') { + color = this.style.Station.StationControl.text.centerControlColor; + this.stationControlCC && this.stationControlCC.setStyle({text:'CC', textFill:color}); + } + this.stationControlCC.animateStyle(true) + .when(500, {textFill: '#000'}) + .when(1000, {textFill: color}) + .when(1500, {textFill: '#000'}).start(); } } handleGuideLock(model) { diff --git a/src/jmapNew/theme/components/utils/menuOperate.js b/src/jmapNew/theme/components/utils/menuOperate.js index df1d45f6f..8c3d0045e 100644 --- a/src/jmapNew/theme/components/utils/menuOperate.js +++ b/src/jmapNew/theme/components/utils/menuOperate.js @@ -388,6 +388,14 @@ export const menuOperate = { // 非常站控 大铁线路 operation: OperationEvent.StationControl.requestVeryControl.menu.operation, cmdType:CMD.ControlConvertMenu.CMD_CM_SPECIAL_STATION_CONTROL + }, + replyStationControl: { + operation: OperationEvent.StationControl.controlResponse.agree.operation, + cmdType: CMD.ControlConvertMenu.CMD_CM_REPLY_STATION_CONTROL + }, + replyCenterControl: { + operation: OperationEvent.StationControl.controlResponse.agree.operation, + cmdType: CMD.ControlConvertMenu.CMD_CM_REPLY_CENTER_CONTROL } }, TrainWindow: { diff --git a/src/jmapNew/theme/xian_02/menus/menuStation.vue b/src/jmapNew/theme/xian_02/menus/menuStation.vue index bb22e1223..10f2eaddf 100644 --- a/src/jmapNew/theme/xian_02/menus/menuStation.vue +++ b/src/jmapNew/theme/xian_02/menus/menuStation.vue @@ -64,10 +64,10 @@ export default { // 暂无功能,先disabled label: '授权', disabled: true, - handler: this.setStationControl, + handler: this.work === 'localWork' ? this.agreeCenterControl : this.agreeStationControl, isDisabled: (station, work) => { if (work === 'localWork') { - return true; + return station.controlMode !== 'Local'; } else { return station.controlMode !== 'Center'; } @@ -469,6 +469,32 @@ export default { } }); }, + agreeStationControl() { + commitOperate(menuOperate.StationControl.replyStationControl, {stationCode: this.selected.code }, 0).then(({valid, operate})=>{ + 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.ControlConvertMenu.CMD_CM_REPLY_STATION_CONTROL, + param: { replyVOList:[{ stationCode: this.selected.code, agree: true}] } + }); + } + }); + }, + agreeCenterControl() { + commitOperate(menuOperate.StationControl.replyCenterControl, {stationCode: this.selected.code }, 0).then(({valid, operate})=>{ + 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.ControlConvertMenu.CMD_CM_REPLY_CENTER_CONTROL, + param: { replyVOList:[{ stationCode: this.selected.code, agree: true}] } + }); + } + }); + }, setEmergencyControl() { // 紧急站控 commitOperate(menuOperate.StationControl.emergencyStationControl, {stationCode:this.selected.code}, 0).then(({valid, operate})=>{ diff --git a/src/jmapNew/theme/xian_02/menus/menuStationStand.vue b/src/jmapNew/theme/xian_02/menus/menuStationStand.vue index 9ca57fa94..6b81ecb9c 100644 --- a/src/jmapNew/theme/xian_02/menus/menuStationStand.vue +++ b/src/jmapNew/theme/xian_02/menus/menuStationStand.vue @@ -50,10 +50,10 @@
跳停
-
设置/取消 所有列车跳停本站
+
设置/取消 所有列车跳停本站
-
所有列车跳停本站
+
所有列车跳停本站
@@ -149,9 +149,12 @@ export default { title: '', standDetainColor: '#FFF', detainStatusColor: '#FFF', + standJumpColor: '#FFF', + jumpStatusColor: '#FFF', bgColor: '#000', fontColor: '#FFF', - detainInterval: '' + detainInterval: '', + jumpInterval: '' }; }, computed: { @@ -203,9 +206,7 @@ export default { this.initStatus(list); }, '$store.state.socket.equipmentStatus': function (val) { - if (this.selected) { - this.detainStatusColor = this.selected.centerHoldTrain || this.selected.stationHoldTrain ? '#FF0' : '#FFF'; - } + this.initDeviceStatus(); } }, methods: { @@ -222,6 +223,7 @@ export default { if (valid) { this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); const requestList = this.$store.state.menuOperation.requestList; + this.initDeviceStatus(); this.initStatus(requestList || []); this.position = position; this.dialogShow = true; @@ -233,21 +235,37 @@ export default { this.$refs.noticeInfo.doShow(); }); }, + initDeviceStatus() { + if (this.selected) { + const device = this.$store.getters['map/getDeviceByCode'](this.selected.code); + this.detainStatusColor = device.centerHoldTrain || device.stationHoldTrain ? '#FF0' : '#FFF'; + this.jumpStatusColor = device.assignSkip || device.allSkip ? '#FF0' : '#FFF'; + } + }, initStatus(requestList) { this.standDetainColor = '#FFF'; this.bgColor = '#000'; this.fontColor = '#FFF'; + this.clearTimer(); + requestList.forEach(item => { + if (item.device && item.device.code === this.selected.code) { + if (item.operation.name === '设置扣车' || item.operation.name === '取消扣车') { + this.standDetain(); + } else if (item.operation.name === '跳停本站' || item.operation.name === '取消跳停') { + this.standJump(); + } + } + }); + }, + clearTimer() { if (this.detainInterval) { clearInterval(this.detainInterval); this.detainInterval = ''; } - requestList.forEach(item => { - if (item.device && item.device.code === this.selected.code) { - if (item.operation.code === OperationEvent.StationStand.setDetainTrain.menu.operation || item.operation.code === OperationEvent.StationStand.cancelDetainTrain.menu.operation) { - this.standDetain(); - } - } - }); + if (this.jumpInterval) { + clearInterval(this.jumpInterval); + this.jumpInterval = ''; + } }, doClose() { const step = { @@ -259,10 +277,7 @@ export default { this.loading = false; this.dialogShow = false; this.$store.dispatch('training/emitTipFresh'); - if (this.detainInterval) { - clearInterval(this.detainInterval); - this.detainInterval = ''; - } + this.clearTimer(); } }); }, @@ -343,7 +358,21 @@ export default { } else { this.standDetainColor = '#000'; } - }, 1000); + }, 500); + } + }, + standJump() { + this.standJumpColor = '#FF0'; + this.bgColor = '#FFF'; + this.fontColor = '#000'; + if (!this.jumpInterval) { + this.jumpInterval = setInterval(() => { + if (this.standJumpColor !== '#FF0') { + this.standJumpColor = '#FF0'; + } else { + this.standJumpColor = '#000'; + } + }, 500); } }, setRuningMode(mode, direction) { diff --git a/src/jmapNew/theme/xian_02/menus/popStationStand.vue b/src/jmapNew/theme/xian_02/menus/popStationStand.vue index c27848541..406b8fec1 100644 --- a/src/jmapNew/theme/xian_02/menus/popStationStand.vue +++ b/src/jmapNew/theme/xian_02/menus/popStationStand.vue @@ -369,7 +369,7 @@ export default { this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, - operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '跳停本站请求成功'}, + operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '跳停本站'}, cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP, param: step.param }); @@ -390,7 +390,7 @@ export default { this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, - operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '取消跳停请求成功'}, + operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '取消跳停'}, cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP, param: step.param }); From 388f4593f1bb605f8e87f2f3c1f982c679e0fc66 Mon Sep 17 00:00:00 2001 From: fan Date: Thu, 7 Dec 2023 17:45:44 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=B5=99=E5=A4=A7=E7=BD=91=E6=96=B0?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E8=B0=83=E6=95=B41207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/config/skinCode/xian_02.js | 2 +- src/jmapNew/shape/graph/Station/index.js | 2 +- src/jmapNew/theme/xian_02/menus/menuStation.vue | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index 13cd7222f..a4494c1c9 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -709,7 +709,7 @@ class SkinCode extends defaultStyle { trainNameFormat: 'serviceNumber:targetCode', // 列车显示格式 trainBodyFaultFlashColor:'#f00' // 列车故障闪烁颜色 }, - directionArrow: { + directionArrow: { }, hsda: { lrPaddingHSDA: 3, // HSDA两边间隔 diff --git a/src/jmapNew/shape/graph/Station/index.js b/src/jmapNew/shape/graph/Station/index.js index fdaa931e8..b6db2e6db 100644 --- a/src/jmapNew/shape/graph/Station/index.js +++ b/src/jmapNew/shape/graph/Station/index.js @@ -1054,7 +1054,7 @@ export default class Station extends Group { } } controlTextFlash(apply2TheControlMode) { - if (this.stationControlCC && apply2TheControlMode === 'Local' ) { + if (this.stationControlCC && apply2TheControlMode) { let color; if (apply2TheControlMode === 'Local') { color = this.style.Station.StationControl.text.stationControlColor; diff --git a/src/jmapNew/theme/xian_02/menus/menuStation.vue b/src/jmapNew/theme/xian_02/menus/menuStation.vue index 10f2eaddf..c11d256bc 100644 --- a/src/jmapNew/theme/xian_02/menus/menuStation.vue +++ b/src/jmapNew/theme/xian_02/menus/menuStation.vue @@ -67,9 +67,9 @@ export default { handler: this.work === 'localWork' ? this.agreeCenterControl : this.agreeStationControl, isDisabled: (station, work) => { if (work === 'localWork') { - return station.controlMode !== 'Local'; + return station.apply2TheControlMode !== 'Center'; } else { - return station.controlMode !== 'Center'; + return station.apply2TheControlMode !== 'Local'; } }, isShow: (station, work) => true From 1aaa427dacb732901a50cf5ac9bcc28703a48eaf Mon Sep 17 00:00:00 2001 From: fan Date: Tue, 19 Dec 2023 11:21:24 +0800 Subject: [PATCH 05/10] =?UTF-8?q?tms&pis=E5=8F=AF=E8=A7=86=E5=8C=96?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/deviceManage/editConfig.vue | 89 +++++++++++++++++++- src/views/system/deviceManage/index.vue | 4 +- 2 files changed, 90 insertions(+), 3 deletions(-) diff --git a/src/views/system/deviceManage/editConfig.vue b/src/views/system/deviceManage/editConfig.vue index e85a46359..6ee55c059 100644 --- a/src/views/system/deviceManage/editConfig.vue +++ b/src/views/system/deviceManage/editConfig.vue @@ -88,6 +88,50 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -242,11 +286,31 @@ export default { client:'', clientList: [] }, + formTms: { + deviceCode: '', + roleCode:'', + client:'', + clientList: [] + }, clientList: [], pictureList: [ { label: '广播系统', value: 'paMain' }, { label: '乘客信息', value: 'pidsMain' } ], + rulesTms:{ + deviceCode: [ + { required: true, message: '请选择归属车站', trigger: 'change'} + ], + roleCode: [ + { required: true, message: '请选择关联角色', trigger: 'change'} + ], + client: [ + { required: true, message: '请选择关联客户端', trigger: 'change'} + ], + clientList: [ + { required: true, message: '请选择客户端列表', trigger: 'change'} + ] + }, rulesIm:{ roleCode: [ { required: true, message: '请选择关联角色', trigger: 'change'} @@ -331,6 +395,10 @@ export default { this.formIscs = {deviceCode: '', picture: '', stationCode: '', roleCode:'', client:'', clientList: []}; const form = JSON.parse(resp.data.config); this.formIscs = Object.assign(this.formIscs, form); + } else if (resp.data.config && ['PIS', 'TMS'].includes(resp.data.type)) { + this.formTms = {deviceCode: '', roleCode:'', client:'', clientList: []}; + const form = JSON.parse(resp.data.config); + this.formTms = Object.assign(this.formTms, form); } }).catch(()=> { this.$message.error('获取项目设备详情失败!'); @@ -348,7 +416,7 @@ export default { }).catch(() => { this.$message.error('获取设备列表失败!'); }); - } else if (this.data.type === 'ISCS_CW') { + } else if (this.data.type === 'ISCS_CW' || this.data.type === 'PIS') { getDevicesByType(row.project, 'CW').then(res => { if (res.data && res.data.length) { this.lwList = res.data; @@ -356,6 +424,14 @@ export default { }).catch(() => { this.$message.error('获取设备列表失败!'); }); + } else if (this.data.type === 'TMS') { + getDevicesByType(row.project, 'DRIVE').then(res => { + if (res.data && res.data.length) { + this.lwList = res.data; + } + }).catch(() => { + this.$message.error('获取设备列表失败!'); + }); } getBackProjectConfigByCode(row.project).then(res=>{ const data = res.data; @@ -435,6 +511,17 @@ export default { self.$message.error(this.$t('tip.modifyTheFailure') + error.message); }); }); + } else if (this.data.type === 'PIS' || this.data.type === 'TMS') { + this.$refs.formTms.validate(() => { + const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(this.formTms) }; + setDeviceConfig(data).then(response => { + self.$message.success('设置设备配置成功'); + self.handleClose(); + self.$emit('reloadTable'); + }).catch(error => { + self.$message.error(this.$t('tip.modifyTheFailure') + error.message); + }); + }); } }, handleClose() { diff --git a/src/views/system/deviceManage/index.vue b/src/views/system/deviceManage/index.vue index cf7b1a263..74a0f5114 100644 --- a/src/views/system/deviceManage/index.vue +++ b/src/views/system/deviceManage/index.vue @@ -187,8 +187,8 @@ export default { }); }, editConfig(index, row) { - const configGatewayList = ['SWITCH', 'SIGNAL', 'PSD', 'PSL', 'PSC', 'UDP_LOW', 'SECTION', 'TRAIN', 'UDP_CLIENT', 'PIS_STAND', 'PIS_TRAIN', 'PIS', 'TMS']; - if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW', 'IM', 'CW', 'DRIVE', 'DEPOT'].includes(row.type)) { + const configGatewayList = ['SWITCH', 'SIGNAL', 'PSD', 'PSL', 'PSC', 'UDP_LOW', 'SECTION', 'TRAIN', 'UDP_CLIENT', 'PIS_STAND', 'PIS_TRAIN', 'PIS']; + if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW', 'IM', 'CW', 'DRIVE', 'DEPOT', 'TMS', 'PIS'].includes(row.type)) { this.$refs.editConfig.doShow(row); } else if (configGatewayList.includes(row.type)) { this.$refs.editConfigGateway.doShow(row); From 28dc2c37397d7bb3f130c3cae7096814a2b3b26e Mon Sep 17 00:00:00 2001 From: fan Date: Tue, 19 Dec 2023 13:09:56 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E6=97=B6=E6=B8=85=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/deviceManage/editConfig.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/system/deviceManage/editConfig.vue b/src/views/system/deviceManage/editConfig.vue index 6ee55c059..232b56b80 100644 --- a/src/views/system/deviceManage/editConfig.vue +++ b/src/views/system/deviceManage/editConfig.vue @@ -532,6 +532,7 @@ export default { this.formLw = {stationCode: '', roleCode:'', client:'', clientList: []}; this.formIm = { roleCode:'', client:'', clientList: []}; this.formIscs = {deviceCode: '', picture: '', stationCode: '', roleCode:'', client:'', clientList: []}; + this.formTms = { deviceCode: '', roleCode: '', client: '', clientList: [] }; this.$refs.formIbp.resetFields(); this.$refs.formLw.resetFields(); this.$refs.formIscs.resetFields(); From 933a1367c4cf3b73274f1b48a858512ab7aded61 Mon Sep 17 00:00:00 2001 From: fan Date: Tue, 19 Dec 2023 15:40:26 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E8=BF=98=E5=8E=9Fpis=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iscs/iscsSystem/config/pis/mainScreen.vue | 471 +++++++++--------- .../iscsSystemNew/config/pis/mainScreen.vue | 12 +- 2 files changed, 240 insertions(+), 243 deletions(-) diff --git a/src/views/iscs/iscsSystem/config/pis/mainScreen.vue b/src/views/iscs/iscsSystem/config/pis/mainScreen.vue index bd9b5d2c5..447b1d224 100644 --- a/src/views/iscs/iscsSystem/config/pis/mainScreen.vue +++ b/src/views/iscs/iscsSystem/config/pis/mainScreen.vue @@ -6,16 +6,13 @@
特定区域
- {{ item.title }} + {{ item.title }}
@@ -60,7 +57,7 @@
{{ item.name }}
-
+
全车站
@@ -91,11 +88,11 @@
操作
-
滚动信息
发布
+
滚动信息
发布
信息清除
-
清除
普通信息
+
清除
普通信息
@@ -125,49 +122,49 @@
From d8219cc2eb06912ccb378768d3b862007a87992d Mon Sep 17 00:00:00 2001 From: fan Date: Tue, 16 Jan 2024 09:35:55 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E8=81=94=E7=B3=BB=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/projectConfig.js | 3 +++ src/views/newMap/display/simulationMenu/simulationMenu.vue | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/store/modules/projectConfig.js b/src/store/modules/projectConfig.js index a4c341523..8689fc048 100644 --- a/src/store/modules/projectConfig.js +++ b/src/store/modules/projectConfig.js @@ -50,6 +50,9 @@ const projectConfig = { }, bottomRecordNumber: (state) => { return state.viewSetting.bottomRecordNumber; + }, + loginContectInformation: (state) => { + return state.viewSetting.loginContectInformation; } }, mutations: { diff --git a/src/views/newMap/display/simulationMenu/simulationMenu.vue b/src/views/newMap/display/simulationMenu/simulationMenu.vue index 616b4b6c0..bee7c1c9b 100644 --- a/src/views/newMap/display/simulationMenu/simulationMenu.vue +++ b/src/views/newMap/display/simulationMenu/simulationMenu.vue @@ -68,7 +68,7 @@ export default { isShow: () => { return (this.$store.state.training.domConfig.hasDeviceManage && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER) || (this.$route.query.client === 'interlockWork' && this.$route.query.projectDevice === 'ILW'); } }, - { label: '联系方式', name: 'contectUs', click: this.contectUs, isDisabled: () => { return false; }, isShow: () => { return true; } }, + { label: '联系方式', name: 'contectUs', click: this.contectUs, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.projectConfig.loginContectInformation; } }, { label: '生成仿真号', name: 'generateQrCode', click: this.generateQrCode, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.training.domConfig.joint && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER; } }, { label: '切换客流数据', name: 'changeFlowData', click: this.changeFlowData, isDisabled: () => { return false; }, isShow: this.isShowLpf}, { label: '成员管理', name: 'memberManage', click: this.memberManage, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.training.domConfig.hasMemberManage && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER; } },