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

This commit is contained in:
joylink_cuiweidong 2022-10-24 18:21:16 +08:00
commit 6d20dcb132
21 changed files with 3321 additions and 730 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,278 @@
<template>
<div id="menuBarDatie">
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;top: 30px;"/>
<station-control-convert ref="stationControlConvert" />
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
<view-name ref="viewName" />
<train-add ref="trainAdd" />
<train-transtalet ref="trainTranstalet" />
<train-delete ref="trainDelete" />
<manage-user ref="manageUser" />
<train-fixed-path-pane ref="trainFixedPathPane" />
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import StationControlConvert from './menuDialog/stationControlConvert';
import TrainAdd from './menuDialog/trainAdd';
import TrainTranstalet from './menuDialog/trainTranstalet';
import TrainDelete from './menuDialog/trainDelete';
import PasswordBox from './menuDialog/passwordBox';
import ViewName from './menuDialog/viewName';
import ManageUser from './menuDialog/manageUser';
import TrainFixedPathPane from './menuDialog/trainFixedPathPane';
import { EventBus } from '@/scripts/event-bus';
export default {
name: 'CtcWorkMenuBar',
components: {
MenuBar,
StationControlConvert,
PasswordBox,
ViewName,
TrainAdd,
TrainTranstalet,
TrainDelete,
ManageUser,
TrainFixedPathPane
},
data() {
return {
menuNormal: [
{
title: '登录',
operate: '',
children: [
{
title: '登录',
click: this.undeveloped
},
{
title: '注销',
click: this.undeveloped
},
{
title: '退出',
click: this.undeveloped
}
]
},
{
title: '显示',
operate: '',
children: [
{
title: '工具栏',
operate: '',
children: [
{
title: '标准按钮',
click: this.undeveloped
},
{
title: '签收栏',
click: this.undeveloped
},
{
title: '显示系统信息窗口',
click: this.undeveloped
},
{
title: '显示进路序列管理窗口',
click: this.bottomTableShowOrHidden
},
{
title: '显示信号员计划表',
click: this.undeveloped
},
{
title: '显示信号员注意事项',
click: this.undeveloped
}
]
},
{
title: '站场图',
click: this.undeveloped
},
{
title: '行车日志',
click: this.undeveloped
}
]
},
{
title: '工具',
operate: '',
hide: true,
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: '运统46',
click: this.undeveloped
},
{
title: '站场图回放',
click: this.undeveloped
},
{
title: '列控区间占用逻辑检查',
click: this.undeveloped
},
{
type: 'separator'
},
{
title: '更新数据',
click: this.updateTrainFixedPath
},
{
title: '列车固定径路',
click: this.trainFixedPathPane
},
{
type: 'separator'
},
{
title: '用户管理',
click: this.undeveloped
},
{
title: '选项',
click: this.undeveloped
},
{
type: 'separator'
},
{
type: '时钟显示',
click: this.undeveloped
}
]
},
{
title: '调试',
operate: '',
children: []
},
{
title: '窗口',
operate: '',
children: []
},
{
title: '帮助',
operate: '',
children: []
}
]
};
},
computed: {
...mapGetters('map', [
'stationList'
])
},
methods: {
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 });
}
},
getLoginResult(operate) {
/** 密码校验*/
if (operate.operation == OperationEvent.StationControl.forcedStationControl.passwordConfirm.operation) {
if (operate.success) {
/** 校验成功*/
this.$refs.stationControlConvert.doShow({ operation: OperationEvent.StationControl.forcedStationControl.mbar.operation });
}
}
},
blankClickClose() {
this.$refs.menuBar.doClose();
},
updateTrainFixedPath() {
const stationCode = this.$store.state.training.roleDeviceCode;
commitOperate(menuOperate.CTC.updateTrainFixedPath2Station, { stationCode: stationCode }, 3).then(({valid, response}) => {
if (valid) {
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
}
});
},
trainFixedPathPane() {
const stationCode = this.$store.state.training.roleDeviceCode;
this.$refs.trainFixedPathPane.doShow(stationCode);
},
bottomTableShowOrHidden() {
EventBus.$emit('bottomTableShowOrHidden');
},
undeveloped() {
this.$refs.menuBar.doClose();
this.$alert('实现中......', '提示', {
confirmButtonText: '确定',
callback: action => {
}
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
#menuBarDatie{
line-height:30px;
}
#menuBarDatie #menuBar .menu-li-block .label{
padding: 0px 30px 0px 5px !important;
}
.img-box{
width: 20px;
height: 20px;
margin-top: 30px;
}
</style>

View File

@ -11,7 +11,7 @@
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<!-- 密码校验 --> <!-- 密码校验 -->
<el-row> <el-row style="display: flex;justify-content: space-around;align-items: center;">
<el-input v-model="encryptionPassword" placeholder="" size="medium" :disabled="true" style="width: 180px;display: inline-block;float: left;" /> <el-input v-model="encryptionPassword" placeholder="" size="medium" :disabled="true" style="width: 180px;display: inline-block;float: left;" />
<el-button @click="backSpace">退格</el-button> <el-button @click="backSpace">退格</el-button>
</el-row> </el-row>
@ -130,7 +130,7 @@ export default {
this.title = title; this.title = title;
this.operate = operate || {}; this.operate = operate || {};
if (operate.operateNext) { if (operate.operateNext) {
console.log(this.operation , operate.operation) console.log(this.operation, operate.operation);
this.operation = operate.operateNext; this.operation = operate.operateNext;
} else { } else {
this.operation = operate.operation; this.operation = operate.operation;
@ -287,8 +287,10 @@ export default {
} }
.datie-02__systerm .el-dialog .button-group { .datie-02__systerm .el-dialog .button-group {
font-size:0; font-size:0;
margin-top:2px; margin-top:2px;
display: flex;
justify-content: space-around;
} }
/* /*

View File

@ -1,13 +1,885 @@
<template> <template>
<div /> <div class="menus" :style="{width: width + 'px'}">
<menu-bar ref="menuBar" :date-strin="dateString1" :selected="selected" />
<menu-station-stand ref="menuStationStand" :selected="selected" :work="'dispatchWork'" />
<menu-switch ref="menuSwitch" :selected="selected" :work="'dispatchWork'" />
<menu-signal ref="menuSignal" :selected="selected" :work="'dispatchWork'" />
<menu-section ref="menuSection" :selected="selected" :work="'dispatchWork'" />
<menu-train ref="menuTrain" :selected="selected" :work="'dispatchWork'" />
<menu-station ref="menuStation" :selected="selected" :work="'dispatchWork'" />
<passive-alarm ref="passiveAlarm" />
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
<passive-Timeout ref="passiveTimeout" />
<bottom-table ref="bottomTable" />
<div id="playBtn" />
</div>
</template> </template>
<script> <script>
import { mapGetters, mapState } from 'vuex';
import { btts } from '@/utils/baidu_tts_cors';
import { getBaiduToken } from '@/api/voice';
import MenuSignal from './menuSignal';
import MenuStationStand from './menuStationStand';
import MenuSwitch from './menuSwitch';
import MenuSection from './menuSection';
import MenuTrain from './menuTrain';
import MenuStation from './menuStation';
import MenuBar from './dispatchWorkMenuBar';
import PassiveAlarm from './passiveDialog/alarm';
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
import PassiveTimeout from './passiveDialog/timeout';
import { timestampFormat } from '@/utils/date';
import BottomTable from './bottomTable';
import { deviceFaultType, deviceType} from '@/scripts/cmdPlugin/Config';
export default { export default {
name: 'DispatchWorkMenu' name: 'DispatchWorkMenu',
components: {
MenuBar,
MenuSignal,
MenuSwitch,
MenuSection,
MenuStationStand,
MenuStation,
MenuTrain,
PassiveAlarm,
PassiveContorl,
PassiveTimeout,
BottomTable
},
props: {
selected: {
type: Object,
default() {
return null;
}
}
},
data() {
return {
showCentralizedStationCode: '',
tipContentList:[],
time: '00:00:00',
dateString: '',
dateString1: '',
audio: null,
voiceBroadcastToken: ''
};
},
computed: {
...mapGetters('config', [
'width'
]),
...mapState('socket', [
'dispatchCommandMsg'
]),
hasCommandMsg() {
let status = false;
if (this.dispatchCommandMsg) {
status = true;
}
return status;
},
isCtc() {
return this.$route.query.ctc;
},
isDispStation() {
return this.$route.query.dispatcherStation;
}
},
watch: {
isShowBar(val) {
val && this.$store.dispatch('config/updateMenuBar');
},
'$store.state.socket.simulationTimeSync': function (time) { // 仿
this.$store.dispatch('training/setInitTime', time);
this.initDate(time);
},
'$store.state.socket.voiceBroadcastChange': function() {
this.$store.state.socket.voiceBroadcastMsgs.forEach(msgCode => {
const msg = this.$store.state.socket.railCtcRunplanInitMsg[msgCode];
const station = this.$store.getters['map/getDeviceByCode'](msg.arriveRunPlan.stationCode);
const text = station.name + msg.arriveRunPlan.tripNumber + '次发车预告';
this.speechSynthesis(text);
});
},
'$store.state.socket.simulationAlarmInfo': function(val) {
(val || []).forEach(item => {
if (!item.confirmed) {
const device = this.$store.getters['map/getDeviceByCode'](item.deviceCode);
let fault = '';
deviceFaultType[device._type].forEach(deviceFault=>{
if (deviceFault.value == item.description) {
fault = deviceFault.label;
}
});
if ( item.description == 'FAULT_LOCK' ) { fault = '故障锁闭'; }
this.tipContentList.push({time:item.time, message:deviceType[device._type] + (device.name || device.groupNumber) + fault});
if (this.tipContentList.length > 15) {
this.tipContentList.shift();
}
}
});
},
'$store.state.socket.simulationReset':function(val) {
this.tipContentList = [];
}
},
mounted() {
console.log('---------------------dis');
this.group = this.$route.query.group;
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.menuStationStand.doClose();
_that.$refs.menuSwitch.doClose();
_that.$refs.menuSignal.doClose();
_that.$refs.menuSection.doClose();
_that.$refs.menuTrain.doClose();
_that.$refs.menuStation.doClose();
};
});
},
beforeDestroy() {
window.onclick = function (e) {};
this.$store.dispatch('map/setPictureDeviceMap', {});
},
methods: {
async speechSynthesis(text) {
if (!this.voiceBroadcastToken) {
const resp = await getBaiduToken();
this.voiceBroadcastToken = resp.data;
}
const that = this;
//
// https://ai.baidu.com/docs#/TTS-API/41ac79a6
this.audio = btts({
tex: text,
tok: that.voiceBroadcastToken,
spd: 5,
pit: 5,
vol: 15,
per: 4
}, {
volume: 0.3,
autoDestory: true,
timeout: 10000,
hidden: false,
onInit: function (htmlAudioElement) {},
onSuccess: function(htmlAudioElement) {
this.audio = htmlAudioElement;
this.audio.play();
// playBtn.innerText = '';
},
onError: function(text) { that.$message.error(text); that.voiceBroadcastToken = ''; },
onTimeout: function () { that.$message.error('合成语音超时!'); }
});
},
zhanjiantouming() {
this.$store.dispatch('map/setPictureDeviceMap', {});
this.showCentralizedStationCode = this.$store.state.map.showCentralizedStationCode || this.showCentralizedStationCode;
const mapDevice = this.$store.state.map.mapDevice;
const list = [];
for (const key in mapDevice) {
list.push(mapDevice[key]);
}
if (this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCode === this.showCentralizedStationCode && picture.type === 'lucency');
if (picture) {
this.$jlmap.updateShowStation(list, '');
this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
deviceList.push(deviceCode);
}
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
}
}
},
danzhanxianshi() {
this.$store.dispatch('map/setPictureDeviceMap', {});
const mapDevice = this.$store.state.map.mapDevice;
const map = this.$store.state.map.map;
const list = [];
for (const key in mapDevice) {
list.push(mapDevice[key]);
}
if (this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCode === this.showCentralizedStationCode && picture.type === 'chainStation');
if (picture) {
this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
deviceList.push(deviceCode);
}
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
}
} else {
this.$jlmap.updateShowStation(list, this.$store.state.map.showCentralizedStationCode || this.showCentralizedStationCode);
this.$jlmap.setCenter(this.$store.state.map.showCentralizedStationCode || this.showCentralizedStationCode);
this.$jlmap.updateTransform(map.scaling, map.origin);
}
},
initDate(date) {
this.time = timestampFormat('HH:mm:ss', date);
this.dateString = timestampFormat('YYYYMMDD', date);
this.dateString1 = timestampFormat('YYYY年MM月DD日', date);
},
noticeInfo() {
this.$refs.noticeInfo.doShow();
},
closeStageFlash() {
const sendRunplan = document.getElementById('stageRunplanOut').className;
document.getElementById('stageRunplanOut').className = sendRunplan.replace('active', '');
const stationCode = this.$store.state.training.roleDeviceCode;
this.$store.dispatch('socket/deleteRailwaySimulationRunplan', stationCode);
}
}
}; };
</script> </script>
<style lang="scss" scoped>
<style scoped> .redFlick {
background: red;
}
@keyframes fade {
from {
opacity: 1.0;
}
50% {
opacity: 0.2;
}
to {
opacity: 1.0;
}
}
.flicker {
animation: fade 600ms infinite;
}
</style>
<style>
.menus .pop-menu {
background: #F0F0F0;
}
.menus .pop-menu span {
color: #000;
}
.menus .pop-menu .is-disabled span {
color: #B4B3B8;
}
.chengdou-03__systerm {
overflow: hidden !important;
}
.chengdou-03__systerm .el-dialog {
background: #0055E8;
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
border: 1px solid rgb(69, 134, 247);
border-radius: 6px;
font-size: 13px !important;
color: #000;
}
.chengdou-03__systerm .el-dialog span {
font-size: 13px !important;
line-height: 22px;
}
.chengdou-03__systerm .el-dialog span .el-icon-arrow-up{
line-height: 18px;
}
.chengdou-03__systerm .el-dialog .el-dialog__footer {
background: #ECE9D8;
opacity: 1;
}
.chengdou-03__systerm .el-dialog .el-dialog__body {
padding: 20px;
margin: 0px 3px 3px;
border: 2px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #ECE9D8;
opacity: 1;
}
.chengdou-03__systerm .el-dialog .el-dialog__title {
font-size: 16px;
color: #fff;
position: absolute;
top: 4px;
left: 7px;
}
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 6px;
right: 3px;
line-height: 16px;
}
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
font-size: 16px;
}
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.chengdou-03__systerm .el-dialog .el-button {
height: 24px;
line-height: 22px;
padding: 0px;
width: 80px;
border: 2px outset #E2E2E2;
border-radius: 4px !important;
color: #000;
background: #F0F0F0;
}
.chengdou-03__systerm .el-dialog .expand {
width: 120px;
}
.chengdou-03__systerm .el-dialog .el-button:focus span {
border: 1px dashed gray;
}
.chengdou-03__systerm .el-dialog .el-button:active {
border: 2px inset #E2E2E2;
}
.chengdou-03__systerm .el-dialog .el-button:disabled {
border: 2px inset #E2E2E2;
}
.chengdou-03__systerm .el-dialog .el-button:disabled span {
border: 0px;
}
.chengdou-03__systerm .el-dialog .el-input {
border: 2px inset #E9E9E9;
height: 22px !important;
line-height: 22px !important;
}
.chengdou-03__systerm .el-dialog .el-input__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
height: 22px !important;
line-height: 22px !important;
}
.chengdou-03__systerm .el-dialog .el-input.is-disabled .el-input__inner {
background: #F0F0F0 !important;
}
.chengdou-03__systerm .el-dialog .el-textarea {
border: 2px inset #E9E9E9;
border-radius: 0px;
}
.chengdou-03__systerm .el-dialog .el-textarea .el-textarea__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.chengdou-03__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
background: #F0F0F0 !important;
}
.chengdou-03__systerm .el-dialog .el-table--border th.gutter {
background: #EBEADB !important;
}
.chengdou-03__systerm .el-dialog .el-table {
border: 2px inset #E9E9E9;
color: #000 !important;
}
.chengdou-03__systerm .el-dialog .el-table .cell {
height: 22px;
line-height: 22px;
}
.chengdou-03__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;
}
.chengdou-03__systerm .el-dialog .el-table tr td {
height: 20px !important;
padding: 0px;
}
.chengdou-03__systerm .el-dialog .el-table .el-table__empty-text {
top: 15px !important;
}
.chengdou-03__systerm .el-dialog .current-row>td {
background: #3399FF !important;
color: #fff !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox__inner {
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox__label {
color: #000 !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
background: #E6E6E6 !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
color: #C5C9CC !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__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;
}
.chengdou-03__systerm .el-dialog .el-radio__inner {
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__systerm .el-dialog .el-radio__label {
color: #000 !important;
}
.chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__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%;
}
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
background: #E6E6E6 !important;
}
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
color: #C5C9CC !important;
}
.chengdou-03__systerm .el-dialog .base-label {
background: rgba(0, 0, 0, x);
position: relative;
left: -15px;
top: -18px;
}
.chengdou-03__systerm .el-dialog .el-form-item label {
font-weight: normal !important;
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog {
background: rgba(100, 100, 100, 0.3);
border: 2px solid rgb(144, 144, 144, 0.8);
border-radius: 6px;
color: #000;
font-size: 14px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__header {
padding: 5px;
height: 26px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__footer {
background: #F0F0F0;
opacity: 1;
}
.fuzhou-01__systerm .el-dialog .el-dialog__body {
padding-top: 10px;
padding-bottom: 10px;
padding-left: 5px;
padding-right: 5px;
margin: 0px 5px 5px;
border: 2px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #F0F0F0;
opacity: 1;
}
.fuzhou-01__systerm .el-dialog .el-dialog__title {
position: absolute;
top: 4px;
color: #000;
border-radius: 4px;
padding: 0px 2px;
height: 20px;
line-height: 20px
}
.fuzhou-01__systerm .el-dialog .el-dialog__title::before {
content: '';
position: absolute;
top: 0;
left: 0;
-webkit-filter: blur(10px);
filter: blur(10px);
height: 20px;
width: -webkit-fill-available;
background: rgba(128, 128, 128, 0.8);
z-index: -1;
}
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 4px;
right: 5px;
line-height: 16px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
font-size: 16px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.fuzhou-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;
}
.fuzhou-01__systerm .el-dialog .el-button:focus span {
border: 1px dashed gray;
}
.fuzhou-01__systerm .el-dialog .el-button:active {
border: 2px inset #E2E2E2;
}
.fuzhou-01__systerm .el-dialog .el-button:disabled {
border: 2px inset #E2E2E2;
}
.fuzhou-01__systerm .el-dialog .el-button:disabled span {
border: 0px;
}
.fuzhou-01__systerm .el-dialog .el-input {
border: 2px inset #E9E9E9;
}
.fuzhou-01__systerm .el-dialog .el-input .el-input__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.fuzhou-01__systerm .el-dialog .el-input.is-disabled .el-input__inner {
background: #F0F0F0 !important;
}
.fuzhou-01__systerm .el-dialog .el-textarea {
border: 2px inset #E9E9E9;
border-radius: 0px;
}
.fuzhou-01__systerm .el-dialog .el-textarea .el-textarea__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.fuzhou-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
background: #F0F0F0 !important;
}
.fuzhou-01__systerm .el-dialog .el-table {
border: 2px inset #E9E9E9;
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .el-table .cell {
line-height: unset !important;
}
.fuzhou-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;
}
.fuzhou-01__systerm .el-dialog .el-table tr td {
height: 20px !important;
padding: 0px;
}
.fuzhou-01__systerm .el-dialog .el-table .el-table__empty-text {
top: 15px !important;
}
.fuzhou-01__systerm .el-dialog .current-row>td {
background: #3399FF !important;
color: #fff !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox__inner {
border: 1px inset #dcdfe6 !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox__label {
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
background: #E6E6E6 !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
color: #C5C9CC !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.fuzhou-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;
}
.fuzhou-01__systerm .el-dialog .el-radio__inner {
border: 1px inset #dcdfe6 !important;
}
.fuzhou-01__systerm .el-dialog .el-radio__label {
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.fuzhou-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%;
}
.fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
background: #E6E6E6 !important;
}
.fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
color: #C5C9CC !important;
}
.fuzhou-01__systerm .el-dialog .base-label {
background: rgb(240 240 240);
position: relative;
}
.fuzhou-01__systerm .el-dialog .el-form-item label {
font-weight: normal !important;
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .context {
height: 100px;
border: 2px inset #E2E2E2;
overflow-y: scroll;
}
.fuzhou-01__systerm .el-dialog .table {
margin-top: 10px;
}
.fuzhou-01__systerm .el-dialog .notice {
margin-left: 62px;
line-height: 30px;
}
.fuzhou-01__systerm .el-dialog .button-group {
margin-top: 10px;
}
.img-box{
width: 28px;
height: 28px;
border: 2px #ccc outset;
margin-top: 0;
background: #fff;
cursor: pointer;
}
.img-box:active{
border: 2px #ccc inset;
}
.img-box:hover{
border: 2px #ccc inset;
}
#stageRunplanOut{
width: 100px;height: 25px;line-height: 21px;text-align: center;margin-left: 100px;
}
#stageRunplanOut.active{
animation:changeColor 1s infinite;
-moz-animation:changeColor 1s infinite; /* Firefox */
-webkit-animation:changeColor 1s infinite; /* Safari and Chrome */
}
@keyframes changeColor
{
0% {background:#f0f0f0;}
50% {background:#ff1900;}
100% {background:#f0f0f0;}
}
@-moz-keyframes changeColor /* Firefox */
{
0% {background:#f0f0f0;}
50% {background:#ff1900;}
100% {background:#f0f0f0;}
}
@-webkit-keyframes changeColor /* Safari and Chrome */
{
0% {background:#f0f0f0;}
50% {background:#ff1900;}
100% {background:#f0f0f0;}
}
.simulationAlarmInfo{
position: absolute;
width: 320px;
background: #cb204d;
height: 100px;
z-index: 2;
top: 0px;
left: 0px;
padding: 5px;
overflow:auto;
}
.eachTipContent{margin-top:5px;font-size:14px;}
.simulationAlarmInfo::-webkit-scrollbar {
width: 5px;
}
.simulationAlarmInfo::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #c3c3c3;
}
.simulationAlarmInfo::-webkit-scrollbar-track {
border-radius: 0;
background: #cb204d;
}
.simulationTellInfo{
position: absolute;
width: 328px;
top: 0px;
right: 0px;
padding: 0px 0px 0px 0px;
overflow: auto;
background: #c3c3c3;
z-index: 2;
display: inline-block;
font-size: 0;
}
.simulationDeviceInfo{
position: absolute;
width: 328px;
height: 100px;
top: 33px;
right:0px;
padding: 5px;
overflow:auto;
background: #c3c3c3;
z-index: 2;
}
.simulationTellInfoTop{
display: inline-block;
font-size: 0;
}
.simulationTellInfoTopEach{
padding: 6px 11px;
display: inline-block;
background: #dedede;
font-size: 15px;
border-top:2px #9c868b solid;
border-left:2px #9c868b solid;
border-right:2px #ecfbe2 solid ;
border-bottom:2px #ecfbe2 solid;
}
.backRed{background: #ff0000;}
.backYellow{background: #ffff00;}
.backGreen{background: #00ff00;}
</style> </style>

View File

@ -1,57 +1,15 @@
<template> <template>
<div id="menuBarChengdu3"> <div id="menuBarDatie">
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;"/> <menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%;" />
<station-control-convert ref="stationControlConvert" />
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
<view-name ref="viewName" />
<train-add ref="trainAdd" />
<train-transtalet ref="trainTranstalet" />
<train-delete ref="trainDelete" />
<manage-user ref="manageUser" />
<help-about ref="helpAbout" />
<set-limit-speed ref="setLimitSpeed" />
<train-fixed-path-pane ref="trainFixedPathPane" />
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex';
import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew'; import MenuBar from '@/jmapNew/theme/components/menus/menuBarNew';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import StationControlConvert from './menuDialog/stationControlConvert';
import TrainAdd from './menuDialog/trainAdd';
import TrainTranstalet from './menuDialog/trainTranstalet';
import TrainDelete from './menuDialog/trainDelete';
import PasswordBox from './menuDialog/passwordBox';
import ViewName from './menuDialog/viewName';
import ManageUser from './menuDialog/manageUser';
import HelpAbout from './menuDialog/helpAbout';
import SetLimitSpeed from './menuDialog/setLimitSpeed';
import TrainFixedPathPane from './menuDialog/trainFixedPathPane';
import { EventBus } from '@/scripts/event-bus';
export default { export default {
name: 'DispatchWorkMenuBar', name: 'DispatchWorkMenuBar',
components: { components: {
MenuBar, MenuBar
StationControlConvert,
PasswordBox,
ViewName,
TrainAdd,
TrainTranstalet,
TrainDelete,
ManageUser,
HelpAbout,
SetLimitSpeed,
TrainFixedPathPane
},
props: {
dateString: {
type: String,
default: () => {
return '';
}
}
}, },
data() { data() {
return { return {
@ -69,116 +27,19 @@ export default {
] ]
}; };
}, },
computed: { created() {},
...mapGetters('map', [
'stationList'
])
},
created() {
},
methods: { methods: {
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 });
}
},
//
about(order) {
const operate = {
operation: order.operate
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.helpAbout.doShow(operate);
}
});
},
getLoginResult(operate) {
/** 密码校验*/
if (operate.operation == OperationEvent.StationControl.forcedStationControl.passwordConfirm.operation) {
if (operate.success) {
/** 校验成功*/
this.$refs.stationControlConvert.doShow({ operation: OperationEvent.StationControl.forcedStationControl.mbar.operation });
}
}
},
setLimitSpeed(order) {
const operate = {
operation: order.operate
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.setLimitSpeed.doShow(operate, true);
}
});
},
blankClickClose() { blankClickClose() {
this.$refs.menuBar.doClose(); this.$refs.menuBar.doClose();
},
cancleLimitSpeed(order) {
const operate = {
operation: order.operate
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.setLimitSpeed.doShow(operate, false);
}
});
},
updateTrainFixedPath() {
const stationCode = this.$store.state.training.roleDeviceCode;
commitOperate(menuOperate.CTC.updateTrainFixedPath2Station, { stationCode: stationCode }, 3).then(({valid, response}) => {
if (valid) {
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
}
});
},
trainFixedPathPane() {
const stationCode = this.$store.state.training.roleDeviceCode;
this.$refs.trainFixedPathPane.doShow(stationCode);
},
bottomTableShowOrHidden() {
EventBus.$emit('bottomTableShowOrHidden');
},
undeveloped() {
this.$refs.menuBar.doClose();
this.$alert('实现中......', '提示', {
confirmButtonText: '确定',
callback: action => {
}
});
} }
} }
}; };
</script> </script>
<style rel="stylesheet/scss" lang="scss"> <style rel="stylesheet/scss" lang="scss">
#menuBarChengdu3{ #menuBarDatie{
line-height:30px; line-height:30px;
} }
#menuBarChengdu3 #menuBar .menu-li-block .label{ #menuBarDatie #menuBar .menu-li-block .label{
padding: 0px 30px 0px 5px !important; padding: 0px 30px 0px 5px !important;
} }
.img-box{ .img-box{

View File

@ -0,0 +1,868 @@
<template>
<div class="menus" :style="{width: width + 'px'}">
<div id="tipInfoBox" style="width: 1560px;position: fixed;height: 30px;background: #808080;z-index: 9;bottom: 0;left: 0;display: flex;">
<div style="width: 60%;height: 30px;line-height: 30px;text-align: center;">提示信息窗</div>
<div style="width: 40%;height: 30px;line-height: 30px;text-align: center;border-left: 2px #ccc solid;">{{ '操控A:主机' + ' ' + dateString + ' ' + time }}</div>
</div>
<div class="simulationAlarmInfo">
<div v-for="(tipContent,index) in tipContentList" :key="index" class="eachTipContent">{{ tipContent.time+": "+tipContent.message }}</div>
</div>
<div class="simulationTellInfo">
<div class="simulationTellInfoTop">
<div class="simulationTellInfoTopEach backGreen">联锁I</div>
<div class="simulationTellInfoTopEach backRed">联锁II</div>
<div class="simulationTellInfoTopEach backGreen">操作A</div>
<div class="simulationTellInfoTopEach backYellow">操作B</div>
<div class="simulationTellInfoTopEach backGreen">维修机</div>
</div>
</div>
<div class="simulationDeviceInfo" />
<menu-button ref="menuButton" :selected="selected" />
<menu-station-stand ref="menuStationStand" :selected="selected" :work="'localWork'" />
<menu-switch ref="menuSwitch" :selected="selected" :work="'localWork'" />
<menu-signal ref="menuSignal" :selected="selected" :work="'localWork'" />
<menu-section ref="menuSection" :selected="selected" :work="'localWork'" />
<menu-train ref="menuTrain" :selected="selected" :work="'localWork'" />
<menu-station ref="menuStation" :selected="selected" :work="'localWork'" />
<passive-alarm ref="passiveAlarm" />
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
<passive-Timeout ref="passiveTimeout" />
<bottom-table ref="bottomTable" />
<div id="playBtn" />
</div>
</template>
<script>
import { mapGetters, mapState } from 'vuex';
import { btts } from '@/utils/baidu_tts_cors';
import { getBaiduToken } from '@/api/voice';
import MenuSignal from './menuSignal';
import MenuButton from './menuButton';
import MenuStationStand from './menuStationStand';
import MenuSwitch from './menuSwitch';
import MenuSection from './menuSection';
import MenuTrain from './menuTrain';
import MenuStation from './menuStation';
import PassiveAlarm from './passiveDialog/alarm';
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
import PassiveTimeout from './passiveDialog/timeout';
import { timestampFormat } from '@/utils/date';
import BottomTable from './bottomTable';
import { deviceFaultType, deviceType} from '@/scripts/cmdPlugin/Config';
export default {
name: 'LocalWorkMenu',
components: {
MenuButton,
MenuSignal,
MenuSwitch,
MenuSection,
MenuStationStand,
MenuStation,
MenuTrain,
PassiveAlarm,
PassiveContorl,
PassiveTimeout,
BottomTable
},
props: {
selected: {
type: Object,
default() {
return null;
}
}
},
data() {
return {
showCentralizedStationCode: '',
tipContentList:[],
time: '00:00:00',
dateString: '',
audio: null,
voiceBroadcastToken: ''
};
},
computed: {
...mapGetters('config', [
'width'
]),
...mapState('socket', [
'dispatchCommandMsg'
]),
hasCommandMsg() {
let status = false;
if (this.dispatchCommandMsg) {
status = true;
}
return status;
}
},
watch: {
'$store.state.socket.simulationTimeSync': function (time) { // 仿
this.$store.dispatch('training/setInitTime', time);
this.initDate(time);
},
'$store.state.socket.voiceBroadcastChange': function() {
this.$store.state.socket.voiceBroadcastMsgs.forEach(msgCode => {
const msg = this.$store.state.socket.railCtcRunplanInitMsg[msgCode];
const station = this.$store.getters['map/getDeviceByCode'](msg.arriveRunPlan.stationCode);
const text = station.name + msg.arriveRunPlan.tripNumber + '次发车预告';
this.speechSynthesis(text);
});
},
'$store.state.socket.simulationAlarmInfo': function(val) {
(val || []).forEach(item => {
if (!item.confirmed) {
const device = this.$store.getters['map/getDeviceByCode'](item.deviceCode);
let fault = '';
deviceFaultType[device._type].forEach(deviceFault=>{
if (deviceFault.value == item.description) {
fault = deviceFault.label;
}
});
if ( item.description == 'FAULT_LOCK' ) { fault = '故障锁闭'; }
this.tipContentList.push({time:item.time, message:deviceType[device._type] + (device.name || device.groupNumber) + fault});
if (this.tipContentList.length > 15) {
this.tipContentList.shift();
}
}
});
},
'$store.state.socket.simulationReset':function(val) {
this.tipContentList = [];
}
},
mounted() {
this.group = this.$route.query.group;
this.$nextTick(() => {
// this.$store.dispatch('config/updateMenuBar');
const _that = this;
window.onclick = function (e) {
_that.$refs.menuStationStand.doClose();
_that.$refs.menuSwitch.doClose();
_that.$refs.menuSignal.doClose();
_that.$refs.menuSection.doClose();
_that.$refs.menuTrain.doClose();
_that.$refs.menuStation.doClose();
};
});
},
beforeDestroy() {
window.onclick = function (e) {};
this.$store.dispatch('map/setPictureDeviceMap', {});
},
methods: {
async speechSynthesis(text) {
if (!this.voiceBroadcastToken) {
const resp = await getBaiduToken();
this.voiceBroadcastToken = resp.data;
}
const that = this;
//
// https://ai.baidu.com/docs#/TTS-API/41ac79a6
this.audio = btts({
tex: text,
tok: that.voiceBroadcastToken,
spd: 5,
pit: 5,
vol: 15,
per: 4
}, {
volume: 0.3,
autoDestory: true,
timeout: 10000,
hidden: false,
onInit: function (htmlAudioElement) {},
onSuccess: function(htmlAudioElement) {
this.audio = htmlAudioElement;
this.audio.play();
// playBtn.innerText = '';
},
onError: function(text) { that.$message.error(text); that.voiceBroadcastToken = ''; },
onTimeout: function () { that.$message.error('合成语音超时!'); }
});
},
showCmdManage() {
if (this.hasCommandMsg) {
this.$refs.signedCmd.doShow();
} else {
this.$refs.cmdManage.doShow();
}
},
zhanjiantouming() {
this.$store.dispatch('map/setPictureDeviceMap', {});
this.showCentralizedStationCode = this.$store.state.map.showCentralizedStationCode || this.showCentralizedStationCode;
const mapDevice = this.$store.state.map.mapDevice;
const list = [];
for (const key in mapDevice) {
list.push(mapDevice[key]);
}
if (this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCode === this.showCentralizedStationCode && picture.type === 'lucency');
if (picture) {
this.$jlmap.updateShowStation(list, '');
this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
deviceList.push(deviceCode);
}
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
}
}
},
danzhanxianshi() {
this.$store.dispatch('map/setPictureDeviceMap', {});
const mapDevice = this.$store.state.map.mapDevice;
const map = this.$store.state.map.map;
const list = [];
for (const key in mapDevice) {
list.push(mapDevice[key]);
}
if (this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCode === this.showCentralizedStationCode && picture.type === 'chainStation');
if (picture) {
this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
const deviceList = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const deviceCode in mapDevice) {
deviceList.push(deviceCode);
}
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
}
} else {
this.$jlmap.updateShowStation(list, this.$store.state.map.showCentralizedStationCode || this.showCentralizedStationCode);
this.$jlmap.setCenter(this.$store.state.map.showCentralizedStationCode || this.showCentralizedStationCode);
this.$jlmap.updateTransform(map.scaling, map.origin);
}
},
initDate(date) {
this.time = timestampFormat('HH:mm:ss', date);
this.dateString = timestampFormat('YYYYMMDD', date);
},
handleRunplan() {
this.$refs.runplanPane.doShow();
},
noticeInfo() {
this.$refs.noticeInfo.doShow();
}
}
};
</script>
<style lang="scss" scoped>
.redFlick {
background: red;
}
@keyframes fade {
from {
opacity: 1.0;
}
50% {
opacity: 0.2;
}
to {
opacity: 1.0;
}
}
.flicker {
animation: fade 600ms infinite;
}
</style>
<style>
.menus .pop-menu {
background: #F0F0F0;
}
.menus .pop-menu span {
color: #000;
}
.menus .pop-menu .is-disabled span {
color: #B4B3B8;
}
.chengdou-03__systerm {
overflow: hidden !important;
}
.chengdou-03__systerm .el-dialog {
background: #0055E8;
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
border: 1px solid rgb(69, 134, 247);
border-radius: 6px;
font-size: 13px !important;
color: #000;
}
.chengdou-03__systerm .el-dialog span {
font-size: 13px !important;
line-height: 22px;
}
.chengdou-03__systerm .el-dialog span .el-icon-arrow-up{
line-height: 18px;
}
.chengdou-03__systerm .el-dialog .el-dialog__footer {
background: #ECE9D8;
opacity: 1;
}
.chengdou-03__systerm .el-dialog .el-dialog__body {
padding: 20px;
margin: 0px 3px 3px;
border: 2px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #ECE9D8;
opacity: 1;
}
.chengdou-03__systerm .el-dialog .el-dialog__title {
font-size: 16px;
color: #fff;
position: absolute;
top: 4px;
left: 7px;
}
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 6px;
right: 3px;
line-height: 16px;
}
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
font-size: 16px;
}
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.chengdou-03__systerm .el-dialog .el-button {
height: 24px;
line-height: 22px;
padding: 0px;
width: 80px;
border: 2px outset #E2E2E2;
border-radius: 4px !important;
color: #000;
background: #F0F0F0;
}
.chengdou-03__systerm .el-dialog .expand {
width: 120px;
}
.chengdou-03__systerm .el-dialog .el-button:focus span {
border: 1px dashed gray;
}
.chengdou-03__systerm .el-dialog .el-button:active {
border: 2px inset #E2E2E2;
}
.chengdou-03__systerm .el-dialog .el-button:disabled {
border: 2px inset #E2E2E2;
}
.chengdou-03__systerm .el-dialog .el-button:disabled span {
border: 0px;
}
.chengdou-03__systerm .el-dialog .el-input {
border: 2px inset #E9E9E9;
height: 22px !important;
line-height: 22px !important;
}
.chengdou-03__systerm .el-dialog .el-input__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
height: 22px !important;
line-height: 22px !important;
}
.chengdou-03__systerm .el-dialog .el-input.is-disabled .el-input__inner {
background: #F0F0F0 !important;
}
.chengdou-03__systerm .el-dialog .el-textarea {
border: 2px inset #E9E9E9;
border-radius: 0px;
}
.chengdou-03__systerm .el-dialog .el-textarea .el-textarea__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.chengdou-03__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
background: #F0F0F0 !important;
}
.chengdou-03__systerm .el-dialog .el-table--border th.gutter {
background: #EBEADB !important;
}
.chengdou-03__systerm .el-dialog .el-table {
border: 2px inset #E9E9E9;
color: #000 !important;
}
.chengdou-03__systerm .el-dialog .el-table .cell {
height: 22px;
line-height: 22px;
}
.chengdou-03__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;
}
.chengdou-03__systerm .el-dialog .el-table tr td {
height: 20px !important;
padding: 0px;
}
.chengdou-03__systerm .el-dialog .el-table .el-table__empty-text {
top: 15px !important;
}
.chengdou-03__systerm .el-dialog .current-row>td {
background: #3399FF !important;
color: #fff !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox__inner {
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox__label {
color: #000 !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
background: #E6E6E6 !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
color: #C5C9CC !important;
}
.chengdou-03__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__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;
}
.chengdou-03__systerm .el-dialog .el-radio__inner {
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__systerm .el-dialog .el-radio__label {
color: #000 !important;
}
.chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.chengdou-03__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%;
}
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
background: #E6E6E6 !important;
}
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
color: #C5C9CC !important;
}
.chengdou-03__systerm .el-dialog .base-label {
background: rgba(0, 0, 0, x);
position: relative;
left: -15px;
top: -18px;
}
.chengdou-03__systerm .el-dialog .el-form-item label {
font-weight: normal !important;
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog {
background: rgba(100, 100, 100, 0.3);
border: 2px solid rgb(144, 144, 144, 0.8);
border-radius: 6px;
color: #000;
font-size: 14px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__header {
padding: 5px;
height: 26px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__footer {
background: #F0F0F0;
opacity: 1;
}
.fuzhou-01__systerm .el-dialog .el-dialog__body {
padding-top: 10px;
padding-bottom: 10px;
padding-left: 5px;
padding-right: 5px;
margin: 0px 5px 5px;
border: 2px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #F0F0F0;
opacity: 1;
}
.fuzhou-01__systerm .el-dialog .el-dialog__title {
position: absolute;
top: 4px;
color: #000;
border-radius: 4px;
padding: 0px 2px;
height: 20px;
line-height: 20px
}
.fuzhou-01__systerm .el-dialog .el-dialog__title::before {
content: '';
position: absolute;
top: 0;
left: 0;
-webkit-filter: blur(10px);
filter: blur(10px);
height: 20px;
width: -webkit-fill-available;
background: rgba(128, 128, 128, 0.8);
z-index: -1;
}
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 4px;
right: 5px;
line-height: 16px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
font-size: 16px;
}
.fuzhou-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.fuzhou-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;
}
.fuzhou-01__systerm .el-dialog .el-button:focus span {
border: 1px dashed gray;
}
.fuzhou-01__systerm .el-dialog .el-button:active {
border: 2px inset #E2E2E2;
}
.fuzhou-01__systerm .el-dialog .el-button:disabled {
border: 2px inset #E2E2E2;
}
.fuzhou-01__systerm .el-dialog .el-button:disabled span {
border: 0px;
}
.fuzhou-01__systerm .el-dialog .el-input {
border: 2px inset #E9E9E9;
}
.fuzhou-01__systerm .el-dialog .el-input .el-input__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.fuzhou-01__systerm .el-dialog .el-input.is-disabled .el-input__inner {
background: #F0F0F0 !important;
}
.fuzhou-01__systerm .el-dialog .el-textarea {
border: 2px inset #E9E9E9;
border-radius: 0px;
}
.fuzhou-01__systerm .el-dialog .el-textarea .el-textarea__inner {
color: #000;
background: #fff !important;
border: 0px;
border-radius: 0px !important;
box-sizing: border-box;
}
.fuzhou-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
background: #F0F0F0 !important;
}
.fuzhou-01__systerm .el-dialog .el-table {
border: 2px inset #E9E9E9;
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .el-table .cell {
line-height: unset !important;
}
.fuzhou-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;
}
.fuzhou-01__systerm .el-dialog .el-table tr td {
height: 20px !important;
padding: 0px;
}
.fuzhou-01__systerm .el-dialog .el-table .el-table__empty-text {
top: 15px !important;
}
.fuzhou-01__systerm .el-dialog .current-row>td {
background: #3399FF !important;
color: #fff !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox__inner {
border: 1px inset #dcdfe6 !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox__label {
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
background: #E6E6E6 !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
color: #C5C9CC !important;
}
.fuzhou-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.fuzhou-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;
}
.fuzhou-01__systerm .el-dialog .el-radio__inner {
border: 1px inset #dcdfe6 !important;
}
.fuzhou-01__systerm .el-dialog .el-radio__label {
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
background: #fff !important;
border: 1px inset #dcdfe6 !important;
}
.fuzhou-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%;
}
.fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
background: #E6E6E6 !important;
}
.fuzhou-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
color: #C5C9CC !important;
}
.fuzhou-01__systerm .el-dialog .base-label {
background: rgb(240 240 240);
position: relative;
}
.fuzhou-01__systerm .el-dialog .el-form-item label {
font-weight: normal !important;
color: #000 !important;
}
.fuzhou-01__systerm .el-dialog .context {
height: 100px;
border: 2px inset #E2E2E2;
overflow-y: scroll;
}
.fuzhou-01__systerm .el-dialog .table {
margin-top: 10px;
}
.fuzhou-01__systerm .el-dialog .notice {
margin-left: 62px;
line-height: 30px;
}
.fuzhou-01__systerm .el-dialog .button-group {
margin-top: 10px;
}
@keyframes changeColor
{
0% {background:#f0f0f0;}
50% {background:#ff1900;}
100% {background:#f0f0f0;}
}
@-moz-keyframes changeColor /* Firefox */
{
0% {background:#f0f0f0;}
50% {background:#ff1900;}
100% {background:#f0f0f0;}
}
@-webkit-keyframes changeColor /* Safari and Chrome */
{
0% {background:#f0f0f0;}
50% {background:#ff1900;}
100% {background:#f0f0f0;}
}
.simulationAlarmInfo{
position: absolute;
width: 320px;
background: #cb204d;
height: 100px;
z-index: 2;
top: 0px;
left: 0px;
padding: 5px;
overflow:auto;
}
.eachTipContent{margin-top:5px;font-size:14px;}
.simulationAlarmInfo::-webkit-scrollbar {
width: 5px;
}
.simulationAlarmInfo::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #c3c3c3;
}
.simulationAlarmInfo::-webkit-scrollbar-track {
border-radius: 0;
background: #cb204d;
}
.simulationTellInfo{
position: absolute;
width: 328px;
top: 0px;
right: 0px;
padding: 0px 0px 0px 0px;
overflow: auto;
background: #c3c3c3;
z-index: 2;
display: inline-block;
font-size: 0;
}
.simulationDeviceInfo{
position: absolute;
width: 328px;
height: 100px;
top: 33px;
right:0px;
padding: 5px;
overflow:auto;
background: #c3c3c3;
z-index: 2;
}
.simulationTellInfoTop{
display: inline-block;
font-size: 0;
}
.simulationTellInfoTopEach{
padding: 6px 11px;
display: inline-block;
background: #dedede;
font-size: 15px;
border-top:2px #9c868b solid;
border-left:2px #9c868b solid;
border-right:2px #ecfbe2 solid ;
border-bottom:2px #ecfbe2 solid;
}
.backRed{background: #ff0000;}
.backYellow{background: #ffff00;}
.backGreen{background: #00ff00;}
</style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div v-if="isShowBtn" id="menuButtons_box" class="menu menuButton" style="height:40px;" :style="{left: point.x+'px', bottom: point.y+'px' }"> <div id="menuButtons_box" class="menu menuButton" style="height:40px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<!-- backgroundColor: xGuideMasterLock? guideColorDown: guideColorUp --> <!-- backgroundColor: xGuideMasterLock? guideColorDown: guideColorUp -->
<button :id="Station.stationMasterLock.rightButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="guideLockRightButtonDown()"> <button :id="Station.stationMasterLock.rightButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="guideLockRightButtonDown()">
<span style="color: #800000"> <span style="color: #800000">
@ -183,7 +183,7 @@ export default {
'autoReentryData' 'autoReentryData'
]), ]),
point() { point() {
return this.$store.state.training.prdType == '01' ? {x:0, y:30} : {x:0, y:0}; return {x:0, y:30};
}, },
Switch() { Switch() {
return OperationEvent.Switch; return OperationEvent.Switch;
@ -212,9 +212,6 @@ export default {
xGuideMasterLock() { xGuideMasterLock() {
return this.$store.state.map.stationXGuideMasterLock; return this.$store.state.map.stationXGuideMasterLock;
}, },
isShowBtn() {
return this.$store.state.training.prdType == '01' || this.$store.state.training.prdType == '10';
},
CMD() { CMD() {
return CMD; return CMD;
}, },
@ -769,7 +766,7 @@ export default {
selectedChange() { selectedChange() {
// //
const model = this.selected; // const model = this.selected; //
if ((this.$store.state.training.prdType != '01' && this.$store.state.training.prdType != '10') || this.selected._event !== MouseEvent.Left || (!model._type && !model._code)) { if (this.selected._event !== MouseEvent.Left || (!model._type && !model._code)) {
return; return;
} }
const buttonOperation = this.$store.state.menuOperation.buttonOperation; const buttonOperation = this.$store.state.menuOperation.buttonOperation;

View File

@ -1,5 +1,5 @@
<template> <template>
<div v-if="isShowBtn" id="menuButtons_box" class="menu menuButton" style="height: 35px;" :style="{left: point.x+'px', bottom: point.y+'px' }"> <div id="menuButtons_box" class="menu menuButton" style="height: 35px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<button :id="Signal.arrangementRoute.button.domId" class="button_box" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal','SignalButton'])"> <button :id="Signal.arrangementRoute.button.domId" class="button_box" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal','SignalButton'])">
<span :style="{ color: operation === Signal.arrangementRoute.button.operation ? '#ccc':'black'}"> <span :style="{ color: operation === Signal.arrangementRoute.button.operation ? '#ccc':'black'}">
<center><b></b><b></b></center> <center><b></b><b></b></center>
@ -217,9 +217,6 @@ export default {
Command() { Command() {
return OperationEvent.Command; return OperationEvent.Command;
}, },
isShowBtn() {
return this.$store.state.training.prdType == '01' || this.$store.state.training.prdType == '10';
},
CMD() { CMD() {
return CMD; return CMD;
}, },

View File

@ -1,12 +1,9 @@
<template> <template>
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" />
<section-control ref="sectionControl" pop-class="chengdou-03__systerm" />
<section-detail ref="sectionDetail" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" /> <notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
<train-add-plan ref="trainAddPlan" pop-class="chengdou-03__systerm" /> <train-add-plan ref="trainAddPlan" pop-class="chengdou-03__systerm" />
<set-fault ref="setFault" pop-class="datie-02__systerm" /> <set-fault ref="setFault" pop-class="datie-02__systerm" />
<!-- <load-spare-train ref="loadSpareTrain" pop-class="chengdou-03__systerm" /> -->
<add-spare-train ref="addSpareTrain" /> <add-spare-train ref="addSpareTrain" />
<draw-select ref="drawSelect" /> <draw-select ref="drawSelect" />
</div> </div>
@ -14,30 +11,23 @@
<script> <script>
import PopMenu from '@/components/PopMenu'; import PopMenu from '@/components/PopMenu';
import SectionControl from '@/jmapNew/theme/components/menus/dialog/sectionControl';
import TrainAddPlan from '@/jmapNew/theme/components/menus/dialog/trainAddPlan'; import TrainAddPlan from '@/jmapNew/theme/components/menus/dialog/trainAddPlan';
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault'; import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
import SectionDetail from './dialog/sectionDetail';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import { menuOperate, commitOperate } from '@/jmapNew/theme/components/utils/menuOperate'; import { menuOperate, commitOperate } from '@/jmapNew/theme/components/utils/menuOperate';
import AddSpareTrain from './dialog/addSpareTrain'; import AddSpareTrain from './dialog/addSpareTrain';
import DrawSelect from './dialog/drawSelect'; import DrawSelect from './dialog/drawSelect';
export default { export default {
name: 'SectionMenu', name: 'SectionMenu',
components: { components: {
PopMenu, PopMenu,
SectionControl,
SectionDetail,
NoticeInfo, NoticeInfo,
TrainAddPlan, TrainAddPlan,
SetFault, SetFault,
// LoadSpareTrain,
AddSpareTrain, AddSpareTrain,
DrawSelect DrawSelect
}, },
@ -47,45 +37,26 @@ 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.addSpare,
// handler: this.drawingCall cmdType: CMD.Section.CMD_TRAIN_LOAD_TRIP_NUMBER_TRAIN,
// }, isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork',
// { isShow: (section, work) => ['01', '02', '03'].includes(section.type)
// label: '', }
// handler: this.baDeTrCall ],
// }
{
label: ' 增加车次',
handler: this.addSpare,
cmdType: CMD.Section.CMD_TRAIN_LOAD_TRIP_NUMBER_TRAIN
}
],
Center: [
// {
// label: '',
// handler: this.fault,
// cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
// },
// {
// label: '',
// handler: this.detail,
// cmdType: CMD.Section.CMD_SECTION_DETAILS
// }
// {
// label: ' ',
// handler: this.addSpare,
// cmdType: CMD.Section.CMD_TRAIN_LOAD_TRIP_NUMBER_TRAIN
// }
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -102,11 +73,6 @@ export default {
handler: this.triggerFaultManagement, handler: this.triggerFaultManagement,
cmdType: CMD.Fault.CMD_TRIGGER_FAULT cmdType: CMD.Fault.CMD_TRIGGER_FAULT
} }
// {
// label: '',
// handler: this.loadSpare,
// cmdType: CMD.Section.CMD_TRAIN_LOAD_SPARE_TRAIN
// }
] ]
}; };
}, },
@ -121,7 +87,7 @@ export default {
}, },
watch: { watch: {
'$store.state.menuOperation.menuCount': function (val) { '$store.state.menuOperation.menuCount': function (val) {
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Section) && (!this.buttonOperation || this.$route.query.ctc)) { if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Section) && (!this.buttonOperation || this.work === 'ctcWork')) {
this.doShow(this.$store.state.menuOperation.menuPosition); this.doShow(this.$store.state.menuOperation.menuPosition);
} else { } else {
this.doClose(); this.doClose();
@ -131,7 +97,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.createPlanTrain, handler: this.createPlanTrain,
cmdType: CMD.Section.CMD_Train_Init_Plan cmdType: CMD.Section.CMD_Train_Init_Plan
@ -141,16 +107,13 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// //
if (this.selected.type != '04') { this.menu = [];
// this.menu = MenuContextHandler.covert(this.menuNormal); const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
this.menu = this.menuNormal.Local; this.menuNormal.forEach(menuItem => {
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode); menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, station || {}, this.work) : false;
if (station && station.controlMode === 'Interlock' && this.$route.query.ctc) { menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
this.menu.forEach(item => { item.disabled = true; }); this.menu.push(menuItem);
} else { this.menu.forEach(item => { item.disabled = false; }); } });
} else {
this.menu = [];
}
// //
if (this.operatemode === OperateMode.FAULT && this.selected.type != '04') { if (this.operatemode === OperateMode.FAULT && this.selected.type != '04') {
this.menu = this.menuForce; this.menu = this.menuForce;
@ -173,13 +136,6 @@ export default {
this.$refs.popMenu.close(); this.$refs.popMenu.close();
} }
}, },
// loadSpare() {
// commitOperate(menuOperate.Section.loadSpareTrain, {sectionCode:this.selected.code}).then(({valid, operate})=>{
// if (valid) {
// this.$refs.loadSpareTrain.doShow(operate, this.selected);
// }
// });
// },
addSpare() { addSpare() {
commitOperate(menuOperate.Section.addSpareTrain, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{ commitOperate(menuOperate.Section.addSpareTrain, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) { if (valid) {
@ -187,42 +143,6 @@ export default {
} }
}); });
}, },
//
alxeFailure() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Section.alxeFailure.menu.operation,
cmdType: '',
param: {
sectionCode: `${this.selected.code}`
}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
} else {
this.$refs.noticeInfo.doShow();
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
//
fault() {
commitOperate(menuOperate.Section.fault, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.sectionControl.doShow(operate, this.selected);
}
});
},
detail() {
commitOperate(menuOperate.Section.detail, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.sectionDetail.doShow(operate, this.selected);
}
});
},
// //
setStoppage() { setStoppage() {
commitOperate(menuOperate.Common.setFault, { code: this.selected.code }, 0).then(({valid, operate})=>{ commitOperate(menuOperate.Common.setFault, { code: this.selected.code }, 0).then(({valid, operate})=>{

View File

@ -54,119 +54,75 @@ 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 isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
}, },
{ {
type: 'separator' type: 'separator'
}, },
{ {
label: '列车 办理进路', label: '列车 办理进路',
handler: this.arrangementRoute, handler: this.arrangementRoute,
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE,
}, isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
{ },
label: '取消进路', {
handler: this.cancelTrainRoute, label: '取消进路',
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE handler: this.cancelTrainRoute,
}, cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE,
{ isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
label: '信号重开', },
handler: this.reopenSignal, {
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL label: '信号重开',
}, handler: this.reopenSignal,
{ cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL,
label: '封锁/解封', isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
handler: this.lockOrUnlock },
// cmdType: CMD.Signal.CMD_SIGNAL_BLOCK {
label: '封锁/解封',
handler: this.lockOrUnlock,
cmdType: '',
isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
// cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
}, },
// { {
// label: '', label: '总人解',
// handler: '', handler: this.humanTrainRoute,
// cmdType: '' cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE,
// }, isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
{ },
label: '总人解', {
handler: this.humanTrainRoute, type: 'separator'
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE },
}, {
{ label: '引导',
type: 'separator' handler: this.guide,
}, cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
{ isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
label: '引导', },
handler: this.guide, {
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE label: '坡道解锁',
}, handler: '',
{ cmdType: '',
label: '坡道解锁', isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
handler: '', }
cmdType: '' ],
}
],
Center: [
// {
// label: '',
// handler: this.arrangementRoute,
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
// },
// {
// label: '',
// handler: this.guide,
// cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
// },
// {
// 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.lock,
// cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
// },
// {
// label: '',
// handler: this.unlock,
// cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
// },
// {
// 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.detail,
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
// }
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -203,7 +159,7 @@ export default {
}, },
watch: { watch: {
'$store.state.menuOperation.menuCount': function (val) { '$store.state.menuOperation.menuCount': function (val) {
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && (!this.buttonOperation || this.$route.query.ctc)) { if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && (!this.buttonOperation || this.work === 'ctcWork')) {
this.doShow(this.$store.state.menuOperation.menuPosition); this.doShow(this.$store.state.menuOperation.menuPosition);
} else { } else {
this.doClose(); this.doClose();
@ -213,12 +169,13 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); this.menu = [];
this.menu = this.menuNormal.Local;
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode); const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
if (station && station.controlMode === 'Interlock' && this.$route.query.ctc) { this.menuNormal.forEach(menuItem => {
this.menu.forEach(item => { item.disabled = true; }); menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, station || {}, this.work) : false;
} else { this.menu.forEach(item => { item.disabled = 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;
@ -305,7 +262,7 @@ export default {
humanTrainRoute() { humanTrainRoute() {
commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) { if (valid) {
this.$refs.routeCancel.doShow(operate, this.selected); this.$refs.routeCancel.doShow(operate, this.selected);
} }
}); });
}, },
@ -318,15 +275,15 @@ export default {
}); });
}, },
lockOrUnlock() { lockOrUnlock() {
if (this.selected.blockade) { if (this.selected.blockade) {
commitOperate(menuOperate.Signal.unlock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { commitOperate(menuOperate.Signal.unlock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) { if (valid) {
this.$refs.routeControl.doShow(operate, this.selected); this.$refs.routeControl.doShow(operate, this.selected);
} }
}); });
} else { } else {
commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => { commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) { if (valid) {
this.$refs.routeControl.doShow(operate, this.selected); this.$refs.routeControl.doShow(operate, this.selected);
} }
}); });

View File

@ -19,7 +19,6 @@ 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 CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
// import Handler from '@/scripts/cmdPlugin/Handler';
import PasswordBox from './dialog/childDialog/passwordInputBox.vue'; import PasswordBox from './dialog/childDialog/passwordInputBox.vue';
export default { export default {
@ -40,25 +39,18 @@ export default {
default: () => { default: () => {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [],
Local: [
// {
// label: '',
// handler: this.drawingCall
// },
// {
// label: '',
// handler: this.baDeTrCall
// }
],
Center: [
]
},
menuForce: [ menuForce: [
{ {
label: '设置ZC故障', label: '设置ZC故障',
@ -109,8 +101,7 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); this.menu = [];
this.menu = this.menuNormal.Local;
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce; this.menu = this.menuForce;
@ -165,10 +156,6 @@ export default {
triggerFaultManagement() { triggerFaultManagement() {
this.$store.dispatch('training/setTriggerFaultCount', this.selected); this.$store.dispatch('training/setTriggerFaultCount', this.selected);
}, },
handlerOpenPdf(elem) {
const url = `https://joylink.club/oss/projects/wjls/${this.selected.jp}/${elem.file}`;
window.open(url, '_blank');
},
// //
veryControlClick(selected) { veryControlClick(selected) {
// stationCodepressDown10 // stationCodepressDown10

View File

@ -1,8 +1,6 @@
<template> <template>
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" />
<stand-control ref="standControl" />
<stand-detail ref="standDetail" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" /> <notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
<set-fault ref="setFault" pop-class="chengdou-03__systerm" /> <set-fault ref="setFault" pop-class="chengdou-03__systerm" />
</div> </div>
@ -10,22 +8,17 @@
<script> <script>
import PopMenu from '@/components/PopMenu'; import PopMenu from '@/components/PopMenu';
import StandControl from './dialog/standControl';
import StandDetail from './dialog/standDetail';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault'; import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default { export default {
name: 'StationStandMenu', name: 'StationStandMenu',
components: { components: {
PopMenu, PopMenu,
StandControl,
StandDetail,
NoticeInfo, NoticeInfo,
SetFault SetFault
}, },
@ -35,52 +28,18 @@ export default {
default: () => { default: () => {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
return { return {
menu: [], menu: [],
menuNormal: { menuNormal: [],
Local: [
],
Center: [
// {
// label: '',
// handler: this.setDetainTrain,
// cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN
// },
// {
// label: '',
// handler: this.cancelDetainTrain,
// cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN
// },
// {
// label: '',
// handler: this.setJumpStop,
// cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP
// },
// {
// label: '',
// handler: this.cancelJumpStop,
// cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP
// },
// {
// label: '',
// handler: this.setStopTime,
// cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
// },
// {
// label: '',
// handler: this.setRunLevel,
// cmdType: CMD.Stand.CMD_STAND_SET_RUN_TIME
// },
// {
// label: '',
// handler: this.detail,
// cmdType: CMD.Stand.CMD_STAND_VIEW_STATUS
// }
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -121,8 +80,7 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// //
this.menu = MenuContextHandler.covert(this.menuNormal); this.menu = [];
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce; this.menu = this.menuForce;
@ -156,62 +114,6 @@ export default {
} }
}); });
}, },
//
setDetainTrain() {
commitOperate(menuOperate.StationStand.setDetainTrain, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standControl.doShow(operate, this.selected);
}
});
},
//
cancelDetainTrain() {
commitOperate(menuOperate.StationStand.cancelDetainTrain, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standControl.doShow(operate, this.selected);
}
});
},
//
setJumpStop() {
commitOperate(menuOperate.StationStand.setJumpStop, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standControl.doShow(operate, this.selected);
}
});
},
//
cancelJumpStop() {
commitOperate(menuOperate.StationStand.cancelJumpStop, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standControl.doShow(operate, this.selected);
}
});
},
//
setStopTime() {
commitOperate(menuOperate.StationStand.setStopTime, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standControl.doShow(operate, this.selected, []);
}
});
},
//
setRunLevel() {
commitOperate(menuOperate.StationStand.setRunLevel, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standControl.doShow(operate, this.selected, []);
}
});
},
//
detail() {
commitOperate(menuOperate.StationStand.detail, { standCode: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standDetail.doShow(operate, this.selected, []);
}
});
},
triggerFaultManagement() { triggerFaultManagement() {
this.$store.dispatch('training/setTriggerFaultCount', this.selected); this.$store.dispatch('training/setTriggerFaultCount', this.selected);
} }

View File

@ -47,123 +47,89 @@ 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: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
}, },
{ {
label: '反操', label: '反操',
handler: this.reverse, handler: this.reverse,
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION,
}, isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
{ },
label: '单锁', {
handler: this.lock, label: '单锁',
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK handler: this.lock,
}, cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK,
{ isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
label: '单解', },
handler: this.unlock, {
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK label: '单解',
}, handler: this.unlock,
{ cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK,
label: '道岔钩锁', isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
handler: this.hookLock, },
cmdType: CMD.Switch.CMD_SWITCH_HOOK_LOCK {
}, label: '道岔钩锁',
{ handler: this.hookLock,
label: '封锁/解封', cmdType: CMD.Switch.CMD_SWITCH_HOOK_LOCK,
handle: '' isDisabled: (section, station, work) => station.controlMode === 'Interlock' && work === 'ctcWork'
}, },
{ {
label: '区故解', label: '封锁/解封',
handle: '' handle: ''
}, },
{ {
label: '岔前 分路不良', label: '区故解',
handle: '' handle: ''
}, },
{ {
label: '定位 分路不良', label: '岔前 分路不良',
handle: '' handle: ''
}, },
{ {
label: '反位 分路不良', label: '定位 分路不良',
handle: '' handle: ''
}, },
{ {
label: '接触网定位无电', label: '反位 分路不良',
handle: '' handle: ''
}, },
{ {
label: '接触网反位无电', label: '接触网定位无电',
handle: '' handle: ''
}, },
{ {
label: '添加调机号', label: '接触网反位无电',
handle: '' handle: ''
}, },
{ {
label: '删除调机号', label: '添加调机号',
handle: '' handle: ''
}, },
{ {
label: '修改调机号', label: '删除调机号',
handle: '' handle: ''
} },
], {
Center: [ label: '修改调机号',
// { handle: ''
// label: '', }
// handler: this.locate, ],
// cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
// },
// {
// 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
// },
// {
// label: '',
// handler: this.fault,
// cmdType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK
// }
// {
// label: '',
// handler: this.undeveloped,
// auth: { station: true, center: true },
// cmdType: CMD.Switch.
// }
]
},
menuForce: [ menuForce: [
{ {
label: '设置故障', label: '设置故障',
@ -192,7 +158,7 @@ export default {
}, },
watch: { watch: {
'$store.state.menuOperation.menuCount': function (val) { '$store.state.menuOperation.menuCount': function (val) {
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && (!this.buttonOperation || this.$route.query.ctc)) { if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && (!this.buttonOperation || this.work === 'ctcWork')) {
this.doShow(this.$store.state.menuOperation.menuPosition); this.doShow(this.$store.state.menuOperation.menuPosition);
} else { } else {
this.doClose(); this.doClose();
@ -202,12 +168,13 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// //
// this.menu = MenuContextHandler.covert(this.menuNormal); this.menu = [];
this.menu = this.menuNormal.Local;
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode); const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
if (station && station.controlMode === 'Interlock' && this.$route.query.ctc) { this.menuNormal.forEach(menuItem => {
this.menu.forEach(item => { item.disabled = true; }); menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, station || {}, this.work) : false;
} else { this.menu.forEach(item => { item.disabled = 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) {
if (!this.$store.state.scriptRecord.bgSet || this.$store.state.scriptRecord.userRole == 'STATION_SWITCH_MAN') { if (!this.$store.state.scriptRecord.bgSet || this.$store.state.scriptRecord.userRole == 'STATION_SWITCH_MAN') {

View File

@ -135,7 +135,7 @@ export default {
}, },
watch: { watch: {
'$store.state.training.initTime': function (initTime) { '$store.state.training.initTime': function (initTime) {
this.time = timestampFormat('HH:mmss', initTime) this.time = timestampFormat('HH:mmss', initTime);
} }
}, },
mounted() { mounted() {

View File

@ -11,7 +11,6 @@
<set-fault ref="setFault" pop-class="chengdou-03__systerm" /> <set-fault ref="setFault" pop-class="chengdou-03__systerm" />
<speed-limit ref="speedLimit" pop-class="chengdou-03__systerm" /> <speed-limit ref="speedLimit" pop-class="chengdou-03__systerm" />
<train-stop ref="trainStop" pop-class="chengdou-03__systerm" /> <train-stop ref="trainStop" pop-class="chengdou-03__systerm" />
<!-- <train-set-plan ref="trainSetPlan" /> -->
<update-trip ref="updateTrip" /> <update-trip ref="updateTrip" />
</div> </div>
</template> </template>
@ -28,12 +27,10 @@ import TrainMoveNumber from './dialog/trainMoveNumber';
import TrainCreateNumber from './dialog/trainCreateNumber'; import TrainCreateNumber from './dialog/trainCreateNumber';
import TrainDeleteNumber from './dialog/trainDeleteNumber'; import TrainDeleteNumber from './dialog/trainDeleteNumber';
import TrainDetailInfo from './dialog/trainDetailInfo'; import TrainDetailInfo from './dialog/trainDetailInfo';
// import TrainSetPlan from './dialog/trainSetPlan';
import UpdateTrip from './dialog/updateTrip'; import UpdateTrip from './dialog/updateTrip';
import CancelMouseState from '@/mixin/CancelMouseState'; import CancelMouseState from '@/mixin/CancelMouseState';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
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 SpeedLimit from '@/jmapNew/theme/components/menus/dialog/trainSpeedLimit'; import SpeedLimit from '@/jmapNew/theme/components/menus/dialog/trainSpeedLimit';
import TrainStop from '@/jmapNew/theme/components/menus/dialog/trainStop'; import TrainStop from '@/jmapNew/theme/components/menus/dialog/trainStop';
@ -53,7 +50,6 @@ export default {
UpdateTrip, UpdateTrip,
SpeedLimit, SpeedLimit,
TrainStop TrainStop
// TrainSetPlan
}, },
mixins: [ mixins: [
CancelMouseState CancelMouseState
@ -64,6 +60,12 @@ export default {
default() { default() {
return null; return null;
} }
},
work: {
type: String,
default() {
return '';
}
} }
}, },
data() { data() {
@ -71,11 +73,6 @@ export default {
menu: [], menu: [],
menuNormal: { menuNormal: {
Local: [ Local: [
// {
// label: '',
// handler: this.setPlanTrain,
// cmdType: CMD.TrainWindow.CMD_TRAIN_SET_PLAN
// },
{ {
label: '变更车次号', label: '变更车次号',
handler: this.modifyTripNumber, handler: this.modifyTripNumber,
@ -98,51 +95,6 @@ export default {
handler: this.modifyTripNumber, handler: this.modifyTripNumber,
cmdType: CMD.Train.CMD_TRAIN_UPDATE_TRIP_NUMBER_TRAIN cmdType: CMD.Train.CMD_TRAIN_UPDATE_TRIP_NUMBER_TRAIN
} }
// {
// label: '',
// handler: this.setPlanTrain,
// cmdType: CMD.TrainWindow.CMD_TRAIN_SET_PLAN
// }
// {
// label: '',
// handler: this.createTrainNo
// },
// {
// label: '',
// handler: this.moveTrainNo
// },
// {
// label: '',
// handler: this.deleteTrainNo
// },
// {
// label: '',
// handler: this.editTrainNo
// },
// {
// label: '',
// handler: this.setPlanTrainId
// },
// {
// label: '',
// handler: this.destinationTrainId
// },
// {
// label: '',
// handler: this.artificialTrainId
// },
// {
// label: '',
// handler: this.undeveloped
// },
// {
// label: '',
// handler: this.detailTrainInfo
// },
// {
// label: '',
// handler: this.undeveloped
// }
] ]
}, },
menuForce: [ menuForce: [
@ -252,11 +204,13 @@ export default {
methods: { methods: {
initMenu() { initMenu() {
// //
this.menu = MenuContextHandler.covert(this.menuNormal); this.menu = [];
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode); const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
if (station && station.controlMode === 'Interlock' && this.$route.query.ctc) { this.menuNormal.forEach(menuItem => {
this.menu.forEach(item => { item.disabled = true; }); menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, station || {}, this.work) : false;
} else { this.menu.forEach(item => { item.disabled = 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) {
if (!this.$store.state.scriptRecord.bgSet || this.$store.state.scriptRecord.userRole == 'DRIVER') { if (!this.$store.state.scriptRecord.bgSet || this.$store.state.scriptRecord.userRole == 'DRIVER') {

View File

@ -109,15 +109,20 @@ class Theme {
} }
// 加载行调菜单组件 // 加载行调菜单组件
loadDispatchWorkMenuComponent(code) { loadDispatchWorkMenuComponent(code) {
if (code == '02') { if (code == '02' || code == '16') {
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 (code == '02') { if (code == '02' || code == '16') {
return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/localWorkMenu`).default); return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/localWorkMenu`).default);
} }
} }
loadCtcWorkMenuComponent(code) {
if (code == '16') {
return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/ctcWorkMenu`).default);
}
}
// 新版本 // 新版本
loadPlanParser(code) { loadPlanParser(code) {
return PlanParser.load(require(`./${this._runplan[code || this._code]}/planConfig`).default); return PlanParser.load(require(`./${this._runplan[code || this._code]}/planConfig`).default);

View File

@ -4,7 +4,7 @@
<div>满分: {{ composition.fullScore }}</div> <div>满分: {{ composition.fullScore }}</div>
<div>考试时间: {{ composition.validDuration }}分钟</div> <div>考试时间: {{ composition.validDuration }}分钟</div>
</div> </div>
<div class="legend-area"> <!-- <div class="legend-area">
<div class="legend"> <div class="legend">
<div class="box finished"></div> <div class="box finished"></div>
<div class="text">已作答</div> <div class="text">已作答</div>
@ -13,7 +13,7 @@
<div class="box"></div> <div class="box"></div>
<div class="text">未作答</div> <div class="text">未作答</div>
</div> </div>
</div> </div> -->
<div>理论题</div> <div>理论题</div>
<div class="questionList"> <div class="questionList">
<div <div
@ -151,21 +151,21 @@ export default {
.header { .header {
padding: 10px; padding: 10px;
} }
.legend-area { // .legend-area {
display: flex; // display: flex;
justify-content: space-evenly; // justify-content: space-evenly;
.legend { // .legend {
display: flex; // display: flex;
.box { // .box {
width: 1rem; // width: 1rem;
height: 1rem; // height: 1rem;
background: #eee; // background: #eee;
} // }
.finished { // .finished {
border: 1px solid #67c23a; // background: #409eff;
} // }
} // }
} // }
.questionList { .questionList {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -178,6 +178,7 @@ export default {
text-align: center; text-align: center;
line-height: 30px; line-height: 30px;
margin: 3px; margin: 3px;
border: 2px solid transparent;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background-color: #ccc; background-color: #ccc;
@ -188,14 +189,17 @@ export default {
} }
} }
.current { .current {
background: #409eff; border: 2px dashed #666;
color: #fff;
&:hover { &:hover {
background: #66b1ff; background: #66b1ff;
} }
} }
.submited { .submited {
border: 1px solid #67c23a; background: #409eff;
color: #fff;
&:hover {
background-color: #66b1ff;
}
} }
} }
.footer { .footer {

View File

@ -49,7 +49,7 @@ export default {
'$store.state.map.mapDataLoadedCount': function () { '$store.state.map.mapDataLoadedCount': function () {
const lineCode = this.$jlmap.lineCode; const lineCode = this.$jlmap.lineCode;
if (lineCode) { if (lineCode) {
this.menus = this.$theme.loadDispatchWorkMenuComponent(lineCode); this.menus = this.$theme.loadLocalWorkMenuComponent(lineCode);
} }
}, },
'$store.state.map.initJlmapLoadedCount': function (val) { '$store.state.map.initJlmapLoadedCount': function (val) {

View File

@ -137,17 +137,9 @@ export default {
} }
}); });
this.standCode = this.standList[0].code; this.standCode = this.standList[0].code;
this.initData(this.group, this.standCode);
}, },
methods: { methods: {
doShow(selected) {
this.dialogShow = true;
this.$nextTick(function() {
this.$store.dispatch('training/emitTipFresh');
});
this.standCode = selected.code;
this.initData(this.group, selected.code);
},
initData(group, standCode) { initData(group, standCode) {
getPslStatus(group, standCode) getPslStatus(group, standCode)
.then(resp => { .then(resp => {

View File

@ -80,7 +80,7 @@ export default {
{ {
name: 'ISCS', name: 'ISCS',
code: 'iscsView', code: 'iscsView',
roleList: ['STATION_SUPERVISOR'], roleList: ['DISPATCHER', 'STATION_SUPERVISOR'],
click: this.changePictureShow click: this.changePictureShow
}, },
// { // {
@ -179,7 +179,12 @@ export default {
if (localWorkRoleList.includes(this.roles)) { if (localWorkRoleList.includes(this.roles)) {
this.changePictureShow('localWork'); this.changePictureShow('localWork');
} else if (this.roles === 'DISPATCHER') { } else if (this.roles === 'DISPATCHER') {
this.changePictureShow('dispatchWork'); if (this.$route.query.lineCode === '16') {
this.changePictureShow('dispatcherManage');
this.$store.dispatch('app/animationsClose');
} else {
this.changePictureShow('dispatchWork');
}
} else if (this.roles === 'MAINTAINER') { } else if (this.roles === 'MAINTAINER') {
// //
} else if (this.roles === 'DRIVER') { } else if (this.roles === 'DRIVER') {

View File

@ -49,16 +49,13 @@ export default {
'$store.state.map.mapDataLoadedCount': function () { '$store.state.map.mapDataLoadedCount': function () {
const lineCode = this.$jlmap.lineCode; const lineCode = this.$jlmap.lineCode;
if (lineCode) { if (lineCode) {
this.menus = this.$theme.loadMenuComponent(lineCode); this.menus = this.$theme.loadCtcWorkMenuComponent(lineCode);
} }
}, },
'$store.state.map.initJlmapLoadedCount': function (val) { '$store.state.map.initJlmapLoadedCount': function (val) {
this.handleTrafficTerminalWorkData(); this.handleTrafficTerminalWorkData();
} }
}, },
mounted() {
console.log('trafficTerminalWork');
},
methods: { methods: {
setSelected(val) { setSelected(val) {
this.selected = val; this.selected = val;