Merge branch 'test'

This commit is contained in:
zyy 2020-06-30 16:10:35 +08:00
commit 6337b5f8da
81 changed files with 2211 additions and 2294 deletions

View File

@ -70,7 +70,7 @@ export default {
}, },
subscribeMessage(res) { subscribeMessage(res) {
if (this.$refs.deomonTopic && !window.location.href.includes('trainroom')) { if (this.$refs.deomonTopic && !window.location.href.includes('trainroom')) {
if (getSessionStorage('project') != 'refereeJsxt' && getSessionStorage('project') != 'jsxt') { if (getSessionStorage('project') != 'refereeJsxt' && getSessionStorage('project') != 'jsxt' && !(getSessionStorage('project').includes('design'))) {
this.$refs.deomonTopic.doShow(res); this.$refs.deomonTopic.doShow(res);
} }
this.$store.dispatch('socket/setRoomInvite'); this.$store.dispatch('socket/setRoomInvite');

View File

@ -18,6 +18,15 @@ export function setFailureMode(data, group) {
}); });
} }
/** 设置自动故障(新版)*/
export function setFailureModeNew(data, group) {
return request({
url: `/simulation/${group}/faultMode`,
method: 'post',
data: data
});
}
/** /**
* 仿真系统按计划行车 * 仿真系统按计划行车
*/ */

View File

@ -54,6 +54,7 @@ export default {
signalDeblock: 'Signal unsealing', signalDeblock: 'Signal unsealing',
signalReopen: 'Signal reopen', signalReopen: 'Signal reopen',
guideRouteHandle: 'Guide Route handling', guideRouteHandle: 'Guide Route handling',
guide: 'Guide',
setInterlockAutoRoute: 'Set Interlock for Auto Routing', setInterlockAutoRoute: 'Set Interlock for Auto Routing',
cancelInterlockAutoRoute: 'Cancel Interlock setting for Auto Routing', cancelInterlockAutoRoute: 'Cancel Interlock setting for Auto Routing',
setInterlockAutoTrigger: 'Set Interlock for Auto Trigger', setInterlockAutoTrigger: 'Set Interlock for Auto Trigger',

View File

@ -54,6 +54,7 @@ export default {
signalDeblock: '信号解封', signalDeblock: '信号解封',
signalReopen: '信号重开', signalReopen: '信号重开',
guideRouteHandle: '引导进路办理', guideRouteHandle: '引导进路办理',
guide: '引导',
setInterlockAutoRoute: '设置联锁自动进路', setInterlockAutoRoute: '设置联锁自动进路',
cancelInterlockAutoRoute: '取消联锁自动进路', cancelInterlockAutoRoute: '取消联锁自动进路',
setInterlockAutoTrigger: '设置联锁自动触发', setInterlockAutoTrigger: '设置联锁自动触发',

View File

@ -207,53 +207,9 @@ function updateIscsListByDevice(state, name, device) {
} }
export function updateIscsData(state, device) { export function updateIscsData(state, device) {
// const state = store.state; let type = device._type;
switch (device._type) { if (type) {
case deviceType.Vidicon : updateIscsListByDevice(state, 'vidiconList', device); break; type = type.replace(type[0], type[0].toLowerCase()) + 'List';
case deviceType.VidiconCloud : updateIscsListByDevice(state, 'vidiconCloudList', device); break; updateIscsListByDevice(state, type, device);
case deviceType.ManualAlarmButton : updateIscsListByDevice(state, 'manualAlarmButtonList', device); break;
case deviceType.FireHydranAlarmButton: updateIscsListByDevice(state, 'fireHydranAlarmButtonList', device); break;
case deviceType.GasFireControl: updateIscsListByDevice(state, 'gasFireControlList', device); break;
case deviceType.SmokeDetector: updateIscsListByDevice(state, 'smokeDetectorList', device); break;
case deviceType.TemperatureDetector: updateIscsListByDevice(state, 'temperatureDetectorList', device); break;
case deviceType.PlatformScreenDoor: updateIscsListByDevice(state, 'platformScreenDoorList', device); break;
case deviceType.FrozenPump : updateIscsListByDevice(state, 'frozenPumpList', device); break;
case deviceType.Ventilator : updateIscsListByDevice(state, 'ventilatorList', device); break;
case deviceType.Chiller : updateIscsListByDevice(state, 'chillerList', device); break;
case deviceType.CoolTower : updateIscsListByDevice(state, 'coolTowerList', device); break;
case deviceType.EndDoor: updateIscsListByDevice(state, 'endDoorList', device); break;
case deviceType.BorderRadius: updateIscsListByDevice(state, 'borderRadiusList', device); break;
case deviceType.BrakeMachine: updateIscsListByDevice(state, 'brakeMachineList', device); break;
case deviceType.EntranceGuard: updateIscsListByDevice(state, 'entranceGuardList', device); break;
case deviceType.TicketMachine: updateIscsListByDevice(state, 'ticketMachineList', device); break;
case deviceType.SemiAutomaticTicketMachine: updateIscsListByDevice(state, 'semiAutomaticTicketMachineList', device); break;
case deviceType.AirConditioner: updateIscsListByDevice(state, 'airConditionerList', device); break;
case deviceType.OrbitalVentilator: updateIscsListByDevice(state, 'orbitalVentilatorList', device); break;
case deviceType.JetFan: updateIscsListByDevice(state, 'jetFanList', device); break;
case deviceType.TunnelFan: updateIscsListByDevice(state, 'tunnelFanList', device); break;
case deviceType.FireDamper: updateIscsListByDevice(state, 'fireDamperList', device); break;
case deviceType.SmookExhaustFd: updateIscsListByDevice(state, 'smookExhaustFdList', device); break;
case deviceType.SmookProofFd: updateIscsListByDevice(state, 'smookProofFdList', device); break;
case deviceType.VolumeControlDamper: updateIscsListByDevice(state, 'volumeControlDamperList', device); break;
case deviceType.IscsRect: updateIscsListByDevice(state, 'iscsRectList', device); break;
case deviceType.IscsText: updateIscsListByDevice(state, 'iscsTextList', device); break;
case deviceType.IscsLine: updateIscsListByDevice(state, 'iscsLineList', device); break;
case deviceType.Escalator: updateIscsListByDevice(state, 'escalatorList', device); break;
case deviceType.StairControl: updateIscsListByDevice(state, 'stairControlList', device); break;
case deviceType.FasBrakeMachine: updateIscsListByDevice(state, 'fasBrakeMachineList', device); break;
case deviceType.Staircase: updateIscsListByDevice(state, 'staircaseList', device); break;
case deviceType.SingleStaircase: updateIscsListByDevice(state, 'singleStaircaseList', device); break;
case deviceType.ArcStatus: updateIscsListByDevice(state, 'arcStatusList', device); break;
case deviceType.IscsButton: updateIscsListByDevice(state, 'iscsButtonList', device); break;
case deviceType.StateTable: updateIscsListByDevice(state, 'stateTableList', device); break;
case deviceType.LightingGroup: updateIscsListByDevice(state, 'lightingGroupList', device); break;
case deviceType.BalancedElectric: updateIscsListByDevice(state, 'balancedElectricList', device); break;
case deviceType.ElectricButterflyValve: updateIscsListByDevice(state, 'electricButterflyValveList', device); break;
case deviceType.Cistern: updateIscsListByDevice(state, 'cisternList', device); break;
case deviceType.Electrically: updateIscsListByDevice(state, 'electricallyList', device); break;
case deviceType.Stairs: updateIscsListByDevice(state, 'stairsList', device); break;
case deviceType.Elevator: updateIscsListByDevice(state, 'elevatorList', device); break;
case deviceType.Draught: updateIscsListByDevice(state, 'draughtList', device); break;
case deviceType.IscsImage: updateIscsListByDevice(state, 'iscsImageList', device); break;
} }
} }

View File

@ -301,6 +301,7 @@ class SkinCode extends defaultStyle {
block: true, // 联合图形封锁状态 block: true, // 联合图形封锁状态
flashingColors: '#D600D5', // 联合图形封锁闪烁显示颜色 flashingColors: '#D600D5', // 联合图形封锁闪烁显示颜色
fork: true, // 挤岔专用(如有挤岔操作 变为true fork: true, // 挤岔专用(如有挤岔操作 变为true
faultStatus: true, // 宁波失表状态用 挤岔表示
forKColor: 'red' // 挤岔颜色 配合挤岔专用 forKColor: 'red' // 挤岔颜色 配合挤岔专用
}, },
arcBlcok: { // 圆形封锁图形 arcBlcok: { // 圆形封锁图形

View File

@ -217,12 +217,13 @@ class Jlmap {
const code = elem.code; const code = elem.code;
const type = elem._type; const type = elem._type;
const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig); const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig);
// const oDevice = deviceFactory(type, elem, this.showConfig);
const nDevice = deepAssign(oDevice || {}, elem); const nDevice = deepAssign(oDevice || {}, elem);
this.$painter.delete(oDevice); this.$painter.delete(oDevice);
delete this.mapDevice[code]; delete this.mapDevice[code];
if (!elem._dispose) { if (!elem._dispose) {
this.mapDevice[code] = nDevice; this.mapDevice[code] = nDevice;
this.$painter.add(nDevice); this.$painter.add(nDevice); // 重新赋值instance
} }
}); });

View File

@ -347,6 +347,9 @@ export default class Switch extends Group {
} }
setSwitchFault(split) { setSwitchFault(split) {
if (this.style.Switch.jointImg.faultStatus && split) {
this.setForkAction(); // 道岔挤岔 宁波线失表状态
} else {
if (this.model.switchFaultCode && split) { if (this.model.switchFaultCode && split) {
const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode); const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode);
switchFault.instance.setControlColor('#F00', true); switchFault.instance.setControlColor('#F00', true);
@ -355,6 +358,7 @@ export default class Switch extends Group {
switchFault.instance.setControlColor(this.style.backgroundColor, false); switchFault.instance.setControlColor(this.style.backgroundColor, false);
} }
} }
}
/** 挤叉*/ /** 挤叉*/
setForkAction() { setForkAction() {
this.rhomboid.hide(); // 平行四边形 this.rhomboid.hide(); // 平行四边形

View File

@ -110,6 +110,8 @@ import ManageUser from './menuDialog/manageUser';
import HelpAbout from './menuDialog/helpAbout'; import HelpAbout from './menuDialog/helpAbout';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { EventBus } from '@/scripts/event-bus'; import { EventBus } from '@/scripts/event-bus';
import { State2SimulationMap } from '@/scripts/cmdPlugin/Config';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
export default { export default {
name: 'MenuBar', name: 'MenuBar',
@ -141,7 +143,7 @@ export default {
valid: true, valid: true,
menu: [], menu: [],
menuNormal: { menuNormal: {
local: [ Local: [
{ {
title: '系统', title: '系统',
operate: OperationEvent.Command.mBar.system, operate: OperationEvent.Command.mBar.system,
@ -386,7 +388,7 @@ export default {
] ]
} }
], ],
central: [ Center: [
{ {
title: '系统', title: '系统',
operate: OperationEvent.Command.mBar.system, operate: OperationEvent.Command.mBar.system,
@ -699,8 +701,10 @@ export default {
return list; return list;
}, },
initMenu(menu) { initMenu(menu) {
if (this.menu[2]) { const type = State2SimulationMap[this.$store.state.training.prdType];
this.menu[2].children = this.initStationList(); this.menu = MenuContextHandler.menuBarConvert(this.menuNormal[type], this.$store.state.training.operatemode);
if (this.menu[3]) {
this.menu[3].children = this.initStationList();
} }
this.clickEvent(); this.clickEvent();
this.closeMenu(true); this.closeMenu(true);

View File

@ -1,5 +1,5 @@
<template> <template>
<div v-if="isShowBtn" menuButtonclass="menu menuButton" style="height: 45px;" :style="{left: point.x+'px', bottom: point.y+'px' }"> <div v-if="isShowBtn" id="menuButtons_box" class="menu menuButton" style="height:45px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<button <button
:id="Signal.arrangementRoute.button.domId" :id="Signal.arrangementRoute.button.domId"
:style="{display: 'block', float: 'left', width: width+'px', backgroundColor:buttonUpColor}" :style="{display: 'block', float: 'left', width: width+'px', backgroundColor:buttonUpColor}"

View File

@ -44,7 +44,6 @@ export default {
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
title() { title() {
if (this.dialogShow) {
if (this.operation === OperationEvent.Section.setSpeed.order.operation) { if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
return '区段设置限速'; return '区段设置限速';
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) { } else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
@ -54,13 +53,12 @@ export default {
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) { } else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
return '道岔取消限速'; return '道岔取消限速';
} }
} return '';
}, },
domIdCancel() { domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : ''; return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
}, },
domIdConfirm() { domIdConfirm() {
if (this.dialogShow) {
if (this.operation === OperationEvent.Section.setSpeed.order.operation) { if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
/** 区段设置限速*/ /** 区段设置限速*/
return OperationEvent.Section.setSpeed.confirm.domId; return OperationEvent.Section.setSpeed.confirm.domId;
@ -74,7 +72,7 @@ export default {
/** 道岔取消限速*/ /** 道岔取消限速*/
return OperationEvent.Switch.cancelSpeed.confirm.domId; return OperationEvent.Switch.cancelSpeed.confirm.domId;
} }
} return '';
} }
}, },
mounted() { mounted() {
@ -128,7 +126,7 @@ export default {
this.$emit('setOperate', { step: 1, success: true }); this.$emit('setOperate', { step: 1, success: true });
this.doClose(); this.doClose();
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.$emit('setOperate', { step: 0, success: false }); this.$emit('setOperate', { step: 0, success: false });
this.doClose(); this.doClose();
@ -147,7 +145,7 @@ export default {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose(); this.doClose();
} }
}).catch(error => { }).catch(() => {
this.doClose(); this.doClose();
}); });
} }

View File

@ -26,8 +26,6 @@
</template> </template>
<script> <script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'ConfirmTip', name: 'ConfirmTip',
data() { data() {
@ -42,10 +40,8 @@ export default {
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
title() { title() {
if (this.dialogShow) {
return '提示'; return '提示';
} }
}
}, },
mounted() { mounted() {

View File

@ -78,7 +78,7 @@
<script> <script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
// import OperationHandler from '@/scripts/cmdPlugin/OperationHandler'; import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'PasswordBox', name: 'PasswordBox',
@ -87,7 +87,7 @@ export default {
/* 写死的初始密码*/ /* 写死的初始密码*/
correctPassword: '123', correctPassword: '123',
dialogShow: false, dialogShow: false,
operation: null, operation: '',
checkHasInput: false, checkHasInput: false,
/* 输入值*/ /* 输入值*/
passwordCheck: '', passwordCheck: '',
@ -109,7 +109,7 @@ export default {
} }
}, },
domIdConfirm() { domIdConfirm() {
return this.dialogShow ? OperationEvent.Command.close.password.domId : ''; return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
} }
}, },
mounted() { mounted() {
@ -120,6 +120,7 @@ export default {
methods: { methods: {
doShow(operate) { doShow(operate) {
this.operate = operate || {}; this.operate = operate || {};
this.operation = operate.operation;
this.dialogShow = true; this.dialogShow = true;
this.checkHasInput = false; this.checkHasInput = false;
this.$nextTick(function () { this.$nextTick(function () {

View File

@ -63,7 +63,10 @@
</el-table> </el-table>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="5" :offset="19"> <el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button> <el-button :id="domIdCancel" @click="cancel"> </el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -164,6 +167,24 @@ export default {
this.dialogShow = false; this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}, },
commit() {
const operate = {
send: true,
operation: OperationEvent.Signal.detail.menu.operation
};
this.loading = true;
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
this.doClose();
}
}).catch(() => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow(operate);
});
},
cancel() { cancel() {
const operate = { const operate = {
operation: OperationEvent.Command.cancel.menu.operation operation: OperationEvent.Command.cancel.menu.operation

View File

@ -101,6 +101,7 @@ export default {
tableStyle: { tableStyle: {
'border-bottom': 'none' 'border-bottom': 'none'
}, },
commitDisabled:true,
controlTypeNameMap: { controlTypeNameMap: {
'01': '折返', '01': '折返',
'02': '直通' '02': '直通'
@ -119,18 +120,11 @@ export default {
return this.dialogShow ? OperationEvent.Signal.guide.choose.domId : ''; return this.dialogShow ? OperationEvent.Signal.guide.choose.domId : '';
}, },
domIdConfirm() { domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.guide.menu.domId : ''; return this.dialogShow ? OperationEvent.Signal.guide.confirm.domId : '';
}, },
title() { title() {
return '办理引导进路'; return '办理引导进路';
}, },
commitDisabled() {
let disabled = true;
if (this.row) {
disabled = !this.row.canSetting;
}
return disabled;
},
...mapGetters('map', [ ...mapGetters('map', [
'signalList', 'signalList',
'mapConfig' 'mapConfig'
@ -177,6 +171,7 @@ export default {
}, },
doShow(operate, selected, tempData) { doShow(operate, selected, tempData) {
this.selected = selected; this.selected = selected;
this.commitDisabled = true;
// //
if (!this.dialogShow) { if (!this.dialogShow) {
this.signalName = ''; this.signalName = '';
@ -204,11 +199,12 @@ export default {
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}, },
clickEvent(row, event, column) { clickEvent(row, event, column) {
this.computedCommitDisabled(row); this.commitDisabled = false;
this.row = row; this.row = row;
if (row) { if (row) {
const operate = { const operate = {
operation: OperationEvent.Signal.guide.choose.operation operation: OperationEvent.Signal.guide.choose.operation,
val: row.code
}; };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) { if (valid) {
@ -219,12 +215,11 @@ export default {
}, },
// //
commit() { commit() {
if (this.row && this.row.canSetting) { if (this.row && this.row.code) {
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.Signal.guide.confirm.operation, operation: OperationEvent.Signal.guide.confirm.operation,
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE, cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
val: this.row.code,
param: { param: {
routeCode: this.row.code routeCode: this.row.code
} }
@ -234,7 +229,6 @@ export default {
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.loading = false; this.loading = false;
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose(); this.doClose();
} else { } else {
this.doClose(); this.doClose();
@ -259,9 +253,6 @@ export default {
}).catch(() => { }).catch(() => {
this.doClose(); this.doClose();
}); });
},
computedCommitDisabled(row) {
this.commitDisabled = !row.canSetting;
} }
} }
}; };

View File

@ -193,7 +193,7 @@ export default {
clickEvent(row, event, column) { clickEvent(row, event, column) {
this.highlight = false; this.highlight = false;
if (row && !row.disabled) { if (row && row.code) {
this.highlight = true; this.highlight = true;
this.selection = [row]; this.selection = [row];
this.commitDisabled = false; this.commitDisabled = false;
@ -201,7 +201,8 @@ export default {
this.row = row; this.row = row;
// //
const operate = { const operate = {
operation: '' operation: '',
val: row.code
}; };
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) { if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
/** 进路交人工控*/ /** 进路交人工控*/
@ -231,9 +232,8 @@ export default {
humanControl() { humanControl() {
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.Signal.humanControl.menu.operation, operation: this.operation,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING,
val: this.row.code,
param: { param: {
routeCodeList: [this.row.code] routeCodeList: [this.row.code]
} }
@ -255,9 +255,8 @@ export default {
atsAutoControl() { atsAutoControl() {
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.Signal.atsAutoControl.menu.operation, operation: this.operation,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING,
val: this.row.code,
param: { param: {
routeCodeList: [this.row.code] routeCodeList: [this.row.code]
} }

View File

@ -248,7 +248,8 @@ export default {
// //
const operate = { const operate = {
operation: OperationEvent.Signal.arrangementRoute.choose.operation operation: OperationEvent.Signal.arrangementRoute.choose.operation,
val: row.code
}; };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -262,7 +263,6 @@ export default {
if (this.row && this.row.canSetting) { if (this.row && this.row.canSetting) {
const operate = { const operate = {
operation: OperationEvent.Signal.arrangementRoute.menu.operation, operation: OperationEvent.Signal.arrangementRoute.menu.operation,
val: this.row.code,
param: { param: {
routeCode: this.row.code routeCode: this.row.code
} }
@ -272,7 +272,7 @@ export default {
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.loading = false; this.loading = false;
if (valid) { if (valid) {
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_ROUTE; this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.passwordBox.doShow(operate); this.$refs.passwordBox.doShow(operate);
this.doClose(); this.doClose();
} }
@ -287,9 +287,7 @@ export default {
const operate = { const operate = {
over: true, over: true,
operation: data.operation, operation: data.operation,
cmdType: data.cmdType, cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
val: data.val,
param: data.param
}; };
this.loading = true; this.loading = true;

View File

@ -95,17 +95,7 @@
指定列车跳停</el-radio> 指定列车跳停</el-radio>
<div style="float: left;"> <div style="float: left;">
<span>车组号</span> <span>车组号</span>
<el-input
v-if="radio1 != 2"
:id="domIdJumpStop"
v-model="tripNumber"
style="width: 120px; margin-left: 20px;"
size="small"
:disabled="radio == '01'"
@blur="handleTrainNoBlur"
/>
<el-select <el-select
v-if="radio1 == 2"
:id="domIdCancelJumpStop" :id="domIdCancelJumpStop"
v-model="tripNumber" v-model="tripNumber"
style="width: 120px; margin-left: 20px;" style="width: 120px; margin-left: 20px;"
@ -170,10 +160,9 @@
style="display: block; text-align: left; margin-left: 0; float: left;" style="display: block; text-align: left; margin-left: 0; float: left;"
> >
人工</el-radio> 人工</el-radio>
<div style="float: left; margin-left: 20px;"> <div v-if="radio2 == 2" style="float: left; margin-left: 20px;">
<span v-if="radio2 == 2">运行等级</span> <span>运行等级</span>
<el-select <el-select
v-if="radio2 == 2"
:id="domIdRunLevel" :id="domIdRunLevel"
v-model="trainRunlevel" v-model="trainRunlevel"
style="width: 120px; margin-left: 20px;" style="width: 120px; margin-left: 20px;"
@ -189,6 +178,17 @@
/> />
</el-select> </el-select>
</div> </div>
<div v-if="radio2 == 1" style="float: left; margin-left: 20px;">
<span>停站时间</span>
<el-input
:id="domIdStopTime"
v-model="trainStopTime"
style="width: 120px; margin-left: 20px;"
size="small"
:disabled="radio == '01'"
@blur="handleTrainStopTime"
/>
</div>
</el-col> </el-col>
</el-radio-group> </el-radio-group>
</el-row> </el-row>
@ -264,6 +264,7 @@ export default {
tripNumber: '', tripNumber: '',
effective: '01', effective: '01',
trainRunlevel: 2, trainRunlevel: 2,
trainStopTime: 0,
disabledTime: true disabledTime: true
}; };
}, },
@ -290,9 +291,9 @@ export default {
return this.dialogShow ? OperationEvent.StationStand.cancelJumpStop.select.domId : ''; return this.dialogShow ? OperationEvent.StationStand.cancelJumpStop.select.domId : '';
} }
}, },
domIdJumpStop() { // domIdJumpStop() {
return this.dialogShow ? OperationEvent.StationStand.setJumpStop.choose.domId : ''; // return this.dialogShow ? OperationEvent.StationStand.setJumpStop.choose.domId : '';
}, // },
domIdCancelJumpStop() { domIdCancelJumpStop() {
return this.dialogShow ? OperationEvent.StationStand.cancelJumpStop.choose.domId : ''; return this.dialogShow ? OperationEvent.StationStand.cancelJumpStop.choose.domId : '';
}, },
@ -319,7 +320,7 @@ export default {
title() { title() {
if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) { if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) {
return '扣车'; return '扣车';
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation) { } else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation || this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
return '取消扣车'; return '取消扣车';
} else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) { } else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
return '设置跳停'; return '设置跳停';
@ -335,13 +336,13 @@ export default {
}, },
watch: { watch: {
operation(data) { operation(data) {
if (data != OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
this.JumpStop = false; this.JumpStop = false;
this.RunLevel = false; this.RunLevel = false;
this.DetainTrain = false; this.DetainTrain = false;
this.radio = '01'; this.radio = '01';
this.radio1 = '1'; this.radio1 = '1';
this.radio2 = '1'; this.radio2 = '1';
this.effective = '01';
if (data == OperationEvent.StationStand.setDetainTrain.menu.operation) { if (data == OperationEvent.StationStand.setDetainTrain.menu.operation) {
this.radio1 = '1'; this.radio1 = '1';
this.radio = '01'; this.radio = '01';
@ -364,6 +365,7 @@ export default {
this.radio2 = '2'; this.radio2 = '2';
} }
} }
}
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
@ -390,9 +392,8 @@ export default {
} }
if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation || this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) { if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation || this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
this.radio = selected.direction; this.radio = selected.direction;
} else if (this.operation == OperationEvent.StationStand.setStopTime.menu.operation) {
this.effective = '01';
} }
this.effective = '02';
this.radio = '01'; this.radio = '01';
this.disabledTime = true; this.disabledTime = true;
this.trainList = this.map.trainList; // this.trainList = this.map.trainList; //
@ -407,79 +408,53 @@ export default {
this.dialogShow = false; this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
this.operation = ''; this.operation = '';
this.trainStopTime = 0;
}, },
choose(upDown) { choose(upDown) { // code
// code const operate = {
operation: OperationEvent.StationStand.cancelDetainTrain.choose.operation,
val: this.radio
};
if (this.radio == '02' || this.radio == '03') {
this.operation = OperationEvent.StationStand.cancelDetainTrainAll.menu.operation;
} else {
this.operation = OperationEvent.StationStand.cancelDetainTrain.menu.operation;
}
this.handleBreak(operate);
},
trainNoSelectChange(upDown) { //
const operate = { const operate = {
operation: OperationEvent.StationStand.cancelDetainTrain.choose.operation operation: OperationEvent.StationStand.cancelDetainTrain.choose.operation
}; };
this.handleBreak(operate);
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
handleTrainNoBlur() { //
const operate = {
operation: OperationEvent.StationStand.cancelDetainTrain.choose.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
trainNoSelectChange(upDown) { //
const operate = {
operation: OperationEvent.StationStand.cancelDetainTrain.choose.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
}, },
chooseJumpStop(upDown) { chooseJumpStop(upDown) {
const operate = { const operate = {
operation: '' operation: ''
}; };
if (this.radio == '02') {
this.tripNumber = '';
}
if (this.radio1 == '1') { // if (this.radio1 == '1') { //
operate.operation = OperationEvent.StationStand.setJumpStop.select.operation; operate.operation = OperationEvent.StationStand.setJumpStop.select.operation;
} else { // } else { //
operate.operation = OperationEvent.StationStand.cancelJumpStop.select.operation; operate.operation = OperationEvent.StationStand.cancelJumpStop.select.operation;
} }
this.handleBreak(operate);
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
}, },
chooseEffective(effective) { chooseEffective(effective) {
const operate = { const operate = {
operation: '' operation: '',
val: effective
}; };
if (this.radio2 == '1') { // if (this.radio2 == '1') { //
operate.operation = OperationEvent.StationStand.setStopTime.choose2.operation; operate.operation = OperationEvent.StationStand.setStopTime.choose2.operation;
} else { // } else { //
operate.operation = OperationEvent.StationStand.setRunLevel.choose2.operation; operate.operation = OperationEvent.StationStand.setRunLevel.choose2.operation;
} }
this.handleBreak(operate);
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
}, },
chooseStopTime(upDown) { chooseStopTime(upDown) {
const operate = { const operate = {
operation: '' operation: '',
val: this.radio
}; };
if (this.radio2 == '1') { // if (this.radio2 == '1') { //
operate.operation = OperationEvent.StationStand.setStopTime.choose1.operation; operate.operation = OperationEvent.StationStand.setStopTime.choose1.operation;
@ -489,25 +464,12 @@ export default {
if (this.radio === '01') { if (this.radio === '01') {
this.disabledTime = true; this.disabledTime = true;
this.trainRunlevel = 2; this.trainRunlevel = 2;
this.effective = '02';
} else { } else {
this.disabledTime = false; this.disabledTime = false;
this.effective = '01';
} }
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.handleBreak(operate);
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
stopTimeBlur() {
const operate = {
operation: OperationEvent.StationStand.setStopTime.input.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
}, },
trainNoSelectLevel(upDown) { trainNoSelectLevel(upDown) {
const operate = { const operate = {
@ -517,17 +479,24 @@ export default {
standRunLevel: `${upDown}` standRunLevel: `${upDown}`
} }
}; };
this.handleBreak(operate);
},
handleTrainStopTime() {
const operate = {
operation: OperationEvent.StationStand.setStopTime.input.operation,
val: `${this.trainStopTime}`
};
this.handleBreak(operate);
},
handleBreak(operate) { //
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) { valid && this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
}); });
}, },
commit() { commit() {
if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) { if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) {
this.setDetainTrain(); /** 设置扣车*/ this.setDetainTrain(); /** 设置扣车*/
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation) { } else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation || this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
this.cancelDetainTrain(); /** 取消扣车*/ this.cancelDetainTrain(); /** 取消扣车*/
} else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) { } else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
this.setJumpStop(); /** 设置跳停*/ this.setJumpStop(); /** 设置跳停*/
@ -554,30 +523,22 @@ export default {
if (!valid) { if (!valid) {
this.$refs.noticeInfo.doShow(operate); this.$refs.noticeInfo.doShow(operate);
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow(operate, [error.message]); this.$refs.noticeInfo.doShow();
}); });
}, },
// //
cancelDetainTrain() { cancelDetainTrain() {
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.StationStand.cancelDetainTrain.menu.operation, operation: this.operation,
cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN,
val: `${this.radio}`,
param: { param: {
standAllLine: `${this.radio}` standAllLine: `${this.radio}`
} }
}; };
if (this.radio == '02') {
operate.operation = OperationEvent.StationStand.cancelDetainTrainAll.menu.operation;
operate['val'] = '02';
} else if (this.radio == '03') {
operate.operation = OperationEvent.StationStand.cancelDetainTrainAll.menu.operation;
operate['val'] = '01';
}
this.loading = true; this.loading = true;
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -586,10 +547,10 @@ export default {
if (!valid) { if (!valid) {
this.$refs.noticeInfo.doShow(operate); this.$refs.noticeInfo.doShow(operate);
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow(operate, [error.message]); this.$refs.noticeInfo.doShow();
}); });
}, },
// //
@ -609,10 +570,10 @@ export default {
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow(operate, [error.message]); this.$refs.noticeInfo.doShow();
}); });
}, },
// //
@ -632,22 +593,21 @@ export default {
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow(operate, [error.message]); this.$refs.noticeInfo.doShow();
}); });
}, },
// //
setStopTime() { setStopTime() {
const forver = this.effective == '01';
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.StationStand.setStopTime.menu.operation, operation: OperationEvent.StationStand.setStopTime.menu.operation,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME, cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME,
param: { param: {
parkingTime: this.radio == '01' ? -1 : 1, parkingTime: this.radio == '01' ? -1 : this.trainStopTime,
parkingAlwaysValid: forver parkingAlwaysValid: `${this.effective != '01'}`
} }
}; };
@ -657,30 +617,21 @@ export default {
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow(operate, [error.message]); this.$refs.noticeInfo.doShow();
}); });
}, },
// //
setRunLevel() { setRunLevel() {
const forver = this.effective == '01';
// let val = this.radio;
// if (this.radio == '02') {
// val = `${this.radio}::${this.trainRunlevel}::${forver}`;
// } else {
// val = `${this.radio}::01::${forver}`;
// }
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.StationStand.setRunLevel.menu.operation, operation: OperationEvent.StationStand.setRunLevel.menu.operation,
cmdType: CMD.Stand.CMD_STAND_SET_RUN_TIME, cmdType: CMD.Stand.CMD_STAND_SET_RUN_TIME,
param: { param: {
// standStopControl: `${this.radio}`,
runLevelTime: this.radio === '02' ? this.trainRunlevel : 2, runLevelTime: this.radio === '02' ? this.trainRunlevel : 2,
runLevelTimeForever: forver runLevelTimeForever: `${this.effective != '01'}`
} }
}; };
@ -690,10 +641,10 @@ export default {
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow(operate, [error.message]); this.$refs.noticeInfo.doShow();
}); });
}, },
cancel() { cancel() {
@ -713,8 +664,13 @@ export default {
} }
}; };
</script> </script>
<style> <style lang="scss" scoped>
.stand-detain-train .context { .stand-detain-train .context {
height: 80px !important; height: 80px !important;
} }
/deep/ {
.el-input--mini .el-input__icon{
line-height: 100%;
}
}
</style> </style>

View File

@ -727,7 +727,7 @@ export default {
initMenu(menu) { initMenu(menu) {
this.menu = MenuContextHandler.menuBarConvert(this.menuNormal[State2SimulationMap[this.$store.state.training.prdType]], this.$store.state.training.operatemode); this.menu = MenuContextHandler.menuBarConvert(this.menuNormal[State2SimulationMap[this.$store.state.training.prdType]], this.$store.state.training.operatemode);
if (this.menu.length) { if (this.menu.length) {
this.menu[2].children = this.initStationList(); this.menu[3].children = this.initStationList();
this.clickEvent(); this.clickEvent();
this.closeMenu(true); this.closeMenu(true);
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<div v-if="isShowBtn" class="menu" style="height: 45px;" :style="{left: point.x+'px', top: point.y+'px' }"> <div v-if="isShowBtn" id="menuButtons_box" class="menu" style="height: 45px;" :style="{left: point.x+'px', top: point.y+'px' }">
<button :id="Signal.arrangementRoute.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal'])"> <button :id="Signal.arrangementRoute.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal'])">
<span style="color: black"> <span style="color: black">
<center><b></b><b></b></center> <center><b></b><b></b></center>
@ -73,7 +73,7 @@
<center><b></b></center> <center><b></b></center>
</span> </span>
</button> </button>
<button :id="MixinCommand.functionButton.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(MixinCommand.functionButton.button.operation, ['StationStand', 'AutoTurnBack', 'AutomaticRoute'])"> <button :id="MixinCommand.functionButton.button.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(MixinCommand.functionButton.button.operation, ['StationStand', 'AutoTurnBack', 'AutomaticRoute', 'Station'])">
<span style="color: black"> <span style="color: black">
<center> <center>
<b style="color:#4B4B99"></b> <b style="color:#4B4B99"></b>
@ -275,7 +275,6 @@ export default {
this.deviceList = []; this.deviceList = [];
if (operation != this.Command.cancel.clearMbm.operation) { if (operation != this.Command.cancel.clearMbm.operation) {
const operate = { const operate = {
type: 'mbm',
operation: operation operation: operation
}; };
const operationList = [this.Signal.humanTrainRoute.button.operation, this.Section.fault.button.operation, this.Switch.unlock.button.operation, this.MixinCommand.unblock.button.operation, this.Station.guideLock.button.operation]; const operationList = [this.Signal.humanTrainRoute.button.operation, this.Section.fault.button.operation, this.Switch.unlock.button.operation, this.MixinCommand.unblock.button.operation, this.Station.guideLock.button.operation];
@ -374,6 +373,21 @@ export default {
const route = this.routeData[model.automaticRouteCode]; const route = this.routeData[model.automaticRouteCode];
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO; operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO;
operate.param = {signalCode: route.startSignalCode}; operate.param = {signalCode: route.startSignalCode};
} else if (model._type === 'Station') {
switch (subType) {
case 'substation':
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL;
operate.param = {stationCodes: [model.code]};
break;
case 'center':
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
operate.param = {stationCodes: [model.code]};
break;
case 'emergency':
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL;
operate.param = {stationCodes: [model.code]};
break;
}
} }
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {}).catch((error) => { this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {}).catch((error) => {
this.deviceList = []; this.deviceList = [];
@ -576,12 +590,17 @@ export default {
const model = this.$store.state.menuOperation.selected; // const model = this.$store.state.menuOperation.selected; //
const subType = this.$store.state.menuOperation.subType; // const subType = this.$store.state.menuOperation.subType; //
const switchOperation = [this.Switch.lock.button.operation, this.Switch.unlock.button.operation, this.Switch.locate.button.operation, this.Switch.reverse.button.operation]; const switchOperation = [this.Switch.lock.button.operation, this.Switch.unlock.button.operation, this.Switch.locate.button.operation, this.Switch.reverse.button.operation];
if (buttonOperation && buttonOperation === this.MixinCommand.functionButton.button.operation) {
this.handelFunctionButton(model, subType);
} else {
const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
if (station) {
if (station.controlMode == 'Local' || station.controlMode == 'Emergency') {
if (buttonOperation && this.commandTypeList.includes(model._type)) { if (buttonOperation && this.commandTypeList.includes(model._type)) {
this.deviceList.push(model); this.deviceList.push(model);
if (buttonOperation === this.Signal.arrangementRoute.button.operation) { if (buttonOperation === this.Signal.arrangementRoute.button.operation) {
this.arrangementRouteOperation(this.deviceList); this.arrangementRouteOperation(this.deviceList);
} else if (buttonOperation === this.MixinCommand.functionButton.button.operation) {
this.handelFunctionButton(model, subType);
} else if (buttonOperation === this.MixinCommand.totalCancel.button.operation) { } else if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
this.handelTotalCancel(model, subType); this.handelTotalCancel(model, subType);
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) { } else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) {
@ -604,6 +623,15 @@ export default {
Handler.clear(); // Handler.clear(); //
this.$store.dispatch('menuOperation/setButtonOperation', null); this.$store.dispatch('menuOperation/setButtonOperation', null);
} }
} else {
Handler.clear(); //
this.$store.dispatch('menuOperation/setButtonOperation', null);
}
} else {
Handler.clear(); //
this.$store.dispatch('menuOperation/setButtonOperation', null);
}
}
} }
} }
}; };

View File

@ -2,12 +2,12 @@
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" />
<route-selection ref="routeSelection" /> <route-selection ref="routeSelection" />
<route-control ref="routeControl" :pop-class="'chengdou-03__systerm'" /> <route-control ref="routeControl" pop-class="chengdou-03__systerm" />
<route-detail ref="routeDetail" /> <route-detail ref="routeDetail" />
<route-guide ref="routeGuide" /> <route-guide ref="routeGuide" />
<route-hand-control ref="routeHandControl" /> <route-hand-control ref="routeHandControl" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" /> <notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
<password-box ref="passwordBox" pop-class="'chengdou-03__systerm'" @checkOver="passWordCommit" /> <password-box ref="passwordBox" pop-class="chengdou-03__systerm" @checkOver="passWordCommit" />
<set-fault ref="setFault" pop-class="chengdou-03__systerm" /> <set-fault ref="setFault" pop-class="chengdou-03__systerm" />
</div> </div>
</template> </template>
@ -55,41 +55,41 @@ export default {
menu: [], menu: [],
menuNormal: { menuNormal: {
Local: [ Local: [
{ // {
label: '办理进路', // label: '',
handler: this.arrangementRoute, // handler: this.arrangementRoute,
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE // cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
}, // },
{ // {
label: '办理引导进路', // label: '',
handler: this.guide, // handler: this.guide,
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE // cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
}, // },
{ // {
label: '取消进路', // label: '',
handler: this.cancelTrainRoute, // handler: this.cancelTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE // cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
}, // },
{ // {
label: '总人解', // // label: '', //
handler: this.humanTrainRoute, // handler: this.humanTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE // cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
}, // },
{ // {
label: '进路收人工控', // label: '',
handler: this.humanControl, // handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING // cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
}, // },
{ // {
label: '进路交自动控', // label: '',
handler: this.atsAutoControl, // handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING // cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
}, // },
{ // {
label: '进路信息', // label: '',
handler: this.detail, // handler: this.detail,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING // cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
} // }
], ],
Center: [ Center: [
{ {
@ -277,7 +277,6 @@ export default {
start: true, start: true,
code: `${this.selected.code}`, code: `${this.selected.code}`,
operation: OperationEvent.Signal.guide.menu.operation, operation: OperationEvent.Signal.guide.menu.operation,
operateNext: OperationEvent.Signal.guide.confirm.operation,
param: { param: {
signalCode: `${this.selected.code}` signalCode: `${this.selected.code}`
} }
@ -291,7 +290,7 @@ export default {
routes.push(elem); routes.push(elem);
} }
}); });
this.$refs.passwordBox.doShow({step: step, selected: this.selected, routesList: routes}); this.$refs.passwordBox.doShow({...step, ...{selected: this.selected}, ...{routesList: routes}});
} }
}); });
}, },
@ -325,7 +324,7 @@ export default {
this.$store.dispatch('training/nextNew', step).then(({ valid }) => { this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.$refs.passwordBox.doShow({step: step, selected: this.selected}); this.$refs.passwordBox.doShow({...step, ...{selected: this.selected}});
} }
}); });
}, },
@ -452,12 +451,21 @@ export default {
}); });
}, },
passWordCommit(data) { passWordCommit(data) {
if (data.step.operation === OperationEvent.Signal.guide.menu.operation) { const step = {
this.$refs.routeGuide.doShow(data.step.operation, data.selected, data.routesList); operation: data.operation
} else if (data.step.operation === OperationEvent.Signal.humanTrainRoute.menu.operation) { };
this.$refs.routeControl.doShow(data.step, data.selected); this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (data.operation === OperationEvent.Signal.guide.menu.operation) {
this.$refs.routeGuide.doShow(data, data.selected, data.routesList);
} else if (data.operation === OperationEvent.Signal.humanTrainRoute.menu.operation) {
this.$refs.routeControl.doShow(data, data.selected);
} }
} }
});
}
} }
}; };
</script> </script>

View File

@ -172,6 +172,7 @@ export default {
lock() { lock() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.lock.menu.operation, operation: OperationEvent.Switch.lock.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -188,6 +189,7 @@ export default {
unlock() { unlock() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.unlock.menu.operation, operation: OperationEvent.Switch.unlock.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -204,6 +206,7 @@ export default {
block() { block() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.block.menu.operation, operation: OperationEvent.Switch.block.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -220,6 +223,7 @@ export default {
unblock() { unblock() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.unblock.menu.operation, operation: OperationEvent.Switch.unblock.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -236,6 +240,7 @@ export default {
fault() { fault() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.fault.menu.operation, operation: OperationEvent.Switch.fault.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -252,6 +257,7 @@ export default {
active() { active() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.active.menu.operation, operation: OperationEvent.Switch.active.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -268,6 +274,7 @@ export default {
locate() { locate() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.locate.menu.operation, operation: OperationEvent.Switch.locate.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code
@ -284,6 +291,7 @@ export default {
reverse() { reverse() {
const operate = { const operate = {
start: true, start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Switch.reverse.menu.operation, operation: OperationEvent.Switch.reverse.menu.operation,
param: { param: {
switchCode: this.selected.code switchCode: this.selected.code

View File

@ -1,40 +1,48 @@
<template> <template>
<el-dialog class="chengdou-03__systerm alarm-detail" :title="level+'级告警详细信息'" :visible.sync="show" width="760px" <el-dialog
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag> v-dialogDrag
class="chengdou-03__systerm alarm-detail"
:title="level+'级告警详细信息'"
:visible.sync="show"
width="760px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<el-form label-width="80px" size="mini"> <el-form label-width="80px" size="mini">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="线路名称"> <el-form-item label="线路名称">
<el-input v-model="model.lineName" disabled></el-input> <el-input v-model="model.lineName" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="单位名称"> <el-form-item label="单位名称">
<el-input v-model="model.unitName" disabled></el-input> <el-input v-model="model.unitName" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="模块名称"> <el-form-item label="模块名称">
<el-input v-model="model.moduleName" disabled></el-input> <el-input v-model="model.moduleName" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="9"> <el-col :span="9">
<el-form-item label="报警时间"> <el-form-item label="报警时间">
<el-date-picker v-model="model.alarmDate" type="datetime" placeholder="选择日期时间" disabled> <el-date-picker v-model="model.alarmDate" type="datetime" placeholder="选择日期时间" disabled />
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item> <el-form-item>
<span slot="label">&emsp;</span> <span slot="label">&emsp;</span>
<el-input v-model="model.level" disabled></el-input> <el-input v-model="model.level" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="确认状态"> <el-form-item label="确认状态">
<el-input v-model="model.confirm" disabled></el-input> <el-input v-model="model.confirm" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -42,25 +50,24 @@
<el-col :span="9" class="alarm-type"> <el-col :span="9" class="alarm-type">
<el-form-item> <el-form-item>
<span slot="label">&emsp;&emsp;</span> <span slot="label">&emsp;&emsp;</span>
<el-input v-model="model.type" disabled></el-input> <el-input v-model="model.type" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="15" class="alarm-child-type"> <el-col :span="15" class="alarm-child-type">
<el-form-item label="子类型"> <el-form-item label="子类型">
<el-input v-model="model.childType" disabled></el-input> <el-input v-model="model.childType" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="时间摘要"> <el-form-item label="时间摘要">
<el-input v-model="model.timeSummary" disabled></el-input> <el-input v-model="model.timeSummary" disabled />
</el-form-item> </el-form-item>
<el-form-item label="推荐操作"> <el-form-item label="推荐操作">
<el-input v-model="model.recommendedOperation" disabled></el-input> <el-input v-model="model.recommendedOperation" disabled />
</el-form-item> </el-form-item>
<div class="alarm-detail-description"> <div class="alarm-detail-description">
<span> 报警详细描述</span><br> <span> 报警详细描述</span><br>
<el-input type="textarea" :rows="5" placeholder="请输入内容" v-model="model.alarmDetail" disabled> <el-input v-model="model.alarmDetail" type="textarea" :rows="5" placeholder="请输入内容" disabled />
</el-input>
</div> </div>
</el-form> </el-form>
<el-row class="button-group"> <el-row class="button-group">
@ -68,18 +75,17 @@
<el-button :id="domIdCancel" type="primary" :loading="loading" @click="commit"> </el-button> <el-button :id="domIdCancel" type="primary" :loading="loading" @click="commit"> </el-button>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<span style="line-height:26px">未确认{{level}}级报警数目1</span> <span style="line-height:26px">未确认{{ level }}级报警数目1</span>
</el-col> </el-col>
</el-row> </el-row>
</span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'AlarmDetail', name: 'AlarmDetail',
data() { data() {
return { return {
@ -104,40 +110,42 @@
recommendedOperation: '', recommendedOperation: '',
alarmDetail: '' alarmDetail: ''
} }
} };
}, },
computed: { computed: {
...mapGetters('map', [ ...mapGetters('map', [
'name', 'name'
]), ]),
show() { show() {
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
domIdCancel() { domIdCancel() {
return this.dialogShow ? OperationEvent.Command.close.alarm.domId : ''; return this.dialogShow ? OperationEvent.Command.close.alarm.domId : '';
}, }
}, },
watch: { watch: {
'$store.state.socket.msgHead': function (elem) { // '$store.state.socket.msgHead': function (elem) {
if (elem && elem.hasOwnProperty('success')) { // if (elem && elem.hasOwnProperty('success')) {
if (elem.success) { // if (elem.success) {
let operate = this.$store.state.training.operate; // const operate = this.$store.state.training.operate;
let control = this.$store.getters['map/getDeviceByCode'](elem.stationControlCode); // console.log(elem);
let station = this.$store.getters['map/getDeviceByCode'](control.stationCode); // elem.stationCodes.forEach(stationCode => {
let newOperate = { // const station = this.$store.getters['map/getDeviceByCode'](elem.stationCodes);
type: operate.type, // const newOperate = {
name: station.name, // type: operate.type,
} // name: station.name
// };
this.doShow(newOperate); // this.doShow(newOperate);
} // });
} // }
}, // }
// }
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.$store.dispatch('training/tipReload'); this.$store.dispatch('training/tipReload');
}) });
}, },
methods: { methods: {
doShow(operate) { doShow(operate) {
@ -154,7 +162,7 @@
timeSummary: '控制模式摘要', timeSummary: '控制模式摘要',
recommendedOperation: '', recommendedOperation: '',
alarmDetail: `控制模式转换:${this.operate.name}由中控转为站控模式!` alarmDetail: `控制模式转换:${this.operate.name}由中控转为站控模式!`
} };
this.dialogShow = true; this.dialogShow = true;
this.$nextTick(function () { this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
@ -168,41 +176,40 @@
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}, },
cancel() { cancel() {
let operate = { const operate = {
type: this.operate.type, type: this.operate.type,
operation: OperationEvent.Command.close.alarm.operation, operation: OperationEvent.Command.close.alarm.operation
} };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}) });
}, },
commit() { commit() {
let operate = { const operate = {
type: this.operate.type, type: this.operate.type,
operation: OperationEvent.Command.close.alarm.operation, operation: OperationEvent.Command.close.alarm.operation
} };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}) });
}, },
isClose() { isClose() {
return this.dialogShow; return this.dialogShow;
} }
} }
} };
</script> </script>
<style rel="stylesheet/scss" lang="scss" scoped> <style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss"; @import "src/styles/mixin.scss";
.alarm-type .el-input { .alarm-type .el-input {
width: 220px; width: 220px;
} }

View File

@ -64,6 +64,7 @@
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
// import OperationHandler from '@/scripts/cmdPlugin/OperationHandler'; // import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default { export default {
name: 'RequestControl', name: 'RequestControl',
@ -77,26 +78,19 @@ export default {
disabledRefuse: false, disabledRefuse: false,
requestInfo: '调度员1工作站', requestInfo: '调度员1工作站',
controlProps: { controlProps: {
'01': '中控', 'Center': '中控',
'02': '站控' 'Local': '站控',
'Emergency': '紧急站控'
}, },
selection: [], selection: [],
tableData: [], tableData: [],
timer: null, timer: null,
timeout: 61, timeout: 61,
count: 0 count: 0,
targetStatus: ''
}; };
}, },
computed: { computed: {
targetStatus() {
if (this.$store.state.training.prdType == '01') {
return '01';
}
if (this.$store.state.training.prdType == '02') {
return '02';
}
return '';
},
show() { show() {
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
@ -118,12 +112,10 @@ export default {
deep: true deep: true
}, },
'$store.state.socket.msgHead': function (elem) { '$store.state.socket.msgHead': function (elem) {
if (elem && !elem.hasOwnProperty('success') && !elem.hasOwnProperty('timeout')) { if (elem && elem.hasOwnProperty('success')) {
if (elem.stationControlCode) {
this.doShow(elem); this.doShow(elem);
} }
} }
}
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
@ -164,9 +156,15 @@ export default {
this.disabledAgree = this.selection.length <= 0; this.disabledAgree = this.selection.length <= 0;
} }
}, },
updateTableData(code) { updateTableData(data) {
this.tableData = []; this.tableData = [];
this.targetStatus = 'Center';
if (data.operateType == 'CM_Reply_Station_Control') {
this.targetStatus = 'Local';
} else if (data.operateType == 'CM_Emergency_Station_Control') {
this.targetStatus = 'Emergency';
}
data.stationCodes.forEach(code => {
const model = { const model = {
code: code, code: code,
operate: '', operate: '',
@ -176,41 +174,27 @@ export default {
disabled: false disabled: false
}; };
const device = this.$store.getters['map/getDeviceByCode'](code); const station = this.$store.getters['map/getDeviceByCode'](code);
if (device) { if (station) {
const control = (device || {}).state; const control = (station || {}).controlMode;
if (control) { if (control) {
model.control = { status: control.status, name: this.controlProps[control.status] }; model.control = { status: control, name: this.controlProps[control] };
model.target = { status: this.targetStatus, name: this.controlProps[this.targetStatus] }; model.target = { status: this.targetStatus, name: this.controlProps[this.targetStatus] };
} }
const station = this.$store.getters['map/getDeviceByCode'](device.stationCode);
if (station) { if (station) {
model.operate = station.name || ''; model.operate = station.name || '';
} }
} }
this.tableData.push(model); this.tableData.push(model);
});
}, },
doShow(msgHead) { doShow(data) {
this.dialogShow = true; this.dialogShow = true;
this.disabledAgree = true; this.disabledAgree = true;
this.createTimer(); this.createTimer();
this.updateTableData(msgHead.stationControlCode); this.updateTableData(data);
const operate = {
start: true,
operation: OperationEvent.StationControl.controlResponse.menu.operation
};
this.$store.dispatch('training/emitTipFresh');
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
}, },
doClose() { doClose() {
this.disabledAgree = false; this.disabledAgree = false;
@ -253,12 +237,9 @@ export default {
}, },
agree() { agree() {
const operate = { const operate = {
send: true,
over: true, over: true,
operation: OperationEvent.StationControl.controlResponse.agree.operation, operation: OperationEvent.StationControl.controlResponse.agree.operation,
val: this.selection[0].code, cmdType: CMD.ControlConvertMenu.CMD_CM_REPLY_STATION_CONTROL
prdType: this.$store.state.training.prdType
}; };
this.clearTimer(); this.clearTimer();
@ -274,12 +255,7 @@ export default {
}, },
refuse() { refuse() {
const operate = { const operate = {
send: true, operation: OperationEvent.StationControl.controlResponse.refuse.operation
over: true,
operation: OperationEvent.StationControl.controlResponse.refuse.operation,
val: this.tableData[0].code,
prdType: this.$store.state.training.prdType
}; };
this.clearTimer(); this.clearTimer();

View File

@ -1,7 +1,16 @@
<template> <template>
<el-dialog class="chengdou-03__systerm cmd-notice" title="操作命令提示" :visible.sync="show" width="400px" :before-close="doClose" <el-dialog
:zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag> v-dialogDrag
<span>{{name}}{{msg}}!</span> class="chengdou-03__systerm cmd-notice"
title="操作命令提示"
:visible.sync="show"
width="400px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<span>{{ name }}{{ msg }}!</span>
<el-row class="button-group"> <el-row class="button-group">
<el-button :id="domIdCancel" type="primary" :loading="loading" @click="commit">确认</el-button> <el-button :id="domIdCancel" type="primary" :loading="loading" @click="commit">确认</el-button>
</el-row> </el-row>
@ -9,8 +18,8 @@
</template> </template>
<script> <script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'CmdNotice', name: 'CmdNotice',
data() { data() {
return { return {
@ -19,7 +28,7 @@
operate: null, operate: null,
name: '', name: '',
msg: '' msg: ''
} };
}, },
computed: { computed: {
show() { show() {
@ -27,33 +36,33 @@
}, },
domIdCancel() { domIdCancel() {
return this.dialogShow ? OperationEvent.Command.close.notice.domId : ''; return this.dialogShow ? OperationEvent.Command.close.notice.domId : '';
}, }
}, },
watch: { watch: {
'$store.state.socket.msgHead': function (elem) { // '$store.state.socket.msgHead': function (elem) {
if (elem && (elem.hasOwnProperty('success') || elem.hasOwnProperty('timeout'))) { // if (elem && (elem.hasOwnProperty('success') || elem.hasOwnProperty('timeout'))) {
let operate = this.$store.state.training.operate; // let operate = this.$store.state.training.operate;
let control = this.$store.getters['map/getDeviceByCode'](elem.stationControlCode); // let control = this.$store.getters['map/getDeviceByCode'](elem.stationControlCode);
let station = this.$store.getters['map/getDeviceByCode'](control.stationCode); // let station = this.$store.getters['map/getDeviceByCode'](control.stationCode);
let newOperate = { // let newOperate = {
type: operate.type, // type: operate.type,
name: station.name, // name: station.name,
} // }
if (elem.timeout) { // if (elem.timeout) {
newOperate['msg'] = '请求超时'; // newOperate['msg'] = '';
this.doShow(newOperate); // this.doShow(newOperate);
} else if (!elem.success) { // } else if (!elem.success) {
newOperate['msg'] = '请求拒绝'; // newOperate['msg'] = '';
this.doShow(newOperate); // this.doShow(newOperate);
} // }
} // }
}, // },
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.$store.dispatch('training/tipReload'); this.$store.dispatch('training/tipReload');
}) });
}, },
methods: { methods: {
doShow(operate) { doShow(operate) {
@ -73,34 +82,33 @@
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}, },
cancel() { cancel() {
let operate = { const operate = {
operation: this.operate.type, operation: OperationEvent.Command.close.notice.operation
operation: OperationEvent.Command.close.notice.operation, };
}
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}) });
}, },
commit() { commit() {
let operate = { const operate = {
type: this.operate.type, type: this.operate.type,
operation: OperationEvent.Command.close.notice.operation, operation: OperationEvent.Command.close.notice.operation
} };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}) });
}, },
isClose() { isClose() {
return this.dialogShow; return this.dialogShow;
} }
} }
} };
</script> </script>

View File

@ -1,90 +1,88 @@
// SECTION 区段
// SWITCH 道岔
// SIGNAL 信号机
// START_SIGNAL 进路起始信号机
// END_SIGNAL 进路终端信号机
// STATION 车站
// STAND 站台
// ROUTE 进路
// CYCLE 自动折返
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default { export default {
list: [ list: [
// 信号机列表 // 信号机列表
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0201', operateType: CMD.Signal.CMD_SIGNAL_SET_ROUTE.value,
skinCode: '04', skinCode: '04',
trainingName: '办理进路({3} 进路)', trainingName: '办理进路({3} 进路)',
trainingRemark: '办理进路功能', trainingRemark: '办理进路功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '301', tip: '鼠标右键菜单选择【办理进路】' }, { deviceType: '04', orderNum: 1, operateCode: '301', tip: '鼠标右键菜单选择【办理进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '3011', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, { deviceType: '04', orderNum: 2, operateCode: '3011', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' },
{ deviceType: '04', orderNum: 3, operateCode: '301', tip: '鼠标左键点击【确定】按钮' } { deviceType: '04', orderNum: 3, operateCode: '301', tip: '鼠标左键点击【执行】按钮' },
{ deviceType: '04', orderNum: 4, operateCode: '301', tip: '输入密码123点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0201', operateType: CMD.Signal.CMD_SIGNAL_SET_ROUTE.value,
skinCode: '04', skinCode: '04',
trainingName: '办理进路({3} 进路)', trainingName: '办理进路({3} 进路)',
trainingRemark: '办理进路功能', trainingRemark: '办理进路功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' }, { deviceType: '04', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】' }, { deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'START_SIGNAL' },
{ deviceType: '04', orderNum: 3, operateCode: '3010', tip: '鼠标左键点击【{5}】', val: '{4}' } { deviceType: '04', orderNum: 3, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'END_SIGNAL' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0216', operateType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE.value,
skinCode: '04', skinCode: '04',
trainingName: '办理引导进路({3})', trainingName: '办理引导进路({3})',
trainingRemark: '进路办理信号引导', trainingRemark: '进路办理信号引导',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【办理引导进路】' }, { deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【办理引导进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '3086', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, // 进路编号值不正确 { deviceType: '04', orderNum: 2, operateCode: '308', tip: '输入密码123点击【确定】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '308', tip: '鼠标左键点击【确认】按钮' } { deviceType: '04', orderNum: 3, operateCode: '3086', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' },
{ deviceType: '04', orderNum: 4, operateCode: '3082', tip: '鼠标左键点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0216', operateType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE.value,
skinCode: '04', skinCode: '04',
trainingName: '引导进路({3})[进路未锁闭]', trainingName: '引导进路({3})[进路未锁闭]',
trainingRemark: '进路办理信号引导', trainingRemark: '进路办理信号引导',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3080', tip: '鼠标左键点击【引导进路】' }, { deviceType: '04', orderNum: 1, operateCode: '3080', tip: '鼠标左键点击【引导进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '3080', tip: '鼠标左键点击【{5}】'}, // 进路编号值不正确 { deviceType: '04', orderNum: 2, operateCode: '3080', tip: '鼠标左键点击【{5}】', codeType:'START_SIGNAL'}, // 进路编号值不正确
{ deviceType: '04', orderNum: 3, operateCode: '0011', tip: '输入密码123点击【确定】按钮' }, { deviceType: '04', orderNum: 3, operateCode: '3080', tip: '输入密码123点击【确定】按钮' },
{ deviceType: '04', orderNum: 4, operateCode: '3080', tip: '鼠标左键点击【{5}】', val: '{4}' } { deviceType: '04', orderNum: 4, operateCode: '3080', tip: '鼠标左键点击【{5}】', codeType:'END_SIGNAL' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '待定', operateType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE.value,
skinCode: '04',
trainingName: '引导进路({3})[进路锁闭]',
trainingRemark: '进路办理信号引导',
trainingType: '02',
productTypes: ['01'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3080', tip: '鼠标左键点击【引导进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '3080', tip: '鼠标左键点击【{5}】', val: '{4}' }, // 进路编号值不正确
{ deviceType: '04', orderNum: 3, operateCode: '0011', tip: '输入密码123点击【确定】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: '0202',
skinCode: '04', skinCode: '04',
trainingName: '取消进路({3} 进路)', trainingName: '取消进路({3} 进路)',
trainingRemark: '取消进路功能', trainingRemark: '取消进路功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '303', tip: '鼠标右键菜单选择【取消进路】' }, { deviceType: '04', orderNum: 1, operateCode: '303', tip: '鼠标右键菜单选择【取消进路】' },
@ -94,26 +92,26 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0202', operateType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE.value,
skinCode: '04', skinCode: '04',
trainingName: '总取消({3} 进路)', trainingName: '总取消({3} 进路)',
trainingRemark: '总取消功能', trainingRemark: '总取消功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3030', tip: '鼠标左键点击【总取消】' }, { deviceType: '04', orderNum: 1, operateCode: '3030', tip: '鼠标左键点击【总取消】' },
{ deviceType: '04', orderNum: 2, operateCode: '3051', tip: '输入密码123点击【确定】按钮' }, { deviceType: '04', orderNum: 2, operateCode: '3030', tip: '输入密码123点击【确定】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '3030', tip: '鼠标左键点击【{5}】按钮', val: '{6}' } { deviceType: '04', orderNum: 3, operateCode: '3030', tip: '鼠标左键点击【{5}】按钮', codeType:'SIGNAL' }
] ]
}, },
{ { // 不生成实训
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0215', // 新增数据字典code operateType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value,
skinCode: '04', skinCode: '04',
trainingName: '总人解({3})', trainingName: '总人解({3})',
trainingRemark: '总人解', trainingRemark: '总人解',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '305', tip: '鼠标右键菜单选择【总人解】' }, { deviceType: '04', orderNum: 1, operateCode: '305', tip: '鼠标右键菜单选择【总人解】' },
@ -121,14 +119,14 @@ export default {
{ deviceType: '04', orderNum: 3, operateCode: '3051', tip: '输入密码123456点击【确定】按钮' } { deviceType: '04', orderNum: 3, operateCode: '3051', tip: '输入密码123456点击【确定】按钮' }
] ]
}, },
{ { // 不生成实训
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0215', // 新增数据字典code operateType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value,
skinCode: '04', skinCode: '04',
trainingName: '总人解({3})', trainingName: '总人解({3})',
trainingRemark: '总人解', trainingRemark: '总人解',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3050', tip: '鼠标左键点击【总人解】' }, { deviceType: '04', orderNum: 1, operateCode: '3050', tip: '鼠标左键点击【总人解】' },
@ -139,98 +137,98 @@ export default {
{ {
maxDuration: 8, maxDuration: 8,
minDuration: 5, minDuration: 5,
operateType: '0206', operateType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL.value,
skinCode: '04', skinCode: '04',
trainingName: '信号重开({3} 进路)', trainingName: '信号重开({3} 进路)',
trainingRemark: '信号重开功能', trainingRemark: '信号重开功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '304', tip: '鼠标右键菜单选择【信号重开】', val: '{6}' }, { deviceType: '04', orderNum: 1, operateCode: '304', tip: '鼠标右键菜单选择【信号重开】' },
{ deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' } { deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 8, maxDuration: 8,
minDuration: 5, minDuration: 5,
operateType: '0206', operateType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL.value,
skinCode: '04', skinCode: '04',
trainingName: '信号重开({3} 进路)', trainingName: '信号重开({3} 进路)',
trainingRemark: '信号重开功能', trainingRemark: '信号重开功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' }, { deviceType: '04', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【{5}】', val: '{6}' } { deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0203', operateType: CMD.Signal.CMD_SIGNAL_BLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '信号封锁({5})', trainingName: '信号封锁({5})',
trainingRemark: '信号封', trainingRemark: '信号封',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '306', tip: '鼠标右键菜单选择【信号封】' }, { deviceType: '04', orderNum: 1, operateCode: '306', tip: '鼠标右键菜单选择【信号封】' },
{ deviceType: '04', orderNum: 2, operateCode: '306', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '04', orderNum: 2, operateCode: '306', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '3061', tip: '输入密码123点击【确定】按钮' } { deviceType: '04', orderNum: 3, operateCode: '306', tip: '输入密码123点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0203', operateType: CMD.Signal.CMD_SIGNAL_BLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '信号封锁({5})', trainingName: '信号封锁({5})',
trainingRemark: '信号封锁功能', trainingRemark: '信号封锁功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键菜单选择【封锁】' }, { deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键菜单选择【封锁】' },
{ deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键点击【{5}】', val: '{6}' } { deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0204', operateType: CMD.Signal.CMD_SIGNAL_UNBLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '信号解封({5})', trainingName: '信号解封({5})',
trainingRemark: '信号解封', trainingRemark: '信号解封',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '307', tip: '鼠标右键菜单选择【信号解封】' }, { deviceType: '04', orderNum: 1, operateCode: '307', tip: '鼠标右键菜单选择【信号解封】' },
{ deviceType: '04', orderNum: 2, operateCode: '307', tip: '鼠标左键点击【确认】按钮' }, { deviceType: '04', orderNum: 2, operateCode: '307', tip: '鼠标左键点击【确认】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '3072', tip: '输入密码123点击【确认】按钮' } { deviceType: '04', orderNum: 3, operateCode: '307', tip: '输入密码123点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0204', operateType: CMD.Signal.CMD_SIGNAL_UNBLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '信号解封({5})', trainingName: '信号解封({5})',
trainingRemark: '信号解封功能', trainingRemark: '信号解封功能',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '2992', tip: '鼠标左键菜单选择【解封】' }, { deviceType: '04', orderNum: 1, operateCode: '2992', tip: '鼠标左键菜单选择【解封】' },
{ deviceType: '04', orderNum: 2, operateCode: '0011', tip: '输入密码123点击【确认】按钮' }, { deviceType: '04', orderNum: 2, operateCode: '2992', tip: '输入密码123点击【确认】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{5}】', val: '{6}' } { deviceType: '04', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0209', operateType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING.value,
skinCode: '04', skinCode: '04',
trainingName: '进路收人工控({5})', trainingName: '进路收人工控({5})',
trainingRemark: '进路收人工控', trainingRemark: '进路收人工控',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【进路收人工控】' }, { deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【进路收人工控】' },
@ -241,25 +239,25 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0209', operateType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING.value,
skinCode: '04', skinCode: '04',
trainingName: '人工控({5})', trainingName: '人工控({5})',
trainingRemark: '人工控', trainingRemark: '人工控',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '3140', tip: '鼠标左键点击【人工控】' }, { deviceType: '04', orderNum: 1, operateCode: '3140', tip: '鼠标左键点击【人工控】' },
{ deviceType: '04', orderNum: 2, operateCode: '3140', tip: '鼠标左键点击【{3}】', val: '{6}' } { deviceType: '04', orderNum: 2, operateCode: '3140', tip: '鼠标左键点击【{3}】', codeType:'SIGNAL' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0208', operateType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING.value,
skinCode: '04', skinCode: '04',
trainingName: '进路交自动控({5})', trainingName: '进路交自动控({5})',
trainingRemark: '进路交自动控', trainingRemark: '进路交自动控',
trainingType: '02', trainingType: 'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【进路交自动控】' }, { deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【进路交自动控】' },
@ -270,259 +268,258 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0208', operateType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING.value,
skinCode: '04', skinCode: '04',
trainingName: '自动控({5})', trainingName: '自动控({5})',
trainingRemark: '自动控', trainingRemark: '自动控',
trainingType: '02', trainingType: 'Signal',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: 'mbm', orderNum: 1, operateCode: '3150', tip: '鼠标左键点击【自动控】' }, { deviceType: '04', orderNum: 1, operateCode: '3150', tip: '鼠标左键点击【自动控】' },
{ deviceType: '04', orderNum: 2, operateCode: '3150', tip: '鼠标左键点击【{3}】', val: '{6}' } { deviceType: '04', orderNum: 2, operateCode: '3150', tip: '鼠标左键点击【{3}】', codeType:'SIGNAL' }
] ]
}, },
{ { // 未生成实训
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0210', operateType:CMD.Signal.CMD_SIGNAL_DETAIL.value,
skinCode: '04', skinCode: '04',
trainingName: '查询进路信息({5})', trainingName: '查询进路信息({5} 信号机)',
trainingRemark: '查询进路信息', trainingRemark: '查询进路信息',
trainingType: '02', trainingType:'Signal',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【进路信息】' }, { deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【进路信息】' },
{ deviceType: '04', orderNum: 2, operateCode: '000', tip: '鼠标左键点击【关闭】按钮' } { deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
// 道岔列表 // 道岔列表
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0312', // 0312 新增定位字典 operateType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION.value, // 0312 新增定位字典
skinCode: '04', skinCode: '04',
trainingName: '单操到定位({7})', trainingName: '单操到定位({7})',
trainingRemark: '单操到定位({15})', trainingRemark: '单操到定位({15})',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '101', tip: '鼠标右键菜单选择【单操到定位】' }, { deviceType: '02', orderNum: 1, operateCode: '101', tip: '鼠标右键菜单选择【单操到定位】' },
{ deviceType: '02', orderNum: 2, operateCode: '101', tip: '鼠标左键点击【确定】按钮', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '101', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0312', operateType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION.value,
skinCode: '04', skinCode: '04',
trainingName: '单操到定位({7})', trainingName: '单操到定位({7})',
trainingRemark: '单操到定位({7})', trainingRemark: '单操到定位({7})',
trainingType: '03', trainingType: 'Switch',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '1010', tip: '鼠标左键菜单选择【道岔定操】' }, { deviceType: '02', orderNum: 1, operateCode: '1010', tip: '鼠标左键菜单选择【道岔定操】' },
{ deviceType: '02', orderNum: 2, operateCode: '1010', tip: '鼠标左键点击【{7}】', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '1010', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0313', // 0313 新增定位字典 operateType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION.value, // 0313 新增定位字典
skinCode: '04', skinCode: '04',
trainingName: '单操到反位({7})', trainingName: '单操到反位({7})',
trainingRemark: '单操到反位({7})', trainingRemark: '单操到反位({7})',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '102', tip: '鼠标右键菜单选择【单操到反位】' }, { deviceType: '02', orderNum: 1, operateCode: '102', tip: '鼠标右键菜单选择【单操到反位】' },
{ deviceType: '02', orderNum: 2, operateCode: '102', tip: '鼠标左键点击【确定】按钮', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '102', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0313', operateType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION.value,
skinCode: '04', skinCode: '04',
trainingName: '单操到反位({7})', trainingName: '单操到反位({7})',
trainingRemark: '单操到反位({7})', trainingRemark: '单操到反位({7})',
trainingType: '03', trainingType: 'Switch',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '1020', tip: '鼠标左键菜单选择【道岔反操】' }, { deviceType: '02', orderNum: 1, operateCode: '1020', tip: '鼠标左键菜单选择【道岔反操】' },
{ deviceType: '02', orderNum: 2, operateCode: '1020', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '1020', tip: '鼠标左键点击【{7}】按钮', codeType:'SWITCH' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0301', operateType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔单锁({7})', trainingName: '道岔单锁({7})',
trainingRemark: '道岔单锁功能', trainingRemark: '道岔单锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '103', tip: '鼠标右键菜单选择【道岔单锁】' }, { deviceType: '02', orderNum: 1, operateCode: '103', tip: '鼠标右键菜单选择【道岔单锁】' },
{ deviceType: '02', orderNum: 2, operateCode: '103', tip: '鼠标左键点击【确定】按钮', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '103', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0301', operateType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔单锁({7})', trainingName: '道岔单锁({7})',
trainingRemark: '道岔单锁功能', trainingRemark: '道岔单锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['01'], // 现地操作 productTypes: ['01'], // 现地操作
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '1030', tip: '鼠标左键菜单选择【道岔单锁】' }, { deviceType: '02', orderNum: 1, operateCode: '1030', tip: '鼠标左键菜单选择【道岔单锁】' },
{ deviceType: '02', orderNum: 2, operateCode: '1030', tip: '鼠标左键点击【{{7}}】', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '1030', tip: '鼠标左键点击【{{7}}】', codeType:'SWITCH' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0302', operateType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔解锁({7})', trainingName: '道岔解锁({7})',
trainingRemark: '道岔解锁功能', trainingRemark: '道岔解锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '104', tip: '鼠标右键菜单选择【道岔解锁】' }, { deviceType: '02', orderNum: 1, operateCode: '104', tip: '鼠标右键菜单选择【道岔解锁】' },
{ deviceType: '02', orderNum: 2, operateCode: '104', tip: '鼠标左键点击【确定】按钮', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '104', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0305', operateType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔解锁({7})', trainingName: '道岔解锁({7})',
trainingRemark: '道岔解锁功能', trainingRemark: '道岔解锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '1040', tip: '鼠标左键菜单选择【道岔解锁】' }, { deviceType: '02', orderNum: 1, operateCode: '1040', tip: '鼠标左键菜单选择【道岔解锁】' },
{ deviceType: '02', orderNum: 2, operateCode: '0011', tip: '输入密码123点击【确认】按钮' }, { deviceType: '02', orderNum: 2, operateCode: '1040', tip: '输入密码123点击【确认】按钮' },
{ deviceType: '02', orderNum: 3, operateCode: '1040', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } { deviceType: '02', orderNum: 3, operateCode: '1040', tip: '鼠标左键点击【{7}】按钮', codeType:'SWITCH' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0303', operateType: CMD.Switch.CMD_SWITCH_BLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔封锁({7})', trainingName: '道岔封锁({7})',
trainingRemark: '道岔封锁功能', trainingRemark: '道岔封锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '105', tip: '鼠标右键菜单选择【道岔封锁】' }, { deviceType: '02', orderNum: 1, operateCode: '105', tip: '鼠标右键菜单选择【道岔封锁】' },
{ deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '02', orderNum: 3, operateCode: '0011', tip: '输入密码123点击【确定】按钮' } { deviceType: '02', orderNum: 3, operateCode: '105', tip: '输入密码123点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0305', operateType: CMD.Switch.CMD_SWITCH_BLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔封锁({7})', trainingName: '道岔封锁({7})',
trainingRemark: '道岔封锁功能', trainingRemark: '道岔封锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '2991', tip: '鼠标左键菜单选择【封锁】' }, { deviceType: '02', orderNum: 1, operateCode: '2991', tip: '鼠标左键菜单选择【封锁】' },
{ deviceType: '02', orderNum: 2, operateCode: '2991', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } { deviceType: '02', orderNum: 2, operateCode: '2991', tip: '鼠标左键点击【{7}】按钮', codeType:'SWITCH' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0304', operateType: CMD.Switch.CMD_SWITCH_UNBLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔解封({7})', trainingName: '道岔解封({7})',
trainingRemark: '道岔解封功能', trainingRemark: '道岔解封功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '106', tip: '鼠标右键菜单选择【道岔解封】' }, { deviceType: '02', orderNum: 1, operateCode: '106', tip: '鼠标右键菜单选择【道岔解封】' },
{ deviceType: '02', orderNum: 2, operateCode: '106', tip: '鼠标左键点击【确认】按钮' }, { deviceType: '02', orderNum: 2, operateCode: '106', tip: '鼠标左键点击【确认】按钮' },
{ deviceType: '02', orderNum: 3, operateCode: '0011', tip: '输入密码123点击【确认】按钮' } { deviceType: '02', orderNum: 3, operateCode: '106', tip: '输入密码123点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0305', operateType: CMD.Switch.CMD_SWITCH_UNBLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '道岔解封({7})', trainingName: '道岔解封({7})',
trainingRemark: '道岔解封功能', trainingRemark: '道岔解封功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '2992', tip: '鼠标左键菜单选择【解封】' }, { deviceType: '02', orderNum: 1, operateCode: '2992', tip: '鼠标左键菜单选择【解封】' },
{ deviceType: '02', orderNum: 2, operateCode: '0011', tip: '输入密码123点击【确认】按钮' }, { deviceType: '02', orderNum: 2, operateCode: '2992', tip: '输入密码123点击【确认】按钮' },
{ deviceType: '02', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } { deviceType: '02', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{7}】按钮', codeType:'SWITCH' }
] ]
}, },
{ {
maxDuration: 20, maxDuration: 20,
minDuration: 10, minDuration: 10,
operateType: '0306', operateType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '区故解({7})', trainingName: '区故解({7})',
trainingRemark: '道岔区段故障解锁功能', trainingRemark: '道岔区段故障解锁功能',
trainingType: '03', trainingType: 'Switch',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '109', tip: '鼠标右键菜单选择【区故解】' }, { deviceType: '02', orderNum: 1, operateCode: '109', tip: '鼠标右键菜单选择【区故解】' },
{ deviceType: '02', orderNum: 2, operateCode: '109', tip: '鼠标左键点击【确认】按钮' }, { deviceType: '02', orderNum: 2, operateCode: '109', tip: '鼠标左键点击【确认】按钮' },
{ deviceType: '02', orderNum: 3, operateCode: '1092', tip: '输入密码123点击【确认】按钮' } { deviceType: '02', orderNum: 3, operateCode: '109', tip: '输入密码123点击【确认】按钮' }
] ]
}, },
// 区段列表 // 区段列表
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0401', operateType: CMD.Section.CMD_SECTION_FAULT_UNLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '区故解({8}{9})', trainingName: '区故解({8}{9})',
trainingRemark: '故障解锁功能', trainingRemark: '故障解锁功能',
trainingType: '04', trainingType: 'Section',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区故解】' }, { deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区故解】' },
{ deviceType: '03', orderNum: 2, operateCode: '402', tip: '鼠标左键点击【确认】按钮' }, { deviceType: '03', orderNum: 2, operateCode: '402', tip: '鼠标左键点击【确认】按钮' },
{ deviceType: '03', orderNum: 3, operateCode: '0011', tip: '输入密码123点击【确认】按钮' } { deviceType: '03', orderNum: 3, operateCode: '402', tip: '输入密码123点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0401', operateType: CMD.Section.CMD_SECTION_FAULT_UNLOCK.value,
skinCode: '04', skinCode: '04',
trainingName: '区故解({9})', trainingName: '区故解({9})',
trainingRemark: '故障解锁功能', trainingRemark: '故障解锁功能',
trainingType: '04', trainingType: 'Section',
productTypes: ['01'], productTypes: ['01'],
stepVOList: [ stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '4020', tip: '鼠标右键菜单选择【区故解】' }, { deviceType: '03', orderNum: 1, operateCode: '4020', tip: '鼠标右键菜单选择【区故解】' },
{ deviceType: '03', orderNum: 2, operateCode: '0011', tip: '输入密码123点击【确认】按钮' }, { deviceType: '03', orderNum: 2, operateCode: '4020', tip: '输入密码123点击【确认】按钮' },
{ deviceType: '03', orderNum: 3, operateCode: '4020', tip: '鼠标左键点击【{9}】', val: '{18}' }, { deviceType: '03', orderNum: 3, operateCode: '4020', tip: '鼠标左键点击【{9}】', codeType:'SECTION' }
{ deviceType: '03', orderNum: 4, operateCode: '00012', tip: '鼠标左键点击【清除】' }
] ]
}, },
{ { // 未生成实训
maxDuration: 15, // 自动生成实训失败 maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0409', operateType: CMD.Section.CMD_SECTION_DETAILS.value,
skinCode: '04', skinCode: '04',
trainingName: '属性({8}{9})', trainingName: '属性({8}{9})',
trainingRemark: '区段详情({8}{9})', trainingRemark: '区段详情({8}{9})',
trainingType: '04', trainingType: 'Section',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '410', tip: '鼠标右键菜单选择【属性】' }, { deviceType: '03', orderNum: 1, operateCode: '410', tip: '鼠标右键菜单选择【属性】' },
@ -533,11 +530,11 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0501', operateType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN.value,
skinCode: '04', skinCode: '04',
trainingName: '设置扣车({10}-{12}站台)', trainingName: '设置扣车({10}-{12}站台)',
trainingRemark: '设置扣车功能', trainingRemark: '设置扣车功能',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '504', tip: '鼠标右键菜单选择【设置扣车】' }, { deviceType: '06', orderNum: 1, operateCode: '504', tip: '鼠标右键菜单选择【设置扣车】' },
@ -547,11 +544,11 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0502', operateType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN.value,
skinCode: '04', skinCode: '04',
trainingName: '取消扣车({10}-{12}站台)', trainingName: '取消扣车({10}-{12}站台)',
trainingRemark: '设置取消扣车功能', trainingRemark: '设置取消扣车功能',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '505', tip: '鼠标右键菜单选择【取消扣车】' }, { deviceType: '06', orderNum: 1, operateCode: '505', tip: '鼠标右键菜单选择【取消扣车】' },
@ -561,148 +558,146 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0502', operateType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN.value,
skinCode: '04', skinCode: '04',
trainingName: '取消扣车({10}-{12}站台)', trainingName: '取消扣车({10}-{12}站台)',
trainingRemark: '设置取消扣车功能(上行全线)', trainingRemark: '设置取消扣车功能(上行全线)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '505', tip: '鼠标右键菜单选择【取消扣车】' }, { deviceType: '06', orderNum: 1, operateCode: '505', tip: '鼠标右键菜单选择【取消扣车】' },
{ deviceType: '06', orderNum: 2, operateCode: '5051', tip: '鼠标左键点击【上行全线】按钮', val: '02' }, { deviceType: '06', orderNum: 2, operateCode: '5051', tip: '鼠标左键点击【上行全线】按钮', val: '02' },
{ deviceType: '06', orderNum: 3, operateCode: '508', tip: '鼠标左键点击【确定】按钮', val: '02' } { deviceType: '06', orderNum: 3, operateCode: '508', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0505', operateType: CMD.Stand.CMD_STAND_SET_JUMP_STOP.value,
skinCode: '04', skinCode: '04',
trainingName: '设置跳停({10}-{12}站台)', trainingName: '设置跳停({10}-{12}站台)',
trainingRemark: '设置跳停功能', trainingRemark: '设置跳停功能',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '502', tip: '鼠标右键菜单选择【跳停】' }, { deviceType: '06', orderNum: 1, operateCode: '502', tip: '鼠标右键菜单选择【跳停】' },
{ deviceType: '06', orderNum: 2, operateCode: '502', tip: '鼠标左键点击【确定】按钮', val: '{11}' } { deviceType: '06', orderNum: 2, operateCode: '502', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0506', operateType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP.value,
skinCode: '04', skinCode: '04',
trainingName: '取消跳停({10}-{12}站台)', trainingName: '取消跳停({10}-{12}站台)',
trainingRemark: '设置取消跳停功能', trainingRemark: '设置取消跳停功能',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '503', tip: '鼠标右键菜单选择【取消跳停】' }, { deviceType: '06', orderNum: 1, operateCode: '503', tip: '鼠标右键菜单选择【取消跳停】' },
{ deviceType: '06', orderNum: 2, operateCode: '503', tip: '鼠标左键点击【确定】按钮', val: '{11}' } { deviceType: '06', orderNum: 2, operateCode: '503', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0508', operateType: CMD.Stand.CMD_STAND_SET_PARK_TIME.value,
skinCode: '04', skinCode: '04',
trainingName: '设置停站时间({10}-{12}站台)', trainingName: '设置停站时间({10}-{12}站台)',
trainingRemark: '设置停站时间(自动, 一直有效)', trainingRemark: '设置停站时间(自动, 一直有效)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' }, { deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' },
{ deviceType: '06', orderNum: 2, operateCode: '5093', tip: '鼠标左键点击,选择【自动】', val: '02' }, { deviceType: '06', orderNum: 3, operateCode: '509', tip: '鼠标左键点击【确认】按钮' }
{ deviceType: '06', orderNum: 3, operateCode: '509', tip: '鼠标左键点击【确认】按钮', val: '01::0::true' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0508', operateType: CMD.Stand.CMD_STAND_SET_PARK_TIME.value,
skinCode: '04', skinCode: '04',
trainingName: '设置停站时间({10}-{12}站台)', trainingName: '设置停站时间({10}-{12}站台)',
trainingRemark: '设置停站时间(人工, 20秒, 一直有效)', trainingRemark: '设置停站时间(人工, 20秒, 一直有效)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' }, { deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' },
{ deviceType: '06', orderNum: 2, operateCode: '5092', tip: '鼠标左键点击,选择【人工】', val: '02' }, { deviceType: '06', orderNum: 2, operateCode: '5092', tip: '鼠标左键点击,选择【人工】', val: '02' },
{ deviceType: '06', orderNum: 3, operateCode: '5094', tip: '输入或鼠标点击调整为【20】', val: '20' }, { deviceType: '06', orderNum: 3, operateCode: '5094', tip: '输入或鼠标点击调整为【20】', val: '20' },
{ deviceType: '06', orderNum: 4, operateCode: '5093', tip: '标左键点击,选择【一直有效】', val: '02' }, { deviceType: '06', orderNum: 4, operateCode: '5093', tip: '标左键点击,选择【一直有效】', val: '02' },
{ deviceType: '06', orderNum: 5, operateCode: '509', tip: '鼠标左键点击【确认】按钮', val: '02::20::true' } { deviceType: '06', orderNum: 5, operateCode: '509', tip: '鼠标左键点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0508', operateType: CMD.Stand.CMD_STAND_SET_PARK_TIME.value,
skinCode: '04', skinCode: '04',
trainingName: '设置停站时间({10}-{12}站台)', trainingName: '设置停站时间({10}-{12}站台)',
trainingRemark: '设置停站时间(人工, 20秒, 一次有效)', trainingRemark: '设置停站时间(人工, 20秒, 一次有效)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' }, { deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' },
{ deviceType: '06', orderNum: 2, operateCode: '5092', tip: '鼠标左键点击,选择【人工】', val: '02' }, { deviceType: '06', orderNum: 2, operateCode: '5092', tip: '鼠标左键点击,选择【人工】', val: '02' },
{ deviceType: '06', orderNum: 3, operateCode: '5094', tip: '输入或鼠标点击调整为【20】', val: '20' }, { deviceType: '06', orderNum: 3, operateCode: '5094', tip: '输入或鼠标点击调整为【20】', val: '20' },
{ deviceType: '06', orderNum: 4, operateCode: '509', tip: '鼠标左键点击【确认】按钮', val: '02::20::false' } { deviceType: '06', orderNum: 4, operateCode: '509', tip: '鼠标左键点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0509', operateType: CMD.Stand.CMD_STAND_SET_RUN_TIME.value,
skinCode: '04', skinCode: '04',
trainingName: '设置站间运行等级({10}-{12}站台)', trainingName: '设置站间运行等级({10}-{12}站台)',
trainingRemark: '设置站间运行等级(自动, 一直有效)', trainingRemark: '设置站间运行等级(自动, 一直有效)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' }, { deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' },
{ deviceType: '06', orderNum: 2, operateCode: '5107', tip: '标左键点击,选择【一直有效】', val: '02' }, { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' }
{ deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮', val: '01::01::true' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0509', operateType: CMD.Stand.CMD_STAND_SET_RUN_TIME.value,
skinCode: '04', skinCode: '04',
trainingName: '设置站间运行等级({10}-{12}站台)', trainingName: '设置站间运行等级({10}-{12}站台)',
trainingRemark: '设置站间运行等级(人工, 常速, 一直有效)', trainingRemark: '设置站间运行等级(人工, 常速, 一直有效)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' }, { deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' },
{ deviceType: '06', orderNum: 2, operateCode: '5106', tip: '鼠标左键点击,选择【人工】', val: '02' }, { deviceType: '06', orderNum: 2, operateCode: '5106', tip: '鼠标左键点击,选择【人工】', val: '02' },
{ deviceType: '06', orderNum: 3, operateCode: '5107', tip: '鼠标左键点击,取消选择【一直有效】', val: '02' }, { deviceType: '06', orderNum: 3, operateCode: '5107', tip: '鼠标左键点击,取消选择【一直有效】', val: '02' },
{ deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮', val: '02::01::true' } { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType: '0509', operateType: CMD.Stand.CMD_STAND_SET_RUN_TIME.value,
skinCode: '04', skinCode: '04',
trainingName: '设置站间运行等级({10}-{12}站台)', trainingName: '设置站间运行等级({10}-{12}站台)',
trainingRemark: '设置站间运行等级(人工, 常速, 一次有效)', trainingRemark: '设置站间运行等级(人工, 常速, 一次有效)',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' }, { deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' },
{ deviceType: '06', orderNum: 2, operateCode: '5106', tip: '鼠标左键点击,选择【人工】', val: '02' }, { deviceType: '06', orderNum: 2, operateCode: '5106', tip: '鼠标左键点击,选择【人工】', val: '02' },
{ deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮', val: '02::01::false' } { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' }
] ]
}, },
{ {
maxDuration: 8, // 自动生成实训失败 maxDuration: 8, // 自动生成实训失败
minDuration: 5, minDuration: 5,
operateType: '0507', operateType: CMD.Stand.CMD_STAND_VIEW_STATUS.value,
skinCode: '04', skinCode: '04',
trainingName: '属性({10}-{12}站台)', trainingName: '属性({10}-{12}站台)',
trainingRemark: '查询站台状态功能', trainingRemark: '查询站台状态功能',
trainingType: '05', trainingType: 'Stand',
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '06', orderNum: 1, operateCode: '507', tip: '鼠标右键菜单选择【属性】' }, { deviceType: '06', orderNum: 1, operateCode: '507', tip: '鼠标右键菜单选择【属性】' },

View File

@ -78,6 +78,7 @@
<script> <script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'PasswordBox', name: 'PasswordBox',
@ -91,7 +92,7 @@ export default {
return { return {
correctPassword: '123', // correctPassword: '123', //
dialogShow: false, dialogShow: false,
operation: null, operation: '',
checkHasInput: false, checkHasInput: false,
passwordCheck: '', // passwordCheck: '', //
encryptionPassword: '', // encryptionPassword: '', //
@ -111,7 +112,7 @@ export default {
} }
}, },
domIdConfirm() { domIdConfirm() {
return this.dialogShow ? OperationEvent.Command.close.password.domId : ''; return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
} }
}, },
mounted() { mounted() {
@ -123,6 +124,8 @@ export default {
doShow(operate) { doShow(operate) {
this.operate = operate || {}; this.operate = operate || {};
this.dialogShow = true; this.dialogShow = true;
this.operation = operate.operation;
console.log(this.operation, operate);
this.checkHasInput = false; this.checkHasInput = false;
this.$nextTick(function () { this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
@ -136,9 +139,9 @@ export default {
}, },
commit() { // commit() { //
if (this.passwordCheck === this.correctPassword) { if (this.passwordCheck === this.correctPassword) {
this.$emit('checkOver', this.operate);
this.doClose(); this.doClose();
this.inputClear(); this.inputClear();
this.$emit('checkOver', this.operate);
} else { } else {
this.showMistake = true; this.showMistake = true;
} }

View File

@ -257,19 +257,31 @@ export default {
}, },
// //
lock() { lock() {
this.sendCommand(menuOperate.Signal.lock); switch (this.popClass) {
case 'chengdou-03__systerm':
this.sendCommandNext(menuOperate.Signal.lock).then(operate => {
this.$refs.password.doShow(operate);
});
break;
default: this.sendCommand(menuOperate.Signal.lock);
}
}, },
// //
unlock() { unlock() {
switch (this.popClass) {
case 'chengdou-03__systerm':
this.sendCommandNext(menuOperate.Signal.unlock).then(operate => { this.sendCommandNext(menuOperate.Signal.unlock).then(operate => {
this.$refs.password.doShow(operate); this.$refs.password.doShow(operate);
}); });
break;
default: this.sendCommand(menuOperate.Signal.unlock);
}
}, },
passWordCommit(data) { // passWordCommit(data) { //
const operate = { const operate = {
over: true, over: true,
operation: OperationEvent.Signal.unlock.confirm.operation, operation: data.operation,
cmdType: menuOperate.Signal.unlock.cmdType cmdType: data.cmdType
}; };
this.sendCommand(operate); this.sendCommand(operate);
}, },

View File

@ -187,6 +187,7 @@ export default {
this.loading = false; this.loading = false;
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
this.$refs.passwordBox.doShow(operate); this.$refs.passwordBox.doShow(operate);
} }
}).catch(() => { }).catch(() => {

View File

@ -1,5 +1,5 @@
<template> <template>
<el-dialog v-dialogDrag class="xian-01__systerm train-control" :title="title" :visible.sync="show" width="370px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false"> <el-dialog v-dialogDrag :class="popClass + ' train-control'" :title="title" :visible.sync="show" width="370px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-form ref="form" size="small" label-width="120px" :model="formModel" :rules="rules"> <el-form ref="form" size="small" label-width="120px" :model="formModel" :rules="rules">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="groupNumber"> <el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="groupNumber">
<el-select <el-select
@ -75,26 +75,31 @@
<el-button :id="domIdCancel" @click="cancel">{{ $t('global.cancel') }}</el-button> <el-button :id="domIdCancel" @click="cancel">{{ $t('global.cancel') }}</el-button>
</el-col> </el-col>
</el-row> </el-row>
<confirm-train ref="confirmTrain" /> <notice-info ref="noticeInfo" :pop-class="popClass" />
<notice-info ref="noticeInfo" pop-class="xian-01__systerm" />
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import ConfirmTrain from './childDialog/confirmTrain';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import Handler from '@/scripts/cmdPlugin/Handler'; import Handler from '@/scripts/cmdPlugin/Handler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import {getTrainDetailBytripNumber} from '@/api/simulation'; import {getTrainDetailBytripNumber} from '@/api/simulation';
import NoticeInfo from '../childDialog/noticeInfo';
export default { export default {
name: 'TrainControl', name: 'TrainControl',
components: { components: {
ConfirmTrain,
NoticeInfo NoticeInfo
}, },
props: {
popClass: {
type: String,
default() {
return '';
}
}
},
data() { data() {
return { return {
trainList: [], trainList: [],
@ -112,16 +117,16 @@ export default {
], ],
rules: { rules: {
groupNumber: [ groupNumber: [
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'change' } { required: true, message: '请选择车组号', trigger: 'change' }
], ],
type: [ type: [
{ required: true, message: this.$t('rules.selectATrainType'), trigger: 'change' } { required: true, message: '请选择列车类型', trigger: 'change' }
], ],
tripNumber: [ tripNumber: [
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' } { required: true, message: '请输入车次号', trigger: 'blur' }
], ],
destinationCode: [ destinationCode: [
{ required: true, message: this.$t('rules.enterTheTargetCode'), trigger: 'blur' } { required: true, message: '请输入目的地号', trigger: 'blur' }
] ]
}, },
operation: null, operation: null,
@ -223,9 +228,9 @@ export default {
}, },
title() { title() {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) { if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
return this.$t('menu.menuTrain.addTrainId'); return '添加列车识别号';
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) { } else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
return this.$t('menu.menuTrain.editTrainId'); return '修改列车识别号';
} }
return ''; return '';
} }
@ -425,7 +430,6 @@ export default {
const operate = { const operate = {
operation: OperationEvent.Command.cancel.menu.operation operation: OperationEvent.Command.cancel.menu.operation
}; };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.doClose(); this.doClose();

View File

@ -210,6 +210,11 @@ export const menuOperate = {
// 计轴预复位 // 计轴预复位
operation: OperationEvent.Switch.axlePreReset.menu.operation, operation: OperationEvent.Switch.axlePreReset.menu.operation,
cmdType: CMD.Switch.CMD_SWITCH_AXIS_PRE_RESET cmdType: CMD.Switch.CMD_SWITCH_AXIS_PRE_RESET
},
hookLock:{
// 道岔钩锁
operation: OperationEvent.Switch.hookLock.menu.operation,
cmdType: CMD.Switch.CMD_SWITCH_HOOK_LOCK
} }
}, },
StationStand:{ StationStand:{

View File

@ -89,16 +89,36 @@ export default {
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
domIdChoose() { domIdChoose() {
return this.dialogShow ? OperationEvent.Switch.unlock.choose.domId : ''; if (this.operation == OperationEvent.Switch.unlock.menu.operation) {
return OperationEvent.Switch.unlock.choose.domId; //
} else if (this.operation == OperationEvent.Switch.unblock.menu.operation) {
return OperationEvent.Switch.unblock.choose.domId; //
}
return '';
}, },
confirmId1() { confirmId1() {
return this.dialogShow ? OperationEvent.Switch.unlock.confirm1.domId : ''; if (this.operation == OperationEvent.Switch.unlock.menu.operation) {
return OperationEvent.Switch.unlock.confirm1.domId; //
} else if (this.operation == OperationEvent.Switch.unblock.menu.operation) {
return OperationEvent.Switch.unblock.confirm1.domId; //
}
return '';
}, },
confirmId2() { confirmId2() {
return this.dialogShow ? OperationEvent.Switch.unlock.confirm2.domId : ''; if (this.operation == OperationEvent.Switch.unlock.menu.operation) {
return OperationEvent.Switch.unlock.confirm2.domId; //
} else if (this.operation == OperationEvent.Switch.unblock.menu.operation) {
return OperationEvent.Switch.unblock.confirm2.domId; //
}
return '';
}, },
domIdConfirm() { domIdConfirm() {
return this.dialogShow ? OperationEvent.Switch.unlock.confirm.domId : ''; if (this.operation == OperationEvent.Switch.unlock.menu.operation) {
return OperationEvent.Switch.unlock.confirm.domId; //
} else if (this.operation == OperationEvent.Switch.unblock.menu.operation) {
return OperationEvent.Switch.unblock.confirm.domId; //
}
return '';
}, },
title() { title() {
if (this.operation == OperationEvent.Switch.unlock.menu.operation) { if (this.operation == OperationEvent.Switch.unlock.menu.operation) {

View File

@ -105,6 +105,16 @@ export default {
handler: this.atsAutoControl, handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
}, },
{
label: '设置联锁自动进路',
handler: this.setAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
},
{
label: '取消联锁自动进路',
handler: this.cancelAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
},
{ {
label: '设置联锁自动触发', label: '设置联锁自动触发',
handler: this.setAutoTrigger, handler: this.setAutoTrigger,
@ -349,6 +359,22 @@ export default {
} }
}); });
}, },
//
setAutoInterlock() {
commitOperate(menuOperate.Signal.setAutoInterlock, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}
});
},
//
cancelAutoInterlock() {
commitOperate(menuOperate.Signal.cancelAutoInterlock, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}
});
},
// //
singalPassModel(selectType) { singalPassModel(selectType) {
commitOperate(menuOperate.Signal.setAutoInterlock, {signalCode:selectType.code}, 3).then(({valid, operate})=>{ commitOperate(menuOperate.Signal.setAutoInterlock, {signalCode:selectType.code}, 3).then(({valid, operate})=>{

View File

@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-dialogDrag v-dialogDrag
class="foshan-01__systerm cmd-notice" class="fuzhou-01__systerm cmd-notice"
title="操作命令提示" title="操作命令提示"
:visible.sync="show" :visible.sync="show"
width="400px" width="400px"
@ -18,7 +18,7 @@
</template> </template>
<script> <script>
import { OperationEvent } from '@/scripts/ConstDic'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'CmdNotice', name: 'CmdNotice',
data() { data() {
@ -40,20 +40,16 @@ export default {
}, },
watch: { watch: {
'$store.state.socket.msgHead': function (elem) { '$store.state.socket.msgHead': function (elem) {
if (elem && (elem.hasOwnProperty('success') || elem.hasOwnProperty('timeout'))) { if (elem && elem.type == 'resp' && (elem.timeout || !elem.agree)) {
const operate = this.$store.state.training.operate; const station = this.$store.getters['map/getDeviceByCode'](elem.stationCodes[0]);
const control = this.$store.getters['map/getDeviceByCode'](elem.stationControlCode);
const station = this.$store.getters['map/getDeviceByCode'](control.stationCode);
const newOperate = { const newOperate = {
type: operate.type,
name: station.name name: station.name
}; };
if (elem.timeout) { if (elem.timeout) {
newOperate['msg'] = '请求超时'; newOperate['msg'] = this.$t('menu.passiveDialog.requestTimedOut');
this.doShow(newOperate); this.doShow(newOperate);
} else if (!elem.success) { } else if (!elem.agree) {
newOperate['msg'] = '请求拒绝'; newOperate['msg'] = this.$t('menu.passiveDialog.requestRejection');
this.doShow(newOperate); this.doShow(newOperate);
} }
} }
@ -83,11 +79,10 @@ export default {
}, },
cancel() { cancel() {
const operate = { const operate = {
operation: this.operate.type,
operation: OperationEvent.Command.close.notice.operation operation: OperationEvent.Command.close.notice.operation
}; };
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
@ -96,10 +91,9 @@ export default {
}, },
commit() { commit() {
const operate = { const operate = {
type: this.operate.type,
operation: OperationEvent.Command.close.notice.operation operation: OperationEvent.Command.close.notice.operation
}; };
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();

View File

@ -213,7 +213,7 @@ export default {
{ deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' } { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' }
] ]
}, },
{ // 无法生成实训 { // 暂不生成实训
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType:CMD.Stand.CMD_STAND_EARLY_DEPART.value, operateType:CMD.Stand.CMD_STAND_EARLY_DEPART.value,
@ -276,10 +276,10 @@ export default {
] ]
}, },
{ // 无法生成实训 {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType:CMD.Switch.CMD_SWITCH_CUT_OFF.value, operateType:CMD.Switch.CMD_SWITCH_BLOCK.value,
skinCode: '08', skinCode: '08',
trainingName: '道岔封闭({7} 道岔)', trainingName: '道岔封闭({7} 道岔)',
trainingRemark: '道岔封闭功能', trainingRemark: '道岔封闭功能',
@ -290,10 +290,10 @@ export default {
{ deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【确定】按钮' } { deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ // 无法生成实训 {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType:CMD.Switch.CMD_SWITCH_ACTIVE.value, operateType:CMD.Switch.CMD_SWITCH_UNBLOCK.value,
skinCode: '08', skinCode: '08',
trainingName: '道岔解封({7} 道岔)', trainingName: '道岔解封({7} 道岔)',
trainingRemark: '道岔解封功能', trainingRemark: '道岔解封功能',
@ -301,13 +301,16 @@ export default {
productTypes: ['02'], productTypes: ['02'],
stepVOList: [ stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '106', tip: '鼠标右键菜单选择【道岔解封】' }, { deviceType: '02', orderNum: 1, operateCode: '106', tip: '鼠标右键菜单选择【道岔解封】' },
{ deviceType: '02', orderNum: 2, operateCode: '106', tip: '鼠标左键点击【确定】按钮' } { deviceType: '02', orderNum: 2, operateCode: '1063', tip: '鼠标左键点击【确定】'},
{ deviceType: '02', orderNum: 3, operateCode: '1066', tip: '鼠标左键点击【{7}】', val: '{17}'},
{ deviceType: '02', orderNum: 4, operateCode: '1064', tip: '鼠标左键点击【确定】'},
{ deviceType: '02', orderNum: 5, operateCode: '1062', tip: '鼠标左键点击【关闭】'}
] ]
}, },
{ // 无法生成实训 {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType:CMD.Switch.CMD_SWITCH_CUT_OFF.value, operateType:CMD.Switch.CMD_SWITCH_BLOCK.value,
skinCode: '08', skinCode: '08',
trainingName: '道岔封闭({7} 道岔)', trainingName: '道岔封闭({7} 道岔)',
trainingRemark: '道岔封闭功能', trainingRemark: '道岔封闭功能',
@ -318,10 +321,10 @@ export default {
{ deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【道岔】', codeType:'SWITCH' } { deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【道岔】', codeType:'SWITCH' }
] ]
}, },
{ // 无法生成实训 {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType:CMD.Switch.CMD_SWITCH_ACTIVE.value, operateType:CMD.Switch.CMD_SWITCH_UNBLOCK.value,
skinCode: '08', skinCode: '08',
trainingName: '道岔解封({7} 道岔)', trainingName: '道岔解封({7} 道岔)',
trainingRemark: '道岔解封功能', trainingRemark: '道岔解封功能',
@ -451,7 +454,7 @@ export default {
{ {
maxDuration: 15, maxDuration: 15,
minDuration: 8, minDuration: 8,
operateType:CMD.Signal.CMD_SIGNAL_SET_ROUTE.value, operateType: CMD.Signal.CMD_SIGNAL_SET_ROUTE.value,
skinCode: '08', skinCode: '08',
trainingName: '排列进路({3} 进路)', trainingName: '排列进路({3} 进路)',
trainingRemark: '排列进路功能', trainingRemark: '排列进路功能',
@ -477,7 +480,7 @@ export default {
{ deviceType: '04', orderNum: 2, operateCode: '303', tip: '鼠标左键点击【确定】按钮' } { deviceType: '04', orderNum: 2, operateCode: '303', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ // 生成实训步骤有问题 {
maxDuration: 8, maxDuration: 8,
minDuration: 5, minDuration: 5,
operateType:CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE.value, operateType:CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE.value,
@ -549,7 +552,7 @@ export default {
{ deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' } { deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' }
] ]
}, },
{ // 无法生成实训 { // 暂不生成实训
maxDuration: 8, maxDuration: 8,
minDuration: 5, minDuration: 5,
operateType:CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value, operateType:CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value,
@ -605,19 +608,5 @@ export default {
{ deviceType: '04', orderNum: 2, operateCode: '312', tip: '鼠标左键点击【确定】按钮' } { deviceType: '04', orderNum: 2, operateCode: '312', tip: '鼠标左键点击【确定】按钮' }
] ]
} }
// {
// maxDuration: 8,
// minDuration: 5,
// operateType:CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value,
// skinCode: '08',
// trainingName: '总取消({3} 进路)',
// trainingRemark: '总取消',
// trainingType:'Signal',
// productTypes: ['01'],
// stepVOList: [
// { deviceType: '04', orderNum: 1, operateCode: '2994', tip: '鼠标左键点击【总取消】' },
// { deviceType: '04', orderNum: 2, operateCode: '2294', tip: '鼠标左键点击选择该信号机', codeType:'SIGNAL'}
// ]
// }
] ]
}; };

View File

@ -15,7 +15,7 @@
<span class="base-label">{{ $t('menu.commandInformation') }}</span> <span class="base-label">{{ $t('menu.commandInformation') }}</span>
<el-form label-position="center" size="mini"> <el-form label-position="center" size="mini">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="6">
<el-form-item :label="this.$t('menu.type')" label-width="40px"> <el-form-item :label="this.$t('menu.type')" label-width="40px">
<el-select v-model="operation" size="small" disabled> <el-select v-model="operation" size="small" disabled>
<el-option <el-option
@ -27,8 +27,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="9">
<el-form-item :label="this.$t('menu.stationName')" label-width="80px"> <el-form-item :label="this.$t('menu.stationName')" label-width="120px">
<el-input v-model="stationName" size="small" disabled /> <el-input v-model="stationName" size="small" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -116,7 +116,7 @@ export default {
typeList() { typeList() {
return [ return [
{ code: OperationEvent.Signal.unlock.menu.operation, name: this.$t('menu.menuSignal.signalDeblock') }, { code: OperationEvent.Signal.unlock.menu.operation, name: this.$t('menu.menuSignal.signalDeblock') },
{ code: OperationEvent.Signal.guide.menu.operation, name: this.$t('menu.menuSignal.guideRouteHandle') } { code: OperationEvent.Signal.guide.menu.operation, name: '办理引导进路' }
]; ];
}, },
show() { show() {

View File

@ -1,440 +0,0 @@
<template>
<el-dialog v-dialogDrag class="fuzhou-01__systerm train-control" :title="title" :visible.sync="show" width="370px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-form ref="form" size="small" label-width="120px" :model="formModel" :rules="rules">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="groupNumber">
<el-select
:id="domIdTrainNumber"
v-model="formModel.groupNumber"
filterable
:disabled="trainNumberIsDisabled"
@change="trainNumberChange"
>
<el-option
v-for="train in trainList"
:key="train.groupNumber"
:label="train.groupNumber"
:value="train.groupNumber"
/>
</el-select>
</el-form-item>
<el-form-item prop="type" label-width="0px">
<el-radio-group
:id="domIdTrainType"
v-model="formModel.type"
style="margin-left: 45px;"
@change="trainTypeChange"
>
<el-radio :label="'PLAN'">{{ $t('menu.planTrain') }}</el-radio>
<el-radio :label="'HEAD'">{{ $t('menu.headCodeTrain') }}</el-radio>
<el-radio :label="'MANUAL'" style="margin-top:5px;">{{ $t('menu.artificialTrain') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="formModel.type == 'PLAN'|| formModel.type == 'HEAD'" prop="serviceNumber">
<span slot="label">{{ $t('menu.serviceNumber') + '' }}</span>
<el-input
:id="domIdServerNo"
v-model="formModel.serviceNumber"
:disabled="serverNoIsDisabled"
/>
</el-form-item>
<el-form-item v-if="formModel.type == 'PLAN'" :label="this.$t('menu.tripNumber')+this.$t('global.colon')" prop="tripNumber">
<el-input
:id="domIdTrainNo"
v-model="formModel.tripNumber"
maxlength="4"
/>
</el-form-item>
<el-form-item v-if="formModel.type == 'PLAN' || formModel.type == 'HEAD'" :label="this.$t('menu.targetCode')+this.$t('global.colon')" prop="destinationCode">
<el-input
:id="domIdTargetCode"
v-model="formModel.destinationCode"
:disabled="formModel.type !== 'HEAD'"
/>
</el-form-item>
<el-form-item v-if="formModel.type == 'MANUAL'" :label="this.$t('menu.category')+this.$t('global.colon')" prop="category">
<el-select
:id="domIdTrainNumber"
v-model="formModel.category"
filterable
:disabled="true"
>
<el-option
v-for="item in categoryList"
:key="item.value"
:label="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{ $t('global.confirm') }}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel">{{ $t('global.cancel') }}</el-button>
</el-col>
</el-row>
<confirm-train ref="confirmTrain" />
<notice-info ref="noticeInfo" pop-class="fuzhou-01__systerm" />
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import ConfirmTrain from './childDialog/confirmTrain';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import Handler from '@/scripts/cmdPlugin/Handler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import {getTrainDetailBytripNumber} from '@/api/simulation';
export default {
name: 'TrainControl',
components: {
ConfirmTrain,
NoticeInfo
},
data() {
return {
trainList: [],
serviceNumber:'',
formModel: {
tripNumber: '',
groupNumber: '',
type: 'PLAN',
serviceNumber: '',
destinationCode: '',
category: 'MM'
},
categoryList: [
{ name: 'MM', value: '01' }
],
rules: {
groupNumber: [
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'change' }
],
type: [
{ required: true, message: this.$t('rules.selectATrainType'), trigger: 'change' }
],
tripNumber: [
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
],
destinationCode: [
{ required: true, message: this.$t('rules.enterTheTargetCode'), trigger: 'blur' }
]
},
operation: null,
dialogShow: false,
loading: false,
direction: 0
};
},
computed: {
...mapGetters('map', [
'map'
]),
serverNoIsDisabled() {
return true;
},
trainNumberIsDisabled() {
if (this.operation != OperationEvent.Train.addTrainId.menu.operation) {
return true;
}
return '';
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdTrainNumber() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 添加列车识别号*/
return OperationEvent.Train.addTrainId.trainNumberChange.domId;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
return OperationEvent.Train.editTrainId.trainNumberChange.domId;
}
}
return '';
},
domIdTrainNo() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 添加列车识别号*/
return OperationEvent.Train.addTrainId.trainNoChange.domId;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
return OperationEvent.Train.editTrainId.trainNoChange.domId;
}
}
return '';
},
domIdTrainType() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 添加列车识别号*/
return OperationEvent.Train.addTrainId.trainTypeChange.domId;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
return OperationEvent.Train.editTrainId.trainTypeChange.domId;
}
}
return '';
},
domIdServerNo() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 添加列车识别号*/
return OperationEvent.Train.addTrainId.serverNoChange.domId;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
return OperationEvent.Train.editTrainId.serverNoChange.domId;
}
}
return '';
},
domIdTargetCode() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 添加列车识别号*/
return OperationEvent.Train.addTrainId.targetCodeChange.domId;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
return OperationEvent.Train.editTrainId.targetCodeChange.domId;
}
}
return '';
},
domIdConfirm() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 添加列车识别号*/
return OperationEvent.Train.addTrainId.menu.domId;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
return OperationEvent.Train.editTrainId.menu.domId;
}
}
return '';
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
title() {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
return this.$t('menu.menuTrain.addTrainId');
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
return this.$t('menu.menuTrain.editTrainId');
}
return '';
}
},
watch: {
'formModel.tripNumber': function(val) {
if (val.length == 4) {
this.trainNoChange(val);
} else {
this.formModel = {
groupNumber: this.formModel.groupNumber,
tripNumber: val,
type: this.formModel.type,
serviceNumber: '',
targetCode: '',
category: 'MM'
};
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
loadInitData(map) {},
doShow(operate, selected) {
//
if (!this.dialogShow) {
this.operation = operate.operation;
}
const model = this.$store.getters['map/getDeviceByCode'](selected.code);
this.serviceNumber = model.serviceNumber;
this.formModel = {
groupNumber: model.groupNumber,
tripNumber: model.tripNumber,
type: model.type ? model.type : 'PLAN',
serviceNumber: model.serviceNumber,
destinationCode: model.destinationCode,
category: 'MM'
};
/** 加载列车数据*/
this.loadInitData(this.map);
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
this.$store.dispatch('map/setTrainWindowShow', false);
},
trainNumberChange(groupNumber) {
const operate = {
groupNumber: groupNumber,
operation: ''
};
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
operate.operation = OperationEvent.Train.addTrainId.trainNumberChange.operation;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
operate.operation = OperationEvent.Train.editTrainId.trainNumberChange.operation;
}
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
trainTypeChange(trainType) {
if (trainType === 'HEAD') {
this.formModel.serviceNumber = '';
} else if (trainType === 'PLAN' && this.serviceNumber) {
this.formModel.serviceNumber = this.serviceNumber;
}
const operate = {
type: trainType,
operation: ''
};
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
operate.operation = OperationEvent.Train.addTrainId.trainTypeChange.operation;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
operate.operation = OperationEvent.Train.editTrainId.trainTypeChange.operation;
}
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
trainNoChange(tripNumber) {
const operate = {
tripNumber: tripNumber,
operation: ''
};
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
operate.operation = OperationEvent.Train.addTrainId.trainNoChange.operation;
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
operate.operation = OperationEvent.Train.editTrainId.trainNoChange.operation;
}
Handler.undo(1);
getTrainDetailBytripNumber(this.$route.query.group, {tripNumber:tripNumber}).then(resp => {
if (resp.data) {
this.formModel.serviceNumber = resp.data.serviceNumber;
this.formModel.destinationCode = resp.data.destinationCode;
}
}).catch(() => {
this.$message.error('获取列车信息失败!');
});
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
commit() {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
/** 增加列车识别号*/
this.addTrainId();
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
/** 修改列车识别号*/
this.editTrainId();
}
},
//
addTrainId() {
this.$refs['form'].validate((valid) => {
if (valid) {
const params = {
groupNumber: this.formModel.groupNumber,
type: this.formModel.type,
serviceNumber: '',
tripNumber: '',
destinationCode: ''
};
if (this.formModel.type === 'PLAN') {
params.serviceNumber = this.formModel.serviceNumber;
params.tripNumber = this.formModel.tripNumber;
params.destinationCode = this.formModel.destinationCode;
} else if (this.formModel.type === 'HEAD') {
params.tripNumber = this.formModel.tripNumber;
params.destinationCode = this.formModel.destinationCode;
}
commitOperate(menuOperate.TrainWindow.addTrainId, params, 2).then(({valid})=>{
this.loading = false;
if (valid) {
this.doClose();
}
}).catch(() => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow();
});
} else {
return false;
}
});
},
//
editTrainId() {
this.$refs['form'].validate((valid) => {
if (valid) {
const params = {
groupNumber: this.formModel.groupNumber,
type: this.formModel.type,
serviceNumber: '',
tripNumber: '',
destinationCode: ''
};
if (this.formModel.type === 'PLAN') {
params.serviceNumber = this.formModel.serviceNumber;
params.tripNumber = this.formModel.tripNumber;
params.destinationCode = this.formModel.destinationCode;
} else if (this.formModel.type === 'HEAD') {
params.tripNumber = this.formModel.tripNumber;
params.destinationCode = this.formModel.destinationCode;
}
commitOperate(menuOperate.TrainWindow.editTrainId, params, 2).then(({valid})=>{
this.loading = false;
if (valid) {
this.doClose();
}
}).catch(() => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow();
});
} else {
return false;
}
});
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>

View File

@ -108,6 +108,11 @@ export default {
handler: this.active, handler: this.active,
cmdType: CMD.Section.CMD_SECTION_ACTIVE cmdType: CMD.Section.CMD_SECTION_ACTIVE
}, },
{
label: this.$t('menu.menuSection.sectionAxisPreReset'),
handler: this.axlePreReset,
cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET
},
{ {
label: this.$t('menu.menuSection.sectionBlockade'), label: this.$t('menu.menuSection.sectionBlockade'),
handler: this.lock, handler: this.lock,

View File

@ -108,6 +108,11 @@ export default {
label: this.$t('menu.menuSignal.signalOff'), label: this.$t('menu.menuSignal.signalOff'),
handler: this.signalClose, handler: this.signalClose,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL
},
{
label: '查询进路控制模式',
handler: this.detail,
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
} }
], ],
Center: [ Center: [
@ -141,6 +146,31 @@ export default {
handler: this.reopenSignal, handler: this.reopenSignal,
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
}, },
{
label: this.$t('menu.menuSignal.guide'),
handler: this.guide,
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
},
{
label: this.$t('menu.menuSignal.setInterlockAutoRoute'),
handler: this.setAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
},
{
label: this.$t('menu.menuSignal.cancelInterlockAutoRoute'),
handler: this.cancelAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
},
{
label: this.$t('menu.menuSignal.setInterlockAutoTrigger'),
handler: this.setAutoTrigger,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO_TRIGGER
},
{
label: this.$t('menu.menuSignal.cancelInterlockAutoTrigger'),
handler: this.cancelAutoTrigger,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO_TRIGGER
},
{ {
label: this.$t('menu.menuSignal.humanControl'), label: this.$t('menu.menuSignal.humanControl'),
handler: this.humanControl, handler: this.humanControl,
@ -150,6 +180,11 @@ export default {
label: this.$t('menu.menuSignal.atsAutoControl'), label: this.$t('menu.menuSignal.atsAutoControl'),
handler: this.atsAutoControl, handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
},
{
label: '查询进路控制模式',
handler: this.detail,
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
} }
] ]
}, },
@ -346,27 +381,15 @@ export default {
this.$refs.routeHandControl.doShow(operate, this.selected, this.getRouteList(this.selected)); this.$refs.routeHandControl.doShow(operate, this.selected, this.getRouteList(this.selected));
} }
}); });
} },
// //
// detail() { detail() {
// const step = { commitOperate(menuOperate.Signal.detail, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
// start: true, if (valid) {
// code: `${this.selected.code}`, this.$refs.routeDetail.doShow(operate, this.selected, this.getRouteList(this.selected));
// operation: OperationEvent.Signal.detail.menu.operation, }
// param: { });
// Signal_Code: `${this.selected.code}` }
// }
// };
// this.$store.dispatch('training/next', step).then(({ valid }) => {
// if (valid) {
// this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
// querySignalStatus(this.group, {signalCode: `${this.selected.code}`}).then(resp => {
// const tempData = resp.data;
// this.$refs.routeDetail.doShow(step, this.selected, tempData);
// });
// }
// });
// }
} }
}; };
</script> </script>

View File

@ -2,7 +2,7 @@
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" />
<notice-info ref="noticeInfo" pop-class="fuzhou-01__systerm" /> <notice-info ref="noticeInfo" pop-class="fuzhou-01__systerm" />
<train-control ref="trainControl" /> <train-control ref="trainControl" pop-class="fuzhou-01__systerm" />
<train-delete ref="trainDelete" /> <train-delete ref="trainDelete" />
<train-move ref="trainMove" /> <train-move ref="trainMove" />
<train-switch ref="trainSwitch" /> <train-switch ref="trainSwitch" />
@ -17,7 +17,7 @@ import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import TrainControl from './dialog/trainControl'; import TrainControl from '@/jmapNew/theme/components/menus/dialog/trainControl';
import TrainDelete from './dialog/trainDelete'; import TrainDelete from './dialog/trainDelete';
import TrainMove from './dialog/trainMove'; import TrainMove from './dialog/trainMove';
import TrainSwitch from './dialog/trainSwitch'; import TrainSwitch from './dialog/trainSwitch';

View File

@ -41,8 +41,7 @@ export default {
watch: { watch: {
'$store.state.socket.msgHead': function (elem) { '$store.state.socket.msgHead': function (elem) {
if (elem && elem.type == 'resp' && (elem.timeout || !elem.agree)) { if (elem && elem.type == 'resp' && (elem.timeout || !elem.agree)) {
const control = this.$store.getters['map/getDeviceByCode'](elem.stationControlCode); const station = this.$store.getters['map/getDeviceByCode'](elem.stationCodes[0]);
const station = this.$store.getters['map/getDeviceByCode'](control.stationCode);
const newOperate = { const newOperate = {
name: station.name name: station.name
}; };
@ -83,8 +82,7 @@ export default {
const operate = { const operate = {
operation: OperationEvent.Command.close.notice.operation operation: OperationEvent.Command.close.notice.operation
}; };
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
@ -95,7 +93,7 @@ export default {
const operate = { const operate = {
operation: OperationEvent.Command.close.notice.operation operation: OperationEvent.Command.close.notice.operation
}; };
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();

View File

@ -0,0 +1,156 @@
<template>
<el-dialog
v-dialogDrag
class="xian-01__systerm switch-control"
:title="title"
:visible.sync="show"
width="300px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col>
<el-col :span="11" :offset="2"><span>道岔</span></el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-input v-model="stationName" size="small" disabled />
</el-col>
<el-col :span="11" :offset="2">
<el-input v-model="switchName" size="small" disabled />
</el-col>
</el-row>
<div style="padding: 10px 15px; border: 1px double lightgray;height: 60px;margin-top: 15px;">
<span class="base-label" style="left:-10px;background:#f0f0f0;">钩锁位置</span>
<div style=" position: relative; top:-10px;">
<el-radio-group v-model="normal" @change="chooseNormal">
<el-radio :id="normal? '': domIdChoose1" :label="true">定位</el-radio>
<el-radio :id="!normal? '': domIdChoose1" :label="false">反位</el-radio>
</el-radio-group>
</div>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="xian-01__systerm" />
</el-dialog>
</template>
<script>
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default {
name: 'SwitchHookLock',
components: {
NoticeInfo
},
data() {
return {
dialogShow: false,
loading: false,
selected: null,
operation: '',
stationName: '',
switchName: '',
normal:false
};
},
computed: {
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Switch.hookLock.confirm.domId : '';
},
domIdChoose1() {
return this.dialogShow ? OperationEvent.Switch.hookLock.choose1.domId : '';
},
title() {
return '道岔钩锁';
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
if (!this.dialogShow) {
this.switchName = '';
this.stationName = '';
if (selected && selected._type.toUpperCase() === 'Switch'.toUpperCase()) {
this.switchName = selected.name;
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
if (station) {
this.stationName = station.name;
}
}
if (selected.normal) {
this.normal = true;
} else {
this.normal = false;
}
this.operation = operate.operation;
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
}
},
chooseNormal(normal) {
const operate = {
operation: OperationEvent.StationStand.setStopTime.choose1.operation,
val: `${normal}`,
param: {}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
this.loading = true;
commitOperate(menuOperate.Switch.hookLock, {normal: this.normal}, 2).then(({valid, operate})=>{
if (valid) {
this.doClose();
}
}).catch((error) => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow(error.message);
});
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>

View File

@ -4,6 +4,7 @@
<switch-control ref="switchControl" :pop-class="'xian-01__systerm'" /> <switch-control ref="switchControl" :pop-class="'xian-01__systerm'" />
<switch-cmd-control ref="switchCmdControl" /> <switch-cmd-control ref="switchCmdControl" />
<speed-cmd-control ref="speedCmdControl" /> <speed-cmd-control ref="speedCmdControl" />
<switch-hook-lock ref="switchHookLock" />
<notice-info ref="noticeInfo" pop-class="xian-01__systerm" /> <notice-info ref="noticeInfo" pop-class="xian-01__systerm" />
<set-fault ref="setFault" pop-class="xian-01__systerm" /> <set-fault ref="setFault" pop-class="xian-01__systerm" />
</div> </div>
@ -15,11 +16,13 @@ import SwitchControl from '@/jmapNew/theme/components/menus/dialog/switchControl
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault'; import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
import SwitchCmdControl from './dialog/switchCmdControl'; import SwitchCmdControl from './dialog/switchCmdControl';
import SpeedCmdControl from './dialog/speedCmdControl'; import SpeedCmdControl from './dialog/speedCmdControl';
import SwitchHookLock from './dialog/switchHookLock';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default { export default {
@ -30,6 +33,7 @@ export default {
SwitchCmdControl, SwitchCmdControl,
SpeedCmdControl, SpeedCmdControl,
NoticeInfo, NoticeInfo,
SwitchHookLock,
SetFault SetFault
}, },
props: { props: {
@ -99,6 +103,11 @@ export default {
label: '道岔取消限速', label: '道岔取消限速',
handler: this.cancelSpeed, handler: this.cancelSpeed,
cmdType:CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED cmdType:CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED
},
{
label: '道岔钩锁',
handler: this.hookLock,
cmdType:CMD.Switch.CMD_SWITCH_HOOK_LOCK
} }
], ],
Center: [ Center: [
@ -151,6 +160,11 @@ export default {
label: '取消限速', label: '取消限速',
handler: this.cancelSpeed, handler: this.cancelSpeed,
cmdType:CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED cmdType:CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED
},
{
label: '道岔钩锁',
handler: this.hookLock,
cmdType:CMD.Switch.CMD_SWITCH_HOOK_LOCK
} }
] ]
}, },
@ -319,6 +333,14 @@ export default {
this.$refs.speedCmdControl.doShow(operate, this.selected); this.$refs.speedCmdControl.doShow(operate, this.selected);
} }
}); });
},
//
hookLock() {
commitOperate(menuOperate.Switch.hookLock, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.switchHookLock.doShow(operate, this.selected);
}
});
} }
} }
}; };

View File

@ -2,7 +2,7 @@
<div> <div>
<pop-menu ref="popMenu" :menu="menu" pop-menu-class="xian-01__systerm" /> <pop-menu ref="popMenu" :menu="menu" pop-menu-class="xian-01__systerm" />
<notice-info ref="noticeInfo" pop-class="xian-01__systerm" /> <notice-info ref="noticeInfo" pop-class="xian-01__systerm" />
<train-control ref="trainControl" /> <train-control ref="trainControl" pop-class="xian-01__systerm" />
<train-delete ref="trainDelete" /> <train-delete ref="trainDelete" />
<train-move ref="trainMove" /> <train-move ref="trainMove" />
<train-switch ref="trainSwitch" /> <train-switch ref="trainSwitch" />
@ -18,7 +18,7 @@ import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import TrainControl from './dialog/trainControl'; import TrainControl from '@/jmapNew/theme/components/menus/dialog/trainControl';
import TrainDelete from './dialog/trainDelete'; import TrainDelete from './dialog/trainDelete';
import TrainMove from './dialog/trainMove'; import TrainMove from './dialog/trainMove';
import TrainSwitch from './dialog/trainSwitch'; import TrainSwitch from './dialog/trainSwitch';

View File

@ -41,12 +41,10 @@ export default {
watch: { watch: {
'$store.state.socket.msgHead': function (elem) { '$store.state.socket.msgHead': function (elem) {
if (elem && elem.type == 'resp' && (elem.timeout || !elem.agree)) { if (elem && elem.type == 'resp' && (elem.timeout || !elem.agree)) {
const control = this.$store.getters['map/getDeviceByCode'](elem.stationControlCode); const station = this.$store.getters['map/getDeviceByCode'](elem.stationCodes[0]);
const station = this.$store.getters['map/getDeviceByCode'](control.stationCode);
const newOperate = { const newOperate = {
name: station.name name: station.name
}; };
if (elem.timeout) { if (elem.timeout) {
newOperate['msg'] = this.$t('menu.passiveDialog.requestTimedOut'); newOperate['msg'] = this.$t('menu.passiveDialog.requestTimedOut');
this.doShow(newOperate); this.doShow(newOperate);
@ -84,7 +82,7 @@ export default {
operation: OperationEvent.Command.close.notice.operation operation: OperationEvent.Command.close.notice.operation
}; };
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();
@ -95,7 +93,7 @@ export default {
const operate = { const operate = {
operation: OperationEvent.Command.close.notice.operation operation: OperationEvent.Command.close.notice.operation
}; };
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
if (valid) { if (valid) {
this.doClose(); this.doClose();

View File

@ -45,7 +45,9 @@ export default {
/** 道岔区段封锁 */ /** 道岔区段封锁 */
CMD_SWITCH_SECTION_BLOCK: {value: 'Switch_Section_Block', label: '道岔区段封锁'}, CMD_SWITCH_SECTION_BLOCK: {value: 'Switch_Section_Block', label: '道岔区段封锁'},
/** 道岔区段解封 */ /** 道岔区段解封 */
CMD_SWITCH_SECTION_UNBLOCK: {value: 'Switch_Section_Unblock', label: '道岔区段解封'} CMD_SWITCH_SECTION_UNBLOCK: {value: 'Switch_Section_Unblock', label: '道岔区段解封'},
/** 道岔钩锁 **/
CMD_SWITCH_HOOK_LOCK:{value:'Switch_Hook_Lock', label:'道岔钩锁'}
}, },
// 控制模式操作 // 控制模式操作

View File

@ -60,7 +60,6 @@ class Handler {
command = CommandHandler.getCommand(cmdType, wholeParam); command = CommandHandler.getCommand(cmdType, wholeParam);
if (command && command.isError) { if (command && command.isError) {
this.operations.pop(); this.operations.pop();
store.dispatch('training/setTempStep', null);
command = null; command = null;
} else if (command && command.isOver) { } else if (command && command.isOver) {
this.clear(); this.clear();

View File

@ -541,6 +541,21 @@ export const OperationEvent = {
operation: '1174', operation: '1174',
domId: '_Tips-Switch-Alxe-Effective-Confirm-2' domId: '_Tips-Switch-Alxe-Effective-Confirm-2'
} }
},
// 道岔钩锁
hookLock:{
menu: {
operation: '118',
domId: '_Tips-Switch-Hook-Lock'
},
choose1: {
operation: '1181',
domId: '_Tips-Switch-Hook-Lock-Choose-1'
},
confirm: {
operation: '1182',
domId: '_Tips-Switch-Hook-Lock-Confirm'
}
} }
}, },

View File

@ -1,14 +1,10 @@
import store from '@/store/index_APP_TARGET';
import LangStorage from '@/utils/lang';
import Handler from './Handler.js'; import Handler from './Handler.js';
import { TrainingMode } from '@/scripts/ConstDic'; import { TrainingMode } from '@/scripts/ConstDic';
import { Message } from 'element-ui';
class ValidateHandler { class ValidateHandler {
vaildate(mode, operate) { vaildate(mode, operate) {
switch (mode) { switch (mode) {
case TrainingMode.EDIT: // 编辑制作模式
return this.vaildate_edit(operate);
case TrainingMode.PRACTICE: // 练习模式 case TrainingMode.PRACTICE: // 练习模式
return this.vaildate_tips(operate); return this.vaildate_tips(operate);
case TrainingMode.TEACH: // 教学模式 case TrainingMode.TEACH: // 教学模式
@ -18,22 +14,6 @@ class ValidateHandler {
return true; return true;
} }
vaildate_edit(operate) {
let vaild = true;
if (Handler.getOperateBreakStatus()) {
const tip = LangStorage.getLang() == 'en' ? 'Please enter a hint and click next' : '请输入提示并点击下一步';
Message.error(tip);
Handler.pop();
vaild = false;
}
if (Handler.getTrainingStart()) {
store.dispatch('training/setTempStep', operate);
}
return vaild;
}
vaildate_tips(operate) { vaildate_tips(operate) {
let valid = true; let valid = true;
if (Handler.getTrainingStart()) { if (Handler.getTrainingStart()) {

View File

@ -20,7 +20,6 @@ OperateConverter.prototype = {
if (command && command.error) { if (command && command.error) {
// 命令错误,可以回退或清空(暂用回退) // 命令错误,可以回退或清空(暂用回退)
OperateHandler.operates.pop(); OperateHandler.operates.pop();
store.dispatch('training/setTempStep', null);
command = null; command = null;
} else if (command && command.over) { } else if (command && command.over) {
// 清空操作组 // 清空操作组

View File

@ -4,8 +4,6 @@ import OperateConverter from '@/scripts/plugin/OperateConvert2Command';
import { TrainingMode } from '@/scripts/ConstDic'; import { TrainingMode } from '@/scripts/ConstDic';
import { getConverter } from '@/scripts/plugin/Converter/manager'; import { getConverter } from '@/scripts/plugin/Converter/manager';
import { sendTrainingNextStep } from '@/api/jmap/training'; import { sendTrainingNextStep } from '@/api/jmap/training';
import { Message } from 'element-ui';
import LangStorage from '@/utils/lang';
var OperateHandler = function () { var OperateHandler = function () {
}; };
@ -67,19 +65,7 @@ OperateHandler.prototype = {
let valid = true; let valid = true;
const mode = this.getTrainingMode(); const mode = this.getTrainingMode();
if (TrainingMode.EDIT === mode) { if (TrainingMode.TEACH === mode || TrainingMode.PRACTICE === mode) {
// 编辑制作模式
if (this.getOperateBreakStatus()) {
valid = false;
const tip = LangStorage.getLang() == 'en' ? 'Please enter a hint and click next' : '请输入提示并点击下一步';
Message.error(tip);
this.operates.pop();
return valid;
}
if (this.getTrainingStart()) {
store.dispatch('training/setTempStep', operate);
}
} else if (TrainingMode.TEACH === mode || TrainingMode.PRACTICE === mode) {
// 教学模式/练习模式 // 教学模式/练习模式
if (this.getTrainingStart()) { if (this.getTrainingStart()) {
valid = this.judge(operate); valid = this.judge(operate);

View File

@ -106,6 +106,9 @@ const exam = {
countUsedTime({ commit }) { countUsedTime({ commit }) {
commit('countUsedTime'); commit('countUsedTime');
}, },
stopCountTime({ commit }) {
commit('stopCountTime');
},
setRuleList({ commit }, ruleList) { setRuleList({ commit }, ruleList) {
commit('setRuleList', ruleList); commit('setRuleList', ruleList);
}, },

View File

@ -172,6 +172,23 @@ function recover(state, models) {
} }
} }
// 过滤空值 删除
function filtrationModel(models) {
models.forEach(model => {
for (const key in model) {
if (typeof model[key] == 'string') {
if (!model[key]) {
delete model[key];
}
}
if (model[key] == null || model[key] == undefined) {
delete model[key];
}
}
});
return models;
}
/** /**
* 实训状态数据 * 实训状态数据
*/ */
@ -927,10 +944,12 @@ const map = {
if (!(models instanceof Array)) { if (!(models instanceof Array)) {
models = [models]; models = [models];
} }
// 过滤 空/null/undefined value 值
const dictList = filtrationModel(models);
// 查找向上关联需要一起删除的设备 // 查找向上关联需要一起删除的设备
const dict = {}; const dict = {};
models.forEach((model) => { dictList.forEach((model) => {
if (model['_dispose']) { if (model['_dispose']) {
queryDeleteModels(state, model, dict); queryDeleteModels(state, model, dict);
} else { } else {

View File

@ -21,7 +21,6 @@ const training = {
offsetStationCode: '', // 偏移到车站 offsetStationCode: '', // 偏移到车站
rezoomCount: 0, // 车站变更标识 rezoomCount: 0, // 车站变更标识
steps: [], // 实训步骤数据 steps: [], // 实训步骤数据
tempStep: {}, // 临时步骤数据(编辑模式)
order: -1, // 实训进行到第几步 order: -1, // 实训进行到第几步
orderCount: 0, // 步骤变更标识 orderCount: 0, // 步骤变更标识
operateErrMsg: '', // 操作错误提示信息 operateErrMsg: '', // 操作错误提示信息
@ -39,9 +38,6 @@ const training = {
}, },
getters: { getters: {
tempStep: (state) => {
return state.tempStep;
},
steps: (state) => { steps: (state) => {
return state.steps; return state.steps;
}, },
@ -152,10 +148,6 @@ const training = {
state.orderCount += 1; state.orderCount += 1;
} }
}, },
setTempStep: (state, step) => {
state.tempStep = step;
},
setOperateErrMsg: (state, errMsg) => { setOperateErrMsg: (state, errMsg) => {
state.operateErrMsg = errMsg; state.operateErrMsg = errMsg;
}, },
@ -508,13 +500,6 @@ const training = {
commit('updateMapState', deviceStatus); commit('updateMapState', deviceStatus);
}, },
/**
* 设置临时步骤数据
*/
setTempStep: ({ commit }, step) => {
commit('setTempStep', step);
},
/** /**
* 开始教学模式 * 开始教学模式
*/ */

View File

@ -130,10 +130,10 @@ export function getCountTime(data) {
// 对象 深拷贝 // 对象 深拷贝
export function deepClone(item) { export function deepClone(item) {
const target = item.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象 const target = item.constructor === Array ? [] : {};
for (const keys in item) { for (const keys in item) {
if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝 if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝
if (item[keys] && typeof item[keys] === 'object') { // 如果值是对象,就递归一下 if (item[keys] && typeof item[keys] === 'object') {
target[keys] = item[keys].constructor === Array ? [] : {}; target[keys] = item[keys].constructor === Array ? [] : {};
target[keys] = deepClone(item[keys]); target[keys] = deepClone(item[keys]);
} else { } else {
@ -146,10 +146,10 @@ export function deepClone(item) {
// 对象深拷贝并赋值 // 对象深拷贝并赋值
export function deepAssign(obj, item) { export function deepAssign(obj, item) {
const target = item.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象 const target = item.constructor === Array ? [] : {};
for (const keys in item) { for (const keys in item) {
if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝 if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝
if (item[keys] && typeof item[keys] == 'object') { // 如果值是对象,就递归一下 if (item[keys] && typeof item[keys] == 'object') {
const targetObj = item[keys].constructor == Array ? [] : {}; const targetObj = item[keys].constructor == Array ? [] : {};
target[keys] = deepAssign(targetObj, item[keys]); target[keys] = deepAssign(targetObj, item[keys]);
} else { } else {
@ -160,27 +160,3 @@ export function deepAssign(obj, item) {
return Object.assign(obj, target); return Object.assign(obj, target);
} }
// 对象深拷贝并赋值
export function deepAssigns(obj, item) {
const target = item.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象
for (const keys in obj) {
if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝
if (item[keys] && typeof item[keys] == 'object') { // 如果值是对象,就递归一下
const targetObj = item[keys].constructor == Array ? [] : {};
target[keys] = deepAssign(targetObj, item[keys]);
} else {
target[keys] = item[keys];
}
} else {
if (typeof obj[keys] == 'boolean') {
target[keys] = false;
} else if (typeof obj[keys] == 'number') {
target[keys] = 0;
} else if (typeof obj[keys] == 'string') {
target[keys] = '';
}
}
}
return Object.assign(obj, target);
}

View File

@ -161,6 +161,14 @@ export default {
let endTime; let endTime;
let startTime; let startTime;
if (this.formModel.date) { if (this.formModel.date) {
const h = new Date().getHours();
const m = new Date().getMinutes();
if (+new Date(this.formModel.date[0]) < +new Date()) {
this.formModel.date[0] = `${this.formModel.date[0].split(' ')[0]} ${h < 10 ? '0' + h : h }:${m < 10 ? '0' + m : m }:00`;
}
if (+new Date(this.formModel.date[1]) < +new Date()) {
this.formModel.date[1] = `${this.formModel.date[1].split(' ')[0]} ${h < 10 ? '0' + h : h }:${m < 10 ? '0' + m : m }:00`;
}
endTime = this.formModel.date[1]; endTime = this.formModel.date[1];
startTime = this.formModel.date[0]; startTime = this.formModel.date[0];
} }

View File

@ -65,6 +65,8 @@ export default {
getSubSystemDetail(this.$route.params.subSystem).then(resp =>{ getSubSystemDetail(this.$route.params.subSystem).then(resp =>{
if (resp.data) { if (resp.data) {
this.tableData = resp.data.lessonList; this.tableData = resp.data.lessonList;
} else {
this.tableData = [];
} }
}).catch((error)=>{ }).catch((error)=>{
if (error.code == 30001) { if (error.code == 30001) {

View File

@ -174,6 +174,7 @@ import IbpKey from './ibpKey';
import IbpClock from './ibpClock'; import IbpClock from './ibpClock';
import IbpRotateTip from './ibpRotateTip'; import IbpRotateTip from './ibpRotateTip';
import { putIbpDrawData, getIbpInfo } from '@/api/ibp'; import { putIbpDrawData, getIbpInfo } from '@/api/ibp';
import {getStationList} from '@/api/runplan';
export default { export default {
name: 'IbpOperate', name: 'IbpOperate',
@ -200,28 +201,34 @@ export default {
return { return {
enabledTab: 'Background', enabledTab: 'Background',
data: '', data: '',
stationOptions:[ stationOptions:[],
{ // stationOptions:[
value: 'Station_203_0.07533', // {
// label: '' // value: 'Station_203_0.07533',
label: '车站一' // // label: ''
}, // label: ''
{ // },
value: 'Station_207_0.62282', // {
// label: '' // value: 'Station_207_0.62282',
label: '车站二' // // label: ''
}, // label: ''
{ // },
value: 'Station_209_0.95175', // {
label: '车站三' // value: 'Station_209_0.95175',
// label: '' // label: ''
} // // label: ''
], // }
// ],
// drawData: {}, // drawData: {},
stationCode: '', // stationCode: '',
height: this.$store.state.app.height - 190 height: this.$store.state.app.height - 190
}; };
}, },
computed:{
stationCode() {
return this.$route.query.stationCode;
}
},
watch: { watch: {
'$store.state.ibp.rightClickCount': function (val) { '$store.state.ibp.rightClickCount': function (val) {
const model = this.$store.getters['ibp/updateDeviceData']; const model = this.$store.getters['ibp/updateDeviceData'];
@ -230,6 +237,7 @@ export default {
}, },
async created() { async created() {
try { try {
const resp = await getStationList(this.$route.query.mapId);
const res = await getIbpInfo(this.$route.query.ibpId); const res = await getIbpInfo(this.$route.query.ibpId);
if (res.data.data) { if (res.data.data) {
const drawData = JSON.parse(res.data.data).drawData; const drawData = JSON.parse(res.data.data).drawData;
@ -237,6 +245,12 @@ export default {
} else { } else {
this.setEmptyShow(); this.setEmptyShow();
} }
if (resp.data && resp.data.length > 0) {
const stationList = resp.data;
stationList.forEach(station=>{
this.stationOptions.push({label:station.name, value:station.code});
});
}
} catch (error) { } catch (error) {
console.log('error', error); console.log('error', error);
} }

View File

@ -6,7 +6,7 @@
<div v-if="chapterShow" class="box"> <div v-if="chapterShow" class="box">
<chapter-edit ref="chapter" @refresh="refresh" /> <chapter-edit ref="chapter" @refresh="refresh" />
</div> </div>
<div v-if="treeShow" class="box"> <div v-if="sortTreeShow" class="box">
<sort-tree ref="sortTree" @refresh="refresh" /> <sort-tree ref="sortTree" @refresh="refresh" />
</div> </div>
</div> </div>
@ -30,7 +30,7 @@ export default {
isNew: true, isNew: true,
lessonShow: true, lessonShow: true,
chapterShow: false, chapterShow: false,
treeShow: false, sortTreeShow: false,
menuoper: {}, menuoper: {},
demoObj: null demoObj: null
}; };
@ -45,49 +45,19 @@ export default {
}, },
watch: { watch: {
$route() { $route() {
const data = this.$route.query; this.initData();
switch (this.$route.params.type) {
case 'lessonCreate':
this.lessonCreate(data);
break;
case 'lessonEdit':
this.lessonEdit(data);
break;
case 'chapterCreate':
this.chapterCreate(data);
break;
case 'chapterEdit':
this.chapterEdit(data);
break;
case 'treeSort':
this.treeSort(data);
break;
}
} }
}, },
mounted() { mounted() {
const data = this.$route.query; this.initData();
switch (this.$route.params.type) {
case 'lessonCreate':
this.lessonCreate(data);
break;
case 'lessonEdit':
this.lessonEdit(data);
break;
case 'chapterCreate':
this.chapterCreate(data);
break;
case 'chapterEdit':
this.chapterEdit(data);
break;
case 'treeSort':
this.treeSort(data);
break;
}
}, },
methods: { methods: {
initData() {
const data = this.$route.query;
this.runFunc(this.$route.params.type, data);
},
exchangeShow(model) { exchangeShow(model) {
['lessonShow', 'chapterShow', 'treeShow'].forEach(elem => { ['lessonShow', 'chapterShow', 'sortTreeShow'].forEach(elem => {
if (model[elem]) { if (model[elem]) {
this[elem] = true; this[elem] = true;
} else { } else {
@ -95,40 +65,37 @@ export default {
} }
}); });
}, },
lessonCreate(data) { runFunc(func, data) {
this.isNew = true; //
this.exchangeShow({ lessonShow: true }); return this[func](data);
},
toNextPage(type, isCreate, data) {
this.isNew = isCreate;
const typeShow = {};
typeShow[type + 'Show'] = true;
this.exchangeShow(typeShow);
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.lesson.initData(true, data); if (type != 'sortTree') {
this.$refs[type].initData(isCreate, data);
} else {
this.$refs[type].initData(data);
}
}); });
}, },
lessonCreate(data) {
this.toNextPage('lesson', true, data);
},
lessonEdit(data) { lessonEdit(data) {
this.isNew = false; this.toNextPage('lesson', false, data);
this.exchangeShow({ lessonShow: true });
this.$nextTick(() => {
this.$refs.lesson.initData(false, data);
});
}, },
chapterCreate(data) { chapterCreate(data) {
this.isNew = true; this.toNextPage('chapter', true, data);
this.exchangeShow({ chapterShow: true });
this.$nextTick(() => {
this.$refs.chapter.initData(true, data);
});
}, },
chapterEdit(data) { chapterEdit(data) {
this.isNew = false; this.toNextPage('chapter', false, data);
this.exchangeShow({ chapterShow: true });
this.$nextTick(() => {
this.$refs.chapter.initData(false, data);
});
}, },
treeSort(data) { treeSort(data) {
this.isNew = false; this.toNextPage('sortTree', false, data);
this.exchangeShow({ treeShow: true });
this.$nextTick(() => {
this.$refs.sortTree.initData(data);
});
}, },
refresh(filterSelect) { refresh(filterSelect) {
this.$emit('refresh'); this.$emit('refresh');

View File

@ -126,10 +126,15 @@ export default {
components: { QrcodeVue, FloatPart }, components: { QrcodeVue, FloatPart },
data() { data() {
const validateUsername = (rule, value, callback) => { const validateUsername = (rule, value, callback) => {
if (value.length < 5 && !this.project.endsWith('gzb')) { // if (value.length < 5 && !this.project.endsWith('gzb')) {
callback(new Error(this.$t('login.enterTheCorrectUserName'))); // callback(new Error(this.$t('login.enterTheCorrectUserName')));
} else { // } else {
// callback();
// }
if (value) {
callback(); callback();
} else {
callback(new Error('请输入用户名'));
} }
}; };
const validatePass = (rule, value, callback) => { const validatePass = (rule, value, callback) => {

View File

@ -6,8 +6,8 @@
</span> </span>
</div> </div>
<div class="handleShow"> <div class="handleShow">
<span v-if="show" class="el-icon-arrow-right" @click="handleSliderShow(true)">{{ $t('display.lesson.unfold') }}</span> <span v-if="show" class="el-icon-arrow-right" style="cursor:pointer" @click="handleSliderShow(true)">{{ $t('display.lesson.unfold') }}</span>
<span v-else class="el-icon-arrow-left" @click="handleSliderShow(false)">{{ $t('display.lesson.fold') }}</span> <span v-else class="el-icon-arrow-left" style="cursor:pointer" @click="handleSliderShow(false)">{{ $t('display.lesson.fold') }}</span>
</div> </div>
<div class="slider-tree"> <div class="slider-tree">
<el-scrollbar wrap-class="scrollbar-wrapper" style="background: #fff;"> <el-scrollbar wrap-class="scrollbar-wrapper" style="background: #fff;">

View File

@ -151,6 +151,7 @@ export default {
if (data == 'min') { if (data == 'min') {
this.minimize = true; this.minimize = true;
this.$refs.chatSetting.doClose(); this.$refs.chatSetting.doClose();
this.$refs.createGroup.doClose();
} else { } else {
this.minimize = false; this.minimize = false;
} }

View File

@ -1,5 +1,10 @@
<template> <template>
<el-dialog v-dialogDrag :title="title" :visible.sync="dialogShow" width="800px" :before-close="doClose" :modal="false"> <!-- <el-dialog v-dialogDrag :title="title" :visible.sync="dialogShow" width="800px" :before-close="doClose" :modal="false"> -->
<div v-show="dialogShow" id="faultChoose">
<div class="falutChooseTitle">{{ title }}</div>
<div class="closeFalutChoose" @click="closeFaultChoose">
<span class="el-icon-close closeFalutChooseIn" />
</div>
<div class="draft"> <div class="draft">
<el-radio-group v-model="auto"> <el-radio-group v-model="auto">
<el-radio :label="false" border>{{ $t('display.faultChoose.manual') }}</el-radio> <el-radio :label="false" border>{{ $t('display.faultChoose.manual') }}</el-radio>
@ -7,17 +12,58 @@
</el-radio-group> </el-radio-group>
</div> </div>
<div v-if="auto" class="card"> <div v-if="auto" class="card">
<QueryListPage ref="pageRules" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" /> <QueryListPage ref="pageRules" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" class="queryList" />
<div v-if="isAdd" class="addRules">
<div class="addRulesInner">
<div class="addRulesInnerTitle">新增故障</div>
<div class="closeAddRulesInner" @click="isAdd = false">
<span class="el-icon-close closeAddRulesIn" />
</div> </div>
<span slot="footer" class="dialog-footer"> <el-form ref="form" :model="faultRule" label-width="100px" style="margin-left:15px;">
<el-form-item label="目标设备">
<!-- faultRule.targetDeviceCode -->
<el-input v-model="targetDevice" disabled size="small" class="inputModelClass" />
<el-button :type="field === 'targetActive' ? 'danger' : 'primary'" size="small" @click="hover('targetActive')">{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item label="故障类型">
<el-input v-model="faultRule.faultType" size="small" class="inputModelClass" />
</el-form-item>
<el-form-item label="触发设备">
<!-- faultRule.condition.triggerDeviceCode -->
<el-input v-model="triggerDevice" size="small" disabled class="inputModelClass" />
<el-button :type="field === 'triggerActive' ? 'danger' : 'primary'" size="small" @click="hover('triggerActive')">{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item label="触发后状态">
<!-- <el-input v-model="faultRule.condition.triggerDeviceStatus" size="small" class="inputModelClass" /> -->
<el-select v-model="faultRule.condition.triggerDeviceStatus" placeholder="请选择" class="inputModelClass">
<el-option
v-for="item in triggerStatusList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<span class="addRulesFooter">
<el-button size="medium" type="primary" @click="addRulesCreate">{{ $t('global.confirm') }}</el-button>
<el-button size="medium" @click="addRulesClose">{{ $t('global.cancel') }}</el-button>
</span>
</div>
</div>
</div>
<!-- <span slot="footer" class="dialog-footer"> -->
<span class="faultChooseFoot">
<el-button @click="dialogShow = false">{{ $t('global.cancel') }}</el-button> <el-button @click="dialogShow = false">{{ $t('global.cancel') }}</el-button>
<el-button type="primary" :loading="loading" @click="handleConfirm">{{ $t('global.confirm') }}</el-button> <el-button type="primary" :loading="loading" @click="handleConfirm">{{ $t('global.confirm') }}</el-button>
</span> </span>
</el-dialog> </div>
<!-- </el-dialog> -->
</template> </template>
<script> <script>
import { getFailureGenerateRules, setFailureMode } from '@/api/simulation'; import { getFailureGenerateRules, setFailureModeNew } from '@/api/simulation';
import { FaultStatusEnum } from '@/scripts/FaultDic'; import { FaultStatusEnum } from '@/scripts/FaultDic';
import ModelType from '@/jmap/constant/deviceType'; import ModelType from '@/jmap/constant/deviceType';
@ -28,14 +74,35 @@ export default {
group: { group: {
type: String, type: String,
required: true required: true
},
offset: {
type: Number,
required: true
} }
}, },
data() { data() {
return { return {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
isAdd:false,
deviceMap: {}, deviceMap: {},
auto: false, auto: false,
field:'',
triggerStatusList:[],
faultRule:{
targetDeviceCode:'',
targetDeviceType:'',
lineCode:'',
faultType:'',
condition:{
triggerDeviceCode:'',
triggerDeviceStatus:'',
triggerDeviceType :'',
type:''
}
},
targetDevice:'',
triggerDevice:'',
pagerConfig: { pagerConfig: {
pageSize: 'pageSize', pageSize: 'pageSize',
pageIndex: 'pageNum' pageIndex: 'pageNum'
@ -63,6 +130,9 @@ export default {
title: this.$t('display.faultChoose.triggerTarget'), title: this.$t('display.faultChoose.triggerTarget'),
prop: 'target' prop: 'target'
} }
],
actions: [
{ text: this.$t('global.add'), handler: this.handleAdd }
] ]
} }
}; };
@ -75,6 +145,18 @@ export default {
return this.$route.query.lineCode; return this.$route.query.lineCode;
} }
}, },
watch:{
// $store.state.config.menuBarLoadedCount
'offset': function (val) {
this.dragEvent();
},
'$store.state.menuOperation.selectedCount':function(em) {
const device = this.$store.state.menuOperation.selected;
if (device.code) {
this.deviceSelect(device);
}
}
},
mounted() { mounted() {
this.$Dictionary.physicalViewType().then(list => { this.$Dictionary.physicalViewType().then(list => {
this.deviceMap = []; this.deviceMap = [];
@ -107,8 +189,46 @@ export default {
return name; return name;
}, },
closeFaultChoose() {
this.dialogShow = false;
this.isAdd = false;
},
deviceSelect(em) {
if (this.field.toUpperCase() === 'targetActive'.toUpperCase()) {
this.faultRule.targetDeviceType = em._type.toUpperCase();
this.faultRule.targetDeviceCode = em.code;
if (em._type.toUpperCase() === 'Section'.toUpperCase() && em.parentName) {
this.targetDevice = em._type + '-' + em.parentName + '-' + em.name;
} else {
this.targetDevice = em._type + '-' + em.name;
}
this.field = '';
} else if (this.field.toUpperCase() === 'triggerActive'.toUpperCase()) {
this.faultRule.condition.triggerDeviceType = em._type.toUpperCase();
this.faultRule.condition.triggerDeviceCode = em.code;
if (em._type.toUpperCase() === 'Section'.toUpperCase() && em.parentName) {
this.triggerDevice = em._type + '-' + em.parentName + '-' + em.name;
} else {
this.triggerDevice = em._type + '-' + em.name;
}
this.field = '';
}
// faultRule:{
// targetDeviceCode:'',
// targetDeviceType:'',
// lineCode:'',
// faultType:'',
// condition:{
// triggerDeviceCode:'',
// triggerDeviceStatus:'',
// triggerDeviceType :'',
// type:''
// }
// },
},
doShow() { doShow() {
this.dialogShow = true; this.dialogShow = true;
this.faultRule.lineCode = this.$route.query.lineCode;
this.queryList.data = []; this.queryList.data = [];
getFailureGenerateRules({ skin: this.lineCode, group: this.group }).then(response => { getFailureGenerateRules({ skin: this.lineCode, group: this.group }).then(response => {
const data = response.data; const data = response.data;
@ -121,9 +241,25 @@ export default {
}); });
}); });
}, },
hover(field) {
if (this.field == '') {
// if (this.isFirstTips) {
// this.$message('');
// this.isFirstTips = false;
// }
this.field = field;
// this.$store.dispatch('scriptRecord/updateIsScriptCommand', true);
} else {
this.field = '';
// this.$store.dispatch('scriptRecord/updateIsScriptCommand', false);
}
},
doClose() { doClose() {
this.dialogShow = false; this.dialogShow = false;
}, },
handleAdd() {
this.isAdd = true;
},
getFailureModel(auto) { getFailureModel(auto) {
const model = { auto }; const model = { auto };
if (auto) { if (auto) {
@ -138,7 +274,7 @@ export default {
handleConfirm() { handleConfirm() {
this.$nextTick(() => { this.$nextTick(() => {
const faultModel = this.getFailureModel(this.auto); const faultModel = this.getFailureModel(this.auto);
setFailureMode(faultModel, this.group).then(() => { setFailureModeNew(faultModel, this.group).then(() => {
this.$message.success(this.$t('display.faultChoose.setFaultSuccess')); this.$message.success(this.$t('display.faultChoose.setFaultSuccess'));
}).catch(() => { }).catch(() => {
this.$messageBox(this.$t('display.faultChoose.setFaultFail')); this.$messageBox(this.$t('display.faultChoose.setFaultFail'));
@ -149,6 +285,79 @@ export default {
}, },
reloadTable() { reloadTable() {
this.queryList.reload(); this.queryList.reload();
},
addRulesCreate() {
},
addRulesClose() {
this.$refs.form.resetForm();
this.targetDevice = '';
this.triggerDevice = '';
this.isAdd = false;
},
dragEvent() {
const offset = this.offset;
const dialogHeaderEl = document.querySelector('.falutChooseTitle');
const dragDom = document.querySelector('#faultChoose');
dialogHeaderEl.style.cursor = 'move';
/** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
dialogHeaderEl.onmousedown = (e) => {
/** 鼠标按下,计算当前元素距离可视区的距离*/
const disX = e.clientX - dialogHeaderEl.offsetLeft;
const disY = e.clientY - dialogHeaderEl.offsetTop;
/** 获取到的值带px 正则匹配替换*/
let styL, styT;
/** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/
if (sty.left.includes('%')) {
// eslint-disable-next-line no-useless-escape
styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
} else {
// eslint-disable-next-line no-useless-escape
styL = +sty.left.replace(/\px/g, '');
// eslint-disable-next-line no-useless-escape
styT = +sty.top.replace(/\px/g, '');
}
document.onmousemove = function (e) {
/** 通过事件委托,计算移动的距离*/
const l = e.clientX - disX;
const t = e.clientY - disY;
/** 移动当前元素*/
// dragDom.style.left = `${l + styL}px`;
// dragDom.style.top = `${t + styT}px`;
/** 移动当前元素*/
if (l + styL < 0) {
dragDom.style.left = `0px`;
} else if (l + styL > document.body.clientWidth - dragDom.clientWidth - 10) {
dragDom.style.left = `${document.body.clientWidth - dragDom.clientWidth - 10}px`;
} else {
dragDom.style.left = `${l + styL}px`;
}
if (t + styT <= offset) {
dragDom.style.top = offset + `px`;
} else if (t + styT > document.body.clientHeight - dragDom.clientHeight - 10) {
dragDom.style.top = `${document.body.clientHeight - dragDom.clientHeight - 10}px`;
} else {
dragDom.style.top = `${t + styT}px`;
}
/** 将此时的位置传出去*/
// binding.value({ x: e.pageX, y: e.pageY });
};
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null;
};
};
} }
} }
}; };
@ -158,4 +367,84 @@ export default {
text-align: center; text-align: center;
margin-bottom: 10px; margin-bottom: 10px;
} }
.falutChooseTitle{
padding: 15px;
cursor: all-scroll;
}
#faultChoose{
width: 900px;
position: absolute;
left: 30%;
top: 20%;
background: #fff;
padding:0px 0px 15px 0px;
// transform: translate3d(-50%,-50%,0);
border-radius: 6px;
z-index:999;
}
.faultChooseFoot{
display: inline-block;
float: right;
margin-right: 20px;
margin-top: 20px;
}
.closeFalutChoose{
position: absolute;
right: 0px;
top: 0px;
width: 35px;
height: 35px;
cursor: pointer;
}
.closeFalutChooseIn{
font-size: 20px;
margin-left: 5px;
margin-top: 10px;
}
.addRules{
position: absolute;
width: 100%;
left: 0;
top: 0px;
height: 100%;
}
.addRulesInner{
position: relative;
width: 380px;
height: 345px;
margin-top:46px;
background: #fff;
border-radius: 10px;
border: 1px #ccc solid;
margin-left: auto;
margin-right: auto;
box-shadow: 3px 3px 3px #a0a0a0;
z-index:2;
}
.queryList{
height: 300px;
overflow: auto;
}
.inputModelClass{
width:150px;
}
.addRulesInnerTitle{
padding: 10px;
font-size: 14px;
}
.closeAddRulesInner{
position: absolute;
right: 10px;
top: 9px;
width: 19px;
height: 19px;
cursor: pointer;
}
.closeAddRulesIn{
font-size: 19px;
}
.addRulesFooter{
margin-left: 116px;
display: inline-block;
}
</style> </style>

View File

@ -10,12 +10,9 @@
ref="menuDemon" ref="menuDemon"
:offset="offset" :offset="offset"
:offset-bottom="offsetBottom" :offset-bottom="offsetBottom"
:group="group" :script-id="scriptId"
:quest-id="questId"
:user-role="userRole"
@tryTime="tryTime"
@hidepanel="hidepanel"
@quitQuest="quitQuest" @quitQuest="quitQuest"
@hidepanel="hidepanel"
@showScheduling="showScheduling" @showScheduling="showScheduling"
/> />
@ -24,7 +21,6 @@
ref="menuSchema" ref="menuSchema"
:offset="offset" :offset="offset"
:offset-bottom="offsetBottom" :offset-bottom="offsetBottom"
:group="group"
:show-station="showStation" :show-station="showStation"
:station-list="stationList" :station-list="stationList"
:show-select-station="showSelectStation" :show-select-station="showSelectStation"
@ -42,7 +38,7 @@
<fault-choose ref="faultChoose" :group="group" /> <fault-choose ref="faultChoose" :group="group" />
<run-plan-Load ref="runPlanLoad" :group="group" /> <run-plan-Load ref="runPlanLoad" :group="group" />
<run-plan-view ref="runPlanView" :group="group" /> <run-plan-view ref="runPlanView" :group="group" />
<add-quest ref="addQuest" @selectQuest="selectQuest" /> <!-- <add-quest ref="addQuest" @selectQuest="selectQuestNew" /> -->
</div> </div>
</template> </template>
@ -54,16 +50,14 @@ import MapSystemDraft from '@/views/newMap/mapsystemNew/index';
import MenuDemon from '@/views/newMap/displayNew/menuDemon'; import MenuDemon from '@/views/newMap/displayNew/menuDemon';
import MenuSchema from '@/views/newMap/displayNew/menuSchema'; import MenuSchema from '@/views/newMap/displayNew/menuSchema';
import MenuSystemTime from '@/views/newMap/displayNew/menuSystemTime'; import MenuSystemTime from '@/views/newMap/displayNew/menuSystemTime';
import AddQuest from './demon/addQuest'; // import AddQuest from './demon/addQuest';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { setGoodsTryUse } from '@/api/management/goods'; import { setGoodsTryUse } from '@/api/management/goods';
import { clearSimulation, getSimulationInfoNew, scriptExecuteNew } from '@/api/simulation'; import { clearSimulation, getSimulationInfoNew } from '@/api/simulation';
import { OperateMode, TrainingMode } from '@/scripts/ConstDic'; import { OperateMode, TrainingMode } from '@/scripts/ConstDic';
import { checkLoginLine } from '@/api/login'; import { checkLoginLine } from '@/api/login';
import { loadNewMapDataByGroup } from '@/utils/loaddata'; import { loadNewMapDataByGroup } from '@/utils/loaddata';
import { EventBus } from '@/scripts/event-bus'; import { EventBus } from '@/scripts/event-bus';
import Vue from 'vue';
import {loadDraftScript, loadDraftScriptNew} from '@/api/designPlatform';
// //
// import Jl3dSimulation from '@/views/jlmap3d/simulation/jl3dsimulation'; // import Jl3dSimulation from '@/views/jlmap3d/simulation/jl3dsimulation';
@ -76,7 +70,7 @@ export default {
RunPlanLoad, RunPlanLoad,
RunPlanView, RunPlanView,
FaultChoose, FaultChoose,
AddQuest, // AddQuest,
MapSystemDraft, MapSystemDraft,
MenuDemon, MenuDemon,
MenuSchema, MenuSchema,
@ -108,7 +102,7 @@ export default {
panelShow: true, panelShow: true,
simulationShow: false, simulationShow: false,
drivingShow: false, drivingShow: false,
questId: 0, // Id scriptId:0, // Id
showStation: '', showStation: '',
stationList: [], stationList: [],
showSelectStation: false, // select showSelectStation: false, // select
@ -212,9 +206,6 @@ export default {
this.group = this.$route.query.group || ''; this.group = this.$route.query.group || '';
}, },
async mounted() { async mounted() {
EventBus.$on('clearCheckLogin', () => {
this.clearCheckLogin();
});
await this.setWindowSize(); await this.setWindowSize();
await this.initLoadData(); await this.initLoadData();
this.switchMode('01'); this.switchMode('01');
@ -224,7 +215,6 @@ export default {
await this.quit(); await this.quit();
await this.$store.dispatch('training/reset'); await this.$store.dispatch('training/reset');
await this.$store.dispatch('map/mapClear'); await this.$store.dispatch('map/mapClear');
EventBus.$off('clearCheckLogin');
}, },
methods: { methods: {
// 线 // 线
@ -274,6 +264,10 @@ export default {
mousemove(e) { mousemove(e) {
this.mouseNum = 1; this.mouseNum = 1;
}, },
// 退
async quitQuest() {
this.scriptId = 0;
},
setPosition() { setPosition() {
this.$nextTick(() => { this.$nextTick(() => {
let offset = 15; let offset = 15;
@ -355,41 +349,18 @@ export default {
const row = {group: this.$route.query.group, id: this.$route.query.scriptId}; const row = {group: this.$route.query.group, id: this.$route.query.scriptId};
this.$refs.addQuest.handleLoad(1, row); this.$refs.addQuest.handleLoad(1, row);
}, },
// selectQuestNew(row, id, mapLocation, roleName) {
// this.$refs.
// },
// //
async selectQuest(row, id, mapLocation, roleName) { async selectQuest(row) {
try { this.scriptId = parseInt(row.id);
const res = this.drawWay ? await loadDraftScriptNew(id, this.group) : await loadDraftScript(row.id, id, this.group); if (this.isDemon) {
if (res && res.code == 200) { this.$refs.menuDemon.initLoadPage();
this.questId = parseInt(row.id);
if (mapLocation) {
const newMapLocation = {'offsetX': mapLocation.x, 'offsetY': mapLocation.y, 'scaleRate': mapLocation.scale};
Vue.prototype.$jlmap.setOptions(newMapLocation);
} }
if (this.drawWay) { if (this.isScript) {
scriptExecuteNew(this.group).then(data=>{ this.$refs.menuScript.initLoadPage();
}).catch(error=>{
console.log(error);
});
} }
// if (res.data && res.data.mapLocation) {
// const mapLocation={'offsetX': res.data.mapLocation.x, 'offsetY': res.data.mapLocation.y, 'scaleRate': res.data.mapLocation.scale};
// Vue.prototype.$jlmap.setOptions(mapLocation);
// }
}
if (this.$refs.menuDemon) {
await this.$refs.menuDemon.initLoadPage();
}
if (this.$refs.menuScript) {
await this.$refs.menuScript.initLoadPage();
}
} catch (error) {
this.$messageBox(error.message);
}
},
// 退
async quitQuest() {
this.questId = 0;
}, },
// id // id

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
<template> <template>
<div> <div>
<chat-box ref="chatbox" :group="group" :user-role="userRole" /> <chat-box ref="chatbox" :group="group" :user-role="userRole" />
<div class="display-card" :style="{top: offset+'px'}"> <!-- :style="{top: offset+'px'}" -->
<div class="display-card">
<el-row> <el-row>
<span v-if="countTime" class="display-score">{{ $t('display.demon.trialTime') }} {{ countTime }}</span> <span v-if="countTime" class="display-score">{{ $t('display.demon.trialTime') }} {{ countTime }}</span>
</el-row> </el-row>
</div> </div>
<div class="display-draft" :style="{bottom: offsetBottom + 'px'}"> <!-- :style="{bottom: offsetBottom + 'px'}" -->
<div class="display-draft">
<el-button-group> <el-button-group>
<el-button v-if="isShowScheduling && !dataError" type="primary" @click="jumpScheduling">{{ $t('display.demon.dispatchingPlan') }}</el-button> <el-button v-if="isShowScheduling && !dataError" type="primary" @click="jumpScheduling">{{ $t('display.demon.dispatchingPlan') }}</el-button>
<el-button v-if="!isShowScheduling && !dataError" type="jl3dpassflow" @click="jumpjl3dpassflow">{{ jl3dpassflow }}</el-button> <el-button v-if="!isShowScheduling && !dataError" type="jl3dpassflow" @click="jumpjl3dpassflow">{{ jl3dpassflow }}</el-button>
@ -40,6 +42,7 @@ import { ranAsPlan, exitRunPlan, clearSimulation, getSimulationInfoNew } from '@
import { PermissionType } from '@/scripts/ConstDic'; import { PermissionType } from '@/scripts/ConstDic';
import { getCountTime } from '@/utils/index'; import { getCountTime } from '@/utils/index';
import { quitScriptNew, scriptRePreview } from '@/api/simulation'; import { quitScriptNew, scriptRePreview } from '@/api/simulation';
import { setGoodsTryUse } from '@/api/management/goods';
export default { export default {
name: 'MenuDemon', name: 'MenuDemon',
@ -48,10 +51,6 @@ export default {
ChatBox ChatBox
}, },
props: { props: {
group: {
type: String,
required: true
},
offset: { offset: {
type: Number, type: Number,
required: true required: true
@ -60,27 +59,17 @@ export default {
type: Number, type: Number,
required: true required: true
}, },
questId: { scriptId: {
type: Number, type: Number,
default() { default() {
return 0; return 0;
} }
}, },
showStation: {
type: String,
default() {
return '';
}
},
dataError: { dataError: {
type: Boolean, type: Boolean,
default() { default() {
return false; return false;
} }
},
userRole: {
type: String,
required: true
} }
}, },
data() { data() {
@ -107,7 +96,7 @@ export default {
}, },
computed: { computed: {
isShowQuest() { isShowQuest() {
return this.questId; return this.scriptId;
}, },
isShowScheduling() { isShowScheduling() {
return this.$route.query.prdType == '05'; return this.$route.query.prdType == '05';
@ -117,6 +106,20 @@ export default {
}, },
isHebLine() { isHebLine() {
return this.$route.query.lineCode === '07'; return this.$route.query.lineCode === '07';
},
group() {
return this.$route.query.group;
},
userRole() {
if (this.$route.query.prdType == '02') {
return 'DISPATCHER';
} else if (this.$route.query.prdType == '01') {
return 'STATION_SUPERVISOR';
} else if (this.$route.query.prdType == '04') {
return 'DRIVER';
} else {
return 'AUDIENCE';
}
} }
}, },
watch: { watch: {
@ -236,7 +239,7 @@ export default {
quitScriptNew(this.group).then(resp => { quitScriptNew(this.group).then(resp => {
scriptRePreview(this.group).then(resp=>{ scriptRePreview(this.group).then(resp=>{
getSimulationInfoNew(this.group).then(()=>{ getSimulationInfoNew(this.group).then(()=>{
this.$emit('quitQuest'); this.quitQuest();
this.initLoadPage(); this.initLoadPage();
this.clearAllData(); this.clearAllData();
}).catch(()=>{ }).catch(()=>{
@ -251,7 +254,7 @@ export default {
} else { } else {
quitScriptNew(this.group).then(resp => { quitScriptNew(this.group).then(resp => {
getSimulationInfoNew(this.group).then(()=>{ getSimulationInfoNew(this.group).then(()=>{
this.$emit('quitQuest'); this.quitQuest();
this.initLoadPage(); this.initLoadPage();
this.clearAllData(); this.clearAllData();
}).catch(()=>{ }).catch(()=>{
@ -262,6 +265,10 @@ export default {
}); });
} }
}, },
quitQuest() {
this.$emit('quitQuest');
this.$store.dispatch('scriptRecord/updateSimulationPause', false);
},
clearAllData() { clearAllData() {
this.$refs.chatbox.clearAllData(); this.$refs.chatbox.clearAllData();
}, },
@ -289,7 +296,11 @@ export default {
}, },
setTryTime() { setTryTime() {
if (this.try) { if (this.try) {
this.$emit('tryTime', { time: this.tryTime, goodsId: this.goodsId }); const data = { time: this.tryTime, goodsId: this.goodsId };
if (data.goodsId) {
setGoodsTryUse(data);
}
} }
}, },
change3dname() { change3dname() {

View File

@ -33,10 +33,6 @@ export default {
TipExamList TipExamList
}, },
props: { props: {
group: {
type: String,
required: true
},
offset: { offset: {
type: Number, type: Number,
required: true required: true
@ -82,6 +78,9 @@ export default {
}; };
}, },
computed: { computed: {
group() {
return this.$route.query.group;
},
formatUsedTime() { formatUsedTime() {
return timeFormat(this.$store.state.training.usedTime); return timeFormat(this.$store.state.training.usedTime);
} }

View File

@ -22,34 +22,28 @@
</el-button-group> </el-button-group>
</div> </div>
<tip-training-detail :training-obj="trainingObj" :offset-bottom="offsetBottom + tipBottom" /> <tip-training-detail :training-obj="trainingObj" :offset-bottom="offsetBottom + tipBottom" />
<left-slider v-if="isShowLeftSlider" :offset-bottom="offsetBottom" @overallTranslation="overallTranslation" />
</div> </div>
</template> </template>
<script> <script>
import TipTrainingDetail from './tipTrainingDetail'; import TipTrainingDetail from './tipTrainingDetail';
import LeftSlider from '@/views/newMap/displayNew/LeftSlider';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { Notification } from 'element-ui'; import { Notification } from 'element-ui';
import { startTrainingNew, endTrainingNew } from '@/api/jmap/training'; import { startTrainingNew, endTrainingNew } from '@/api/jmap/training';
import { trainingNotifyNew } from '@/api/simulation'; import { trainingNotifyNew } from '@/api/simulation';
import { TrainingMode, UrlConfig } from '@/scripts/ConstDic'; import { TrainingMode, UrlConfig } from '@/scripts/ConstDic';
import { timeFormat } from '@/utils/date'; import { timeFormat } from '@/utils/date';
import { getTrainingStepsDetailNew } from '@/api/jmap/training';
export default { export default {
name: 'MenuLesson', name: 'MenuLesson',
components: { components: {
TipTrainingDetail TipTrainingDetail,
LeftSlider
}, },
props: { props: {
group: {
type: String,
required: true
},
trainingObj: {
type: Object,
default() {
return null;
}
},
offset: { offset: {
type: Number, type: Number,
required: true required: true
@ -91,6 +85,7 @@ export default {
return { return {
timeInterval: null, timeInterval: null,
TrainingMode: TrainingMode, TrainingMode: TrainingMode,
trainingObj:{},
demoMode: TrainingMode.TEACH, demoMode: TrainingMode.TEACH,
isDisable: false, isDisable: false,
backDisable: false, backDisable: false,
@ -104,11 +99,17 @@ export default {
'usedTime', 'usedTime',
'basicInfo' 'basicInfo'
]), ]),
group() {
return this.$route.query.group;
},
formatScore() { formatScore() {
return this.score; return this.score;
}, },
formatUsedTime() { formatUsedTime() {
return timeFormat(this.usedTime); return timeFormat(this.usedTime);
},
isShowLeftSlider() {
return this.$route.query.lessonId != '0';
} }
}, },
watch: { watch: {
@ -121,6 +122,15 @@ export default {
this.isDisable = false; this.isDisable = false;
}, },
'$store.state.map.mapViewLoadedCount': function (val) { '$store.state.map.mapViewLoadedCount': function (val) {
if (this.$route.query.trainingId) {
getTrainingStepsDetailNew(this.$route.query.trainingId, { group: this.group }).then(resp => {
this.trainingObj = resp.data;
this.$store.dispatch('training/setTrainingData', this.trainingObj);
}).catch(error => {
this.$messageBox(`初始化失败实训内容失败: ${error.message}`);
});
}
this.$store.dispatch('training/end', null); this.$store.dispatch('training/end', null);
this.$store.dispatch('training/reset'); this.$store.dispatch('training/reset');
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
@ -142,6 +152,14 @@ export default {
}); });
} }
}, },
overallTranslation(flag) {
const panel = document.getElementById('leftSlider');
if (flag) {
panel.style.transform = 'translateX(400px)';
} else {
panel.style.transform = '';
}
},
start() { start() {
// //
this.$store.dispatch('menuOperation/setButtonOperation', null); this.$store.dispatch('menuOperation/setButtonOperation', null);
@ -231,14 +249,6 @@ export default {
history.go(-1); history.go(-1);
} }
}, },
handelGroupButtonTranslate(flag) {
// const buttons = document.getElementById('teachGroupButton');
// if (flag) {
// buttons.style.transform = 'translateX(-400px)';
// } else {
// buttons.style.transform = 'translateX(0px)';
// }
},
switchStationMode(val) { switchStationMode(val) {
this.$emit('switchStationMode', val); this.$emit('switchStationMode', val);
} }

View File

@ -30,10 +30,6 @@ export default {
SetTime SetTime
}, },
props: { props: {
group: {
type: String,
required: true
},
offset: { offset: {
type: Number, type: Number,
required: true required: true
@ -78,6 +74,11 @@ export default {
] ]
}; };
}, },
computed:{
group() {
return this.$route.query.group;
}
},
watch:{ watch:{
'showStation':function(val) { 'showStation':function(val) {
this.showStationContent = this.showStation; this.showStationContent = this.showStation;

View File

@ -22,7 +22,7 @@
<el-radio-button class="mode" :label="OperateMode.FAULT">{{ $t('display.schema.faultOperation') }}</el-radio-button> <el-radio-button class="mode" :label="OperateMode.FAULT">{{ $t('display.schema.faultOperation') }}</el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
<fault-choose v-if="isDemon || isScript" ref="faultChoose" :group="group" /> <fault-choose v-if="isDemon || isScript" ref="faultChoose" :group="group" :offset="offset" />
<run-plan-Load ref="runPlanLoad" :group="group" /> <run-plan-Load ref="runPlanLoad" :group="group" />
<run-plan-view ref="runPlanView" :group="group" /> <run-plan-view ref="runPlanView" :group="group" />
<!-- 加载剧本列表弹窗 --> <!-- 加载剧本列表弹窗 -->
@ -38,7 +38,9 @@ import { mapGetters } from 'vuex';
import { OperateMode } from '@/scripts/ConstDic'; import { OperateMode } from '@/scripts/ConstDic';
// import { getStationList } from '@/api/runplan'; // import { getStationList } from '@/api/runplan';
import { getByGroupStationList } from '@/api/jmap/map'; import { getByGroupStationList } from '@/api/jmap/map';
import { getEveryDayRunPlanNew } from '@/api/simulation'; import {loadDraftScript, loadDraftScriptNew} from '@/api/designPlatform';
import { getEveryDayRunPlanNew, loadScriptNew, scriptExecuteNew } from '@/api/simulation';
import Vue from 'vue';
// //
export default { export default {
@ -50,10 +52,6 @@ export default {
AddQuest AddQuest
}, },
props: { props: {
group: {
type: String,
required: true
},
offset: { offset: {
type: Number, type: Number,
required: true required: true
@ -102,6 +100,9 @@ export default {
...mapGetters('runPlan', [ ...mapGetters('runPlan', [
'stations' 'stations'
]), ]),
group() {
return this.$route.query.group;
},
notScript() { notScript() {
return this.$route.params.mode !== 'script'; return this.$route.params.mode !== 'script';
}, },
@ -197,8 +198,29 @@ export default {
const row = {id: this.$route.query.scriptId, group:this.$route.query.group, drawWay:this.$route.query.drawWay}; const row = {id: this.$route.query.scriptId, group:this.$route.query.group, drawWay:this.$route.query.drawWay};
this.$refs.addQuest.handleLoad(1, row); this.$refs.addQuest.handleLoad(1, row);
}, },
selectQuest(row, id, mapLocation, roleName) { async selectQuest(row, id, mapLocation, roleName) {
this.$emit('selectQuest', row, id, mapLocation, roleName); try {
let res;
if (this.isDesignPlatform) {
res = this.drawWay ? await loadDraftScriptNew(id, this.group) : await loadDraftScript(row.id, id, this.group);
} else {
res = await loadScriptNew(row.id, id, this.group);
}
if (res && res.code == 200) {
this.questId = parseInt(row.id);
if (mapLocation) {
const newMapLocation = {'offsetX': mapLocation.x, 'offsetY': mapLocation.y, 'scaleRate': mapLocation.scale};
Vue.prototype.$jlmap.setOptions(newMapLocation);
}
scriptExecuteNew(this.group).then(data=>{
}).catch(error=>{
console.log(error);
});
}
this.$emit('selectQuest', row);
} catch (error) {
this.$messageBox(error.message);
}
}, },
switchMode(swch) { switchMode(swch) {
this.$emit('switchMode', swch); this.$emit('switchMode', swch);

View File

@ -38,10 +38,6 @@ export default {
TipScriptRecordNew TipScriptRecordNew
}, },
props: { props: {
group: {
type: String,
required: true
},
offsetBottom: { offsetBottom: {
type: Number, type: Number,
required: true required: true
@ -78,6 +74,9 @@ export default {
...mapGetters('map', [ ...mapGetters('map', [
'trainList' 'trainList'
]), ]),
group() {
return this.$route.query.group;
},
userRole() { userRole() {
if (this.$store.state.training.prdType == '02') { if (this.$store.state.training.prdType == '02') {
return 'DISPATCHER'; return 'DISPATCHER';

View File

@ -166,7 +166,7 @@ export default {
minDuration: res.data.minDuration, minDuration: res.data.minDuration,
updateTime: res.data.updateTime updateTime: res.data.updateTime
}; };
this.$store.dispatch('exam/setCenter ', res.data.locateDeviceCode); this.$store.dispatch('exam/setCenter', res.data.locateDeviceCode);
}).catch(error => { }).catch(error => {
this.$message.error(this.$t('display.exam.getTestInformation') + ':' + error.message); this.$message.error(this.$t('display.exam.getTestInformation') + ':' + error.message);
}); });

View File

@ -129,6 +129,7 @@ export default {
if (data == 'min') { if (data == 'min') {
this.minimize = true; this.minimize = true;
this.$refs.chatSetting.doClose(); this.$refs.chatSetting.doClose();
this.$refs.createGroup.doClose();
} else { } else {
this.minimize = false; this.minimize = false;
} }
@ -287,7 +288,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.chatBox{ .chatBox{
width: 503px; width: 503px;
height: 400px; // height: 400px;
position: absolute; position: absolute;
padding-left:5px; padding-left:5px;
left: 0; left: 0;
@ -296,7 +297,7 @@ export default {
} }
.chat-box{ .chat-box{
width: 100%; width: 100%;
height: 100%; height: 400px;
} }
.chat-box-header{ .chat-box-header{
width: 100%; width: 100%;

View File

@ -165,12 +165,12 @@ export default {
if (step.type.toUpperCase() === 'bar'.toUpperCase()) { if (step.type.toUpperCase() === 'bar'.toUpperCase()) {
return true; return true;
} }
const Dom = document.getElementById(domId);
if (/{TOP}/.test(domId)) { if (Dom.parentElement.id == 'menuButtons_box') { //
return false; return false;
} }
if (/{BOTTOM}/.test(domId)) { if (/{TOP}/.test(domId)) {
return true; return true;
} }
// domId // domId

View File

@ -5,7 +5,7 @@
<legend class="card_title">{{ items.name }}</legend> <legend class="card_title">{{ items.name }}</legend>
<template v-for="item in items.item"> <template v-for="item in items.item">
<template v-if="checkFieldType(item, 'select')"> <template v-if="checkFieldType(item, 'select')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<template v-if="item.change"> <template v-if="item.change">
<el-select <el-select
v-model="formModel[item.prop]" v-model="formModel[item.prop]"
@ -42,7 +42,7 @@
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'multiSelect')"> <template v-if="checkFieldType(item, 'multiSelect')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<template v-if="item.change"> <template v-if="item.change">
<el-select <el-select
v-model="formModel[item.prop]" v-model="formModel[item.prop]"
@ -81,7 +81,7 @@
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'selectHover')"> <template v-if="checkFieldType(item, 'selectHover')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-select <el-select
v-model="formModel[item.prop]" v-model="formModel[item.prop]"
filterable filterable
@ -103,7 +103,7 @@
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'input')"> <template v-if="checkFieldType(item, 'input')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<template v-if="item.change"> <template v-if="item.change">
<el-input v-model="formModel[item.prop]" type="text" :disabled="item.disabled" maxlength="30" :show-word-limit="true" @input="item.deviceChange" /> <el-input v-model="formModel[item.prop]" type="text" :disabled="item.disabled" maxlength="30" :show-word-limit="true" @input="item.deviceChange" />
</template> </template>
@ -113,7 +113,7 @@
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'number')"> <template v-if="checkFieldType(item, 'number')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<template v-if="!item.firstLevel"> <template v-if="!item.firstLevel">
<template v-if="item.change"> <template v-if="item.change">
<el-input-number v-model="formModel[item.prop]" :min="item.min" :max="item.max" :label="item.label" :disabled="item.disabled" style="width: 140px" @change="item.deviceChange" /> <el-input-number v-model="formModel[item.prop]" :min="item.min" :max="item.max" :label="item.label" :disabled="item.disabled" style="width: 140px" @change="item.deviceChange" />
@ -130,12 +130,12 @@
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'color')"> <template v-if="checkFieldType(item, 'color')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-color-picker v-model="formModel[item.prop]" show-alpha :predefine="skins" :disabled="item.disabled" /> <el-color-picker v-model="formModel[item.prop]" show-alpha :predefine="skins" :disabled="item.disabled" />
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'radio')"> <template v-if="checkFieldType(item, 'radio')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-radio-group v-model="formModel[item.prop]" :disabled="item.disabled"> <el-radio-group v-model="formModel[item.prop]" :disabled="item.disabled">
<el-radio v-for="(opts, indexs) in item.radioList" :key="indexs" :border="item.border" :label="opts[item.optionValue]">{{ opts[item.optionLabel] }}</el-radio> <el-radio v-for="(opts, indexs) in item.radioList" :key="indexs" :border="item.border" :label="opts[item.optionValue]">{{ opts[item.optionLabel] }}</el-radio>
</el-radio-group> </el-radio-group>
@ -143,7 +143,7 @@
</template> </template>
<!-- 坐标点并列显示 --> <!-- 坐标点并列显示 -->
<template v-if="checkFieldType(item, 'coordinate')"> <template v-if="checkFieldType(item, 'coordinate')">
<div v-if="!item.isHidden" :key="item.prop" class="coordinate"> <div :key="item.prop" class="coordinate">
<span class="title" :style="{width: item.width}">{{ item.label }}</span> <span class="title" :style="{width: item.width}">{{ item.label }}</span>
<div v-for="opt in item.children" :key="opt.code" class="listWidth"> <div v-for="opt in item.children" :key="opt.code" class="listWidth">
<el-form-item :label="opt.label" :prop="opt.prop" :label-width="opt.labelWidth"> <el-form-item :label="opt.label" :prop="opt.prop" :label-width="opt.labelWidth">
@ -159,7 +159,7 @@
</template> </template>
<!-- 多个坐标点绘制 --> <!-- 多个坐标点绘制 -->
<template v-if="checkFieldType(item, 'points')"> <template v-if="checkFieldType(item, 'points')">
<div v-if="!item.isHidden" :key="item.prop" class="coordinate"> <div :key="item.prop" class="coordinate">
<span class="title" :style="{width: item.width}">{{ item.label }}</span> <span class="title" :style="{width: item.width}">{{ item.label }}</span>
<div class="point-section" :style="{ width: `calc(100% - 10px - ${item.width})` }"> <div class="point-section" :style="{ width: `calc(100% - 10px - ${item.width})` }">
<template v-for="(point, j) in formModel[item.prop]"> <template v-for="(point, j) in formModel[item.prop]">
@ -207,7 +207,7 @@
</template> </template>
<!-- 多个坐标点绘制 --> <!-- 多个坐标点绘制 -->
<template v-if="checkFieldType(item, 'coordinatePoint')"> <template v-if="checkFieldType(item, 'coordinatePoint')">
<div v-if="!item.isHidden" :key="item.prop" class="coordinate"> <div :key="item.prop" class="coordinate">
<span class="title" :style="{width: item.width}">{{ item.label }}</span> <span class="title" :style="{width: item.width}">{{ item.label }}</span>
<div class="point-section" :style="{ width: `calc(100% - 10px - ${item.width})` }"> <div class="point-section" :style="{ width: `calc(100% - 10px - ${item.width})` }">
<template v-for="(point, j) in formModel[item.prop]"> <template v-for="(point, j) in formModel[item.prop]">
@ -242,23 +242,23 @@
</template> </template>
<template v-if="checkFieldType(item, 'checkbox')"> <template v-if="checkFieldType(item, 'checkbox')">
<template v-if="item.change"> <template v-if="item.change">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-checkbox v-model="formModel[item.prop]" :disabled="item.disabled" @change="item.deviceChange" /> <el-checkbox v-model="formModel[item.prop]" :disabled="item.disabled" @change="item.deviceChange" />
</el-form-item> </el-form-item>
</template> </template>
<template v-else> <template v-else>
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-checkbox v-model="formModel[item.prop]" :disabled="item.disabled" /> <el-checkbox v-model="formModel[item.prop]" :disabled="item.disabled" />
</el-form-item> </el-form-item>
</template> </template>
</template> </template>
<template v-if="checkFieldType(item, 'font')"> <template v-if="checkFieldType(item, 'font')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-font v-model="formModel[item.prop]" :disabled="item.disabled" :placeholder="item.placeholder" /> <el-font v-model="formModel[item.prop]" :disabled="item.disabled" :placeholder="item.placeholder" />
</el-form-item> </el-form-item>
</template> </template>
<template v-if="checkFieldType(item, 'fontContent')"> <template v-if="checkFieldType(item, 'fontContent')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required"> <el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-input v-model="formModel[item.content]" :placeholder="item.placeholder" class="input-with-select"> <el-input v-model="formModel[item.content]" :placeholder="item.placeholder" class="input-with-select">
<el-select slot="prepend" v-model="formModel[item.prepend]" :placeholder="item.placeholder"> <el-select slot="prepend" v-model="formModel[item.prepend]" :placeholder="item.placeholder">
<el-option :label="$t('map.horizontal')" value="H" /> <el-option :label="$t('map.horizontal')" value="H" />
@ -330,8 +330,8 @@ export default {
return keyArr[0][keyArr[1]]; return keyArr[0][keyArr[1]];
}, },
checkFieldType(field, type) { checkFieldType(field, type) {
if (field.hasOwnProperty('show')) { if (field.hasOwnProperty('isHidden')) {
return field.type === type && field.show; return field.type === type && !field.isHidden;
} else { } else {
return field.type === type; return field.type === type;
} }

View File

@ -53,56 +53,8 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; function setModel() {
import JTriangle from '@/jmapNew/utils/JTriangle';
import ConfigList from '../config/list';
import { deepAssign, deepAssigns } from '@/utils/index';
import LogicBlock from './logicBlock';
import TipInfo from './tipInfo';
import CreateSection from './create';
import SplitOrMerge from './splitOrMerge';
import BatchSettings from './batchSettings';
export default {
name: 'SectionDraft',
components: {
ConfigList,
LogicBlock,
TipInfo,
CreateSection,
SplitOrMerge,
BatchSettings
},
props: {
selected: {
type: Object,
default() {
return {};
}
}
},
data() {
return { return {
activeName: 'first',
lazy: true,
SectionTypeList: [],
SectionSepTypeList: [],
regionList: [],
viewSelect: false,
axlePositionList: [
{ value: 1, label: '下方显示' },
{ value: 0, label: '不显示' },
{ value: -1, label: '上方显示' },
{ value: 2, label: '特殊计轴下方显示' },
{ value: -2, label: '特殊计轴上方显示' }
],
sectionRoadTypeList: [
{ code: 'LEFT', name: '左行线' },
{ code: 'RIGHT', name: '右行线' },
{ code: 'CROSS', name: '渡线' },
{ code: 'DEPOT', name: '联段线' },
{ code: 'PARKING', name: '库线' }
],
editModel: {
code: '', code: '',
name: '', name: '',
type: '', type: '',
@ -151,7 +103,58 @@ export default {
belongStation: '', // belongStation: '', //
rightAxleOffset: {x:0, y:0}, rightAxleOffset: {x:0, y:0},
leftAxleOffset: {x:0, y:0} leftAxleOffset: {x:0, y:0}
};
}
import { mapGetters } from 'vuex';
import JTriangle from '@/jmapNew/utils/JTriangle';
import ConfigList from '../config/list';
import { deepAssign } from '@/utils/index';
import LogicBlock from './logicBlock';
import TipInfo from './tipInfo';
import CreateSection from './create';
import SplitOrMerge from './splitOrMerge';
import BatchSettings from './batchSettings';
export default {
name: 'SectionDraft',
components: {
ConfigList,
LogicBlock,
TipInfo,
CreateSection,
SplitOrMerge,
BatchSettings
}, },
props: {
selected: {
type: Object,
default() {
return {};
}
}
},
data() {
return {
activeName: 'first',
lazy: true,
SectionTypeList: [],
SectionSepTypeList: [],
regionList: [],
viewSelect: false,
axlePositionList: [
{ value: 1, label: '下方显示' },
{ value: 0, label: '不显示' },
{ value: -1, label: '上方显示' },
{ value: 2, label: '特殊计轴下方显示' },
{ value: -2, label: '特殊计轴上方显示' }
],
sectionRoadTypeList: [
{ code: 'LEFT', name: '左行线' },
{ code: 'RIGHT', name: '右行线' },
{ code: 'CROSS', name: '渡线' },
{ code: 'DEPOT', name: '联段线' },
{ code: 'PARKING', name: '库线' }
],
editModel: deepAssign({}, setModel()),
oldPoint: [], // oldPoint: [], //
field: '', field: '',
oldLeftSectionCode: '', oldLeftSectionCode: '',
@ -501,7 +504,7 @@ export default {
} }
this.clear(); this.clear();
this.activeName = 'first'; this.activeName = 'first';
this.editModel = deepAssigns(this.editModel, selected); this.editModel = deepAssign(this.editModel, selected);
this.oldPoint = selected.points; this.oldPoint = selected.points;
this.oldLeftSectionCode = selected.leftSectionCode; this.oldLeftSectionCode = selected.leftSectionCode;
this.oldRightSectionCode = selected.rightSectionCode; this.oldRightSectionCode = selected.rightSectionCode;
@ -715,8 +718,7 @@ export default {
} }
return models; return models;
}, },
getSectionByCode(code) { getSectionByCode(code) { // sectionCode section
// sectionCode section
if (code) { if (code) {
const section = deepAssign({}, this.$store.getters['map/getDeviceByCode'](code) || {}); const section = deepAssign({}, this.$store.getters['map/getDeviceByCode'](code) || {});
if (JSON.stringify(section) !== '{}') { if (JSON.stringify(section) !== '{}') {
@ -740,6 +742,8 @@ export default {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
models.push(deepAssign(selected, { _dispose: true })); models.push(deepAssign(selected, { _dispose: true }));
const trainWindowModel = this.$store.getters['map/getDeviceByCode'](selected.trainWindowCode);
trainWindowModel && models.push(deepAssign(trainWindowModel, { _dispose: true }));
const deleteObjAssociatedSection = this.handleDeleteSectionAssociatedSection(selected); const deleteObjAssociatedSection = this.handleDeleteSectionAssociatedSection(selected);
models = [...models, ...deleteObjAssociatedSection]; models = [...models, ...deleteObjAssociatedSection];
this.$emit('updateMapModel', models); this.$emit('updateMapModel', models);
@ -763,6 +767,11 @@ export default {
delRightSection.leftSectionCode = ''; delRightSection.leftSectionCode = '';
models.push(delRightSection); models.push(delRightSection);
} }
selected.relevanceSectionList.forEach(dataCode => { //
const sectionModel = this.getSectionByCode(dataCode);
sectionModel.parentCode = '';
models.push(sectionModel);
});
return models; return models;
}, },
checkPointsCoincide(point1, point2) { checkPointsCoincide(point1, point2) {
@ -783,6 +792,7 @@ export default {
} }
}, },
clear() { clear() {
this.editModel = setModel();
this.$refs.dataform && this.$refs.dataform.resetFields(); // this.$refs.dataform && this.$refs.dataform.resetFields(); //
} }
} }

View File

@ -92,6 +92,42 @@
</template> </template>
<script> <script>
function setModel() {
return {
centralized: false,
ciStation: false, //
depot:false, //
reentry:false, //
smallRouting: false, //
number:'', //
code: '',
zcCode: '',
visible: true,
runPlanName: '',
name: '',
nameFont: '',
nameFontColor: '#FFFFFF',
subheadDisplay:false,
subhead:'', //
subheadFont:'',
subheadFontColor:'#FFFFFF',
subheadPosition:{ x: 0, y: 0 },
kmPostShow: '',
kmRange: 0,
kmPost: '',
kmPostFont: '',
kmPostFontColor: '#FFFFFF',
isShowControlMode: '',
chargeStationCodeList:[],
relStationCodeList: [], //
position: { x: 0, y: 0 },
kilometerPosition: { x: 0, y: 0 }, //
createControlMode:false,
createTurnBack:false,
turnBackPoint: {x: 0, y: 0}, //
controlModePoint: { x: 0, y: 0 } //
};
}
import ElFont from '@/views/components/font/index'; import ElFont from '@/views/components/font/index';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { getUID } from '@/jmapNew/utils/Uid'; import { getUID } from '@/jmapNew/utils/Uid';
@ -120,42 +156,7 @@ export default {
chargeStation:[], chargeStation:[],
relStationList: [], // relStationList: [], //
controlled:false, controlled:false,
editModel: { editModel: deepAssign({}, setModel()),
centralized: false,
// concentrateStationCode: '', //
ciStation: false, //
depot:false, //
reentry:false, //
smallRouting: false, //
number:'', //
code: '',
zcCode: '',
visible: true,
runPlanName: '',
name: '',
nameFont: '',
nameFontColor: '#FFFFFF',
subheadDisplay:false,
subhead:'', //
subheadFont:'',
subheadFontColor:'#FFFFFF',
subheadPosition:{ x: 0, y: 0 },
kmPostShow: '',
kmRange: 0,
kmPost: '',
kmPostFont: '',
kmPostFontColor: '#FFFFFF',
isShowControlMode: '',
chargeStationCodeList:[],
relStationCodeList: [], //
position: { x: 0, y: 0 },
kilometerPosition: { x: 0, y: 0 }, //
// controlled:false,
createControlMode:false,
createTurnBack:false,
turnBackPoint: {x: 0, y: 0}, //
controlModePoint: { x: 0, y: 0 } //
},
addModel: { addModel: {
modelList: [], modelList: [],
positionY: 0 positionY: 0
@ -299,6 +300,7 @@ export default {
}, },
deviceSelect(selected) { deviceSelect(selected) {
if (selected && selected._type.toUpperCase() === 'Station'.toUpperCase()) { if (selected && selected._type.toUpperCase() === 'Station'.toUpperCase()) {
this.editModel = setModel();
this.$refs.dataform && this.$refs.dataform.resetFields(); this.$refs.dataform && this.$refs.dataform.resetFields();
this.activeName = 'first'; this.activeName = 'first';
this.editModel = deepAssign(this.editModel, selected); this.editModel = deepAssign(this.editModel, selected);
@ -347,14 +349,10 @@ export default {
if (data.length > 0) { if (data.length > 0) {
this.chargeStation.forEach(station=>{ this.chargeStation.forEach(station=>{
const newModal = Object.assign({}, station); const newModal = Object.assign({}, station);
// newModal.controlled = false;
// newModal.concentrateStationCode = '';
this.setStationStand(station, ''); this.setStationStand(station, '');
data.forEach(each=>{ data.forEach(each=>{
switch (each) { switch (each) {
case station.code: { case station.code: {
// newModal.controlled = true;
// newModal.concentrateStationCode = this.editModel.code;
this.setStationStand(station, this.editModel.code); this.setStationStand(station, this.editModel.code);
break; break;
} }
@ -382,8 +380,6 @@ export default {
modifyChargeStation() { modifyChargeStation() {
this.chargeStation.forEach(station=>{ this.chargeStation.forEach(station=>{
const newModal = Object.assign({}, station); const newModal = Object.assign({}, station);
// newModal.controlled = false;
// newModal.concentrateStationCode = '';
// {} // {}
this.setStationStand(station, ''); this.setStationStand(station, '');
@ -401,10 +397,6 @@ export default {
} }
}); });
}, },
// hover(field) {
// this.field = field === this.field ? '' : field;
// this.$emit('stationSectionCode', this.field);
// },
create() { create() {
this.$refs['make'].validate((valid) => { this.$refs['make'].validate((valid) => {
if (valid) { if (valid) {
@ -432,8 +424,6 @@ export default {
depot:false, depot:false,
reentry:false, reentry:false,
smallRouting: false, smallRouting: false,
// concentrateStationCode: '',
// controlled: false,
chargeStationCodeList:[], chargeStationCodeList:[],
relStationCodeList: [], // relStationCodeList: [], //
createControlMode: item.control, createControlMode: item.control,

View File

@ -87,9 +87,7 @@ export default {
editModel: { editModel: {
code: '', code: '',
name: '', name: '',
// doorLocationType: '', //
deviceStationCode: '', // deviceStationCode: '', //
// hasDoor: false, //
width: 0, width: 0,
height: 0, height: 0,
stationCode: '', // stationCode: '', //
@ -108,7 +106,6 @@ export default {
upDetainLampPoint: {x: 0, y: 0}, // upDetainLampPoint: {x: 0, y: 0}, //
downDetainLamp: false, // downDetainLamp: false, //
downDetainLampPoint: {x: 0, y: 0} // downDetainLampPoint: {x: 0, y: 0} //
// direction: '' //
}, },
field: '', field: '',
addModel: { addModel: {

View File

@ -120,10 +120,9 @@ export default {
transferTrack: false, transferTrack: false,
transferTrackName: '', transferTrackName: '',
transferTrackNamePosition: { x: 0, y: 0 }, transferTrackNamePosition: { x: 0, y: 0 },
// segmentation: false,
segmentationPosition: { x: 0, y: 0 }, segmentationPosition: { x: 0, y: 0 },
switchSection: true, switchSection: true,
relSwitchCode: '', relSwitchCode: this.fromData.relevanceSwitchList[0],
relevanceSectionList: this.fromData.relevanceSectionList, relevanceSectionList: this.fromData.relevanceSectionList,
points: [{ x: 0, y: 0 }, { x: 0, y: 0 }], points: [{ x: 0, y: 0 }, { x: 0, y: 0 }],
logicSectionShow: false, logicSectionShow: false,

View File

@ -75,9 +75,9 @@ export default {
height: 800, height: 800,
roadData: [], roadData: [],
focus: false, focus: false,
booleanList: ['lockFirst', 'switchSingleHandle', 'switchNRTurnChain', 'switchSingleLockChain', 'signalForceCancelRoute', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock'], booleanList: ['lockFirst', 'switchSingleHandle', 'switchNRTurnChain', 'switchSingleLockChain', 'switchLossChain', 'signalForceCancelRoute', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock'],
selectList: ['upDirection', 'runMode'], selectList: ['upDirection', 'runMode'],
generalConfig: ['lockFirst', 'switchSingleHandle', 'upDirection', 'switchNRTurnChain', 'switchSingleLockChain', 'signalForceCancelRoute', 'runMode', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock', 'noParkingSM', 'parkingSM'], generalConfig: ['lockFirst', 'switchSingleHandle', 'upDirection', 'switchNRTurnChain', 'switchSingleLockChain', 'switchLossChain', 'signalForceCancelRoute', 'runMode', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock', 'noParkingSM', 'parkingSM'],
rangeList: ['noParkingSM', 'parkingSM'], rangeList: ['noParkingSM', 'parkingSM'],
numberList: [], numberList: [],
optionsMap: { optionsMap: {
@ -95,7 +95,8 @@ export default {
initSingleLockSwitch: '初始加载设备时是否默认单锁正线道岔', initSingleLockSwitch: '初始加载设备时是否默认单锁正线道岔',
ctcOverlapOnlyTurnBackStationLock: 'CTC列车进路延续保护仅折返站处锁闭', ctcOverlapOnlyTurnBackStationLock: 'CTC列车进路延续保护仅折返站处锁闭',
noParkingSM: '不停站头码车服务号取值范围', noParkingSM: '不停站头码车服务号取值范围',
parkingSM: '停站头码车服务号取值范围' parkingSM: '停站头码车服务号取值范围',
switchLossChain: '道岔故障失表是否联动'
} }
}; };
}, },