西安三现地问题: 站控转换和实际不一样

This commit is contained in:
fan 2021-07-30 18:07:44 +08:00
parent 7fc996fe7e
commit 23ed027def
4 changed files with 165 additions and 13 deletions

View File

@ -5,7 +5,7 @@
<!--<div class="holdTrainStatus">H</div>--> <!--<div class="holdTrainStatus">H</div>-->
<!--<div class="jumpStopStatus">S</div>--> <!--<div class="jumpStopStatus">S</div>-->
<!--</div>--> <!--</div>-->
<station-control-convert ref="stationControlConvert" /> <station-control-convert ref="stationControlConvert" @warningInfoDoShow="warningInfoDoShow" />
<password-box ref="passwordBox" @setLoginResult="getLoginResult" /> <password-box ref="passwordBox" @setLoginResult="getLoginResult" />
<view-train-id ref="viewTrainId" /> <view-train-id ref="viewTrainId" />
<view-name ref="viewName" /> <view-name ref="viewName" />
@ -15,6 +15,7 @@
<train-delete ref="trainDelete" /> <train-delete ref="trainDelete" />
<manage-user ref="manageUser" /> <manage-user ref="manageUser" />
<help-about ref="helpAbout" /> <help-about ref="helpAbout" />
<warning-info ref="warningInfo" />
<!-- <delete-runplan-line ref="deleteRunplanLine" /> --> <!-- <delete-runplan-line ref="deleteRunplanLine" /> -->
<!-- <add-runplan-line ref="addRunplanLine" /> --> <!-- <add-runplan-line ref="addRunplanLine" /> -->
</div> </div>
@ -23,6 +24,7 @@
import MenuBar from '@/jmapNew/theme/components/menus/menuBar'; import MenuBar from '@/jmapNew/theme/components/menus/menuBar';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler.js'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler.js';
import StationControlConvert from './menuDialog/stationControlConvert'; import StationControlConvert from './menuDialog/stationControlConvert';
import WarningInfo from './menuDialog/warningInfo';
import TrainAdd from './menuDialog/trainAdd'; import TrainAdd from './menuDialog/trainAdd';
// import AddRunplanLine from './menuDialog/addRunplanLine'; // import AddRunplanLine from './menuDialog/addRunplanLine';
import TrainTranstalet from './menuDialog/trainTranstalet'; import TrainTranstalet from './menuDialog/trainTranstalet';
@ -50,7 +52,8 @@ export default {
TrainTranstalet, TrainTranstalet,
TrainDelete, TrainDelete,
ManageUser, ManageUser,
HelpAbout HelpAbout,
WarningInfo
// DeleteRunplanLine // DeleteRunplanLine
}, },
props: { props: {
@ -484,6 +487,9 @@ export default {
blankClickClose() { blankClickClose() {
this.$refs.menuBar.doClose(); this.$refs.menuBar.doClose();
}, },
warningInfoDoShow(info) {
this.$refs.warningInfo.doShow(info);
},
undeveloped() { undeveloped() {
this.$refs.menuBar.doClose(); this.$refs.menuBar.doClose();
this.$alert(this.$t('menu.menuBar.implemented'), this.$t('global.tips'), { this.$alert(this.$t('menu.menuBar.implemented'), this.$t('global.tips'), {

View File

@ -153,6 +153,12 @@ export default {
'$store.state.map.controlTransfer':function (controlTransferList) { '$store.state.map.controlTransfer':function (controlTransferList) {
controlTransferList.forEach(controlTransfer=>{ controlTransferList.forEach(controlTransfer=>{
this.updateTableValue(controlTransfer); this.updateTableValue(controlTransfer);
if (controlTransfer.applicantId && this.$store.state.training.memberData[controlTransfer.applicantId] &&
this.$store.state.training.memberData[controlTransfer.applicantId].userId == this.$store.state.user.id &&
this.$store.state.training.prdType === '01'
) {
this.$emit('warningInfoDoShow', controlTransfer);
}
}); });
}, },
// //
@ -164,7 +170,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.loadTableData(); // this.loadTableData();
}, },
methods: { methods: {
updateTableValue(controlTransfer) { updateTableValue(controlTransfer) {
@ -241,15 +247,37 @@ export default {
} }
}, },
initTableDataStatus() { initTableDataStatus() {
this.tableData.forEach(row => { this.tableData = [];
row.disabled = this.checkBoxDisabled(row); if (this.$store.state.training.prdType === '02') {
row.check = false; this.stationList && this.stationList.forEach(station => {
row.result = ''; if (station.createControlMode) {
const control = this.$store.getters['map/getDeviceByCode'](row.code); const control = this.$store.getters['map/getDeviceByCode'](station.code);
if (control) { this.tableData.push({
row.control = this.controlProps[control.controlMode]; code: station.code,
} operate: station.name || '',
}); control: control ? this.controlProps[control.controlMode] : '',
check: false,
disabled: this.checkBoxDisabled(station),
status: '正常',
result: ''
});
}
});
} else if (this.$store.state.training.prdType === '01') {
const stationCodeList = this.$store.state.map.stationControlMap[this.$store.state.training.roleDeviceCode];
stationCodeList && stationCodeList.forEach(stationCode => {
const station = this.$store.getters['map/getDeviceByCode'](stationCode);
this.tableData.push({
code: station.code,
operate: station.name || '',
control: station ? this.controlProps[station.controlMode] : '',
check: false,
disabled: this.checkBoxDisabled(station),
status: '正常',
result: ''
});
});
}
}, },
doShow(operate) { doShow(operate) {
if (!this.dialogShow) { if (!this.dialogShow) {

View File

@ -0,0 +1,105 @@
<template>
<el-dialog
v-dialogDrag
class="xian-01__systerm station-control-convert"
title="0级报警详细信息"
:visible.sync="show"
width="900px"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<div style="font-size: 14px;color: #000;">
<el-row>
<el-col :span="8" style="display: flex;">
<div>线路名称</div>
<div style="width: 180px;" class="border-style">{{ $store.state.map.mapName }}</div>
</el-col>
<el-col :span="8" style="display: flex;">
<div>单位名称</div>
<div style="width: 180px;" class="border-style">{{ stationName }}</div>
</el-col>
<el-col :span="8" style="display: flex;">
<div>模块名称</div>
<div style="width: 180px;" class="border-style">CMM控制模式转换模块</div>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="8" style="display: flex;">
<div>报警时间</div>
<div style="width: 180px;" class="border-style">{{ time }}</div>
</el-col>
<el-col :span="8" style="display: flex;">
<div>&#12288&#12288</div>
<div style="width: 180px;" class="border-style">0级告警</div>
</el-col>
<el-col :span="8" style="display: flex;">
<div>确认状态</div>
<div style="width: 180px;" class="border-style">未确认</div>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="12" style="display: flex;">
<div>&#12288&#12288</div>
<div style="width: 325px;" class="border-style">系统事件</div>
</el-col>
<el-col :span="12" style="display: flex;">
<div>&#8194&#8194</div>
<div style="width: 325px;" class="border-style">依据信号设备操作命令设置控制模式</div>
</el-col>
</el-row>
<el-row style="display: flex;margin-top: 10px;">
<div>事件摘要</div>
<div style="width: 760px;" class="border-style">控制模式转换</div>
</el-row>
<el-row style="display: flex;margin-top: 10px;">
<div>推荐操作</div>
<div style="width: 760px;" class="border-style" />
</el-row>
<el-row style="margin-top: 10px;">
<span>报警详细描述</span>
<div style="width: 825px;margin-left: 0;height: 80px;" class="border-style">{{ `控制模式转换:${stationName}由中控模式转为站控模式!` }}</div>
</el-row>
<div style="text-align: center;margin-top: 10px;">
<el-button @click="doClose">确认</el-button>
<span>未确认0级报警数目1</span>
</div>
</div>
</el-dialog>
</template>
<script>
import { parseTime } from '@/utils/index';
export default {
name: 'WarningInfo',
data() {
return {
show: false,
stationName: '',
time: ''
};
},
methods: {
doClose() {
this.show = false;
},
doShow(info) {
const station = this.$store.getters['map/getDeviceByCode'](info.code);
this.stationName = station.name;
this.time = parseTime(this.$store.state.training.initTime);
this.show = true;
}
}
};
</script>
<style scoped>
.border-style {
border-top: 2px solid #858585;
border-left: 2px solid #858585;
border-right: 2px solid #F2F2F2;
border-bottom: 2px solid #F2F2F2;
padding: 0 10px;
margin-left: 10px;
}
</style>

View File

@ -246,7 +246,8 @@ const map = {
controlTransfer:[], // 控制权转移消息 controlTransfer:[], // 控制权转移消息
mapDataParseCount: 0, mapDataParseCount: 0,
foldLineMap: {}, // 现地折行线map数据 foldLineMap: {}, // 现地折行线map数据
clearButtonCount: 0 // 清除操作按钮计数器 clearButtonCount: 0, // 清除操作按钮计数器
stationControlMap: {} // 站控显示的map { 当前车站:显示车站列表 }
}, },
getters: { getters: {
@ -718,6 +719,18 @@ const map = {
state.foldLineMap = foldLineMap; state.foldLineMap = foldLineMap;
const parser = parserFactory(ParserType.Graph.value); const parser = parserFactory(ParserType.Graph.value);
state.mapDevice = parser.parser(map, map.skinVO.code, showConfig); state.mapDevice = parser.parser(map, map.skinVO.code, showConfig);
state.stationControlMap = {};
map.stationList.forEach(station => {
if (station.ciStation) {
const centrailzedList = [station.code];
station.relStationCodeList.forEach(relStationCode => {
state.stationControlMap[relStationCode] = centrailzedList;
if (state.mapDevice[relStationCode].centralized) {
centrailzedList.push(relStationCode);
}
});
}
});
Vue.prototype.$jlmap && Vue.prototype.$jlmap.setMapDevice(state.mapDevice); Vue.prototype.$jlmap && Vue.prototype.$jlmap.setMapDevice(state.mapDevice);
} else { } else {
state.map = null; state.map = null;