ningbo_01组件拆分

This commit is contained in:
dong 2022-12-12 09:30:46 +08:00
parent 3235f801a8
commit 7dbf9e5374
21 changed files with 2712 additions and 675 deletions

View File

@ -109,12 +109,12 @@ class Theme {
} }
// 加载行调菜单组件 // 加载行调菜单组件
loadDispatchWorkMenuComponent(code) { loadDispatchWorkMenuComponent(code) {
if (['02', '09', '10', '11', '16', '08', '03', '01', '04', '07', '14'].includes(code)) { if (['01', '02', '03', '04', '06', '07', '08', '09', '10', '11', '14', '16'].includes(code)) {
return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/dispatchWorkMenu`).default); return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/dispatchWorkMenu`).default);
} }
} }
loadLocalWorkMenuComponent(code) { loadLocalWorkMenuComponent(code) {
if (['02', '09', '10', '11', '16', '08', '03', '01', '04', '07', '14'].includes(code)) { if (['01', '02', '03', '04', '06', '07', '08', '09', '10', '11', '14', '16'].includes(code)) {
return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/localWorkMenu`).default); return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/localWorkMenu`).default);
} }
} }

View File

@ -30,6 +30,12 @@ export default {
defautl() { defautl() {
return {}; return {};
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
@ -71,12 +77,12 @@ export default {
}, },
methods: { methods: {
init() { init() {
console.log(123) console.log(123);
document.getElementById(this.canvasId).oncontextmenu = function (e) { document.getElementById(this.canvasId).oncontextmenu = function (e) {
return false; return false;
}; };
const prdType = this.$store.state.training.prdType; const prdType = this.work == 'localWork' ? '01' : '02';
let showMode = ''; let showMode = '';
if (prdType == '01') { if (prdType == '01') {

View File

@ -33,7 +33,7 @@
</el-row> </el-row>
</el-col> </el-col>
<el-col v-show="showExpand" :span="showExpand? 18: 0"> <el-col v-show="showExpand" :span="showExpand? 18: 0">
<map-visual ref="map" :map-data="mapData" :width="780" :height="600" /> <map-visual ref="map" :map-data="mapData" :width="780" :height="600" :work="work" />
</el-col> </el-col>
</el-row> </el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" /> <notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
@ -59,6 +59,14 @@ export default {
ConfirmTip, ConfirmTip,
MapVisual MapVisual
}, },
props: {
work: {
type: String,
default() {
return '';
}
}
},
data() { data() {
return { return {
tempData: [], tempData: [],

View File

@ -0,0 +1,435 @@
<template>
<div class="menus" :style="{width: width + 'px'}">
<menu-bar ref="menuBar" :selected="selected" :work="work" />
<menu-axle-reset ref="menuAxleReset" :selected="selected" :work="work" />
<menu-auto-trun-route ref="menuAutoTrunRoute" :selected="selected" :work="work" />
<menu-station-stand ref="menuStationStand" :selected="selected" :work="work" />
<menu-station-control ref="menuStationControl" :selected="selected" :work="work" />
<menu-station-turn-back ref="menuStationTurnBack" :selected="selected" :work="work" />
<menu-switch ref="menuSwitch" :selected="selected" :work="work" />
<menu-signal ref="menuSignal" :selected="selected" :work="work" />
<menu-section ref="menuSection" :selected="selected" :work="work" />
<menu-train ref="menuTrain" :selected="selected" :work="work" />
<menu-station ref="menuStation" :selected="selected" :work="work" />
<menu-limit ref="menuLimit" :selected="selected" :work="work" />
<menu-station-light ref="menuStationLight" :selected="selected" :work="work" />
<menu-station-pre-reset ref="menuStationPreReset" :selected="selected" :work="work" />
<!--<passive-alarm ref="passiveAlarm" />-->
<passive-contorl ref="passiveControl" pop-class="ningbo-01__systerm" :selected="selected" />
<!--<passive-Timeout ref="passiveTimeout" />-->
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import MenuSignal from './menuSignal';
import MenuAxleReset from './menuAxleReset';
import MenuAutoTrunRoute from './menuAutoTrunRoute';
import MenuStationStand from './menuStationStand';
import MenuStationControl from './menuStationControl';
import MenuSwitch from './menuSwitch';
import MenuSection from './menuSection';
import MenuTrain from './menuTrain';
import MenuStation from './menuStation';
import MenuBar from './dispatchWorkMenuBar';
import MenuLimit from './menuLimit';
import MenuStationTurnBack from './menuStationTurnBack';
import MenuStationLight from './menuStationLight';
import MenuStationPreReset from './menuStationPreReset';
// import PassiveAlarm from './passiveDialog/alarm';
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
// import PassiveTimeout from './passiveDialog/timeout';
export default {
name: 'DispatchWorkMenu',
components: {
MenuBar,
MenuAxleReset,
MenuAutoTrunRoute,
MenuSignal,
MenuSwitch,
MenuSection,
MenuStationStand,
MenuStationControl,
MenuStation,
MenuTrain,
MenuStationTurnBack,
MenuLimit,
// PassiveAlarm,
PassiveContorl,
MenuStationLight,
MenuStationPreReset
// PassiveTimeout
},
props: {
selected: {
type: Object,
default() {
return null;
}
}
},
data() {
return {
work: 'dispatchWork'
};
},
computed: {
...mapGetters('config', [
'width'
])
},
watch: {
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('config/updateMenuBar');
const _that = this;
window.onclick = function (e) {
if (!_that.$store.state.training.trainingStart) {
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
}
_that.$refs.menuAxleReset.doClose();
_that.$refs.menuAutoTrunRoute.doClose();
_that.$refs.menuStationStand.doClose();
_that.$refs.menuStationControl.doClose();
_that.$refs.menuStationTurnBack.doClose();
_that.$refs.menuSwitch.doClose();
_that.$refs.menuSignal.doClose();
_that.$refs.menuSection.doClose();
_that.$refs.menuTrain.doClose();
_that.$refs.menuStation.doClose();
_that.$refs.menuLimit.doClose();
_that.$refs.menuStationLight.doClose();
_that.$refs.menuStationPreReset.doClose();
};
});
this.$root.$on('dialogOpen', e => {
if (this.selected == e &&
this.selected &&
this.selected.instance &&
this.selected.instance.mouseEvent) {
this.selected.instance.__over = true;
this.selected.instance.mouseEvent.mouseover();
}
});
this.$root.$on('dialogClose', e => {
if (this.selected == e &&
this.selected &&
this.selected.instance &&
this.selected.instance.mouseEvent) {
this.selected.instance.__over = false;
this.selected.instance.__down = false;
this.selected.instance.mouseEvent.mouseout();
this.$jlmap.clearEvent();
}
});
},
beforeDestroy() {
this.$root.$off('dialogOpen');
this.$root.$off('dialogClose');
window.onclick = function (e) {};
}
};
</script>
<style>
.menus{
height:0px;
}
.menus .pop-menu {
background: #F0F0F0;
}
.menus .pop-menu span {
color: #000;
}
.menus .pop-menu .is-disabled span {
color: #B4B3B8;
}
.ningbo-01__systerm {
overflow: hidden !important;
}
.ningbo-01__systerm .el-dialog {
background: rgba(100, 100, 100, 0.3);
border: 2px solid rgba(144, 144, 144, 0.8);
border-radius: 6px;
color: #000;
font-size: 14px;
}
.ningbo-01__systerm .el-dialog .el-dialog__header {
padding: 10px;
height: 26px;
}
.ningbo-01__systerm .el-dialog .el-dialog__footer {
background: #F0F0F0;
opacity: 1;
}
.ningbo-01__systerm .el-dialog .el-dialog__body {
padding: 10px;
margin: 5px;
border: 2px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #F0F0F0;
opacity: 1;
}
.ningbo-01__systerm .el-dialog .el-dialog__title {
position: absolute;
top: 6px;
color: #000;
border-radius: 4px;
padding: 0px 2px;
height: 20px;
line-height: 20px
}
.ningbo-01__systerm .el-dialog .el-dialog__title::before {
content: '';
position: absolute;
top: 0;
left: 0;
filter: blur(7px);
height: 20px;
width: -webkit-fill-available;
background: rgba(190, 190, 190, 0.8);
z-index: -1;
}
.ningbo-01__systerm .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 5px;
right: 5px;
line-height: 18px;
}
.ningbo-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
font-size: 16px;
}
.ningbo-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.ningbo-01__systerm .el-dialog .el-button {
height: 32px;
line-height: 32px;
padding: 0px;
width: 80px;
border: 2px outset #E2E2E2;
border-radius: 0px !important;
color: #000;
background: #F0F0F0;
}
.ningbo-01__systerm .el-dialog .expand {
width: 120px;
}
.ningbo-01__systerm .el-dialog .el-button:focus span {
border: 1px dashed gray;
}
.ningbo-01__systerm .el-dialog .el-button:active {
border: 2px inset #E2E2E2;
}
.ningbo-01__systerm .el-dialog .el-button:disabled {
border: 2px inset #E2E2E2;
}
.ningbo-01__systerm .el-dialog .el-button:disabled span {
border: 0px;
}
.ningbo-01__systerm .el-dialog .el-input {
border: 2px inset #E9E9E9;
}
.ningbo-01__systerm .el-dialog .el-input .el-input__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.ningbo-01__systerm .el-dialog .el-input.is-disabled .el-input__inner {
background: #F0F0F0 !important;
}
.ningbo-01__systerm .el-dialog .el-textarea {
border: 2px inset #E9E9E9;
border-radius: 0px;
}
.ningbo-01__systerm .el-dialog .el-textarea .el-textarea__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.ningbo-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
background: #F0F0F0 !important;
}
.ningbo-01__systerm .el-dialog .el-table--border th.gutter {
background: #EBEADB !important;
}
.ningbo-01__systerm .el-dialog .el-table {
border: 2px inset #E9E9E9;
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .el-table .cell {
line-height: unset !important;
}
.ningbo-01__systerm .el-dialog .el-table th.is-leaf {
background: #F0F0F0 !important;
border-right: 1px solid #BDBDBD !important;
border-bottom: 1px solid #BDBDBD !important;
color: #000 !important;
height: 20px !important;
padding: 0px;
}
.ningbo-01__systerm.stand-detain-train .el-dialog .el-table th.is-leaf {
background: #fff !important;
border-right: 1px solid #fff !important;
border-bottom: 1px solid #EBEEF5 !important;
color: #000 !important;
height: 20px !important;
padding: 0px;
}
.ningbo-01__systerm.stand-detain-train .el-dialog .el-table th.el-table-column--selection{
border-right: 1px solid #e2e2e2 !important;
}
.ningbo-01__systerm.stand-detain-train .el-dialog .el-table .el-table__body-wrapper .el-table__row .el-table-column--selection {
border-right: 1px solid #e2e2e2 !important;
}
.ningbo-01__systerm .el-dialog .el-table tr td {
height: 20px !important;
padding: 0px;
}
.ningbo-01__systerm .el-dialog .el-table .el-table__empty-text {
top: 15px !important;
}
.ningbo-01__systerm .el-dialog .current-row>td {
background: #3399FF !important;
color: #fff !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__inner {
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__label {
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
background: #E6E6E6 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
color: #C5C9CC !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
position: absolute;
-webkit-box-sizing: content-box;
box-sizing: content-box;
content: "";
border: 1px solid #000;
border-left: 0;
border-top: 0;
height: 7px;
left: 4px;
top: 1px;
}
.ningbo-01__systerm .el-dialog .el-radio__inner {
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-radio__label {
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
width: 4px;
height: 4px;
border-radius: 100%;
background-color: #000 !important;
position: absolute;
left: 50%;
top: 50%;
}
.ningbo-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
background: #E6E6E6 !important;
}
.ningbo-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
color: #C5C9CC !important;
}
.ningbo-01__systerm .el-dialog .base-label {
background: #F0F0F0;
padding: 0 5px;
position: relative;
left: -15px;
top: -18px;
}
.ningbo-01__systerm .el-dialog .el-form-item label {
font-weight: normal !important;
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .context {
height: 100px;
border: 2px inset #E2E2E2;
overflow-y: scroll;
}
.ningbo-01__systerm .el-dialog .table {
margin-top: 10px;
}
.ningbo-01__systerm .el-dialog .notice {
margin-left: 62px;
line-height: 30px;
}
.ningbo-01__systerm .el-dialog .button-group {
margin-top: 10px;
}
</style>

View File

@ -0,0 +1,580 @@
<template>
<div>
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%" />
<station-control ref="stationControl" />
<detain-train-contorl ref="detainTrainContorl" />
<detain-train-contorl-up-down ref="detainTrainContorlUpDown" />
<!-- <notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" /> -->
<train-add ref="trainAdd" />
<train-transtalet ref="trainTranstalet" />
<train-delete ref="trainDelete" />
<manage-user ref="manageUser" />
<help-about ref="helpAbout" />
<area-selection ref="areaSelection" />
<operate-confirm ref="operateConfirm" />
</div>
</template>
<script>
import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew';
import StationControl from './menuDialog/stationControl';
import DetainTrainContorl from './menuDialog/detainTrainContorl';
import DetainTrainContorlUpDown from './menuDialog/detainTrainContorlUpDown';
import TrainAdd from './menuDialog/trainAdd';
import TrainTranstalet from './menuDialog/trainTranstalet';
import TrainDelete from './menuDialog/trainDelete';
import ManageUser from './menuDialog/manageUser';
import HelpAbout from './menuDialog/helpAbout';
import AreaSelection from './menuDialog/areaSelection';
import OperateConfirm from './dialog/childDialog/operateConfirm';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex';
export default {
name:'DispatchWorkMenuBar',
components: {
MenuBar,
StationControl,
DetainTrainContorl,
DetainTrainContorlUpDown,
TrainAdd,
TrainTranstalet,
TrainDelete,
ManageUser,
HelpAbout,
AreaSelection,
OperateConfirm
},
props: {
selected: {
type: Object,
default() {
return null;
}
},
work: {
type: String,
default() {
return '';
}
}
},
data() {
return {
menuNormal: [
{
title: '系统',
operate: OperationEvent.Command.mBar.system,
children: [
{
title: '登录',
click: this.undeveloped
},
{
title: '注销',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '站遥控',
operate: OperationEvent.MixinCommand.remoteControl.mbar,
click: this.stationRemoteControl
},
{
title: '区域选择',
operate: OperationEvent.Station.areaSelection.mbar,
click: this.selectedArea
},
{
type: 'separator'
},
{
title: '连接主用中心',
click: this.undeveloped
},
{
title: '连接备用中心',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '退出',
click: this.undeveloped
}
]
},
{
title: '查看',
operate: OperationEvent.Command.mBar.check,
children: [
{
title: '运行图',
click: this.undeveloped
},
{
title: '报告分析',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '视图',
operate: '',
children: [{
title: '报警',
operate: '',
click: this.undeveloped
// children: [{
// title: '123',
// operate: '',
// children: [{
// title: '12345',
// operate: '',
// click: this.undeveloped
// }]
// // click: this.undeveloped
// }]
},
{
title: '列车运行信息',
click: this.undeveloped
},
{
title: '设备状态',
click: this.undeveloped
},
{
title: '列车详细信息',
click: this.undeveloped
},
{
title: '站台详细信息',
click: this.undeveloped
}]
},
{
title: '终端站发车列表',
click: this.undeveloped
},
{
title: '详细设备状态',
click: this.undeveloped
},
{
title: '查找列车',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '显示目的地号',
click: this.undeveloped
},
{
title: '显示轨道名',
click: this.undeveloped
},
{
title: '显示道岔名',
click: this.undeveloped
},
{
title: '显示信号机名',
click: this.undeveloped
},
{
title: '显示车次窗位置',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '显示车次号',
click: this.undeveloped
},
{
title: '显示车组号',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '全屏',
click: this.undeveloped
},
{
title: '放大',
click: this.undeveloped
},
{
title: '缩小',
click: this.undeveloped
},
{
title: '恢复',
click: this.undeveloped
}
]
},
{
title: '车站定位',
operate: '',
children: [
]
},
{
title: 'ATS终端操作',
operate: '',
children: [
{
title: '当天运行车计划',
click: this.undeveloped
},
{
title: '出入库预告',
click: this.undeveloped
}
]
},
{
title: '计划车操作',
operate: '',
children: [
{
title: '添加计划车',
click: this.undeveloped
},
{
title: '平移计划车',
click: this.undeveloped
},
{
title: '删除计划车',
click: this.undeveloped
}
]
},
{
title: '批处理命令',
operate: OperationEvent.Command.mBar.detainControl,
children: [
{
title: '全线扣车',
operate: OperationEvent.StationStand.setDetainTrainAll.mbar,
click: this.undeveloped
},
{
title: '取消全线扣车',
operate: OperationEvent.StationStand.cancelDetainTrainAll.mbar,
click: this.undeveloped
},
{
title: '取消上行全线扣车',
operate: OperationEvent.StationStand.cancelUpDetainTrainAll.mbar,
click: this.undeveloped
},
{
title: '取消下行全线扣车',
operate: OperationEvent.StationStand.cancelDownDetainTrainAll.mbar,
click: this.undeveloped
}
]
},
{
title: '信息管理',
operate: '',
children: [
{
title: '调度日志',
click: this.undeveloped
},
{
title: '调度留言提醒',
click: this.undeveloped
},
{
title: '报警设置',
click: this.undeveloped
}
]
},
{
title: '帮助',
operate: '',
children: [
{
title: '关于ITS GPC 工作站',
click: this.about,
operate: OperationEvent.Command.help.about
}
]
}
]
};
},
computed:{
...mapGetters('map', [
'stationList'
])
},
created() {
this.menuNormal[2].children = this.initStationList();
},
methods:{
computedTitle(order) {
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
if (order.operate === OperationEvent.Station.stationSetCIAuto.mbar && station) {
return `设置${station.name}全站自动通过进路`;
} else if (order.operate === OperationEvent.Station.stationCancelCIAuto.mbar && station) {
return `取消${station.name}全站自动通过进路`;
} else if (order.operate === OperationEvent.Station.atsAutoControlALL.mbar && station) {
return `${station.name}全站进路交自动控`;
} else {
return '';
}
},
initStationList() {
const list = [];
this.stationList.forEach(station => {
if (station.visible) {
const node = {
title: station.name,
operate: station.code,
show: true,
click: this.mapLocation,
code: station.code
};
list.push(node);
}
});
return list;
},
//
mapLocation(code) {
if (code) {
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: code });
}
},
//
stationRemoteControl(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.stationControl.doShow(operate);
}
});
},
selectedArea(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.areaSelection.doShow(operate);
}
});
},
// 线
setDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorl.doShow(operate);
}
});
},
// 线
cancelDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorl.doShow(operate);
}
});
},
//
cancelUpDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorlUpDown.doShow(operate);
}
});
},
//
cancelDownDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorlUpDown.doShow(operate);
}
});
},
//
addPlanTrain(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainAdd.doShow(operate);
}
});
},
//
translatPlanTrain(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainTranstalet.doShow(operate);
}
});
},
//
delPlanTrain(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainDelete.doShow(operate);
}
});
},
//
userManage(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.manageUser.doShow(operate);
}
});
},
//
about(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.helpAbout.doShow(operate);
}
});
},
setAllCiAuto(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
const nextOperate = {
operation: OperationEvent.Station.stationSetCIAuto.confirm.operation,
message: `是否要执行批处理命令: 设置${station.name}自动通过进路`
};
this.$refs.operateConfirm.doShow(nextOperate);
}
});
},
setAllAutoControl(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
const nextOperate = {
operation: OperationEvent.Station.atsAutoControlALL.confirm.operation,
message: `是否要执行批处理命令: ${station.name}全站进路交自动控`
};
this.$refs.operateConfirm.doShow(nextOperate);
}
});
},
cancelAllCiAuto(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
const nextOperate = {
operation: OperationEvent.Station.stationCancelCIAuto.confirm.operation,
message: `是否要执行批处理命令: 取消${station.name}自动通过进路`
};
this.$refs.operateConfirm.doShow(nextOperate);
}
});
},
undeveloped() {
this.$refs.menuBar.doClose();
this.$alert('实现中......', '提示', {
confirmButtonText: '确定',
callback: action => {
}
});
},
blankClickClose() {
this.$refs.menuBar.doClose();
}
}
};
</script>

View File

@ -0,0 +1,435 @@
<template>
<div class="menus" :style="{width: width + 'px'}">
<menu-bar ref="menuBar" :selected="selected" :work="work" />
<menu-axle-reset ref="menuAxleReset" :selected="selected" :work="work" />
<menu-auto-trun-route ref="menuAutoTrunRoute" :selected="selected" :work="work" />
<menu-station-stand ref="menuStationStand" :selected="selected" :work="work" />
<menu-station-control ref="menuStationControl" :selected="selected" :work="work" />
<menu-station-turn-back ref="menuStationTurnBack" :selected="selected" :work="work" />
<menu-switch ref="menuSwitch" :selected="selected" :work="work" />
<menu-signal ref="menuSignal" :selected="selected" :work="work" />
<menu-section ref="menuSection" :selected="selected" :work="work" />
<menu-train ref="menuTrain" :selected="selected" :work="work" />
<menu-station ref="menuStation" :selected="selected" :work="work" />
<menu-limit ref="menuLimit" :selected="selected" :work="work" />
<menu-station-light ref="menuStationLight" :selected="selected" :work="work" />
<menu-station-pre-reset ref="menuStationPreReset" :selected="selected" :work="work" />
<!--<passive-alarm ref="passiveAlarm" />-->
<passive-contorl ref="passiveControl" pop-class="ningbo-01__systerm" :selected="selected" />
<!--<passive-Timeout ref="passiveTimeout" />-->
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import MenuSignal from './menuSignal';
import MenuAxleReset from './menuAxleReset';
import MenuAutoTrunRoute from './menuAutoTrunRoute';
import MenuStationStand from './menuStationStand';
import MenuStationControl from './menuStationControl';
import MenuSwitch from './menuSwitch';
import MenuSection from './menuSection';
import MenuTrain from './menuTrain';
import MenuStation from './menuStation';
import MenuBar from './localWorkMenuBar';
import MenuLimit from './menuLimit';
import MenuStationTurnBack from './menuStationTurnBack';
import MenuStationLight from './menuStationLight';
import MenuStationPreReset from './menuStationPreReset';
// import PassiveAlarm from './passiveDialog/alarm';
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
// import PassiveTimeout from './passiveDialog/timeout';
export default {
name: 'LocalWorkMenu',
components: {
MenuBar,
MenuAxleReset,
MenuAutoTrunRoute,
MenuSignal,
MenuSwitch,
MenuSection,
MenuStationStand,
MenuStationControl,
MenuStation,
MenuTrain,
MenuStationTurnBack,
MenuLimit,
// PassiveAlarm,
PassiveContorl,
MenuStationLight,
MenuStationPreReset
// PassiveTimeout
},
props: {
selected: {
type: Object,
default() {
return null;
}
}
},
data() {
return {
work: 'localWork'
};
},
computed: {
...mapGetters('config', [
'width'
])
},
watch: {
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('config/updateMenuBar');
const _that = this;
window.onclick = function (e) {
if (!_that.$store.state.training.trainingStart) {
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
}
_that.$refs.menuAxleReset.doClose();
_that.$refs.menuAutoTrunRoute.doClose();
_that.$refs.menuStationStand.doClose();
_that.$refs.menuStationControl.doClose();
_that.$refs.menuStationTurnBack.doClose();
_that.$refs.menuSwitch.doClose();
_that.$refs.menuSignal.doClose();
_that.$refs.menuSection.doClose();
_that.$refs.menuTrain.doClose();
_that.$refs.menuStation.doClose();
_that.$refs.menuLimit.doClose();
_that.$refs.menuStationLight.doClose();
_that.$refs.menuStationPreReset.doClose();
};
});
this.$root.$on('dialogOpen', e => {
if (this.selected == e &&
this.selected &&
this.selected.instance &&
this.selected.instance.mouseEvent) {
this.selected.instance.__over = true;
this.selected.instance.mouseEvent.mouseover();
}
});
this.$root.$on('dialogClose', e => {
if (this.selected == e &&
this.selected &&
this.selected.instance &&
this.selected.instance.mouseEvent) {
this.selected.instance.__over = false;
this.selected.instance.__down = false;
this.selected.instance.mouseEvent.mouseout();
this.$jlmap.clearEvent();
}
});
},
beforeDestroy() {
this.$root.$off('dialogOpen');
this.$root.$off('dialogClose');
window.onclick = function (e) {};
}
};
</script>
<style>
.menus{
height:0px;
}
.menus .pop-menu {
background: #F0F0F0;
}
.menus .pop-menu span {
color: #000;
}
.menus .pop-menu .is-disabled span {
color: #B4B3B8;
}
.ningbo-01__systerm {
overflow: hidden !important;
}
.ningbo-01__systerm .el-dialog {
background: rgba(100, 100, 100, 0.3);
border: 2px solid rgba(144, 144, 144, 0.8);
border-radius: 6px;
color: #000;
font-size: 14px;
}
.ningbo-01__systerm .el-dialog .el-dialog__header {
padding: 10px;
height: 26px;
}
.ningbo-01__systerm .el-dialog .el-dialog__footer {
background: #F0F0F0;
opacity: 1;
}
.ningbo-01__systerm .el-dialog .el-dialog__body {
padding: 10px;
margin: 5px;
border: 2px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #F0F0F0;
opacity: 1;
}
.ningbo-01__systerm .el-dialog .el-dialog__title {
position: absolute;
top: 6px;
color: #000;
border-radius: 4px;
padding: 0px 2px;
height: 20px;
line-height: 20px
}
.ningbo-01__systerm .el-dialog .el-dialog__title::before {
content: '';
position: absolute;
top: 0;
left: 0;
filter: blur(7px);
height: 20px;
width: -webkit-fill-available;
background: rgba(190, 190, 190, 0.8);
z-index: -1;
}
.ningbo-01__systerm .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 5px;
right: 5px;
line-height: 18px;
}
.ningbo-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
font-size: 16px;
}
.ningbo-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.ningbo-01__systerm .el-dialog .el-button {
height: 32px;
line-height: 32px;
padding: 0px;
width: 80px;
border: 2px outset #E2E2E2;
border-radius: 0px !important;
color: #000;
background: #F0F0F0;
}
.ningbo-01__systerm .el-dialog .expand {
width: 120px;
}
.ningbo-01__systerm .el-dialog .el-button:focus span {
border: 1px dashed gray;
}
.ningbo-01__systerm .el-dialog .el-button:active {
border: 2px inset #E2E2E2;
}
.ningbo-01__systerm .el-dialog .el-button:disabled {
border: 2px inset #E2E2E2;
}
.ningbo-01__systerm .el-dialog .el-button:disabled span {
border: 0px;
}
.ningbo-01__systerm .el-dialog .el-input {
border: 2px inset #E9E9E9;
}
.ningbo-01__systerm .el-dialog .el-input .el-input__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.ningbo-01__systerm .el-dialog .el-input.is-disabled .el-input__inner {
background: #F0F0F0 !important;
}
.ningbo-01__systerm .el-dialog .el-textarea {
border: 2px inset #E9E9E9;
border-radius: 0px;
}
.ningbo-01__systerm .el-dialog .el-textarea .el-textarea__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.ningbo-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
background: #F0F0F0 !important;
}
.ningbo-01__systerm .el-dialog .el-table--border th.gutter {
background: #EBEADB !important;
}
.ningbo-01__systerm .el-dialog .el-table {
border: 2px inset #E9E9E9;
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .el-table .cell {
line-height: unset !important;
}
.ningbo-01__systerm .el-dialog .el-table th.is-leaf {
background: #F0F0F0 !important;
border-right: 1px solid #BDBDBD !important;
border-bottom: 1px solid #BDBDBD !important;
color: #000 !important;
height: 20px !important;
padding: 0px;
}
.ningbo-01__systerm.stand-detain-train .el-dialog .el-table th.is-leaf {
background: #fff !important;
border-right: 1px solid #fff !important;
border-bottom: 1px solid #EBEEF5 !important;
color: #000 !important;
height: 20px !important;
padding: 0px;
}
.ningbo-01__systerm.stand-detain-train .el-dialog .el-table th.el-table-column--selection{
border-right: 1px solid #e2e2e2 !important;
}
.ningbo-01__systerm.stand-detain-train .el-dialog .el-table .el-table__body-wrapper .el-table__row .el-table-column--selection {
border-right: 1px solid #e2e2e2 !important;
}
.ningbo-01__systerm .el-dialog .el-table tr td {
height: 20px !important;
padding: 0px;
}
.ningbo-01__systerm .el-dialog .el-table .el-table__empty-text {
top: 15px !important;
}
.ningbo-01__systerm .el-dialog .current-row>td {
background: #3399FF !important;
color: #fff !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__inner {
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__label {
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
background: #E6E6E6 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
color: #C5C9CC !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
position: absolute;
-webkit-box-sizing: content-box;
box-sizing: content-box;
content: "";
border: 1px solid #000;
border-left: 0;
border-top: 0;
height: 7px;
left: 4px;
top: 1px;
}
.ningbo-01__systerm .el-dialog .el-radio__inner {
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-radio__label {
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.ningbo-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
width: 4px;
height: 4px;
border-radius: 100%;
background-color: #000 !important;
position: absolute;
left: 50%;
top: 50%;
}
.ningbo-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
background: #E6E6E6 !important;
}
.ningbo-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
color: #C5C9CC !important;
}
.ningbo-01__systerm .el-dialog .base-label {
background: #F0F0F0;
padding: 0 5px;
position: relative;
left: -15px;
top: -18px;
}
.ningbo-01__systerm .el-dialog .el-form-item label {
font-weight: normal !important;
color: #000 !important;
}
.ningbo-01__systerm .el-dialog .context {
height: 100px;
border: 2px inset #E2E2E2;
overflow-y: scroll;
}
.ningbo-01__systerm .el-dialog .table {
margin-top: 10px;
}
.ningbo-01__systerm .el-dialog .notice {
margin-left: 62px;
line-height: 30px;
}
.ningbo-01__systerm .el-dialog .button-group {
margin-top: 10px;
}
</style>

View File

@ -0,0 +1,529 @@
<template>
<div>
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%" />
<station-control ref="stationControl" />
<detain-train-contorl ref="detainTrainContorl" />
<detain-train-contorl-up-down ref="detainTrainContorlUpDown" />
<!-- <notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" /> -->
<train-add ref="trainAdd" />
<train-transtalet ref="trainTranstalet" />
<train-delete ref="trainDelete" />
<manage-user ref="manageUser" />
<help-about ref="helpAbout" />
<area-selection ref="areaSelection" :work="work" />
<operate-confirm ref="operateConfirm" />
</div>
</template>
<script>
import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew';
import StationControl from './menuDialog/stationControl';
import DetainTrainContorl from './menuDialog/detainTrainContorl';
import DetainTrainContorlUpDown from './menuDialog/detainTrainContorlUpDown';
import TrainAdd from './menuDialog/trainAdd';
import TrainTranstalet from './menuDialog/trainTranstalet';
import TrainDelete from './menuDialog/trainDelete';
import ManageUser from './menuDialog/manageUser';
import HelpAbout from './menuDialog/helpAbout';
import AreaSelection from './menuDialog/areaSelection';
import OperateConfirm from './dialog/childDialog/operateConfirm';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex';
export default {
name:'LocalWorkMenuBar',
components: {
MenuBar,
StationControl,
DetainTrainContorl,
DetainTrainContorlUpDown,
TrainAdd,
TrainTranstalet,
TrainDelete,
ManageUser,
HelpAbout,
AreaSelection,
OperateConfirm
},
props: {
selected: {
type: Object,
default() {
return null;
}
},
work: {
type: String,
default() {
return '';
}
}
},
data() {
return {
menuNormal: [
{
title: '系统',
operate: OperationEvent.Command.mBar.system,
children: [
{
title: '登录',
click: this.undeveloped
},
{
title: '注销',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '站遥控',
operate: OperationEvent.Command.mBar.remoteControl,
click: this.stationRemoteControl
},
{
title: '区域选择',
operate: OperationEvent.Station.areaSelection.mbar,
click: this.selectedArea
},
{
type: 'separator'
},
{
title: '连接主用中心',
click: this.undeveloped
},
{
title: '连接备用中心',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '退出',
click: this.undeveloped
}
]
},
{
title: '查看',
operate: OperationEvent.Command.mBar.check,
children: [
{
title: '运行图',
click: this.undeveloped
},
{
title: '报告分析',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '视图',
click: this.undeveloped,
operate: '',
children: [{
title: '报警',
click: this.undeveloped
},
{
title: '列车运行信息',
click: this.undeveloped
},
{
title: '设备状态',
click: this.undeveloped
},
{
title: '列车详细信息',
click: this.undeveloped
},
{
title: '站台详细信息',
click: this.undeveloped
}]
},
{
title: '终端站发车列表',
click: this.undeveloped
},
{
title: '详细设备状态',
click: this.undeveloped
},
{
title: '查找列车',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '显示目的地号',
click: this.undeveloped
},
{
title: '显示轨道名',
click: this.undeveloped
},
{
title: '显示道岔名',
click: this.undeveloped
},
{
title: '显示信号机名',
click: this.undeveloped
},
{
title: '显示车次窗位置',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '显示车次号',
click: this.undeveloped
},
{
title: '显示车组号',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '全屏',
click: this.undeveloped
},
{
title: '放大',
click: this.undeveloped
},
{
title: '缩小',
click: this.undeveloped
},
{
title: '恢复',
click: this.undeveloped
}
]
},
{
title: '批处理命令',
operate: OperationEvent.Command.mBar.batchProcessing,
children: [
{
title: '设置全站自动通过进路',
operate: OperationEvent.Station.stationSetCIAuto.mbar,
click: this.setAllCiAuto,
computedTitle: this.computedTitle
},
{
title: '取消全站自动通过进路',
operate: OperationEvent.Station.stationCancelCIAuto.mbar,
click: this.cancelAllCiAuto,
computedTitle: this.computedTitle
},
{
title: '全站自动交自动控',
operate: OperationEvent.Station.atsAutoControlALL.mbar,
click: this.setAllAutoControl,
computedTitle: this.computedTitle
}
]
},
{
title: '信息管理',
operate: '',
children: [
{
title: '调度日志',
click: this.undeveloped
},
{
title: '调度留言提醒',
click: this.undeveloped
},
{
title: '报警设置',
click: this.undeveloped
}
]
},
{
title: '帮助',
operate: '',
children: [
{
title: '关于ITS GPC 工作站',
click: this.about,
operate: OperationEvent.Command.help.about
}
]
}
]
};
},
computed:{
...mapGetters('map', [
'stationList'
])
},
created() {
},
methods:{
computedTitle(order) {
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
if (order.operate === OperationEvent.Station.stationSetCIAuto.mbar && station) {
return `设置${station.name}全站自动通过进路`;
} else if (order.operate === OperationEvent.Station.stationCancelCIAuto.mbar && station) {
return `取消${station.name}全站自动通过进路`;
} else if (order.operate === OperationEvent.Station.atsAutoControlALL.mbar && station) {
return `${station.name}全站进路交自动控`;
} else {
return '';
}
},
initStationList() {
const list = [];
this.stationList.forEach(station => {
if (station.visible) {
const node = {
title: station.name,
operate: station.code,
show: true,
click: this.mapLocation,
code: station.code
};
list.push(node);
}
});
return list;
},
//
mapLocation(code) {
if (code) {
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: code });
}
},
//
stationRemoteControl(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.stationControl.doShow(operate);
}
});
},
selectedArea(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.areaSelection.doShow(operate);
}
});
},
// 线
setDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorl.doShow(operate);
}
});
},
// 线
cancelDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorl.doShow(operate);
}
});
},
//
cancelUpDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorlUpDown.doShow(operate);
}
});
},
//
cancelDownDetainTrainAll(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.detainTrainContorlUpDown.doShow(operate);
}
});
},
//
addPlanTrain(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainAdd.doShow(operate);
}
});
},
//
translatPlanTrain(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainTranstalet.doShow(operate);
}
});
},
//
delPlanTrain(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainDelete.doShow(operate);
}
});
},
//
userManage(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.manageUser.doShow(operate);
}
});
},
//
about(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.helpAbout.doShow(operate);
}
});
},
setAllCiAuto(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
const nextOperate = {
operation: OperationEvent.Station.stationSetCIAuto.confirm.operation,
message: `是否要执行批处理命令: 设置${station.name}自动通过进路`
};
this.$refs.operateConfirm.doShow(nextOperate);
}
});
},
setAllAutoControl(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
const nextOperate = {
operation: OperationEvent.Station.atsAutoControlALL.confirm.operation,
message: `是否要执行批处理命令: ${station.name}全站进路交自动控`
};
this.$refs.operateConfirm.doShow(nextOperate);
}
});
},
cancelAllCiAuto(order) {
const operate = {
type: 'bar',
operation: order.operation
};
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
const nextOperate = {
operation: OperationEvent.Station.stationCancelCIAuto.confirm.operation,
message: `是否要执行批处理命令: 取消${station.name}自动通过进路`
};
this.$refs.operateConfirm.doShow(nextOperate);
}
});
},
undeveloped() {
this.$refs.menuBar.doClose();
this.$alert('实现中......', '提示', {
confirmButtonText: '确定',
callback: action => {
}
});
},
blankClickClose() {
this.$refs.menuBar.doClose();
}
}
};
</script>

View File

@ -26,37 +26,29 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '设置自动折返',
label: '设置自动折返', handler: this.handlerTurnBack,
handler: this.handlerTurnBack, cmdType: CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK
cmdType: CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK },
}, {
{ label: '取消自动折返',
label: '取消自动折返', handler: this.cancelTurnBack,
handler: this.cancelTurnBack, cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK }
} ]
],
Center: [
{
label: '设置自动折返',
handler: this.handlerTurnBack,
cmdType: CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK
},
{
label: '取消自动折返',
handler: this.cancelTurnBack,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK
}
]
}
}; };
}, },
computed: { computed: {
@ -81,6 +73,11 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode);
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;

View File

@ -27,23 +27,26 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuForce:[], menuForce:[],
menuNormal: { menuNormal: [
Local: [ {
{ label: '计轴复位',
label: '计轴复位', handler: this.handleAxleReset,
handler: this.handleAxleReset, cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET,
cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET isShow: (selected, work) => work == 'localWork'
} }
], ]
Center: [
]
}
}; };
}, },
computed: { computed: {
@ -68,6 +71,11 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce; this.menu = this.menuForce;

View File

@ -67,6 +67,14 @@ export default {
components: { components: {
NoticeInfo NoticeInfo
}, },
props: {
work: {
type: String,
default() {
return '';
}
}
},
data() { data() {
return { return {
show: false, show: false,
@ -140,7 +148,7 @@ export default {
const newStation = this.$store.getters['map/getDeviceByCode'](code); const newStation = this.$store.getters['map/getDeviceByCode'](code);
const centralizedStationCode = this.stationCentralizedMap[code]; const centralizedStationCode = this.stationCentralizedMap[code];
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode); const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') { if (this.work === 'localWork' && centralizedStation.controlMode === 'Center') {
return true; return true;
} }
if (type === 'apply') { if (type === 'apply') {
@ -163,7 +171,7 @@ export default {
const centralizedStationCode = this.stationCentralizedMap[item.code]; const centralizedStationCode = this.stationCentralizedMap[item.code];
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode); const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
const station = this.$store.getters['map/getDeviceByCode'](item.code); const station = this.$store.getters['map/getDeviceByCode'](item.code);
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') { if (this.work === 'localWork' && centralizedStation.controlMode === 'Center') {
item.apply = false; item.apply = false;
} else if (station.controller !== this.memberId) { } else if (station.controller !== this.memberId) {
item.apply = true; item.apply = true;
@ -180,7 +188,7 @@ export default {
const centralizedStationCode = this.stationCentralizedMap[item.code]; const centralizedStationCode = this.stationCentralizedMap[item.code];
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode); const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
const station = this.$store.getters['map/getDeviceByCode'](item.code); const station = this.$store.getters['map/getDeviceByCode'](item.code);
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') { if (this.work === 'localWork' && centralizedStation.controlMode === 'Center') {
item.apply = false; item.apply = false;
} else if (station.controller === this.memberId) { } else if (station.controller === this.memberId) {
item.release = true; item.release = true;

View File

@ -25,28 +25,25 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
systemName:'ningbo-01__systerm', systemName:'ningbo-01__systerm',
menuNormal: { menuNormal: [
Local: [ {
{ label: '取消全线临时限速',
label: '取消全线临时限速', handler: this.cancelSpeed,
handler: this.cancelSpeed, cmdType: CMD.LimitControl.CMD_CANCEL_ALL_LIMIT_SPEED
cmdType: CMD.LimitControl.CMD_CANCEL_ALL_LIMIT_SPEED }
} ]
],
Center: [
{
label: '取消全线临时限速',
handler: this.cancelSpeed,
cmdType: CMD.LimitControl.CMD_CANCEL_ALL_LIMIT_SPEED
}
]
}
}; };
}, },
computed: { computed: {
@ -71,6 +68,11 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
}, },
doShow(point) { doShow(point) {
this.initMenu(); this.initMenu();

View File

@ -32,6 +32,7 @@ import { mapGetters } from 'vuex';
import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic';
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 { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'SectionMenu', name: 'SectionMenu',
@ -54,70 +55,82 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '封锁',
label: '封锁', handler: this.lock,
handler: this.lock, cmdType: CMD.Section.CMD_SECTION_BLOCK,
cmdType: CMD.Section.CMD_SECTION_BLOCK isDisabled: (section, work) => {
return section.blockade === 1;
}, },
{ isShow: (section, work) => ['01', '02', '03'].includes(section.type) && work == 'localWork'
label: '解封', },
handler: this.unlock, {
cmdType: CMD.Section.CMD_SECTION_UNBLOCK label: '解封',
handler: this.unlock,
cmdType: CMD.Section.CMD_SECTION_UNBLOCK,
isDisabled: (section, work) => {
return section.blockade !== 1;
}, },
{ isShow: (section, work) => ['01', '02', '03'].includes(section.type) && work == 'localWork'
type: 'separator' },
{
type: 'separator'
},
{
label: '区故解',
handler: this.fault,
cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK,
isShow: (section, work) => ['01', '02', '03'].includes(section.type) && work == 'localWork'
},
{
label: '区段跟踪激活',
handler: this.active,
cmdType: CMD.Section.CMD_SECTION_ACTIVE,
isDisabled: (section, work) => {
return section.cutOff !== 1;
}, },
{ isShow: (section, work) => ['01', '02'].includes(section.type)
label: '区故解', },
handler: this.fault, {
cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK label: '区段跟踪切除',
handler: this.split,
cmdType: CMD.Section.CMD_SECTION_CUT_OFF,
isDisabled: (section, work) => {
return section.cutOff === 1;
}, },
{ isShow: (section, work) => ['01', '02'].includes(section.type)
label: '区段跟踪激活', },
handler: this.active, {
cmdType: CMD.Section.CMD_SECTION_ACTIVE label: '确认计轴有效',
}, handler: this.alxeEffective,
{ cmdType: CMD.Section.CMD_SECTION_COMFIRMATION_AXLE,
label: '区段跟踪切除', isShow: (section, work) => ['01', '02', '03'].includes(section.type) && work == 'dispatchWork'
handler: this.split, },
cmdType: CMD.Section.CMD_SECTION_CUT_OFF {
} label: '设置临时限速',
], handler: this.setSpeed,
Center: [ cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED,
{ isShow: (section, work) => ['01', '02', '03'].includes(section.type) && work == 'dispatchWork'
label: '区段跟踪激活', },
handler: this.active, {
cmdType: CMD.Section.CMD_SECTION_ACTIVE label: '取消临时限速',
}, handler: this.cancelSpeed,
{ cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED,
label: '区段跟踪切除', isShow: (section, work) => ['01', '02', '03'].includes(section.type) && work == 'dispatchWork'
handler: this.split, }
cmdType: CMD.Section.CMD_SECTION_CUT_OFF ],
},
{
label: '确认计轴有效',
handler: this.alxeEffective,
cmdType: CMD.Section.CMD_SECTION_COMFIRMATION_AXLE
},
{
label: '设置临时限速',
handler: this.setSpeed,
cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
},
{
label: '取消临时限速',
handler: this.cancelSpeed,
cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
}
]
},
menuForce: [ menuForce: [
{ {
label: this.$t('menu.menuSection.setFault'), label: this.$t('menu.menuSection.setFault'),
@ -163,7 +176,7 @@ export default {
mounted() { mounted() {
const isDev = process.env.NODE_ENV === 'development'; const isDev = process.env.NODE_ENV === 'development';
if (isDev) { if (isDev) {
this.menuNormal.Center.push({ this.menuNormal.push({
label: '新建计划车', label: '新建计划车',
handler: this.addPlanTrain, handler: this.addPlanTrain,
cmdType: CMD.Section.CMD_Train_Init_Plan cmdType: CMD.Section.CMD_Train_Init_Plan
@ -175,6 +188,16 @@ export default {
// //
if (this.selected.type != '04') { if (this.selected.type != '04') {
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.belongStation, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
} else { } else {
this.menu = []; this.menu = [];
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" />
<route-selection ref="routeSelection" /> <route-selection ref="routeSelection" :work="work" />
<route-un-lock ref="routeUnLock" pop-class="ningbo-01__systerm" /> <route-un-lock ref="routeUnLock" pop-class="ningbo-01__systerm" />
<route-control ref="routeControl" pop-class="ningbo-01__systerm" /> <route-control ref="routeControl" pop-class="ningbo-01__systerm" />
<route-hand-control ref="routeHandControl" system-name="ningbo-01__systerm" /> <route-hand-control ref="routeHandControl" system-name="ningbo-01__systerm" />
@ -32,6 +32,7 @@ import PasswordInput from './dialog/passwordInput';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'SignalMenu', name: 'SignalMenu',
@ -54,131 +55,94 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
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.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 },
}, {
{ type: 'separator',
type: 'separator' isShow: (selected, work) => work == 'localWork'
}, },
{ {
label: '设置自动通过进路', label: '设置自动通过进路',
handler: this.singalPassModel, handler: this.singalPassModel,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
}, },
{ {
label: '取消自动通过进路', label: '取消自动通过进路',
handler: this.singalCancelPassModel, handler: this.singalCancelPassModel,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
}, },
{ {
type: 'separator' type: 'separator',
}, isShow: (selected, work) => work == 'localWork'
{ },
label: '信号重开', {
handler: this.reopenSignal, label: '信号重开',
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL handler: this.reopenSignal,
}, cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
{ },
label: '封锁', {
handler: this.lock, label: '封锁',
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK handler: this.lock,
}, cmdType: CMD.Signal.CMD_SIGNAL_BLOCK,
{ isShow: (selected, work) => work == 'localWork'
label: '解封', },
handler: this.unlock, {
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK label: '解封',
}, handler: this.unlock,
{ cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK,
label: '引导', isShow: (selected, work) => work == 'localWork'
handler: this.guide, },
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE {
}, label: '引导',
{ handler: this.guide,
type: 'separator' cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
}, isShow: (selected, work) => work == 'localWork'
{ },
label: '进路交人工控', {
handler: this.humanControl, type: 'separator',
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING isShow: (selected, work) => work == 'localWork'
}, },
{ {
label: '进路交自动控', label: '进路交人工控',
handler: this.atsAutoControl, handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
}, },
{ {
label: '查询进路控制状态', label: '进路交自动控',
handler: this.detail, handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
} },
], {
Center: [ label: '查询进路控制状态',
{ handler: this.detail,
label: '排列进路', cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
handler: this.arrangementRoute, }
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE ],
},
{
label: '取消列车进路',
handler: this.cancelTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
},
{
label: '人解列车进路', //
handler: this.humanTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
},
{
label: '信号重开',
handler: this.reopenSignal,
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
},
{
label: '进路交人工控',
handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
},
{
label: '进路交自动控',
handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
},
{
label: '设置自动通过进路',
handler: this.singalPassModel,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
},
{
label: '取消自动通过进路',
handler: this.singalCancelPassModel,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
},
{
label: '查询进路控制状态',
handler: this.detail,
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
}
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -225,6 +189,16 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.belongStationCode, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode);
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;

View File

@ -22,6 +22,7 @@ import { OperateMode, DeviceMenu, TrainingMode } from '@/scripts/ConstDic';
// import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus'; // import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus';
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault'; import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'StationMenu', name: 'StationMenu',
components: { components: {
@ -38,52 +39,59 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '全站设置联锁自动触发',
label: '全站设置联锁自动触发', handler: this.setAutoTrigger,
handler: this.setAutoTrigger, cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER,
cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER isShow: (selected, work) => work == 'localWork'
}, },
{ {
label: '全站取消联锁自动触发', label: '全站取消联锁自动触发',
handler: this.cancelAutoTrigger, handler: this.cancelAutoTrigger,
cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER,
}, isShow: (selected, work) => work == 'localWork'
{ },
label: '上电解锁', {
handler: this.powerUnLock, label: '上电解锁',
cmdType: CMD.Station.CMD_STATION_POWER_ON_UNLOCK handler: this.powerUnLock,
} cmdType: CMD.Station.CMD_STATION_POWER_ON_UNLOCK,
// { isShow: (selected, work) => work == 'localWork'
// label: '', },
// handler: this.execKeyOperationTest, // {
// cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST // label: '',
// } // handler: this.execKeyOperationTest,
], // cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST
Center: [ // }
{ {
label: '所有进路自排关', label: '所有进路自排关',
handler: this.humanControlALL, handler: this.humanControlALL,
cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING,
}, isShow: (selected, work) => work == 'dispatchWork'
{ },
label: '所有进路自排开', {
handler: this.atsAutoControlALL, label: '所有进路自排开',
cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING handler: this.atsAutoControlALL,
} cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING,
// { isShow: (selected, work) => work == 'dispatchWork'
// label: '', }
// handler: this.execKeyOperationTest, // {
// cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST // label: '',
// } // handler: this.execKeyOperationTest,
] // cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST
}, // }
],
menuForce: [ menuForce: [
{ {
label: '设置ZC故障', label: '设置ZC故障',
@ -130,6 +138,16 @@ export default {
initMenu() { initMenu() {
if (this.selected.centralized) { if (this.selected.centralized) {
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.code, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;
const userId = this.$store.state.user.id; const userId = this.$store.state.user.id;

View File

@ -26,47 +26,44 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '紧急站控',
label: '紧急站控', handler: this.setEmergencyControl,
handler: this.setEmergencyControl, cmdType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL,
cmdType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL isDisabled: (selected, work) => {
}, console.log('🚀 ~ file: menuStationControl.vue:50 ~ data ~ selected', selected.controlMode);
{ return selected.controlMode == 'Emergency';
label: '请求站控',
handler: this.setStationControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL
},
{
label: '请求遥控',
handler: this.setCenterControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL
} }
], },
Center: [ {
{ label: '请求站控',
label: '紧急站控', handler: this.setStationControl,
handler: this.setEmergencyControl, cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL,
cmdType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL isDisabled: (selected, work) => {
}, return selected.controlMode == 'Local';
{
label: '请求站控',
handler: this.setStationControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL
},
{
label: '请求遥控',
handler: this.setCenterControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL
} }
] },
}, {
label: '请求遥控',
handler: this.setCenterControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL,
isDisabled: (selected, work) => {
return selected.controlMode == 'Center';
}
}
],
menuForce: [ menuForce: [
] ]
}; };
@ -93,6 +90,12 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce; this.menu = this.menuForce;

View File

@ -18,6 +18,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import OperateConfirm from './dialog/childDialog/operateConfirm'; import OperateConfirm from './dialog/childDialog/operateConfirm';
import ButtonConfirm from './dialog/childDialog/buttonConfirm'; import ButtonConfirm from './dialog/childDialog/buttonConfirm';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'StationStationLight', name: 'StationStationLight',
@ -33,27 +34,24 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '设置/取消强制点灯',
label: '设置/取消强制点灯', handler: this.setOrCancelForceLight,
handler: this.setOrCancelForceLight, cmdType: CMD.Station.CMD_STATION_SET_OR_CANCEL_FORCE_PHYSICAL_SIGNAL
cmdType: CMD.Station.CMD_STATION_SET_OR_CANCEL_FORCE_PHYSICAL_SIGNAL }
} ],
],
Center: [
{
label: '设置/取消强制点灯',
handler: this.setOrCancelForceLight,
cmdType: CMD.Station.CMD_STATION_SET_OR_CANCEL_FORCE_PHYSICAL_SIGNAL
}
]
},
menuForce: [ menuForce: [
] ]
}; };
@ -80,6 +78,16 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.code, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;
const userId = this.$store.state.user.id; const userId = this.$store.state.user.id;

View File

@ -14,6 +14,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
// import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; // import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import ButtonDown from './dialog/buttonDown'; import ButtonDown from './dialog/buttonDown';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'StationControlLight', name: 'StationControlLight',
@ -21,43 +22,37 @@ export default {
PopMenu, PopMenu,
ButtonDown ButtonDown
}, },
props: { props: {
selected: { selected: {
type: Object, type: Object,
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '设置',
label: '设置', handler: this.setPreReset,
handler: this.setPreReset, cmdType: CMD.Station.CMD_STATION_PRE_RESET,
cmdType: CMD.Station.CMD_STATION_PRE_RESET isShow: (selected, work) => work == 'localWork'
}, },
{ {
label: '取消', label: '取消',
handler: this.cancelPreReset, handler: this.cancelPreReset,
cmdType: CMD.Station.CMD_STATION_CANCEL_PRE_RESET cmdType: CMD.Station.CMD_STATION_CANCEL_PRE_RESET,
} isShow: (selected, work) => work == 'localWork'
], }
Center: [ ],
// {
// label: '',
// handler: this.setPreReset,
// cmdType: CMD.Station.CMD_STATION_PRE_RESET
// },
// {
// label: '',
// handler: this.cancelPreReset,
// cmdType: CMD.Station.CMD_STATION_CANCEL_PRE_RESET
// }
]
},
menuForce: [ menuForce: [
] ]
}; };
@ -84,6 +79,16 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.code, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;
const userId = this.$store.state.user.id; const userId = this.$store.state.user.id;

View File

@ -27,6 +27,7 @@ import { mapGetters } from 'vuex';
import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
// import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; // import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'StationStandMenu', name: 'StationStandMenu',
@ -47,97 +48,124 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '扣车',
label: '扣车', handler: this.setDetainTrain,
handler: this.setDetainTrain, cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN,
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN isDisabled: (stand, work) => {
const centralStation = this.$store.getters['map/getDeviceByCode'](stand.deviceStationCode);
if (centralStation.controlMode === 'Center') {
return stand.centerHoldTrain !== 0;
} else {
return stand.stationHoldTrain !== 0;
}
}, },
{ roleDisabled: this.work === 'dispatchWork'
label: '取消扣车', },
handler: this.cancelDetainTrain, {
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN label: '取消扣车',
handler: this.cancelDetainTrain,
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN,
isDisabled: (stand, work) => {
const centralStation = this.$store.getters['map/getDeviceByCode'](stand.deviceStationCode);
if (centralStation.controlMode === 'Center') {
return stand.centerHoldTrain !== 1;
} else {
return stand.stationHoldTrain !== 1;
}
}, },
{ roleDisabled: this.work === 'dispatchWork'
label: '提前发车', },
handler: this.earlyDeparture, {
cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART label: '批量扣车',
}, handler: this.setBulkBuckleTrain,
{ cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_ALL,
label: '站台详细信息', isShow: (selected, work) => work == 'dispatchWork'
handler: this.detail, },
cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS {
label: '批量取消扣车',
handler: this.cancelBulkBuckleTrain,
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_ALL,
isShow: (selected, work) => work == 'dispatchWork'
},
{
label: '提前发车',
handler: this.earlyDeparture,
cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART,
isDisabled: (stand, work) => {
return stand.trainParking !== 1;
} }
], },
Center: [ {
{ label: '设置跳停',
label: '扣车', handler: this.setJumpStop,
handler: this.setDetainTrain, cmdType:CMD.Stand.CMD_STAND_SET_JUMP_STOP,
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN isDisabled: (stand, work) => {
if (work === 'localWork') {
return false;
} else {
return stand.allSkip !== 0;
}
}, },
{ roleDisabled: this.work === 'dispatchWork',
label: '取消扣车', isShow: (selected, work) => work == 'dispatchWork'
handler: this.cancelDetainTrain, },
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN {
label: '取消跳停',
handler: this.cancelJumpStop,
cmdType:CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP,
isDisabled: (stand, work) => {
if (work === 'localWork') {
return false;
} else {
return stand.allSkip !== 1 && stand.assignSkip !== 1;
}
}, },
{ roleDisabled: this.work === 'dispatchWork',
label: '批量扣车', isShow: (selected, work) => work == 'dispatchWork'
handler: this.setBulkBuckleTrain, },
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_ALL {
}, label: '设置停站时间',
{ handler: this.setStopTime,
label: '批量取消扣车', cmdType:CMD.Stand.CMD_STAND_SET_PARK_TIME,
handler: this.cancelBulkBuckleTrain, isShow: (selected, work) => work == 'dispatchWork'
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_ALL },
}, {
{ label: '设置运行等级',
label: '提前发车', handler: this.setRunLevel,
handler: this.earlyDeparture, cmdType:CMD.Stand.CMD_STAND_SET_RUN_TIME,
cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART isShow: (selected, work) => work == 'dispatchWork'
}, },
{ {
label: '设置跳停', label: '区间列车数量限制',
handler: this.setJumpStop, handler: this.setDetainTrainAll,
cmdType:CMD.Stand.CMD_STAND_SET_JUMP_STOP cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_AUTO,
}, isShow: (selected, work) => work == 'dispatchWork'
{ },
label: '取消跳停', {
handler: this.cancelJumpStop, label: '取消区间列车数量限制',
cmdType:CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP handler: this.cancelDetainTrainAll,
}, cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_AUTO,
{ isShow: (selected, work) => work == 'dispatchWork'
label: '设置停站时间', },
handler: this.setStopTime, {
cmdType:CMD.Stand.CMD_STAND_SET_PARK_TIME label: '站台详细信息',
}, handler: this.detail,
{ cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS
label: '设置运行等级', }
handler: this.setRunLevel, ],
cmdType:CMD.Stand.CMD_STAND_SET_RUN_TIME
},
{
label: '区间列车数量限制',
handler: this.setDetainTrainAll,
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_AUTO
},
{
label: '取消区间列车数量限制',
handler: this.cancelDetainTrainAll,
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_AUTO
},
{
label: '站台详细信息',
handler: this.detail,
cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS
}
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -179,6 +207,16 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.stationCode, this.selected.deviceStationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode);
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;

View File

@ -14,6 +14,7 @@ import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
// import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; // import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import {menuOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'MenuStationTurnBack', name: 'MenuStationTurnBack',
@ -27,27 +28,24 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '设置折返策略',
label: '设置折返策略', handler: this.setBackStrategy,
handler: this.setBackStrategy, cmdType: CMD.Station.CMD_STATION_SET_TURN_BACK_STRATEGY
cmdType: CMD.Station.CMD_STATION_SET_TURN_BACK_STRATEGY }
} ],
],
Center: [
{
label: '设置折返策略',
handler: this.setBackStrategy,
cmdType: CMD.Station.CMD_STATION_SET_TURN_BACK_STRATEGY
}
]
},
menuForce: [ menuForce: [
] ]
}; };
@ -74,6 +72,16 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.code, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode);
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;

View File

@ -29,6 +29,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { DeviceMenu, OperateMode, TrainingMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode, TrainingMode } 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';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
export default { export default {
name: 'SwitchMenu', name: 'SwitchMenu',
@ -49,96 +50,99 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
{ label: '定操',
label: '定操', handler: this.locate,
handler: this.locate, cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION,
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION isDisabled: (station, work) => {
}, return station.normalPosition === 1;
{
label: '反操',
handler: this.reverse,
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
},
{
label: '道岔单锁',
handler: this.lock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
},
{
label: '道岔单解',
handler: this.unlock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK
},
{
label: '道岔封锁',
handler: this.block,
cmdType: CMD.Switch.CMD_SWITCH_BLOCK
},
{
label: '道岔解封',
handler: this.unblock,
cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK
} }
], },
Center: [ {
{ label: '反操',
label: '定操', handler: this.reverse,
handler: this.locate, cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION,
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION isDisabled: (station, work) => {
}, return station.reversePosition === 1;
{
label: '反操',
handler: this.reverse,
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
},
// {
// label: '',
// handler: this.lock,
// cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
// },
{
type: 'separator'
},
{
label: '区段激活',
handler: this.active,
cmdType: CMD.Switch.CMD_SWITCH_ACTIVE
},
{
label: '区段切除',
handler: this.split,
cmdType: CMD.Switch.CMD_SWITCH_CUT_OFF
},
{
type: 'separator'
},
{
label: '确认计轴有效',
handler: this.alxeEffective,
cmdType: CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE
},
{
label: '设置临时限速',
handler: this.setSpeed,
cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED
} }
// { },
// type: 'separator' {
// }, label: '道岔单锁',
// { handler: this.lock,
// label: '', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK,
// handler: this.undeveloped, isShow: (selected, work) => work == 'localWork'
// cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED },
// } {
] label: '道岔单解',
}, handler: this.unlock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK,
isShow: (selected, work) => work == 'localWork'
},
{
label: '道岔封锁',
handler: this.block,
cmdType: CMD.Switch.CMD_SWITCH_BLOCK,
isShow: (selected, work) => work == 'localWork'
},
{
label: '道岔解封',
handler: this.unblock,
cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK,
isShow: (selected, work) => work == 'localWork'
},
{
type: 'separator',
isShow: (selected, work) => work == 'dispatchWork'
},
{
label: '区段激活',
handler: this.active,
cmdType: CMD.Switch.CMD_SWITCH_ACTIVE,
isShow: (selected, work) => work == 'dispatchWork'
},
{
label: '区段切除',
handler: this.split,
cmdType: CMD.Switch.CMD_SWITCH_CUT_OFF,
isShow: (selected, work) => work == 'dispatchWork'
},
{
type: 'separator',
isShow: (selected, work) => work == 'dispatchWork'
},
{
label: '确认计轴有效',
handler: this.alxeEffective,
cmdType: CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE,
isShow: (selected, work) => work == 'dispatchWork'
},
{
label: '设置临时限速',
handler: this.setSpeed,
cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED,
isShow: (selected, work) => work == 'dispatchWork'
}
// {
// type: 'separator'
// },
// {
// label: '',
// handler: this.undeveloped,
// cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED
// }
],
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -180,6 +184,16 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
let status = judgeStationControl(this.selected.belongStationCode, this.selected.stationCode, this.work);
if (menuItem.roleDisabled) {
status = true;
}
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
if (this.$store.state.training.mode === TrainingMode.NORMAL) { if (this.$store.state.training.mode === TrainingMode.NORMAL) {
const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](this.selected.stationCode);
const memberData = this.$store.state.training.memberData; const memberData = this.$store.state.training.memberData;

View File

@ -55,150 +55,83 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [
Local: [ {
// { label: '设置车组号',
// label: '', handler: this.addTrainId,
// handler: this.addTrainId, cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { label: '删除车组号',
// label: '', handler: this.delTrainId,
// handler: this.delTrainId, cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { label: '移动车组号',
// label: '', handler: this.moveTrainId,
// handler: this.moveTrainId, cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { type: 'separator'
// label: '', },
// handler: this.addPlanTrain, {
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan label: '设置计划车',
// }, handler: this.setPlanTrain,
// { cmdType: CMD.TrainWindow.CMD_TRAIN_SET_PLAN
// type: 'separator' },
// }, {
// { label: '设置头码车',
// label: '', handler: this.setHeadTrain,
// handler: this.setPlanTrain, cmdType: CMD.TrainWindow.CMD_TRAIN_SET_HEAD
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { label: '设置人工车',
// label: '', handler: this.setWorkTrain,
// handler: this.setHeadTrain, cmdType: CMD.TrainWindow.CMD_TRAIN_SET_MANUAL
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { label: '设乘务组号',
// label: '', handler: this.undeveloped,
// handler: this.setWorkTrain, cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { type: 'separator'
// label: '', },
// handler: this.undeveloped, {
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan label: '标记ATP切除',
// }, handler: this.setTrainATPdel,
// { cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// type: 'separator' },
// }, {
// { label: '标记ATP恢复',
// label: 'ATP', handler: this.setTrainATPRec,
// handler: this.setTrainATPdel, cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan },
// }, {
// { type: 'separator'
// label: 'ATP', },
// handler: this.setTrainATPRec, {
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan label: '旅行冲突列车',
// }, handler: this.undeveloped,
// { cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// type: 'separator' },
// }, {
// { label: '列车信息',
// label: '', handler: this.undeveloped,
// handler: this.undeveloped, cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan }
// }, ],
// {
// label: '',
// handler: this.undeveloped,
// cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
// }
],
Center: [
{
label: '设置车组号',
handler: this.addTrainId,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '删除车组号',
handler: this.delTrainId,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '移动车组号',
handler: this.moveTrainId,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
{
label: '设置计划车',
handler: this.setPlanTrain,
cmdType: CMD.TrainWindow.CMD_TRAIN_SET_PLAN
},
{
label: '设置头码车',
handler: this.setHeadTrain,
cmdType: CMD.TrainWindow.CMD_TRAIN_SET_HEAD
},
{
label: '设置人工车',
handler: this.setWorkTrain,
cmdType: CMD.TrainWindow.CMD_TRAIN_SET_MANUAL
},
{
label: '设乘务组号',
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
{
label: '标记ATP切除',
handler: this.setTrainATPdel,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '标记ATP恢复',
handler: this.setTrainATPRec,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
{
label: '旅行冲突列车',
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '列车信息',
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
}
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -303,6 +236,11 @@ export default {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = [];
this.menuNormal.forEach(menuItem => {
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.push(menuItem);
});
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
if (!this.$store.state.scriptRecord.bgSet) { if (!this.$store.state.scriptRecord.bgSet) {