Merge branch 'thailand' of git.code.tencent.com:lian-cbtc/jl-client into thailand

This commit is contained in:
Yuan 2023-07-06 15:21:50 +08:00
commit 51e678011c
9 changed files with 489 additions and 145 deletions

View File

@ -934,9 +934,7 @@ export default class Station extends Group {
if (this.graphRoad && model.routeSetMode == 'Manual_Set_Route') { if (this.graphRoad && model.routeSetMode == 'Manual_Set_Route') {
this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.lightColor); this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.lightColor);
} }
if (this.planControl && model.planControl) {
this.planControl.setColor(this.style.Station.StationControl.planControl.lightColor);
}
// if (this.style.Station.StationControl.disPlayNone) { // if (this.style.Station.StationControl.disPlayNone) {
// this.stationText && this.stationText.setStyle('textFill', '#fff'); // this.stationText && this.stationText.setStyle('textFill', '#fff');
// if (this.model.subheadDisplay) { // 副标题 // if (this.model.subheadDisplay) { // 副标题
@ -1067,6 +1065,9 @@ export default class Station extends Group {
model.controlApplicant && this.handleControlApplicant(model); model.controlApplicant && this.handleControlApplicant(model);
model.allowAutonomy && this.handleAllowAutonomy(model); model.allowAutonomy && this.handleAllowAutonomy(model);
// this.handlePowerUnlockShow(model); // this.handlePowerUnlockShow(model);
if (this.planControl && model.planControl) {
this.planControl.setColor(this.style.Station.StationControl.planControl.lightColor);
}
this.handleGuideLock(model); this.handleGuideLock(model);
if (this.style.Station.syncCentralizeStation && (model.controlMode || model.controller || model.emergencyController != undefined) && model.centralized) { if (this.style.Station.syncCentralizeStation && (model.controlMode || model.controller || model.emergencyController != undefined) && model.centralized) {
model.chargeStationCodeList.forEach(item => { model.chargeStationCodeList.forEach(item => {

View File

@ -1,15 +1,26 @@
<template> <template>
<div id="menuBarDatie"> <div id="menuBarDatie">
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;" /> <menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;" />
<SetOperationPlan ref="setOperationPlan" /> <SetOperationPlan ref="setOperationPlan" />
<OperationPlanDetail ref="operationPlanDetail" /> <OperationPlanDetail ref="operationPlanDetail" />
</div> <station-control-convert ref="stationControlConvert" :work="'dispatchWork'" />
<view-name ref="viewName" />
<train-operation ref="trainOperation" />
<switch-control ref="switchControl" />
<signal-control ref="signalControl" />
</div>
</template> </template>
<script> <script>
import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew' import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew';
import { destroySimulationByAdmin, exitSimulation } from '@/api/simulation' import { destroySimulationByAdmin, exitSimulation } from '@/api/simulation';
import SetOperationPlan from './menuDialog/setOperationPlan.vue' import SetOperationPlan from './menuDialog/setOperationPlan.vue';
import OperationPlanDetail from './menuDialog/operationPlanDetail.vue' import ViewName from './menuDialog/viewName';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import StationControlConvert from './menuDialog/stationControlConvert';
import TrainOperation from './menuDialog/trainOperation';
import SwitchControl from './menuDialog/switchControl';
import SignalControl from './menuDialog/signalControl';
import {mapGetters} from 'vuex';
export default { export default {
name: 'DispatchWorkMenuBar', name: 'DispatchWorkMenuBar',
@ -17,6 +28,11 @@ export default {
MenuBar, MenuBar,
SetOperationPlan, SetOperationPlan,
OperationPlanDetail, OperationPlanDetail,
ViewName,
StationControlConvert,
TrainOperation,
SwitchControl,
SignalControl
}, },
data() { data() {
return { return {
@ -27,89 +43,218 @@ export default {
children: [ children: [
{ {
title: 'Exit', title: 'Exit',
click: this.handleExit, click: this.handleExit
}, }
], ]
}, },
{ {
title: 'UI Control', title: 'UI Control',
operate: '', operate: '',
children: [], click: this.uiControl
}, },
{ {
title: 'Station', title: 'Station',
operate: '', operate: '',
children: [], children: []
}, },
{ {
title: 'Station Ctrl Mode', title: 'Station Ctrl Mode',
operate: '', operate: '',
children: [], children: [
{
title: 'To Station Control',
click: this.turnToStationControl,
operate: OperationEvent.StationControl.requestStationControl.mbar
},
{
title: 'Forced Station Control',
click: this.mandatoryStationControl,
operate: OperationEvent.StationControl.forcedStationControl.password
},
{
title: 'To Center Control',
click: this.conterStationControl,
operate: OperationEvent.StationControl.requestCentralControl.mbar,
force: true
}
]
}, },
{ {
title: 'Train Control', title: 'Train Control',
operate: '', operate: '',
children: [], click: this.trainControlShow
}, },
{ {
title: 'Signal Device Control', title: 'Signal Device Control',
operate: '', operate: '',
children: [], children: [
{
title: 'Signal Close',
click: this.handleSignalOperate,
operate: OperationEvent.Signal.signalClose.mbar
},
{
title: 'Signal Reopen',
click: this.handleSignalOperate,
operate: OperationEvent.Signal.reopenSignal.mbar
},
{
title: 'Turnout Normal',
click: this.handleSwitchOperate,
operate: OperationEvent.Switch.locate.mbar
},
{
title: 'Turnout Reverse',
click: this.handleSwitchOperate,
operate: OperationEvent.Switch.reverse.mbar
},
{
title: 'Turnout Lock',
click: this.handleSwitchOperate,
operate: OperationEvent.Switch.lock.mBar
},
{
title: 'Turnout Unlock',
click: this.handleSwitchOperate,
operate: OperationEvent.Switch.unlock.mbar
}
]
}, },
{ {
title: 'Operation Plan', title: 'Operation Plan',
operate: '', operate: '',
click: this.openOperationPlan, click: this.openOperationPlan,
children: [], children: []
}, },
{ {
title: 'Plan Details', title: 'Plan Details',
operate: '', operate: '',
click: this.openPlanDetail, children: []
children: [], }
}, ]
], };
} },
computed: {
...mapGetters('map', [
'stationList'
])
},
mounted() {
this.stationList.forEach(station => {
this.menuNormal[2].children.push({ title: station.name, click: () => {
this.$jlmap.setCenter(station.code);
} });
});
}, },
created() {},
methods: { methods: {
trainControlShow() {
this.$refs.trainOperation.doShow();
},
handleSignalOperate(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.signalControl.doShow(operate);
}
});
},
handleSwitchOperate(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.switchControl.doShow(operate);
}
});
},
turnToStationControl(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.stationControlConvert.doShow(operate);
}
});
},
//
mandatoryStationControl(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.stationControlConvert.doShow(operate);
}
});
},
//
conterStationControl(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.stationControlConvert.doShow(operate);
}
});
},
uiControl(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.viewName.doShow(operate);
}
});
},
blankClickClose() { blankClickClose() {
this.$refs.menuBar.doClose() this.$refs.menuBar.doClose();
}, },
handleExit() { handleExit() {
this.$confirm('Whether to exit emulation?', 'Hint', { this.$confirm('Whether to exit emulation?', 'Hint', {
confirmButtonText: 'Confirm', confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel', cancelButtonText: 'Cancel',
type: 'warning', type: 'warning'
}).then(() => { }).then(() => {
this.back() this.back();
}) });
}, },
back() { back() {
if (this.$store.state.training.simulationCreator) { if (this.$store.state.training.simulationCreator) {
destroySimulationByAdmin(this.group) destroySimulationByAdmin(this.group);
} else { } else {
exitSimulation(this.group) exitSimulation(this.group);
} }
if (this.projectDevice && this.$store.state.training.simulationCreator) { if (this.projectDevice && this.$store.state.training.simulationCreator) {
this.logout() this.logout();
} else if (this.$route.query.third) { } else if (this.$route.query.third) {
if (this.$route.query.project === 'cgy' || this.$route.query.project === 'drts') { if (this.$route.query.project === 'cgy' || this.$route.query.project === 'drts') {
window.parent.postMessage('back', '*') window.parent.postMessage('back', '*');
} else { } else {
window.close() window.close();
} }
} else if (this.projectDevice) { } else if (this.projectDevice) {
this.logout() this.logout();
} else { } else {
this.$router.go(-1) this.$router.go(-1);
} }
}, },
// //
logout() { logout() {
this.$store.dispatch('LogOut').then(() => { this.$store.dispatch('LogOut').then(() => {
location.reload() location.reload();
}) });
}, },
openOperationPlan() { openOperationPlan() {
this.$refs.setOperationPlan.doShow() this.$refs.setOperationPlan.doShow()

View File

@ -5,6 +5,8 @@
<station-control-convert ref="stationControlConvert" :work="'localWork'" /> <station-control-convert ref="stationControlConvert" :work="'localWork'" />
<view-name ref="viewName" /> <view-name ref="viewName" />
<train-operation ref="trainOperation" /> <train-operation ref="trainOperation" />
<switch-control ref="switchControl" />
<signal-control ref="signalControl" />
</div> </div>
</template> </template>
<script> <script>
@ -18,6 +20,8 @@ import ViewName from './menuDialog/viewName';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import StationControlConvert from './menuDialog/stationControlConvert'; import StationControlConvert from './menuDialog/stationControlConvert';
import TrainOperation from './menuDialog/trainOperation'; import TrainOperation from './menuDialog/trainOperation';
import SwitchControl from './menuDialog/switchControl';
import SignalControl from './menuDialog/signalControl';
export default { export default {
name: 'CtcWorkMenuBar', name: 'CtcWorkMenuBar',
@ -26,7 +30,9 @@ export default {
TrainFixedPathPane, TrainFixedPathPane,
ViewName, ViewName,
StationControlConvert, StationControlConvert,
TrainOperation TrainOperation,
SwitchControl,
SignalControl
}, },
data() { data() {
return { return {
@ -143,11 +149,27 @@ export default {
EventBus.$emit('bottomTableShowOrHidden', false); EventBus.$emit('bottomTableShowOrHidden', false);
}, },
methods: { methods: {
handleSignalOperate(operate) { handleSignalOperate(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.signalControl.doShow(operate);
}
});
}, },
handleSwitchOperate(operate) { handleSwitchOperate(order) {
const operate = {
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.switchControl.doShow(operate);
}
});
}, },
turnToStationControl(order) { turnToStationControl(order) {
const operate = { const operate = {

View File

@ -777,6 +777,9 @@ export default {
// CHANGE_DIRECTION // CHANGE_DIRECTION
selectedChange() { selectedChange() {
// //
if (!this.selected) {
return;
}
const model = this.selected; // const model = this.selected; //
if (this.selected._event !== MouseEvent.Left || (!model._type && !model._code)) { if (this.selected._event !== MouseEvent.Left || (!model._type && !model._code)) {
return; return;

View File

@ -0,0 +1,177 @@
<template>
<el-dialog
v-dialogDrag
style="pointer-events: none"
z-index="2008"
class="chengdou-03__systerm switch-control __menuButton"
:title="title"
:visible.sync="show"
width="350px"
:before-close="doClose"
:modal="false"
append-to-body
:close-on-click-modal="false"
>
<el-row class="header">
<el-col :span="4"><span>Signal</span></el-col>
<el-col :span="18" :offset="2">
<el-select v-model="selected" disabled filterable placeholder="Please select">
<el-option
v-for="item in signalList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="11">
<el-radio v-model="closeRadio" label="1" :disabled="closeRadio == 2" style="display: block; text-align: center;">
Signal close</el-radio>
</el-col>
<el-col :span="11" :offset="2">
<el-radio v-model="closeRadio" label="2" :disabled="closeRadio == 1" style="display: block; text-align: center;">
Signal reopen</el-radio>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected" @click="commit">Confirm</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" :pop-class="'chengdou-03__systerm'" />
</el-dialog>
</template>
<script>
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import {mapGetters} from 'vuex';
export default {
name: 'SwitchControl',
components: {
NoticeInfo
},
data() {
return {
dialogShow: false,
loading: false,
selected: null,
operation: '',
closeRadio: '1'
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
},
title() {
if (this.operation == OperationEvent.Signal.signalClose.mbar.operation) {
return 'Signal close';
} else if (this.operation == OperationEvent.Signal.reopenSignal.mbar.operation) {
return 'Signal reopen';
}
return '';
}
},
watch: {
'$store.state.menuOperation.selectedCount':function(em) {
const device = this.$store.state.menuOperation.selected;
if (device && device.code && device._type === 'Signal' && this.show) {
this.selected = device.code;
}
}
},
methods: {
doShow(operate) {
this.selected = null;
if (!this.dialogShow) {
this.operation = operate.operation;
if (this.operation == OperationEvent.Signal.signalClose.mbar.operation) {
this.closeRadio = '1';
} else if (this.operation == OperationEvent.Signal.reopenSignal.mbar.operation) {
this.closeRadio = '2';
}
}
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
if (this.operation == OperationEvent.Signal.signalClose.mbar.operation) {
this.signalClose();
} else if (this.operation == OperationEvent.Signal.reopenSignal.mbar.operation) {
this.reopenSignal();
}
},
signalClose() {
this.sendCommand(menuOperate.Signal.signalClose);
},
reopenSignal() {
this.sendCommand(menuOperate.Signal.reopenSignal);
},
sendCommand(operate) {
this.loading = true;
commitOperate(operate, {signalCode: this.selected}, 2).then(({valid})=>{
this.loading = false;
if (valid) {
this.doClose();
}
}).catch((error) => {
this.loading = false;
this.doClose();
console.error(error);
this.$refs.noticeInfo.doShow();
});
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style lang="scss">
.__menuButton {
.el-dialog,
.el-dialog__wrapper {
pointer-events: none !important;
}
.el-dialog__header,
.el-dialog__body {
pointer-events: all !important;
}
}
</style>

View File

@ -1,89 +1,90 @@
<template> <template>
<el-dialog <el-dialog
v-dialogDrag v-dialogDrag
class="switch-control" style="pointer-events: none"
:class="popClass" z-index="2008"
class="chengdou-03__systerm switch-control __menuButton"
:title="title" :title="title"
:visible.sync="show" :visible.sync="show"
width="300px" width="350px"
:before-close="doClose" :before-close="doClose"
:z-index="2000"
:modal="false" :modal="false"
append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<el-row class="header"> <el-row class="header">
<el-col :span="11"><span>道岔</span></el-col> <el-col :span="4"><span>Turnout</span></el-col>
<el-col :span="11" :offset="2"> <el-col :span="18" :offset="2">
<el-input v-model="switchName" size="small" disabled /> <el-select v-model="selected" disabled filterable placeholder="Please select">
<el-option
v-for="item in switchList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="isLock" style="margin-top: 10px;"> <el-row v-if="isLock" style="margin-top: 10px;">
<el-col :span="11"> <el-col :span="11">
<el-radio v-model="lockRadio" label="1" style="display: block; text-align: center;"> <el-radio v-model="lockRadio" label="1" :disabled="lockRadio == 2" style="display: block; text-align: center;">
道岔单锁</el-radio> Turnout lock</el-radio>
</el-col> </el-col>
<el-col :span="11" :offset="2"> <el-col :span="11" :offset="2">
<el-radio v-model="lockRadio" label="2" disabled style="display: block; text-align: center;"> <el-radio v-model="lockRadio" label="2" :disabled="lockRadio == 1" style="display: block; text-align: center;">
道岔解单锁</el-radio> Turnout unlock</el-radio>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="isTurnBlock" style="margin-top: 10px;"> <el-row v-if="isTurnBlock" style="margin-top: 10px;">
<el-col :span="11"> <el-col :span="11">
<el-radio v-model="turnRadio" label="1" :disabled="turnRadio == 2" style="display: block; text-align: center;"> <el-radio v-model="turnRadio" label="1" :disabled="turnRadio == 2" style="display: block; text-align: center;">
道岔定位</el-radio> Turnout normal</el-radio>
</el-col> </el-col>
<el-col :span="11" :offset="2"> <el-col :span="11" :offset="2">
<el-radio v-model="turnRadio" label="2" :disabled="turnRadio == 1" style="display: block; text-align: center;"> <el-radio v-model="turnRadio" label="2" :disabled="turnRadio == 1" style="display: block; text-align: center;">
道岔反位</el-radio> Turnout reverse</el-radio>
</el-col> </el-col>
</el-row> </el-row>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button> <el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected" @click="commit">Confirm</el-button>
</el-col> </el-col>
<el-col :span="8" :offset="4"> <el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"></el-button> <el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
</el-col> </el-col>
</el-row> </el-row>
<notice-info ref="noticeInfo" :pop-class="popClass" /> <notice-info ref="noticeInfo" :pop-class="'chengdou-03__systerm'" />
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import NoticeInfo from '@/jmapNew/theme/components/menus/dialog/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus';
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler'; import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import {mapGetters} from 'vuex';
export default { export default {
name: 'SwitchControl', name: 'SwitchControl',
components: { components: {
NoticeInfo NoticeInfo
}, },
props: {
popClass: {
type: String,
default: ''
}
},
data() { data() {
return { return {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
selected: null, selected: null,
operation: '', operation: '',
stationName: '',
switchName: '',
isLock: false, isLock: false,
isTurnBlock: false, isTurnBlock: false,
isActive: false,
turnRadio: '1', turnRadio: '1',
lockRadio: '1', lockRadio: '1'
activeRadio: '1'
}; };
}, },
computed: { computed: {
...mapGetters('map', [
'switchList'
]),
show() { show() {
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
@ -94,44 +95,45 @@ export default {
return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : ''; return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
}, },
title() { title() {
if (this.operation == OperationEvent.Switch.lock.menu.operation) { if (this.operation == OperationEvent.Switch.lock.mBar.operation) {
return 'Turnout lock'; return 'Turnout lock';
} else if (this.operation == OperationEvent.Switch.unlock.menu.operation) { } else if (this.operation == OperationEvent.Switch.unlock.mbar.operation) {
return 'Turnout unlock'; return 'Turnout unlock';
} else if (this.operation == OperationEvent.Switch.locate.menu.operation) { } else if (this.operation == OperationEvent.Switch.locate.mbar.operation) {
return 'Turnout locate'; return 'Turnout normal';
} else if (this.operation == OperationEvent.Switch.reverse.menu.operation) { } else if (this.operation == OperationEvent.Switch.reverse.mbar.operation) {
return 'Turnout reverse'; return 'Turnout reverse';
} }
return ''; return '';
} }
}, },
watch: {
'$store.state.menuOperation.selectedCount':function(em) {
const device = this.$store.state.menuOperation.selected;
if (device && device.code && device._type === 'Switch' && this.show) {
this.selected = device.code;
}
}
},
methods: { methods: {
doShow(operate, selected) { doShow(operate) {
this.$root.$emit('dialogOpen', selected); this.selected = null;
this.selected = selected;
if (!this.dialogShow) { 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;
}
}
this.operation = operate.operation; this.operation = operate.operation;
this.isLock = false; this.isLock = false;
this.isTurnBlock = false; this.isTurnBlock = false;
this.isActive = false; if (this.operation == OperationEvent.Switch.locate.mbar.operation) {
if (this.operation == OperationEvent.Switch.locate.menu.operation) {
this.isTurnBlock = true; this.isTurnBlock = true;
this.turnRadio = '1'; this.turnRadio = '1';
} else if (this.operation == OperationEvent.Switch.reverse.menu.operation) { } else if (this.operation == OperationEvent.Switch.reverse.mbar.operation) {
this.isTurnBlock = true; this.isTurnBlock = true;
this.turnRadio = '2'; this.turnRadio = '2';
} else if (this.operation == OperationEvent.Switch.lock.menu.operation) { } else if (this.operation == OperationEvent.Switch.lock.mBar.operation) {
this.isLock = true; this.isLock = true;
this.lockRadio = '1';
} else if (this.operation == OperationEvent.Switch.unlock.mbar.operation) {
this.isLock = true;
this.lockRadio = '2';
} }
} }
this.dialogShow = true; this.dialogShow = true;
@ -142,18 +144,16 @@ export default {
doClose() { doClose() {
this.loading = false; this.loading = false;
this.dialogShow = false; this.dialogShow = false;
this.$root.$emit('dialogClose', this.selected);
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
mouseCancelState(this.selected);
}, },
commit() { commit() {
if (this.operation == OperationEvent.Switch.lock.menu.operation) { if (this.operation == OperationEvent.Switch.lock.mBar.operation) {
this.lock(); // this.lock(); //
} else if (this.operation == OperationEvent.Switch.block.menu.operation) { } else if (this.operation == OperationEvent.Switch.unlock.mbar.operation) {
this.block(); // this.unlock(); //
} else if (this.operation == OperationEvent.Switch.locate.menu.operation) { } else if (this.operation == OperationEvent.Switch.locate.mbar.operation) {
this.locate(); // this.locate(); //
} else if (this.operation == OperationEvent.Switch.reverse.menu.operation) { } else if (this.operation == OperationEvent.Switch.reverse.mbar.operation) {
this.reverse(); // this.reverse(); //
} }
}, },
@ -161,9 +161,9 @@ export default {
lock() { lock() {
this.sendCommand(menuOperate.Switch.lock); this.sendCommand(menuOperate.Switch.lock);
}, },
// //
block() { unlock() {
this.sendCommand(menuOperate.Switch.block); this.sendCommand(menuOperate.Switch.unlock);
}, },
// //
locate() { locate() {
@ -176,7 +176,7 @@ export default {
sendCommand(operate) { sendCommand(operate) {
this.loading = true; this.loading = true;
commitOperate(operate, {}, 2).then(({valid})=>{ commitOperate(operate, {switchCode: this.selected}, 2).then(({valid})=>{
this.loading = false; this.loading = false;
if (valid) { if (valid) {
this.doClose(); this.doClose();
@ -188,24 +188,6 @@ export default {
this.$refs.noticeInfo.doShow(); this.$refs.noticeInfo.doShow();
}); });
}, },
sendCommandNext(operate) {
const that = this;
return new Promise(function(resolve, reject) {
that.loading = true;
commitOperate(operate, {}, 1).then(({valid})=>{
that.loading = false;
if (valid) {
that.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
resolve({...operate});
}
}).catch((error) => {
that.loading = false;
that.doClose();
console.error(error);
that.$refs.noticeInfo.doShow();
});
});
},
cancel() { cancel() {
const operate = { const operate = {
operation: OperationEvent.Command.cancel.menu.operation operation: OperationEvent.Command.cancel.menu.operation
@ -221,3 +203,16 @@ export default {
} }
}; };
</script> </script>
<style lang="scss">
.__menuButton {
.el-dialog,
.el-dialog__wrapper {
pointer-events: none !important;
}
.el-dialog__header,
.el-dialog__body {
pointer-events: all !important;
}
}
</style>

View File

@ -12,24 +12,24 @@
> >
<el-checkbox-group v-model="nameLevels"> <el-checkbox-group v-model="nameLevels">
<el-row> <el-row>
<el-checkbox :label="1">信号机名称</el-checkbox> <el-checkbox :label="1">Signal Name</el-checkbox>
</el-row> </el-row>
<el-row> <el-row>
<el-checkbox :label="11">轨道名称</el-checkbox> <el-checkbox :label="11">Section Name</el-checkbox>
</el-row> </el-row>
<el-row> <el-row>
<el-checkbox :label="7">道岔名称</el-checkbox> <el-checkbox :label="7">Turnout Name</el-checkbox>
</el-row> </el-row>
<el-row> <el-row>
<el-checkbox :label="9">道岔区段名称</el-checkbox> <el-checkbox :label="9">Turnout Section Name</el-checkbox>
</el-row> </el-row>
</el-checkbox-group> </el-checkbox-group>
<el-row class="button-group"> <el-row class="button-group">
<el-col :span="6" :offset="2"> <el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button> <el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">Confirm</el-button>
</el-col> </el-col>
<el-col :span="4" :offset="8"> <el-col :span="4" :offset="8">
<el-button :id="domIdCancel" @click="cancel"></el-button> <el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
</el-col> </el-col>
</el-row> </el-row>
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" /> <notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />

View File

@ -331,7 +331,8 @@ export default {
mapId: mapId, mapId: mapId,
simType:paramVO.type, simType:paramVO.type,
project: this.projectCode, project: this.projectCode,
projectDevice:this.$route.query.projectDevice projectDevice:this.$route.query.projectDevice,
type: this.$route.query.type
}; };
if (config) { if (config) {
if (config.client) { query.client = config.client; } if (config.client) { query.client = config.client; }

View File

@ -1007,21 +1007,21 @@ export default {
deviceCode: '' deviceCode: ''
}; };
memberMap[this.generationForm.systemType].push(memberDispatcher); memberMap[this.generationForm.systemType].push(memberDispatcher);
const memberNccDispatcher = {
id: this.getMemberId(this.generationForm.systemType),
name: '',
type: 'NCC_DISPATCHER',
deviceCode: ''
};
memberMap[this.generationForm.systemType].push(memberNccDispatcher);
const memberOccDispatcher = {
id: this.getMemberId(this.generationForm.systemType),
name: '',
type: 'OCC_DISPATCHER',
deviceCode: ''
};
memberMap[this.generationForm.systemType].push(memberOccDispatcher);
} }
const memberNccDispatcher = {
id: this.getMemberId(this.generationForm.systemType),
name: '',
type: 'NCC_DISPATCHER',
deviceCode: ''
};
memberMap[this.generationForm.systemType].push(memberNccDispatcher);
const memberOccDispatcher = {
id: this.getMemberId(this.generationForm.systemType),
name: '',
type: 'OCC_DISPATCHER',
deviceCode: ''
};
memberMap[this.generationForm.systemType].push(memberOccDispatcher);
this.stationList.forEach(station => { this.stationList.forEach(station => {
if (!station.depot) { if (!station.depot) {
const member = { const member = {