宁波三号线菜单调整

This commit is contained in:
fan 2020-09-02 18:02:19 +08:00
parent 910517e076
commit 3445f98618
6 changed files with 738 additions and 30 deletions

View File

@ -105,6 +105,10 @@
<initialzed-signal-can-block ref="initializeSignalCanBlock" />
<signal-can-block ref="signalCanBlock" />
<route-command ref="routeCommand" />
<signal-model ref="signalModel" />
<init-signal-block ref="initSignalBlock" />
<signal-block ref="signalBlock" />
<signal-detail ref="signalDetail" />
</div>
</template>
<script>
@ -133,6 +137,10 @@ import SignalGuide from './menuDialog/signalGuide';
import InitialzedSignalCanBlock from './menuDialog/initializeSignalCanBlock';
import SignalCanBlock from './menuDialog/signalCanBlock';
import RouteCommand from './menuDialog/routeCommand';
import SignalModel from './menuDialog/signalModel';
import InitSignalBlock from './menuDialog/initSignalBlock';
import SignalBlock from './menuDialog/signalBlock';
import SignalDetail from './menuDialog/signalDetail';
export default {
name: 'MenuBar',
@ -155,7 +163,11 @@ export default {
SignalGuide,
InitialzedSignalCanBlock,
SignalCanBlock,
RouteCommand
RouteCommand,
SignalModel,
InitSignalBlock,
SignalBlock,
SignalDetail
},
props: {
selected: {
@ -365,19 +377,19 @@ export default {
},
{
title: '信号指示模式',
click: this.undeveloped
click: this.setSignalModel
},
{
title: '封锁',
click: this.undeveloped
click: this.setSignalBlock
},
{
title: '解除封锁',
click: this.undeveloped
click: this.setSignalCancelBlock
},
{
title: '显示',
click: this.undeveloped
click: this.showSignalDetail
}
]
},
@ -775,19 +787,19 @@ export default {
},
{
title: '信号指示模式',
click: this.undeveloped
click: this.setSignalModel
},
{
title: '封锁',
click: this.undeveloped
click: this.setSignalBlock
},
{
title: '解除封锁',
click: this.undeveloped
click: this.setSignalCancelBlock
},
{
title: '显示',
click: this.undeveloped
click: this.showSignalDetail
}
]
},
@ -1356,6 +1368,58 @@ export default {
this.$refs.routeCommand.doShow();
}
});
},
setSignalModel() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.signalModel.doShow();
}
});
},
setSignalBlock() {
const operate = {
type: 'bar',
operation: OperationEvent.Signal.lock.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.signalBlock.doShow(operate);
}
});
},
setSignalCancelBlock() {
const operate = {
type: 'bar',
operation: OperationEvent.Signal.lock.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.signalBlock.doShow(operate);
}
});
},
showSignalDetail() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.signalDetail.doShow(operate);
}
});
}
}
};

View File

@ -0,0 +1,144 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-table :data="signalList" height="350px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="status" label="信号机封锁状态" />
<el-table-column prop="status" label="设置封锁进程" />
<el-table-column prop="status" label="解除封锁进程" />
</el-table>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="4" :offset="1">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>应用(A)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>帮助(H)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { mapGetters } from 'vuex';
export default {
name: 'InitSignalBlock',
components: {
NoticeInfo
},
data() {
return {
status: false,
signalModel: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
operate: {}
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.operate.operation === OperationEvent.Signal.lock.menu.operation ? '初始化信号机封锁' : '初始化信号机解除封锁';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
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>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.set-status-box {
position: relative;
top: 100px;
border: 1px solid #AFAFAF;
padding-left: 10px;
padding-top: 8px;
}
.set-status-title{
position: relative;
top: 115px;
background: #F0F0F0;
width: 40px;
text-align: center;
z-index: 22;
left: 10px;
}
</style>

View File

@ -1,26 +1,26 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="800px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="850px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="4" style="border-bottom: 1px solid #ACABAA;border-left: 1px solid #ACABAA;border-top: 1px solid #ACABAA;padding-left: 8px;padding-bottom: 8px;">
<el-col :span="4" class="content-left">
<el-row>
<div style="color: #000;position: relative; top: 15px;left: 5px;width: 40px;background: #F0F0F0;text-align: center;">开始</div>
<div class="signal-box-title">开始</div>
<div style="border: 1px solid #ACABAA;padding: 8px;">
<el-table :data="signalList" height="150">
<el-table-column prop="name" width="70" label="信号机" />
<el-table :data="signalList" height="184px">
<el-table-column prop="name" label="信号机" />
</el-table>
</div>
</el-row>
<el-row>
<div style="color: #000;position: relative; top: 15px;left: 5px;width: 40px;background: #F0F0F0;text-align: center;">结束</div>
<div class="signal-box-title">结束</div>
<div style="border: 1px solid #ACABAA;padding: 8px;">
<el-table :data="signalList" height="150">
<el-table-column prop="name" width="70" label="信号机" />
<el-table :data="signalList" height="184px">
<el-table-column prop="name" label="信号机" />
</el-table>
</div>
</el-row>
</el-col>
<el-col :span="6" style="padding: 30px 10px 0;border-bottom: 1px solid #ACABAA;border-right: 1px solid #ACABAA;border-top: 1px solid #ACABAA;">
<el-table :data="tempData" height="344px">
<el-col :span="6" class="path-box">
<el-table :data="tempData" height="412px">
<el-table-column prop="path" label="路径" />
<el-table-column prop="direction" label="运行方向" />
</el-table>
@ -31,11 +31,14 @@
<el-tab-pane label="设置进路" name="first">
<el-row>
<el-col :span="18">
<el-table :data="routeList" height="120px">
<el-table-column prop="name" width="140" label="进路" />
<div class="border-box">
<div class="border-box-title">CBTC</div>
<el-table :data="routeList" height="120px" style="position: relative;top: -15px;">
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="area" label="区域" />
<el-table-column prop="status" label="状态" />
</el-table>
</div>
</el-col>
<el-col :span="6">
<div class="radio-box-title">解锁类型</div>
@ -45,13 +48,16 @@
</div>
</el-col>
</el-row>
<el-row>
<el-table :data="routeList" height="120px">
<el-table-column prop="name" width="140" label="进路" />
<el-table-column prop="area" label="区域" />
<el-table-column prop="area" label="区域" />
<el-row class="border-box">
<div class="border-box-title">后备</div>
<el-table :data="routeList" height="160px" style="position: relative;top: -15px;">
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="direction" label="运行方向" />
<el-table-column prop="status" label="状态" />
<el-table-column prop="pmi" width="50" label="PMI" />
<el-table-column prop="signalModel" width="80" label="信号模式" />
</el-table>
<el-input placeholder="PMI进路选择" size="mini" style="position: relative;top: -10px;" />
</el-row>
</el-tab-pane>
<el-tab-pane label="取消进路" name="second">取消进路</el-tab-pane>
@ -121,7 +127,7 @@ export default {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '请求或允许动岔激活/取消激活';
return '进路命令';
}
},
watch: {
@ -197,6 +203,42 @@ export default {
background: #F0F0F0;
z-index: 1;
}
.border-box {
border: 1px solid #ACABAA;
padding: 0 8px;
margin-top: 20px;
}
.border-box-title {
color: #000;
position: relative;
top: -15px;
left: 5px;
width: 40px;
background: #F0F0F0;
text-align: center;
}
.signal-box-title {
color: #000;
position: relative;
top: 15px;
left: 5px;
width: 40px;
background: #F0F0F0;
text-align: center;
}
.path-box {
padding: 30px 10px 0;
border-bottom: 1px solid #ACABAA;
border-right: 1px solid #ACABAA;
border-top: 1px solid #ACABAA;
}
.content-left {
border-bottom: 1px solid #ACABAA;
border-left: 1px solid #ACABAA;
border-top: 1px solid #ACABAA;
padding-left: 8px;
padding-bottom: 8px;
}
/deep/ {
.el-radio {
color: #000;

View File

@ -0,0 +1,154 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="750px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="signalList" height="350px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="status" label="信号机封锁状态" />
<el-table-column prop="status" label="设置封锁进程" />
<el-table-column prop="status" label="解除封锁进程" />
</el-table>
</el-col>
<el-col :span="5" :offset="1">
<div class="set-status-title">命令</div>
<div class="set-status-box">
<el-radio v-model="command" :disabled="true" :label="true">确认</el-radio>
<br>
<el-radio v-model="command" :label="false">取消</el-radio>
</div>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="4" :offset="1">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>应用(A)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>帮助(H)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { mapGetters } from 'vuex';
export default {
name: 'SignalBlock',
components: {
NoticeInfo
},
data() {
return {
status: false,
command: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
operate: {}
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.operate.operation === OperationEvent.Signal.lock.menu.operation ? '确认/取消信号机封锁' : '确认/取消信号机解除封锁';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
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>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.set-status-box {
position: relative;
top: 100px;
border: 1px solid #AFAFAF;
padding-left: 10px;
padding-top: 8px;
}
.set-status-title{
position: relative;
top: 115px;
background: #F0F0F0;
width: 40px;
text-align: center;
z-index: 22;
left: 10px;
}
</style>

View File

@ -0,0 +1,152 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="800px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-table :data="signalList" height="350px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="status" label="显示" />
<el-table-column prop="status" label="错误代码" />
<el-table-column prop="status" label="引导过程" />
<el-table-column prop="status" width="160" label="区间信号机引导过程" />
<el-table-column prop="status" label="运行锁闭" />
</el-table>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="4" :offset="1">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>应用(A)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>帮助(H)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { mapGetters } from 'vuex';
export default {
name: 'InitSignalBlock',
components: {
NoticeInfo
},
data() {
return {
status: false,
signalModel: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
operate: {}
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.operate.operation === OperationEvent.Signal.lock.menu.operation ? '初始化信号机封锁' : '初始化信号机解除封锁';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
const operate = {
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid }) => {
if (valid) {
this.doClose();
}
});
},
handleClick() {
},
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>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.set-status-box {
position: relative;
top: 100px;
border: 1px solid #AFAFAF;
padding-left: 10px;
padding-top: 8px;
}
.set-status-title{
position: relative;
top: 115px;
background: #F0F0F0;
width: 40px;
text-align: center;
z-index: 22;
left: 10px;
}
</style>

View File

@ -0,0 +1,152 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="signalList" height="350px">
<el-table-column prop="id" label="ID" />
<el-table-column prop="signalModel" label="信号指示模式">
<span>灭灯模式</span>
</el-table-column>
</el-table>
</el-col>
<el-col :span="5" :offset="1">
<div class="set-status-title">命令</div>
<div class="set-status-box">
<el-radio v-model="signalModel" :disabled="true" label="lightingOff">灭灯</el-radio>
<br>
<el-radio v-model="signalModel" label="lightingOn">点灯</el-radio>
</div>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="4" :offset="1">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>应用(A)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>帮助(H)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { mapGetters } from 'vuex';
export default {
name: 'SignalModel',
components: {
NoticeInfo
},
data() {
return {
status: false,
signalModel: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '信号指示模式';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
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>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.set-status-box {
position: relative;
top: 100px;
border: 1px solid #AFAFAF;
padding-left: 10px;
padding-top: 8px;
}
.set-status-title{
position: relative;
top: 115px;
background: #F0F0F0;
width: 40px;
text-align: center;
z-index: 22;
left: 10px;
}
</style>