This commit is contained in:
sunzhenyu 2020-07-14 15:03:38 +08:00
commit 9352cac2b3
25 changed files with 501 additions and 276 deletions

View File

@ -143,7 +143,7 @@ export function loadDraftScript(scriptId, memberId, group) {
export function loadDraftScriptNew(memberId, group) {
return request({
// url: `/simulation/${group}/choosePlay?memberId=${memberId}`,
url: `/api/scriptSimulation/${group}/chooseMember/${memberId}/StartScript`,
url: `/api/scriptSimulation/${group}/chooseMemberAndStart?memberId=${memberId}`,
method: 'put'
});
}

View File

@ -778,3 +778,24 @@ export function getAllSimulationUser(group) {
method: 'get'
});
}
// 获取仿真全部真实设备
export function getAllSimulationList(group) {
return request({
url: `/api/simulation/${group}/realDevice/list`,
method: 'get'
});
}
// 连接仿真设备和真实设备
export function postSimulationConnectById(group, id, sdCode) {
return request({
url: `/api/simulation/${group}/realDevice/${id}/connect/${sdCode}`,
method: 'post'
});
}
// 断开仿真设备和真实设备的连接
export function putSimulationDisconnectById(group, id) {
return request({
url: `/api/simulation/${group}/realDevice/${id}/disconnect`,
method: 'put'
});
}

View File

@ -6,8 +6,8 @@
<!--<menu-switch ref="menuSwitch" :selected="selected" />-->
<!--<menu-signal ref="menuSignal" :selected="selected" />-->
<!--<menu-section ref="menuSection" :selected="selected" />-->
<menu-train ref="menuTrain" :selected="selected" />
<!--<menu-station ref="menuStation" :selected="selected" />-->
<menu-train ref="menuTrain" :selected="selected" />
<menu-button v-if="isShowBar" ref="menuButton" :selected="selected" />
<passive-alarm ref="passiveAlarm" />
<passive-contorl ref="passiveControl" />
@ -18,12 +18,12 @@
<script>
import { mapGetters } from 'vuex';
import MenuCancel from './menuCancel';
import MenuSignal from './menuSignal';
import MenuStationStand from './menuStationStand';
import MenuSwitch from './menuSwitch';
import MenuSection from './menuSection';
// import MenuSignal from './menuSignal';
// import MenuStationStand from './menuStationStand';
// import MenuSwitch from './menuSwitch';
// import MenuSection from './menuSection';
// import MenuStation from './menuStation';
import MenuTrain from './menuTrain';
import MenuStation from './menuStation';
import MenuBar from './menuBar';
import MenuButton from './menuButton';
import PassiveAlarm from './passiveDialog/alarm';
@ -36,11 +36,11 @@ export default {
MenuBar,
MenuButton,
MenuCancel,
MenuSignal,
MenuSwitch,
MenuSection,
MenuStationStand,
MenuStation,
// MenuSignal,
// MenuSwitch,
// MenuSection,
// MenuStationStand,
// MenuStation,
MenuTrain,
PassiveAlarm,
PassiveContorl,

View File

@ -7,7 +7,8 @@
<el-row class="nav-border-row">
<template v-for="(item, index) in centralizedStationList">
<div :key="index" class="nav-border-row row-width-box flex-row">
<div v-if="item.name" :id="item.operate.domId" class="fake-button-active" :class="{'active': item.show}" :style="{background: item.securityCommand ? '#87CEFA': '#E0E0E0'}" @click="clickCommand(item)">{{ item.name }}</div>
<div v-if="item.name && !item.securityCommand " :id="item.operate.domId" class="fake-button-active" :class="item.show? 'active': ''" @click="clickCommand(item)">{{ item.name }}</div>
<div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" class="fake-button-security" :class="item.show? 'active': ''" @click="clickCommand(item)">{{ item.name }}</div>
<div v-else class="fake-button" />
</div>
</template>
@ -18,7 +19,7 @@
<div class="nav-border">
<div class="nav-border-top">
<el-button :id="commandId" class="fl" :class="{'disabled': canCommand}" style="line-height: 18px; margin-top: 4px;" plain :disabled="canCommand" @click="command">执行</el-button>
<el-button class="fr" style="line-height: 18px; margin-top: 4px;" plain>取消</el-button>
<el-button class="fr" style="line-height: 18px; margin-top: 4px;" plain @click="doClose">取消</el-button>
</div>
<div class="nav-border-bottom">
<el-table
@ -86,7 +87,13 @@ export default {
centralizedStationList: new Array(15).fill({}),
ciStationParamList: [],
startVirtual: false,
endVirtual: false
endVirtual: false,
basicParamList: [],
sectionParamList: [],
switchParamList: [],
signalParamList: [],
stationParamList: [],
routeParamList: []
};
},
computed: {
@ -96,118 +103,6 @@ export default {
]),
commandId() {
return OperationEvent.Command.commandHaerbin.confirm.domId;
},
basicParamList() {
return this.$store.state.training.prdType === '01' ? [
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false },
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false },
{ name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true },
// { name: '', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show:false, securityCommand: true },
{ name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, show: false },
{ name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
{ name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
{ name: '自排全开', cmdType: CMD.Section.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, show: false },
{ name: '自排全关', cmdType: CMD.Section.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, show: false }
] : [];
},
sectionParamList() {
return this.$store.state.training.prdType === '01' ? [
{ name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show: false },
{ name: '解封区段', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menu, show: false, securityCommand: true },
{ name: '轨区消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menu, show: false, securityCommand: true },
{ name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menu, show: false, securityCommand: true },
{ name: '强解区段', cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menu, show: false, securityCommand: true }
] : [
{ name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show: false }
];
},
swicthParamList() {
return this.$store.state.training.prdType === '01' ? [
{ name: '封锁道岔', cmdType: CMD.Switch.CMD_SWITCH_BLOCK, operate: OperationEvent.Switch.block.menu, show: false },
{ name: '解封道岔', cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK, operate: OperationEvent.Switch.unblock.menu, show: false, securityCommand: true },
{ name: '取消锁定', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK, operate: OperationEvent.Switch.unlock.menu, show: false, securityCommand: true },
{ name: '单锁道岔', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK, operate: OperationEvent.Switch.lock.menu, show: false },
{ name: '转换定位', cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION, operate: OperationEvent.Switch.locate.menu, show: false },
{ name: '转换反位', cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION, operate: OperationEvent.Switch.reverse.menu, show: false },
{ name: '封锁区段', cmdType: CMD.Switch.CMD_SWITCH_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show: false },
{ name: '解封区段', cmdType: CMD.Switch.CMD_SWITCH_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menu, show: false, securityCommand: true },
{ name: '轨区消限', cmdType: CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED, operate: OperationEvent.Switch.cancelSpeed.menu, show: false, securityCommand: true },
{ name: '轨区设限', cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED, operate: OperationEvent.Switch.setSpeed.menu, show: false, securityCommand: true},
{ name: '强解区段', cmdType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menu, show: false, securityCommand: true }
] : [
{ name: '封锁道岔', cmdType: CMD.Switch.CMD_SWITCH_BLOCK, operate: OperationEvent.Switch.block.menu, show: false },
{ name: '单锁道岔', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK, operate: OperationEvent.Switch.lock.menu, show: false },
{ name: '转换定位', cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION, operate: OperationEvent.Switch.locate.menu, show: false },
{ name: '转换反位', cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION, operate: OperationEvent.Switch.reverse.menu, show: false },
{ name: '解封区段', cmdType: CMD.Switch.CMD_SWITCH_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menu, show: false}
];
},
signalParamList() {
return this.$store.state.training.prdType === '01' ? [
{ name: '追踪单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO, operate: OperationEvent.Signal.setAutoInterlock.menu, show: false },
{ name: '追踪单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO, operate: OperationEvent.Signal.cancelAutoInterlock.menu, show: false },
{ name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menu, show: false },
{ name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menu, show: false },
{ name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menu, show: false },
{ name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menu, show: false },
{ name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menu, show: false, securityCommand: true },
{ name: '关单信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menu, show: false }
] : [
{ name: '追踪单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO, operate: OperationEvent.Signal.setAutoInterlock.menu, show: false },
{ name: '追踪单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO, operate: OperationEvent.Signal.cancelAutoInterlock.menu, show: false },
{ name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menu, show: false },
{ name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menu, show: false },
{ name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menu, show: false },
{ name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menu, show: false },
{ name: '关单信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menu, show: false }
];
},
stationParamList() {
return this.$store.state.training.prdType === '01' ? [
{ name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false } //
] : [
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false },
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false },
{ name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, show: false },
{ name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
{ name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
{ name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, show: false },
{ name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, show: false },
{ name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false }
];
},
routeParamList() {
if (this.$store.state.training.prdType === '01') {
return [
{ name: 'ATP进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消ATP', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '联锁进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消联锁', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '引导进路', cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE, operate: OperationEvent.Signal.guide.menu, show: false, securityCommand: true },
{ name: '取消引导', cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE, operate: OperationEvent.Signal.humanTrainRoute.menu, show: false }
];
} else if (this.$store.state.training.prdType === '02' && this.startVirtual) {
return [
{ name: 'ATP进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消ATP', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false }
];
} else if (this.$store.state.training.prdType === '02' && this.endVirtual) {
return [
{ name: '联锁进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消联锁', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '取消引导', cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE, operate: OperationEvent.Signal.humanTrainRoute.menu, show: false },
{ name: 'ATP进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消ATP', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false }
];
} else if (this.$store.state.training.prdType === '02') {
return [
{ name: '联锁进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消联锁', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '取消引导', cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE, operate: OperationEvent.Signal.humanTrainRoute.menu, show: false }
];
} else {
return [];
}
}
},
watch: {
@ -252,9 +147,15 @@ export default {
} else {
this.handleBasicMenu();
}
},
'$store.state.training.prdType': function (val) {
this.initMenus();
this.initRouteMenus();
}
},
mounted() {
this.initMenus();
this.initRouteMenus();
this.handleBasicMenu();
},
methods: {
@ -321,7 +222,7 @@ export default {
this.oldDevice = section;
this.centralizedStationList = new Array(15).fill({});
this.swicthParamList.forEach((swicth, index) => {
this.switchParamList.forEach((swicth, index) => {
this.centralizedStationList[index] = swicth;
});
this.tempData = [];
@ -372,6 +273,7 @@ export default {
this.startVirtual = startSignal.virtual;
this.endVirtual = endSignal.virtual;
this.route = item;
this.initRouteMenus();
}
});
if (this.route && this.route.code) {
@ -477,6 +379,108 @@ export default {
this.canCommand = true; //
this.oldClickObj = null; //
this.clearAllMenuShow();
},
initMenus() {
this.basicParamList = this.$store.state.training.prdType === '01' ? [
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false },
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false },
{ name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true },
// { name: '', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show:false, securityCommand: true },
{ name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, show: false },
{ name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
{ name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
{ name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, show: false },
{ name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, show: false }
] : [];
this.sectionParamList = this.$store.state.training.prdType === '01' ? [
{ name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show: false },
{ name: '解封区段', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menu, show: false, securityCommand: true },
{ name: '轨区消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menu, show: false, securityCommand: true },
{ name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menu, show: false, securityCommand: true },
{ name: '强解区段', cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menu, show: false, securityCommand: true }
] : [
{ name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show: false }
];
this.switchParamList = this.$store.state.training.prdType === '01' ? [
{ name: '封锁道岔', cmdType: CMD.Switch.CMD_SWITCH_BLOCK, operate: OperationEvent.Switch.block.menu, show: false },
{ name: '解封道岔', cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK, operate: OperationEvent.Switch.unblock.menu, show: false, securityCommand: true },
{ name: '取消锁定', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK, operate: OperationEvent.Switch.unlock.menu, show: false, securityCommand: true },
{ name: '单锁道岔', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK, operate: OperationEvent.Switch.lock.menu, show: false },
{ name: '转换定位', cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION, operate: OperationEvent.Switch.locate.menu, show: false },
{ name: '转换反位', cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION, operate: OperationEvent.Switch.reverse.menu, show: false },
{ name: '封锁区段', cmdType: CMD.Switch.CMD_SWITCH_SECTION_BLOCK, operate: OperationEvent.Section.lock.menu, show: false },
{ name: '解封区段', cmdType: CMD.Switch.CMD_SWITCH_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menu, show: false, securityCommand: true },
{ name: '轨区消限', cmdType: CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED, operate: OperationEvent.Switch.cancelSpeed.menu, show: false, securityCommand: true },
{ name: '轨区设限', cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED, operate: OperationEvent.Switch.setSpeed.menu, show: false, securityCommand: true},
{ name: '强解区段', cmdType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menu, show: false, securityCommand: true }
] : [
{ name: '封锁道岔', cmdType: CMD.Switch.CMD_SWITCH_BLOCK, operate: OperationEvent.Switch.block.menu, show: false },
{ name: '单锁道岔', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK, operate: OperationEvent.Switch.lock.menu, show: false },
{ name: '转换定位', cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION, operate: OperationEvent.Switch.locate.menu, show: false },
{ name: '转换反位', cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION, operate: OperationEvent.Switch.reverse.menu, show: false },
{ name: '解封区段', cmdType: CMD.Switch.CMD_SWITCH_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menu, show: false}
];
this.signalParamList = this.$store.state.training.prdType === '01' ? [
{ name: '追踪单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO, operate: OperationEvent.Signal.setAutoInterlock.menu, show: false },
{ name: '追踪单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO, operate: OperationEvent.Signal.cancelAutoInterlock.menu, show: false },
{ name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menu, show: false },
{ name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menu, show: false },
{ name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menu, show: false },
{ name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menu, show: false },
{ name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menu, show: false, securityCommand: true },
{ name: '关单信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menu, show: false }
] : [
{ name: '追踪单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO, operate: OperationEvent.Signal.setAutoInterlock.menu, show: false },
{ name: '追踪单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO, operate: OperationEvent.Signal.cancelAutoInterlock.menu, show: false },
{ name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menu, show: false },
{ name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menu, show: false },
{ name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menu, show: false },
{ name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menu, show: false },
{ name: '关单信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menu, show: false }
];
this.stationParamList = this.$store.state.training.prdType === '01' ? [
{ name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false }
] : [
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false },
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false },
{ name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, show: false },
{ name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
{ name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
{ name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, show: false },
{ name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, show: false },
{ name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false }
];
},
initRouteMenus() {
if (this.$store.state.training.prdType === '01') {
this.routeParamList = [
{ name: 'ATP进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消ATP', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '联锁进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消联锁', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '引导进路', cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE, operate: OperationEvent.Signal.guide.menu, show: false, securityCommand: true },
{ name: '取消引导', cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE, operate: OperationEvent.Signal.humanTrainRoute.menu, show: false }
];
} else if (this.$store.state.training.prdType === '02' && this.startVirtual) {
this.routeParamList = [
{ name: 'ATP进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消ATP', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false }
];
} else if (this.$store.state.training.prdType === '02' && this.endVirtual) {
this.routeParamList = [
{ name: '联锁进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消联锁', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '取消引导', cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE, operate: OperationEvent.Signal.humanTrainRoute.menu, show: false },
{ name: 'ATP进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消ATP', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false }
];
} else if (this.$store.state.training.prdType === '02') {
this.routeParamList = [
{ name: '联锁进路', cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE, operate: OperationEvent.Signal.arrangementRoute.menu, show: false },
{ name: '取消联锁', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE, operate: OperationEvent.Signal.cancelTrainRoute.menu, show: false },
{ name: '取消引导', cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE, operate: OperationEvent.Signal.humanTrainRoute.menu, show: false }
];
}
}
}
};
@ -562,7 +566,19 @@ export default {
background: #b1b1b1;
}
}
.fake-button-security {
width: 80px;
height: 20px;
border-radius: 5px !important;
line-height: 18px;
border: 1px solid #426688;
cursor: pointer;
box-shadow: -1px 0px 1px #fff inset, 1px 0px 1px #fff inset, 0px 1px 1px #fff inset, 0px -1px 1px #fff inset;
background: #87CEFA;
&:hover, &.active{
background: #b1b1b1;
}
}
.haerbin_table .abc:hover{
background-color:#2b68c3!important;
color: #fff;

View File

@ -233,7 +233,8 @@ const map = {
holdStandList: [], // 扣车站台列表
holdStatus: false, // 是否有扣车状态
jumpStandList: [], // 跳停站台列表
jumpStatus: false // 是否有跳停状态
jumpStatus: false, // 是否有跳停状态
selectDeviceFlag: false // 设备管理激活判断
},
getters: {
@ -864,6 +865,12 @@ const map = {
}
});
if (!isExist) { state.activeTrainList.push(data.code); state.activeTrainListChange += 1; }
},
selectDeviceCode: (state, data)=> {
state.selectDevice = {
flag: data.flag,
type: data.type
};
}
},
@ -1062,6 +1069,9 @@ const map = {
},
delFlankProtectList: ({ commit }, data) => {
commit('delFlankProtectList', data);
},
selectDeviceCode: ({ commit }, data) => {
commit('selectDeviceCode', data);
}
}
};

View File

@ -4,7 +4,7 @@ export function getBaseUrl() {
// BASE_API = 'https://joylink.club/jlcloud';
BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://192.168.3.5:9000'; // 袁琪
// BASE_API = 'http://192.168.3.6:9000'; // 旭强
BASE_API = 'http://192.168.3.6:9000'; // 旭强
// BASE_API = 'http://192.168.3.41:9000'; // 张赛
// BASE_API = 'http://192.168.3.82:9000'; // 杜康
// BASE_API = 'http://b29z135112.zicp.vip';

View File

@ -79,6 +79,7 @@ StompClient.prototype = {
// sock断开回调
that.clientIns.ws.onclose = () => {
// Message.error(`通信连接已断开!`);
console.info(`通信连接已断开!`);
notFirstConnect = true;
checkLoginLine().then(() => {
that.status = false;
@ -107,16 +108,18 @@ StompClient.prototype = {
},
logOut(err) {
console.info(err);
MessageBox.confirm('你已被登出,请重新登录', '确定登出', {
confirmButtonText: '重新登录',
showCancelButton: false,
type: 'warning'
}).then(() => {
store.dispatch('FedLogOut').then(() => {
location.reload();// 为了重新实例化vue-router对象 避免bug
// 退出登陆前断开连接
store.dispatch('disconnect').then(()=>{
MessageBox.confirm('你已被登出,请重新登录', '确定登出', {
confirmButtonText: '重新登录',
showCancelButton: false,
type: 'warning'
}).then(() => {
store.dispatch('FedLogOut').then(() => {
location.reload();// 为了重新实例化vue-router对象 避免bug
});
});
});
},
// 恢复链接
reconnect(count) {

View File

@ -0,0 +1,185 @@
<template>
<div>
<el-dialog
title="设备管理"
:visible.sync="show"
custom-class="dialog_box"
top="0px"
width="800px"
:modal="false"
:before-do-close="doClose"
:close-on-click-modal="false"
:z-index="2000"
>
<div style="margin-bottom: 3px; overflow: hidden;">
<div class="plc_box">名称: {{ plcInfo.name }}</div>
<div class="plc_box">状态: <span :style="{'color': plcInfo.status ? 'green' : 'red'}">{{ plcInfo.status ? '在线' : '不在线' }}</span></div>
<el-button type="text" size="small" class="freshen_box" @click="freshen">刷新</el-button>
</div>
<el-table :data="tableData" border style="width: 100%; max-height: calc(100% - 24px); overflow: auto;">
<el-table-column prop="code" label="设备编号" width="180" />
<el-table-column prop="typeName" label="设备类型" width="180" />
<el-table-column prop="vrDeviceCode" label="连接设备编码">
<template slot-scope="scope">
<div v-if="scope.row.vrDeviceCode" class="flex_box">{{ scope.row.vrDeviceCode }}</div>
<div v-if="!scope.row.vrDeviceCode" class="flex_box">()</div>
<div class="flex_box">
<el-button
:type="scope.row.buttonShowType ? 'danger' : 'primary'"
size="small"
@click="hover(scope.row, scope.$index)"
>激活</el-button>
</div>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handleClick(scope.row)">连接</el-button>
<el-button type="text" size="small" @click="cancel(scope.row, scope.$index)">断开</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import { getAllSimulationList, postSimulationConnectById, putSimulationDisconnectById } from '@/api/simulation.js';
import ConstConfig from '@/scripts/ConstConfig';
import { EventBus } from '@/scripts/event-bus';
export default {
name: 'Equipment',
data() {
return {
show: false,
group: '',
tableData: [],
typeList: ConstConfig.ConstSelect.projectDeviceTypeList,
plcInfo: {
name: '',
status: ''
},
index: 0
};
},
mounted() {
EventBus.$on('selectDevice', (data) => {
this.tableData[this.index]['vrDeviceCode'] = data.code;
this.tableData[this.index]['buttonShowType'] = false;
this.tableData.splice(this.index, 1, this.tableData[this.index]);
this.$store.dispatch('map/selectDeviceCode', {flag: false, type: ''});
});
},
async beforeDestroy() {
EventBus.$off('selectDevice');
},
methods: {
async doShow() {
this.show = true;
this.group = this.$route.query.group;
this.getList();
},
async getList() {
try {
const res = await getAllSimulationList(this.group);
this.tableData = [].concat(res.data);
this.tableData.forEach((item, index) => {
if (item.type == 'PLC_GATEWAY') {
this.plcInfo = {
name: 'PLC网关',
status: item.online
};
this.tableData.splice(index, 1);
} else {
item.buttonShowType = false;
item.typeName = this.typeList.find(el => el.value == item.type).label;
}
});
} catch (error) {
console.error(error);
}
},
hover(row, index) {
row.buttonShowType = !row.buttonShowType;
this.index = index;
this.tableData.splice(index, 1, row);
this.$store.dispatch('map/selectDeviceCode', {flag: row.buttonShowType, type: row.type});
},
freshen() {
this.getList();
},
doClose() {
this.show = false;
},
async handleClick(row) {
if (row.vrDeviceCode) {
this.$confirm('您确定将次设备连接, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try {
const res = await postSimulationConnectById(this.group, row.id, row.vrDeviceCode);
if (res && res.code == 200) {
this.$message.success('连接成功!');
}
} catch (error) {
console.error(error);
}
});
} else {
this.$message.info('需要连接的设备编码为空,请选择');
}
},
async cancel(row, index) {
this.$confirm('您确定将次设备断开, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
if (row.vrDeviceCode) {
row.vrDeviceCode = '';
this.tableData.splice(index, 1, row);
try {
const res = await putSimulationDisconnectById(this.group, row.id);
if (res && res.code == 200) {
this.$message.success('断开成功!');
}
} catch (error) {
console.error(error);
}
}
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.plc_box{
float: left;
margin-right: 40px;
padding: 9px;
}
.freshen_box{
float: right;
}
.flex_box{
float: left;
margin-right: 5px;
line-height: 30px;
}
/deep/ {
.el-dialog__wrapper{
width: 800px;
}
.dialog_box{
height: 100%;
}
.el-dialog__body{
padding-top: 6px;
height: calc(100% - 54px);
}
}
</style>

View File

@ -25,9 +25,8 @@ import ChatBox from './chatView/chatBox';
import TipScriptRecordNew from '@/views/scriptManage/display/tipScriptRecordNew';
import SetTime from './demon/setTime';
import { Notification } from 'element-ui';
import { ranAsPlan, exitRunPlan } from '@/api/simulation';
import { ranAsPlan, exitRunPlan, clearSimulation } from '@/api/simulation';
// import { timeFormat } from '@/utils/date';
import { EventBus } from '@/scripts/event-bus';
import { mapGetters } from 'vuex';
export default {
@ -52,19 +51,8 @@ export default {
data() {
return {
isDisable: false,
tryTime: 0, //
timeNow: 0, //
time: null, //
countTime: 0, //
remainingTime: 0,
isScriptCommand:false,
goodsId: this.$route.query.goodsId,
isScriptCommand:false
// isSaveStage: true,
training: {
id: '',
name: '',
remarks: ''
}
};
},
computed: {
@ -90,10 +78,6 @@ export default {
}
},
beforeDestroy() {
if (this.time) {
this.setTryTime();
clearTimeout(this.time);
}
},
mounted() {
// this.$store.state.training.prdType
@ -178,16 +162,9 @@ export default {
this.$messageBox(this.$t('display.demon.endSimulationFail'));
});
},
setTryTime() {
if (this.try) {
this.$emit('tryTime', { time: this.tryTime, goodsId: this.goodsId });
}
},
back() {
this.$store.dispatch('training/over').then(() => {
EventBus.$emit('runPlanStop');
this.$store.dispatch('map/resetActiveTrainList');
EventBus.$emit('chatSubscribeStop');
history.go(-1);
Notification.closeAll();
});

View File

@ -11,6 +11,7 @@
<menu-demon-joint
ref="demonMenu"
:group="group"
:offset-bottom="offsetBottom"
:data-error="dataError"
:user-role="userRole"
:is-admin="isAdmin"
@ -44,8 +45,8 @@
<join-run-plan-view ref="runPlanView" :group="group" />
<menu-system-time ref="menuSystemTime" :offset="offset" :group="group" :right="right" />
<menu-train-list v-if="prdType=='02'" @setCenter="setCenter" />
<js-question v-if="project==='jsxt'" :offset="offset" :question-list="questionList" />
<members-manage ref="membersManage" :is-admin="isAdmin" @addSimulationMember="addSimulationMember" />
<js-question v-if="project == 'jsxt'" :offset="offset" :question-list="questionList" />
<members-manage ref="membersManage" :is-admin="isAdmin" @addSimulationMember="addSimulationMember" /> <!-- 成员管理 -->
<add-member ref="addMember" />
<Jl3d-Device
v-if="deviceShow"
@ -112,6 +113,7 @@ export default {
checkLine: null,
timeDemonNum: 0,
offset: 10,
offsetBottom: 15,
mouseNum: 1,
ierval: null,
mouseNumTime: 0,
@ -319,20 +321,28 @@ export default {
setPosition() {
this.$nextTick(() => {
let offset = 10;
let offsetBottom = 15;
const menuBar = document.getElementById('menuBar');
const menuTool = document.getElementById('menuTool');
const menuBottom = document.getElementById('menuButton');
if (menuBar) {
offset += (menuBar.offsetHeight || 0);
}
if (menuTool) {
offset += (menuTool.offsetHeight || 0);
}
if (menuBottom) {
offsetBottom += (menuBottom.offsetHeight || 0);
}
if (this.$store.state.training.prdType === '07') {
offset = 10;
}
if (this.offset != offset) {
this.offset = offset;
}
if (this.offsetBottom != offsetBottom) {
this.offsetBottom = offsetBottom;
}
});
},
//

View File

@ -140,7 +140,7 @@ export default {
height: 520px;
&--list {
background: #fff;
height: 490px;
height: calc(100% - 39px);
border-bottom: 1px #ccc solid;
&::-webkit-scrollbar {
@ -149,4 +149,9 @@ export default {
}
}
}
/deep/ {
.member__container{
height: calc(100% - 40px);
}
}
</style>

View File

@ -1,18 +1,16 @@
<template>
<el-dialog
v-dialogDrag
<el-drawer
title="仿真成员管理"
:visible.sync="show"
width="75%"
:direction="direction"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
center
:wrapper-closable="false"
custom-class="drawer_box"
size="43%"
>
<div class="room">
<div class="room__container">
<div style="width: 70%;">
<div style="width: 70%;height: 100%;">
<div style="margin-left: 10px;margin-right: 10px;">
<el-input v-model="queryMember" placeholder="请输入搜索人员">
<el-button slot="append" icon="el-icon-search" />
@ -24,7 +22,7 @@
:data="treeData"
:props="defaultProps"
default-expand-all
style="margin: 10px;margin-bottom: 0;border: 1px solid #ccc;overflow-y: auto;height: 520px;"
style="margin: 10px;margin-bottom: 0;border: 1px solid #ccc;overflow-y: auto;height: calc(100% - 50px);"
:filter-node-method="filterNode"
@node-click="handleNodeClick"
>
@ -48,13 +46,13 @@
:room="room"
:members="simulationUserList"
:is-admin="isAdmin"
style="height:570px"
style="height: 100%"
@message="messageInfo"
/>
</div>
<div class="room__footer" />
</div>
</el-dialog>
</el-drawer>
</template>
<script>
@ -76,6 +74,7 @@ export default {
data() {
return {
show: false,
direction: 'ltr',
queryMember: '',
room: {
totalNum: 0,
@ -278,6 +277,9 @@ export default {
</script>
<style scoped lang="scss">
.drawer_box{
width: 800px;
}
.custom-tree-node {
flex: 1;
display: flex;
@ -289,13 +291,14 @@ export default {
}
.room {
width: 100%;
height: 600px;
display: flex;
flex-direction: column;
height: 100%;
// display: flex;
// flex-direction: column;
box-sizing: border-box;
background: #f0f0f0;
&__container {
height: 100%;
display: flex;
flex-grow: 1;
padding: 10px;
@ -329,6 +332,9 @@ export default {
.el-dialog__body {
padding: 6px 20px;
}
.el-drawer__body{
height: 100%;
}
}
</style>

View File

@ -1,8 +1,9 @@
<template>
<div>
<chat-box :group="group" :user-role="userRole" />
<div class="display-draft" :class="{'display-type-hb': $route.query.lineCode == '07' && $store.state.training.prdType=='01'}">
<div class="display-draft" :class="{'display-type-hb': $route.query.lineCode == '07' && $store.state.training.prdType=='01'}" :style="{bottom: offsetBottom + 'px'}">
<el-button-group>
<el-button v-if="isAdmin && adminMode" @click="handleEquipment">设备管理</el-button>
<el-button v-if="isAdmin && adminMode" @click="memberManage">成员管理</el-button>
<el-button v-if="isAdmin && adminMode" type="primary" @click="generateQrCode">生成二维码</el-button>
<el-button v-if="hasRealDevice && !dataError " type="primary" @click="setRelDevice">{{ $t('joinTraining.connectRealDevices') }}</el-button>
@ -24,12 +25,14 @@
<qr-code ref="qrCode" />
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
<real-device ref="realDevice" />
<equipment ref="equipment" />
</div>
</template>
<script>
import QrCode from '@/components/QrCode';
import ChatBox from './newChatView/chatBox';
import Equipment from '@/views/newMap/displayNew/demon/equipment';
import SetTime from '@/views/newMap/displayNew/demon/setTime';
import { ranAsPlan, exitRunPlan, clearSimulation } from '@/api/simulation';
import { exitFullscreen } from '@/utils/screen';
@ -47,7 +50,8 @@ export default {
ChatBox,
QrCode,
SetTime,
RealDevice
RealDevice,
Equipment
},
props: {
group: {
@ -85,6 +89,10 @@ export default {
default() {
return false;
}
},
offsetBottom: {
type: String || Number,
default: 15
}
},
data() {
@ -311,6 +319,9 @@ export default {
});
});
},
handleEquipment() {
this.$refs.equipment.doShow();
},
async back() {
this.isGoback = true;
if (this.isAdmin) {

View File

@ -7,11 +7,7 @@
<i class="el-icon-more" style="font-size: 20px;margin-top: 9px;transform-origin: 50% 50%;transform: rotate(90deg);" />
</div>
</div>
<div
v-show="drawer"
:show-close="false"
style="height: 100%;"
>
<div v-show="drawer" :show-close="false" style="height: 100%;">
<div v-if="lineCode=='10'||lineCode=='11'" class="menuTrainList">
<div class="bottomTrainListInfo">下行列车详细信息</div>
<el-table :data="bottomTrainList" height="45%" :highlight-current-row="true" @row-click="selectTrain">
@ -24,7 +20,6 @@
<div>{{ covert(scope.row.dt) }}</div>
</template>
</el-table-column>
<!-- <el-table-column property="right" label="是否上行" width="90" /> -->
</el-table>
<div class="topTrainListInfo">上行列车详细信息</div>
<el-table :data="topTrainList" height="45%" :highlight-current-row="true" style="border-radius:0px 0px 0px 5px;" @row-click="selectTrain">
@ -37,7 +32,6 @@
<div>{{ covert(scope.row.dt) }}</div>
</template>
</el-table-column>
<!-- <el-table-column property="right" label="是否上行" width="90" /> -->
</el-table>
</div>
<div v-else class="menuTrainList">
@ -45,7 +39,6 @@
<el-table-column property="groupNumber" label="车组号" width="130" />
<el-table-column property="tripNumber" label="车次号" width="130" />
<el-table-column property="serviceNumber" label="表号" width="130" />
<!-- <el-table-column property="right" label="是否上行" width="90" /> -->
</el-table>
</div>
</div>

View File

@ -12,6 +12,7 @@ import { getDeviceMenuByDeviceType, OperationEvent } from '@/scripts/ConstDic';
import deviceType from '@/jmap/constant/deviceType';
import JlmapVisual from '@/views/newMap/jlmapNew/index';
import TrainingTips from '@/views/newMap/mapsystemNew/plugin/trainingtip';
import { EventBus } from '@/scripts/event-bus';
export default {
name: 'LessonCanvas',
@ -108,6 +109,13 @@ export default {
this.$store.dispatch('menuOperation/setMenuChange', {device: device, subType: em.subType});
}
this.$store.dispatch('training/emitTipFresh');
if (this.$store.state.map.selectDevice && this.$store.state.map.selectDevice.flag) {
if (device._type.toUpperCase() == this.$store.state.map.selectDevice.type.toUpperCase()) {
EventBus.$emit('selectDevice', this.selected);
} else {
this.$message.info('选择的设备类型不对');
}
}
},
contextmenu(em) {

View File

@ -119,7 +119,7 @@ export default {
@import "src/styles/mixin.scss";
.mainContext {
font-family: "Helvetica Neue ", Helvetica, "PingFang SC ", "Hiragino Sans GB ", "Microsoft YaHei ", "PingFang SC ", Arial, consolas;
font-family: "Helvetica Neue ", Helvetica, "PingFang SC ", "Hiragino Sans GB ", "Microsoft YaHei ", "PingFang SC ", Arial, 'consolas';
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;

View File

@ -469,7 +469,11 @@ export default {
},
hover(field) {
this.field = field === this.field ? '' : field;
this.$emit('selectFiled', this.field);
if (this.field) {
this.$emit('deviceSelect', 'ControlDraft');
} else {
this.$emit('deviceSelect', '');
}
},
deleteOverlab(list, index) {
list.splice(index, 1);

View File

@ -267,7 +267,11 @@ export default {
},
hover(field) {
this.field = field === this.field ? '' : field;
this.$emit('saidLampHover', this.field);
if (this.field) {
this.$emit('deviceSelect', 'ControlLamp');
} else {
this.$emit('deviceSelect', '');
}
},
handleIndicatorLightList(indicatorLightList) {
this.atsControlList = [];

View File

@ -128,7 +128,11 @@ export default {
},
hover(field) {
this.field = field === this.field ? '' : field;
this.$emit('espCode', this.field);
if (this.field) {
this.$emit('deviceSelect', 'Esp');
} else {
this.$emit('deviceSelect', '');
}
},
deviceSelect(selected) {
if (selected && selected._type.toUpperCase() === 'Esp'.toUpperCase()) {
@ -140,7 +144,8 @@ export default {
this.addModel.standCode = selected.code;
this.activeName = 'second';
this.field = '';
this.$emit('espCode', '');
// this.$emit('espCode', '');
this.$emit('deviceSelect', '');
}
},
hasPSD(data) {

View File

@ -28,15 +28,7 @@
:selected="selected"
@updateMapModel="updateMapModel"
@setCenter="setCenter"
@fieldSelect="fieldSelect"
@fieldSelectSwitchSection="fieldSelectSwitchSection"
@stationSectionCode="stationEnabledTab"
@signalSectionCode="selectEnabledTab"
@standStationCode="standStationTab"
@selectFiled="selectFiled"
@psdCode="psdTab"
@espCode="esqTab"
@saidLampHover="saidLampTab"
@deviceSelect="deviceSelect"
/>
</el-tab-pane>
</el-tabs>
@ -74,9 +66,7 @@ import ControlLamp from './controlLamp';
import SplitStation from './splitStation';
import Arrow from './arrow';
import SplitScreen from './splitScreen';
import { EventBus } from '@/scripts/event-bus';
import { ViewMode } from '@/scripts/ConstDic';
export default {
name: 'MapOperate',
@ -144,21 +134,12 @@ export default {
{label:'站间分隔', name:'SplitStation', menus:SplitStation},
{label:'箭头', name:'Arrow', menus:Arrow}
],
feild: '',
singlaType: '',
stationType: '',
switchType: '',
stationStandType:'',
psdType: '',
controlType: '',
ViewMode: ViewMode,
selectDevice:'',
enabledTab: 'Section',
autoSaveTask: null,
show: {
mapEditShow: false,
mapPaintShow: true
},
oldDevice: null,
projectType: true
};
},
@ -203,55 +184,21 @@ export default {
handleSelectControlPage(device) {
const controlLampTypeList = ['AtsControl', 'CenterCommunication', 'ChainControl', 'IntersiteControl', 'LeuControl', 'LocalControl', 'Maintain', 'SwitchFault', 'PowerSupply', 'NoOneReturn', 'MaintenanceLamps', 'ZcCommunication', 'FaultStatusGroup', 'ModeStatusGroup', 'LampFilament', 'ReturnModeGroup', 'ControlSwitch', 'Axle'];
const type = device._type;
if (this.stationType) {
this.enabledTab = 'Station';
} else if (this.switchType) {
this.enabledTab = 'Switch';
} else if (this.singlaType) {
this.enabledTab = 'Signal';
} else if (this.stationStandType) {
this.enabledTab = 'StationStand';
} else if (this.psdType) {
this.enabledTab = 'Psd';
} else if (this.esqType) {
this.enabledTab = 'Esp';
} else if (this.feild) {
this.enabledTab = 'Section';
} else if (type == 'AutomaticRoute' || type == 'AutoTurnBack' || type == 'AxleReset' || type == 'LimitControl' || type == 'GuideLock' || type == 'StationTurnBack' || this.controlType) {
if (this.selectDevice) {
this.enabledTab = this.selectDevice;
} else if (type == 'AutomaticRoute' || type == 'AutoTurnBack' || type == 'AxleReset' || type == 'LimitControl' || type == 'GuideLock' || type == 'StationTurnBack') {
this.enabledTab = 'ControlDraft';
} else if (controlLampTypeList.includes(type) || this.saidLampType) {
} else if (controlLampTypeList.includes(type)) {
this.enabledTab = 'ControlLamp';
} else {
this.enabledTab = type;
}
},
selectFiled(type) {
this.controlType = type;
},
esqTab(type) {
this.esqType = type;
},
psdTab(type) {
this.psdType = type;
},
saidLampTab(type) {
this.saidLampType = type;
},
standStationTab(type) {
this.stationStandType = type;
},
stationEnabledTab(type) {
this.stationType = type;
},
selectEnabledTab(type) {
this.singlaType = type;
},
fieldSelect(type) {
this.feild = type;
},
fieldSelectSwitchSection(type) {
this.switchType = type;
deviceSelect(type) {
this.selectDevice = type;
},
handleSelectLogicalView(handle) {
this.$emit('handleSelectLogicalView', handle);
},

View File

@ -211,7 +211,11 @@ export default {
},
hover(field) {
this.field = field === this.field ? '' : field;
this.$emit('psdCode', this.field);
if (this.field) {
this.$emit('deviceSelect', 'Psd');
} else {
this.$emit('deviceSelect', '');
}
},
deviceSelect(selected) {
if (selected && selected._type.toUpperCase() === 'Psd'.toUpperCase()) {
@ -223,7 +227,7 @@ export default {
this.addModel.standCode = selected.code;
this.activeName = 'second';
this.field = '';
this.$emit('psdCode', '');
this.$emit('deviceSelect', '');
}
},
create() {

View File

@ -330,10 +330,10 @@ export default {
return this.editModel.type == '01' || this.editModel.type == '03';
},
leftAxlePositionShow() {
return (this.editModel.type == '01' || this.editModel.type == '03') && this.editModel.leftAxlePosition;
return this.hasAssociatedSection && this.editModel.leftAxlePosition;
},
rightAxlePositionShow() {
return (this.editModel.type == '01' || this.editModel.type == '03') && this.editModel.rightAxlePosition;
return this.hasAssociatedSection && this.editModel.rightAxlePosition;
},
isParentCode() {
return this.editModel.type == '02' || this.editModel.type == '03';
@ -342,7 +342,7 @@ export default {
return this.editModel.type == '01' && this.editModel.standTrack;
},
isreentryTrackName() {
return this.editModel.type != '02' && this.editModel.type != '03' && this.editModel.reentryTrack;
return !this.isParentCode && this.editModel.reentryTrack;
},
istransferTrackName() {
return this.editModel.type == '01' && this.editModel.transferTrack;
@ -351,10 +351,10 @@ export default {
return this.editModel.type == '01' && !this.editModel.reentryTrack;
},
isReentryTrackShow() {
return this.editModel.type != '02' && this.editModel.type != '03' && !this.editModel.transferTrack;
return !this.isParentCode && !this.editModel.transferTrack;
},
isdestinationCode() {
return this.editModel.type != '02' && this.editModel.type != '03' && (this.editModel.reentryTrack || this.editModel.transferTrack);
return !this.isParentCode && (this.editModel.reentryTrack || this.editModel.transferTrack);
},
isStopPointOffset() {
return this.editModel.type !== '04' && (this.editModel.reentryTrack || this.editModel.standTrack || this.editModel.transferTrack);
@ -436,27 +436,27 @@ export default {
this.$refs.splitOrMerge.addModel.code = selected.code;
this.activeName = 'three';
this.field = '';
this.$emit('fieldSelect', '');
this.$emit('deviceSelect', '');
} else if (this.field.toUpperCase() === 'leftSectionCode'.toUpperCase()) {
this.$refs.splitOrMerge.mergeModel.lsectioncode = selected.code;
this.activeName = 'three';
this.field = '';
this.$emit('fieldSelect', '');
this.$emit('deviceSelect', '');
} else if (this.field.toUpperCase() === 'rightSectionCode'.toUpperCase()) {
this.$refs.splitOrMerge.mergeModel.rsectioncode = selected.code;
this.activeName = 'three';
this.field = '';
this.$emit('fieldSelect', '');
this.$emit('deviceSelect', '');
} else if (this.field.toUpperCase() === 'getSectionStart'.toUpperCase()) {
this.$refs.create.createModel.leftSectionCode = selected.code;
this.activeName = 'second';
this.field = '';
this.$emit('fieldSelect', '');
this.$emit('deviceSelect', '');
} else if (this.field.toUpperCase() === 'getSectionEnd'.toUpperCase()) {
this.$refs.create.createModel.rightSectionCode = selected.code;
this.activeName = 'second';
this.field = '';
this.$emit('fieldSelect', '');
this.$emit('deviceSelect', '');
} else if (this.field.toUpperCase() === 'sectionTypeCode'.toUpperCase()) {
this.$refs.batchSettings.formModel.modelList.push(selected.code);
this.activeName = 'five';
@ -468,7 +468,11 @@ export default {
},
hover(field) {
this.field = field == this.field ? '' : field;
this.$emit('fieldSelect', this.field);
if (this.field) {
this.$emit('deviceSelect', 'Section');
} else {
this.$emit('deviceSelect', '');
}
},
addPoint(index) {
const data = { x: 0, y: 0 };

View File

@ -365,12 +365,16 @@ export default {
}
this.activeName = 'second';
this.field = '';
this.$emit('signalSectionCode', '');
this.$emit('deviceSelect', '');
}
},
signalSectionCode(field) {
this.field = field;
this.$emit('signalSectionCode', field);
if (this.field) {
this.$emit('deviceSelect', 'Signal');
} else {
this.$emit('deviceSelect', '');
}
},
updateMapModel(model) {
this.$emit('updateMapModel', model);

View File

@ -288,7 +288,11 @@ export default {
},
hover(field) {
this.field = field == this.field ? '' : field;
this.$emit('standStationCode', this.field);
if (this.field) {
this.$emit('deviceSelect', 'StationStand');
} else {
this.$emit('deviceSelect', '');
}
},
changeStation(station) {
this.editModel.deviceStationCode = this.getDeviceStationCode(station);

View File

@ -55,7 +55,11 @@ export default {
},
hover(field) {
this.field = field == this.field ? '' : field;
this.$emit('fieldSelectSwitchSection', this.field);
if (this.field) {
this.$emit('deviceSelect', 'Switch');
} else {
this.$emit('deviceSelect', '');
}
},
deviceSelect(selected) {
if (selected && selected._type.toUpperCase() === 'Switch'.toUpperCase() && this.field.toUpperCase() === 'relevanceSwitchList'.toUpperCase()) {