Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
fe156c28bb
@ -250,8 +250,8 @@
|
|||||||
<div v-else class="stationButton station_jumpTrain disabled">连续扣车</div>
|
<div v-else class="stationButton station_jumpTrain disabled">连续扣车</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="station_buttonGroupR">
|
<div class="station_buttonGroupR">
|
||||||
<div v-if="allowCancle" :id="cancelTrainId" class="stationButton" @click="stationCancleTrain">取消设置</div>
|
<div v-if="allowCancle" :id="cancelTrainId" class="stationButton" @click="stationCancleTrain">恢复原状</div>
|
||||||
<div v-else class="stationButton disabled">取消设置</div>
|
<div v-else class="stationButton disabled">恢复原状</div>
|
||||||
<div v-if="allowJump" :id="setJumpStopId" class="stationButton station_jumpTrain" @click="stationJumpTrain">此站不停</div>
|
<div v-if="allowJump" :id="setJumpStopId" class="stationButton station_jumpTrain" @click="stationJumpTrain">此站不停</div>
|
||||||
<div v-else class="stationButton station_jumpTrain disabled">此站不停</div>
|
<div v-else class="stationButton station_jumpTrain disabled">此站不停</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -85,7 +85,7 @@ export default {
|
|||||||
stepVOList: [
|
stepVOList: [
|
||||||
{ deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: '鼠标左键点击顶部菜单栏【控制模式转换】' },
|
{ deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: '鼠标左键点击顶部菜单栏【控制模式转换】' },
|
||||||
{ deviceType: 'bar', orderNum: 2, operateCode: '2034', tip: '鼠标左键点击【强制站控】' },
|
{ deviceType: 'bar', orderNum: 2, operateCode: '2034', tip: '鼠标左键点击【强制站控】' },
|
||||||
{ deviceType: 'bar', orderNum: 3, operateCode: '2035', tip: '鼠标左键输入默认密码【123456】后,点击【确定】按钮' },
|
{ deviceType: 'bar', orderNum: 3, operateCode: '2035', tip: '鼠标左键输入默认密码【12】后,点击【确定】按钮' },
|
||||||
{ deviceType: '05', orderNum: 4, operateCode: '2032', tip: '鼠标左键选择所需要转换的控制区域【{1}】', val: '{2}' },
|
{ deviceType: '05', orderNum: 4, operateCode: '2032', tip: '鼠标左键选择所需要转换的控制区域【{1}】', val: '{2}' },
|
||||||
{ deviceType: '05', orderNum: 5, operateCode: '203', tip: '鼠标左键点击【强制站控】', val: '{2}' },
|
{ deviceType: '05', orderNum: 5, operateCode: '203', tip: '鼠标左键点击【强制站控】', val: '{2}' },
|
||||||
{ deviceType: '05', orderNum: 6, operateCode: '2033', tip: '鼠标左键点击【确认】按钮' },
|
{ deviceType: '05', orderNum: 6, operateCode: '2033', tip: '鼠标左键点击【确认】按钮' },
|
||||||
|
360
src/views/newMap/displayBaSiDi/baSiDiNew.vue
Normal file
360
src/views/newMap/displayBaSiDi/baSiDiNew.vue
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<template>
|
||||||
|
<div v-dialogDrag>
|
||||||
|
<div style="height: 130px;width: 100%;" class="el-dialog">
|
||||||
|
<div class="el-dialog__header" />
|
||||||
|
<div class="haerbin-01__systerm nav el-dialog__body">
|
||||||
|
<el-row style="padding: 3px;">
|
||||||
|
<el-col :span="20">
|
||||||
|
<div style="width: calc(100% - 10px);border: 2px solid #DDD9CA;border-radius: 1px;height: 132px;">
|
||||||
|
<el-row style="padding: 4px;">
|
||||||
|
<div class="tip-content-box">
|
||||||
|
<div v-if="tipContent[0]">{{ `${tipContent[0].level}` }}</div>
|
||||||
|
<div v-if="tipContent[0]">{{ `${tipContent[0].time}` }}</div>
|
||||||
|
<div v-if="tipContent[0]">{{ `${tipContent[0].confirm ? '确认': '未确认'}` }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="tip-content-box">
|
||||||
|
<div v-if="tipContent[1]">{{ `${tipContent[1].level}` }}</div>
|
||||||
|
<div v-if="tipContent[1]">{{ `${tipContent[1].time}` }}</div>
|
||||||
|
<div v-if="tipContent[1]">{{ `${tipContent[1].confirm ? '确认': '未确认'}` }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="tip-content-box">
|
||||||
|
<div v-if="tipContent[2]">{{ `${tipContent[2].level}` }}</div>
|
||||||
|
<div v-if="tipContent[2]">{{ `${tipContent[2].time}` }}</div>
|
||||||
|
<div v-if="tipContent[2]">{{ `${tipContent[2].confirm ? '确认': '未确认'}` }}</div>
|
||||||
|
</div>
|
||||||
|
</el-row>
|
||||||
|
<div style="padding: 5px;height:20px;line-height: 20px;border-top: 2px solid #DDD9CA;display: flex;justify-content: space-between;">
|
||||||
|
<div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('rpsDialog')">背投</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('carPack')">车场</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('troDialog')">轨道</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">系统</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('traDialog')">列车</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">联锁</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('tmtDialog')">列监</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">运图</div>
|
||||||
|
<div class="div-simulate-button" style="width: 55px;" @click="handleDialogShow('ttlDialog')">时刻表</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">编表</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('atrDialog')">调度</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">站控</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">计划</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">SDM</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="div-simulate-button" style="width: 55px;">管理员</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">职权</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">拷屏</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">录放</div>
|
||||||
|
<div class="div-simulate-button" style="width: 40px;">布局</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="2">
|
||||||
|
<div style="width: calc(100% - 10px);border: 2px solid #DDD9CA;border-radius: 1px;">
|
||||||
|
<el-row style="margin-top: 20px;margin-bottom: 18px;">
|
||||||
|
<el-col :span="16">
|
||||||
|
<el-row class="button-row">
|
||||||
|
<div style="width: 25px;" class="div-simulate-button" :style="{background:isNoRecoverLevelA || isNoConfirmLevelA?'#F00':'#DDD' }" :class="{'headerBox' :isNoConfirmLevelA}" @click="showHimAlarm('A')">A</div>
|
||||||
|
<div style="width: 25px;" class="div-simulate-button" :style="{background:isNoRecoverLevelB || isNoConfirmLevelB?'#F00':'#DDD' }" :class="{'headerBox' :isNoConfirmLevelB}" @click="showHimAlarm('B')">B</div>
|
||||||
|
<div style="width: 25px;" class="div-simulate-button" :style="{background:isNoRecoverLevelC?'#F00':'#DDD' }" @click="showHimAlarm('C')">C</div>
|
||||||
|
</el-row>
|
||||||
|
<el-row class="button-row" style="margin-top: 20px;">
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="showDiary">日记</div>
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="showDiary">命令</div>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<div style="width: 40px;height: 60px;line-height: 60px;" class="div-simulate-button" @click="controlAudio(false)">静音</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row class="button-row" style="margin: 10px 0;">
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="undeveloped">档案</div>
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="undeveloped">归档</div>
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="undeveloped">统计</div>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="2" style="border: 2px solid #DDD9CA;border-radius: 1px;">
|
||||||
|
<el-row style="height: 88px;">
|
||||||
|
<div style="font-size: 15px;color: #000;display: flex;justify-content: space-around;align-items: center;margin-top: 40px;">
|
||||||
|
<span>{{ dateString }}</span>
|
||||||
|
<span>{{ time }}</span>
|
||||||
|
</div>
|
||||||
|
</el-row>
|
||||||
|
<el-row class="button-row" style="margin: 10px 0;">
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="undeveloped">锁屏</div>
|
||||||
|
<div style="width: 40px;" class="div-simulate-button" @click="undeveloped">退出</div>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<alarm-table-hmi ref="alarmTableHmi" />
|
||||||
|
<log-detail ref="logDetail" />
|
||||||
|
<audio id="buzzer" controls loop="loop" style="width: 0;height: 0">
|
||||||
|
<source :src="buzzerAudio" type="audio/mpeg">
|
||||||
|
</audio>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
|
import { timeFormat } from '@/utils/date';
|
||||||
|
import BuzzerAudio from '@/assets/buzzer.mp3';
|
||||||
|
import AlarmTableHmi from '@/jmapNew/theme/nanjing_02/menus/menuDialog/alarmTableHmi';
|
||||||
|
import LogDetail from '@/jmapNew/theme/nanjing_02/menus/menuDialog/logDetail';
|
||||||
|
import { prefixIntrger } from '@/utils/date';
|
||||||
|
export default {
|
||||||
|
name: 'BaSiDi',
|
||||||
|
components: {
|
||||||
|
AlarmTableHmi,
|
||||||
|
LogDetail
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: true,
|
||||||
|
tipContent: [],
|
||||||
|
buzzerAudio: BuzzerAudio,
|
||||||
|
sound: false,
|
||||||
|
noConfirmMapA: {},
|
||||||
|
noConfirmMapB: {},
|
||||||
|
confirmNoRecoverMapA: {},
|
||||||
|
confirmNoRecoverMapB: {},
|
||||||
|
confirmNoRecoverMapC: {},
|
||||||
|
noConfirmMapAString: '{}',
|
||||||
|
noConfirmMapBString: '{}',
|
||||||
|
confirmNoRecoverMapAString: '{}',
|
||||||
|
confirmNoRecoverMapBString: '{}',
|
||||||
|
confirmNoRecoverMapCString: '{}',
|
||||||
|
time: '00:00:00',
|
||||||
|
dateString: '00.00.0000'
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters('training', [
|
||||||
|
'mode',
|
||||||
|
'started',
|
||||||
|
'steps',
|
||||||
|
'order'
|
||||||
|
]),
|
||||||
|
...mapGetters('map', [
|
||||||
|
'stationList',
|
||||||
|
'trainList'
|
||||||
|
]),
|
||||||
|
userId() {
|
||||||
|
return this.$store.state.user ? this.$store.state.user.id : '';
|
||||||
|
},
|
||||||
|
isNoConfirmLevelA() {
|
||||||
|
return this.noConfirmMapAString !== '{}';
|
||||||
|
},
|
||||||
|
isNoConfirmLevelB() {
|
||||||
|
return this.noConfirmMapBString !== '{}';
|
||||||
|
},
|
||||||
|
isNoRecoverLevelA() {
|
||||||
|
return this.confirmNoRecoverMapAString !== '{}';
|
||||||
|
},
|
||||||
|
isNoRecoverLevelB() {
|
||||||
|
return this.confirmNoRecoverMapBString !== '{}';
|
||||||
|
},
|
||||||
|
isNoRecoverLevelC() {
|
||||||
|
return this.confirmNoRecoverMapCString !== '{}';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'$store.state.training.initTime': function (initTime) {
|
||||||
|
const date = new Date(initTime);
|
||||||
|
this.initDate(date);
|
||||||
|
},
|
||||||
|
'$store.state.socket.simulationTimeSync': function (time) { // 仿真时间更新
|
||||||
|
this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(time)}`));
|
||||||
|
},
|
||||||
|
'$store.state.socket.simulationAlarmInfo': function(val) {
|
||||||
|
(val || []).forEach(item => {
|
||||||
|
if (!item.confirmed) {
|
||||||
|
this.tipContent.push(item);
|
||||||
|
this.handleAlarm(item);
|
||||||
|
if (this.tipContent.length > 3) {
|
||||||
|
this.tipContent.shift();
|
||||||
|
}
|
||||||
|
if (item.level === 'A') {
|
||||||
|
this.noConfirmMapA[item.code] = item;
|
||||||
|
this.noConfirmMapAString = JSON.stringify(this.noConfirmMapA);
|
||||||
|
} else if (item.level === 'B') {
|
||||||
|
this.noConfirmMapB[item.code] = item;
|
||||||
|
this.noConfirmMapBString = JSON.stringify(this.noConfirmMapB);
|
||||||
|
}
|
||||||
|
} else if (!item.recovered) {
|
||||||
|
if (item.level === 'A') {
|
||||||
|
delete this.noConfirmMapA[item.code];
|
||||||
|
this.confirmNoRecoverMapA[item.code] = item;
|
||||||
|
this.noConfirmMapAString = JSON.stringify(this.noConfirmMapA);
|
||||||
|
this.confirmNoRecoverMapAString = JSON.stringify(this.confirmNoRecoverMapA);
|
||||||
|
} else if (item.level === 'B') {
|
||||||
|
delete this.noConfirmMapB[item.code];
|
||||||
|
this.confirmNoRecoverMapB[item.code] = item;
|
||||||
|
this.noConfirmMapBString = JSON.stringify(this.noConfirmMapB);
|
||||||
|
this.confirmNoRecoverMapBString = JSON.stringify(this.confirmNoRecoverMapB);
|
||||||
|
} else if (item.level === 'C') {
|
||||||
|
this.confirmNoRecoverMapC[item.code] = item;
|
||||||
|
this.confirmNoRecoverMapCString = JSON.stringify(this.confirmNoRecoverMapC);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (item.level === 'A') {
|
||||||
|
delete this.noConfirmMapA[item.code];
|
||||||
|
delete this.confirmNoRecoverMapA[item.code];
|
||||||
|
this.noConfirmMapAString = JSON.stringify(this.noConfirmMapA);
|
||||||
|
this.confirmNoRecoverMapAString = JSON.stringify(this.confirmNoRecoverMapA);
|
||||||
|
} else if (item.level === 'B') {
|
||||||
|
delete this.noConfirmMapB[item.code];
|
||||||
|
delete this.confirmNoRecoverMapB[item.code];
|
||||||
|
this.noConfirmMapBString = JSON.stringify(this.noConfirmMapB);
|
||||||
|
this.confirmNoRecoverMapBString = JSON.stringify(this.confirmNoRecoverMapB);
|
||||||
|
} else if (item.level === 'C') {
|
||||||
|
delete this.confirmNoRecoverMapC[item.code];
|
||||||
|
this.confirmNoRecoverMapCString = JSON.stringify(this.confirmNoRecoverMapC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
undeveloped() {
|
||||||
|
this.doClose();
|
||||||
|
this.$alert(this.$t('menu.menuBar.implemented'), this.$t('global.tips'), {
|
||||||
|
confirmButtonText: this.$t('global.confirm'),
|
||||||
|
callback: action => {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showHimAlarm(level) {
|
||||||
|
this.$refs.alarmTableHmi.doShow(level);
|
||||||
|
},
|
||||||
|
showDiary() {
|
||||||
|
this.$refs.logDetail.doShow();
|
||||||
|
},
|
||||||
|
controlAudio(val) {
|
||||||
|
const audio = document.getElementById('buzzer');
|
||||||
|
this.sound = val;
|
||||||
|
if (audio !== null) {
|
||||||
|
if (val) {
|
||||||
|
audio.play();
|
||||||
|
} else if (val === false) {
|
||||||
|
audio.pause();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleDialogShow(type) {
|
||||||
|
this.$emit('handleDialogShow', type);
|
||||||
|
},
|
||||||
|
selectBeginTime() {
|
||||||
|
this.$emit('selectBeginTime');
|
||||||
|
},
|
||||||
|
end() {
|
||||||
|
this.$emit('end');
|
||||||
|
},
|
||||||
|
back() {
|
||||||
|
this.$emit('back');
|
||||||
|
},
|
||||||
|
initDate(date) {
|
||||||
|
this.time = `${prefixIntrger(date.getHours(), 2)}:${prefixIntrger(date.getMinutes(), 2)}:${prefixIntrger(date.getSeconds(), 2)}`;
|
||||||
|
const years = date.getFullYear() + '';
|
||||||
|
let months = date.getMonth() + 1 + '';
|
||||||
|
let dates = date.getDate() + '';
|
||||||
|
if (months.length < 2) { months = '0' + months; }
|
||||||
|
if (dates.length < 2) { dates = '0' + dates; }
|
||||||
|
this.dateString = dates + '.' + months + '.' + years;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped rel="stylesheet/scss" lang="scss">
|
||||||
|
@import "src/styles/mixin.scss";
|
||||||
|
$width: 30px;
|
||||||
|
$height: 90px;
|
||||||
|
$menuPadding: 10px;
|
||||||
|
$menuItemHeight: 30px;
|
||||||
|
$menuItemWidth: 190px;
|
||||||
|
$menuItemPadding: 5px;
|
||||||
|
|
||||||
|
.nav {
|
||||||
|
display: block;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #0000;
|
||||||
|
background: -webkit-linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
background: -o-linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
background: -moz-linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
background: linear-gradient(#FDFDFE, #DEE3F3);
|
||||||
|
border: 1px solid #B6BCCC !important;
|
||||||
|
border-bottom: 2px solid #B6BCCC !important;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.div-simulate-button{
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #303030;
|
||||||
|
border: 1px solid #44556D;
|
||||||
|
background: #DDD;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 1px;
|
||||||
|
width: 80px;
|
||||||
|
}
|
||||||
|
.tip-content-box{
|
||||||
|
height: 30px;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 30px;
|
||||||
|
background: #001528;
|
||||||
|
color: #C20F29;
|
||||||
|
font-size: 14px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
.button-row{
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
display: flex;
|
||||||
|
justify-content:space-between;
|
||||||
|
}
|
||||||
|
@keyframes fade {
|
||||||
|
from {
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes fade {
|
||||||
|
from {
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerBox {
|
||||||
|
background: #f00;
|
||||||
|
animation: fade 600ms infinite;
|
||||||
|
-webkit-animation: fade 600ms infinite;
|
||||||
|
}
|
||||||
|
/deep/.el-dialog__body{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,14 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="main" :style="{width: '100%',height:'100%',position:'absolute',overflow:'hidden'}" style="background: #000;">
|
<div class="main" :style="{width: '100%',height:'100%',position:'absolute',overflow:'hidden'}" style="background: #000;">
|
||||||
<ba-si-di
|
<ba-si-di ref="baSiDi" @handleDialogShow="handleDialogShow" />
|
||||||
ref="baSiDi"
|
|
||||||
:is-run-plan="isRunPlan"
|
|
||||||
:data-error="dataError"
|
|
||||||
@handleDialogShow="handleDialogShow"
|
|
||||||
@end="end"
|
|
||||||
@back="back"
|
|
||||||
@selectBeginTime="selectBeginTime"
|
|
||||||
/>
|
|
||||||
<rps-dialog ref="rpsDialog" :is-run-plan="isRunPlan" :train-list="trainList" />
|
<rps-dialog ref="rpsDialog" :is-run-plan="isRunPlan" :train-list="trainList" />
|
||||||
<tro-dialog ref="troDialog" :is-run-plan="isRunPlan" :train-list="trainList" :station-list="stationList" />
|
<tro-dialog ref="troDialog" :is-run-plan="isRunPlan" :train-list="trainList" :station-list="stationList" />
|
||||||
<car-pack ref="carPack" />
|
<car-pack ref="carPack" />
|
||||||
@ -19,6 +11,15 @@
|
|||||||
<atr-dialog ref="atrDialog" />
|
<atr-dialog ref="atrDialog" />
|
||||||
<train-trunk-detail ref="trainTrunkDetail" @openTra="openTra" />
|
<train-trunk-detail ref="trainTrunkDetail" @openTra="openTra" />
|
||||||
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
|
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
|
||||||
|
<div class="display-draft">
|
||||||
|
<el-button-group class="button-group-box">
|
||||||
|
<template v-if="!dataError">
|
||||||
|
<el-button type="success" :disabled="isRunPlan" size="small" @click="selectBeginTime">{{ $t('display.demon.drivingByPlan') }}</el-button>
|
||||||
|
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
|
||||||
|
</template>
|
||||||
|
<el-button type="primary" size="small" @click="back">{{ $t('display.demon.back') }}</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -34,7 +35,7 @@ import { loadMapDataById } from '@/utils/loaddata';
|
|||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
import { getSimulationMemberList, getAllSimulationUser } from '@/api/simulation';
|
import { getSimulationMemberList, getAllSimulationUser } from '@/api/simulation';
|
||||||
import { getMemberListCommon, getUserListCommon } from '@/api/rtSimulation';
|
import { getMemberListCommon, getUserListCommon } from '@/api/rtSimulation';
|
||||||
import BaSiDi from './baSiDi';
|
import BaSiDi from './baSiDiNew';
|
||||||
import RpsDialog from './rps';
|
import RpsDialog from './rps';
|
||||||
import TroDialog from './tro';
|
import TroDialog from './tro';
|
||||||
import CarPack from './carPack';
|
import CarPack from './carPack';
|
||||||
@ -408,6 +409,16 @@ export default {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped rel="stylesheet/scss" lang="scss">
|
||||||
|
.display-draft {
|
||||||
|
position: fixed;
|
||||||
|
right: 10px;
|
||||||
|
bottom: 15px;
|
||||||
|
.button-group-box{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<style>
|
<style>
|
||||||
.nanjing-02__systerm .el-dialog {
|
.nanjing-02__systerm .el-dialog {
|
||||||
background: #d8d8d8;
|
background: #d8d8d8;
|
||||||
@ -469,5 +480,4 @@ export default {
|
|||||||
border: 1px solid #B1B1B1;
|
border: 1px solid #B1B1B1;
|
||||||
color: #ABABAB;
|
color: #ABABAB;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -145,7 +145,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-else-if="operationType === 'update'" style="display: flex;justify-content: flex-start;">
|
<div v-else-if="operationType === 'update'" style="display: flex;justify-content: flex-start;">
|
||||||
<div>
|
<div>
|
||||||
<el-table :data="tableData" border style="width: 280px;margin-top: 20px;" height="200">
|
<el-table :data="tableData" border style="width: 280px;margin-top: 20px;" height="200" @current-change="handleCurrentChange">
|
||||||
<el-table-column prop="date" label="方向" width="60" />
|
<el-table-column prop="date" label="方向" width="60" />
|
||||||
<el-table-column label="列车号" width="157">
|
<el-table-column label="列车号" width="157">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@ -222,7 +222,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-else-if="operationType === 'move'" style="display: flex;justify-content: flex-start;">
|
<div v-else-if="operationType === 'move'" style="display: flex;justify-content: flex-start;">
|
||||||
<div>
|
<div>
|
||||||
<el-table :data="tableData" border style="width: 280px;margin-top: 20px;" height="200">
|
<el-table :data="tableData" border style="width: 280px;margin-top: 20px;" height="200" @current-change="handleCurrentChange">
|
||||||
<el-table-column prop="date" label="方向" width="60" />
|
<el-table-column prop="date" label="方向" width="60" />
|
||||||
<el-table-column prop="name" label="列车号" width="157">
|
<el-table-column prop="name" label="列车号" width="157">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@ -361,14 +361,19 @@ export default {
|
|||||||
this.$store.dispatch('training/emitTipFresh');
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
const train = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||||
|
this.selected = train;
|
||||||
|
this.nowTrainCode = train.destinationCode + (train.serviceNumber.substr(1)) + (train.tripNumber.substr(train.tripNumber.length - 2));
|
||||||
|
this.nowSectionCode = train.sectionCode;
|
||||||
|
this.groupNumber1 = train.code;
|
||||||
|
this.direction = train.right ? 'right' : 'left';
|
||||||
|
},
|
||||||
doClose() {
|
doClose() {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.dialogShow = false;
|
this.dialogShow = false;
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
},
|
},
|
||||||
handleSelect(tab) {
|
|
||||||
this.activeIndex = tab;
|
|
||||||
},
|
|
||||||
trainFind() {
|
trainFind() {
|
||||||
// this.$store.state.map.activeTrainList
|
// this.$store.state.map.activeTrainList
|
||||||
this.tableData = [];
|
this.tableData = [];
|
||||||
@ -396,6 +401,14 @@ export default {
|
|||||||
if (type === 'create') {
|
if (type === 'create') {
|
||||||
this.changeShowMode();
|
this.changeShowMode();
|
||||||
}
|
}
|
||||||
|
if (type === 'create' || type === 'update' || type === 'move' || type === 'delete') {
|
||||||
|
this.$store.state.map.activeTrainList.forEach(item => {
|
||||||
|
const train = this.$store.getters['map/getDeviceByCode'](item);
|
||||||
|
this.tableData.push(train);
|
||||||
|
});
|
||||||
|
} else if (type === 'show') {
|
||||||
|
this.trainFind();
|
||||||
|
}
|
||||||
this.operationType = type;
|
this.operationType = type;
|
||||||
},
|
},
|
||||||
trainCommit() {
|
trainCommit() {
|
||||||
|
@ -42,7 +42,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dialogShow: true,
|
dialogShow: false,
|
||||||
mapData: null,
|
mapData: null,
|
||||||
deviceCode: '',
|
deviceCode: '',
|
||||||
selfJmap: null,
|
selfJmap: null,
|
||||||
|
@ -122,6 +122,7 @@ export default {
|
|||||||
this.$emit('goTroDialog');
|
this.$emit('goTroDialog');
|
||||||
},
|
},
|
||||||
changeStation(value) {
|
changeStation(value) {
|
||||||
|
this.deviceCode = this.deviceCode || this.stationList[0].code;
|
||||||
const device = this.$store.getters['map/getDeviceByCode'](this.deviceCode);
|
const device = this.$store.getters['map/getDeviceByCode'](this.deviceCode);
|
||||||
const stationSn = device.sn + value;
|
const stationSn = device.sn + value;
|
||||||
const station = this.stationList.find((item) => {
|
const station = this.stationList.find((item) => {
|
||||||
|
@ -207,6 +207,7 @@ export default {
|
|||||||
this.$store.dispatch('scriptRecord/updateSimulationPause', resp.data.pause); // 是否暂停判断
|
this.$store.dispatch('scriptRecord/updateSimulationPause', resp.data.pause); // 是否暂停判断
|
||||||
this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(resp.data.systemTime)}`));
|
this.$store.dispatch('training/setInitTime', +new Date(`${new Date().toLocaleDateString()} ${timeFormat(resp.data.systemTime)}`));
|
||||||
// this.$store.dispatch('training/countTime');
|
// this.$store.dispatch('training/countTime');
|
||||||
|
this.$store.dispatch('training/setPrdType', resp.data.prodType);
|
||||||
this.$store.dispatch('runPlan/setRunPlanInfo', resp.data.runPlan);
|
this.$store.dispatch('runPlan/setRunPlanInfo', resp.data.runPlan);
|
||||||
this.planRunning = resp.data.planRunning;
|
this.planRunning = resp.data.planRunning;
|
||||||
if (resp.data.planRunning) {
|
if (resp.data.planRunning) {
|
||||||
|
@ -102,9 +102,6 @@ export default {
|
|||||||
isShowLeftSlider() {
|
isShowLeftSlider() {
|
||||||
return this.$route.query.lessonId != '0' && !this.isOther;
|
return this.$route.query.lessonId != '0' && !this.isOther;
|
||||||
},
|
},
|
||||||
prdType() {
|
|
||||||
return this.$route.query.prdType;
|
|
||||||
},
|
|
||||||
project() {
|
project() {
|
||||||
return getSessionStorage('project');
|
return getSessionStorage('project');
|
||||||
},
|
},
|
||||||
@ -127,6 +124,18 @@ export default {
|
|||||||
'$store.state.training.operateErrMsg': function (val) {
|
'$store.state.training.operateErrMsg': function (val) {
|
||||||
this.tipInfo({ color: val.color, message: val.errMsg });
|
this.tipInfo({ color: val.color, message: val.errMsg });
|
||||||
},
|
},
|
||||||
|
'$store.state.training.simulationUserList': function(val) {
|
||||||
|
const userInfo = this.$store.state.training.simulationUserList.find(user => user.userId == this.$store.state.user.id );
|
||||||
|
if (userInfo.type === 'STATION_SUPERVISOR') {
|
||||||
|
this.$store.dispatch('map/setShowCentralizedStationCode', userInfo.deviceCode);
|
||||||
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
|
const list = [];
|
||||||
|
for (const key in mapDevice) {
|
||||||
|
list.push(mapDevice[key]);
|
||||||
|
}
|
||||||
|
this.$jlmap.updateShowStation(list, userInfo.deviceCode);
|
||||||
|
}
|
||||||
|
},
|
||||||
async $route() {
|
async $route() {
|
||||||
loadTrainingInSimulation(this.group, this.$route.query.trainingId).then(resp => {
|
loadTrainingInSimulation(this.group, this.$route.query.trainingId).then(resp => {
|
||||||
this.setTrainingData(resp);
|
this.setTrainingData(resp);
|
||||||
|
@ -244,7 +244,7 @@ export default {
|
|||||||
const showMode = { '01': '03', '02': '02'}[prdType] || '';
|
const showMode = { '01': '03', '02': '02'}[prdType] || '';
|
||||||
|
|
||||||
Vue.prototype.$theme = new Theme();
|
Vue.prototype.$theme = new Theme();
|
||||||
Vue.prototype.$jlmap = new Jlmap({
|
this.selfJlmap = Vue.prototype.$jlmap = new Jlmap({
|
||||||
dom: document.getElementById(this.canvasId),
|
dom: document.getElementById(this.canvasId),
|
||||||
config: {
|
config: {
|
||||||
renderer: 'canvas',
|
renderer: 'canvas',
|
||||||
|
@ -5,9 +5,20 @@
|
|||||||
<ibp-plate v-show="ibpShow" ref="ibpPlate" @hideIbp="hideIbp" />
|
<ibp-plate v-show="ibpShow" ref="ibpPlate" @hideIbp="hideIbp" />
|
||||||
<template v-show="panelShow" :panelShow="panelShow">
|
<template v-show="panelShow" :panelShow="panelShow">
|
||||||
<transition name="el-zoom-in-bottom">
|
<transition name="el-zoom-in-bottom">
|
||||||
<map-system-draft ref="mapCanvas" @back="back" />
|
<map-system-draft v-show="!specialDispatch" ref="mapCanvas" @back="back" />
|
||||||
</transition>
|
</transition>
|
||||||
|
<div v-if="lineCode === '14'" v-show="prdType=='02'">
|
||||||
|
<ba-si-di ref="baSiDi" @handleDialogShow="handleDialogShow" />
|
||||||
|
<rps-dialog ref="rpsDialog" :is-run-plan="isRunPlan" :train-list="trainList" />
|
||||||
|
<tro-dialog ref="troDialog" :is-run-plan="isRunPlan" :train-list="trainList" :station-list="stationList" />
|
||||||
|
<car-pack ref="carPack" />
|
||||||
|
<tro-detail ref="troDetail" :is-run-plan="isRunPlan" :train-list="trainList" :station-list="stationList" @goTroDialog="troClick" />
|
||||||
|
<tra-dialog ref="traDialog" @openTrainTrunkDetail="openTrainTrunkDetail" />
|
||||||
|
<ttl-dialog ref="ttlDialog" />
|
||||||
|
<tmt-dialog ref="tmtDialog" />
|
||||||
|
<atr-dialog ref="atrDialog" />
|
||||||
|
<train-trunk-detail ref="trainTrunkDetail" @openTra="openTra" />
|
||||||
|
</div>
|
||||||
<menu-demon-joint
|
<menu-demon-joint
|
||||||
ref="demonMenu"
|
ref="demonMenu"
|
||||||
:group="group"
|
:group="group"
|
||||||
@ -45,7 +56,7 @@
|
|||||||
/>
|
/>
|
||||||
<join-fault-choose ref="faultChoose" :group="group" :offset="offset" />
|
<join-fault-choose ref="faultChoose" :group="group" :offset="offset" />
|
||||||
<join-run-plan-Load ref="runPlanLoad" :group="group" />
|
<join-run-plan-Load ref="runPlanLoad" :group="group" />
|
||||||
<menu-system-time ref="menuSystemTime" :offset="offset" :group="group" />
|
<menu-system-time v-show="!specialDispatch" ref="menuSystemTime" :offset="offset" :group="group" />
|
||||||
<menu-train-list v-if="prdType=='02'" @setCenter="setCenter" />
|
<menu-train-list v-if="prdType=='02'" @setCenter="setCenter" />
|
||||||
<members-manage ref="membersManage" :is-admin="isAdmin" @addSimulationMember="addSimulationMember" /> <!-- 成员管理 -->
|
<members-manage ref="membersManage" :is-admin="isAdmin" @addSimulationMember="addSimulationMember" /> <!-- 成员管理 -->
|
||||||
<add-member ref="addMember" :station-list="stationList" />
|
<add-member ref="addMember" :station-list="stationList" />
|
||||||
@ -84,6 +95,17 @@ import { Message } from 'element-ui';
|
|||||||
import { getToken } from '@/utils/auth';
|
import { getToken } from '@/utils/auth';
|
||||||
import MembersManage from './memberManage/membersManage';
|
import MembersManage from './memberManage/membersManage';
|
||||||
import AddMember from './memberManage/addMember';
|
import AddMember from './memberManage/addMember';
|
||||||
|
import BaSiDi from '@/views/newMap/displayBaSiDi/baSiDiNew';
|
||||||
|
import RpsDialog from '@/views/newMap/displayBaSiDi/rps';
|
||||||
|
import TroDialog from '@/views/newMap/displayBaSiDi/tro';
|
||||||
|
import CarPack from '@/views/newMap/displayBaSiDi/carPack';
|
||||||
|
import TroDetail from '@/views/newMap/displayBaSiDi/troDetail';
|
||||||
|
import TraDialog from '@/views/newMap/displayBaSiDi/tra';
|
||||||
|
import TtlDialog from '@/views/newMap/displayBaSiDi/ttl';
|
||||||
|
import TmtDialog from '@/views/newMap/displayBaSiDi/tmt';
|
||||||
|
import AtrDialog from '@/views/newMap/displayBaSiDi/atr';
|
||||||
|
import TrainTrunkDetail from '@/views/newMap/displayBaSiDi/trainTrunkDetail';
|
||||||
|
import Vue from 'vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'JointTrainingDraft',
|
name: 'JointTrainingDraft',
|
||||||
@ -100,7 +122,17 @@ export default {
|
|||||||
IbpPlate,
|
IbpPlate,
|
||||||
MembersManage,
|
MembersManage,
|
||||||
AddMember,
|
AddMember,
|
||||||
Jl3dDevice
|
Jl3dDevice,
|
||||||
|
BaSiDi,
|
||||||
|
RpsDialog,
|
||||||
|
TroDialog,
|
||||||
|
CarPack,
|
||||||
|
TroDetail,
|
||||||
|
TraDialog,
|
||||||
|
TtlDialog,
|
||||||
|
TmtDialog,
|
||||||
|
AtrDialog,
|
||||||
|
TrainTrunkDetail
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -127,7 +159,8 @@ export default {
|
|||||||
isAdmin: false,
|
isAdmin: false,
|
||||||
deviceif:false,
|
deviceif:false,
|
||||||
deviceShow: true,
|
deviceShow: true,
|
||||||
centralizedStationMap: {}
|
centralizedStationMap: {},
|
||||||
|
selfJmap: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -139,7 +172,8 @@ export default {
|
|||||||
'bigScreenConfig',
|
'bigScreenConfig',
|
||||||
'stationList',
|
'stationList',
|
||||||
'sectionList',
|
'sectionList',
|
||||||
'signalList'
|
'signalList',
|
||||||
|
'trainList'
|
||||||
]),
|
]),
|
||||||
width() {
|
width() {
|
||||||
return this.$store.state.app.width;
|
return this.$store.state.app.width;
|
||||||
@ -155,12 +189,25 @@ export default {
|
|||||||
},
|
},
|
||||||
project() {
|
project() {
|
||||||
return getSessionStorage('project');
|
return getSessionStorage('project');
|
||||||
|
},
|
||||||
|
specialDispatch() {
|
||||||
|
return this.lineCode === '14' && this.$store.state.training.prdType === '02';
|
||||||
|
},
|
||||||
|
isRunPlan() {
|
||||||
|
return this.$store.state.training.started;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.config.menuBarLoadedCount': function (val) { // menuBar加载完成
|
'$store.state.config.menuBarLoadedCount': function (val) { // menuBar加载完成
|
||||||
this.setPosition();
|
this.setPosition();
|
||||||
},
|
},
|
||||||
|
'$store.state.menuOperation.selectedCount':function(em) {
|
||||||
|
const device = this.$store.state.menuOperation.selected;
|
||||||
|
if (device && device._type === 'Station' && this.$store.state.menuOperation.subType === 'troButton') {
|
||||||
|
this.$refs.troDialog.doClose();
|
||||||
|
this.$refs.troDetail.doShow(device.code);
|
||||||
|
}
|
||||||
|
},
|
||||||
'$store.state.training.prdType': function (prdType) {
|
'$store.state.training.prdType': function (prdType) {
|
||||||
this.setPosition();
|
this.setPosition();
|
||||||
if (prdType == '01') {
|
if (prdType == '01') {
|
||||||
@ -230,6 +277,8 @@ export default {
|
|||||||
async mounted() {
|
async mounted() {
|
||||||
await this.setWindowSize();
|
await this.setWindowSize();
|
||||||
await this.initLoadData();
|
await this.initLoadData();
|
||||||
|
this.selfJmap = Vue.prototype.$jlmap;
|
||||||
|
console.log(this.selfJmap, Vue.prototype.$jlmap);
|
||||||
},
|
},
|
||||||
async beforeDestroy() {
|
async beforeDestroy() {
|
||||||
await this.$store.dispatch('training/end', null);
|
await this.$store.dispatch('training/end', null);
|
||||||
@ -363,10 +412,15 @@ export default {
|
|||||||
this.endViewLoading();
|
this.endViewLoading();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
handleDialogShow(type) {
|
||||||
|
this.$refs[type].doShow();
|
||||||
|
},
|
||||||
// 设置prdType和role
|
// 设置prdType和role
|
||||||
setSimulationPrdType(deviceCode) {
|
setSimulationPrdType(deviceCode) {
|
||||||
// Dispatcher 行调 STATION_SUPERVISOR 车站 Audience 观众 Driver 司机 MAINTAINER 通号
|
// Dispatcher 行调 STATION_SUPERVISOR 车站 Audience 观众 Driver 司机 MAINTAINER 通号
|
||||||
this.showStation = '';
|
this.showStation = '';
|
||||||
|
let tempData;
|
||||||
|
let dataZoom;
|
||||||
switch (this.userRole) {
|
switch (this.userRole) {
|
||||||
case 'DISPATCHER':
|
case 'DISPATCHER':
|
||||||
this.$store.dispatch('training/setPrdType', '02');
|
this.$store.dispatch('training/setPrdType', '02');
|
||||||
@ -379,11 +433,21 @@ export default {
|
|||||||
this.jl3dmaintainershow = false;
|
this.jl3dmaintainershow = false;
|
||||||
break;
|
break;
|
||||||
case 'STATION_SUPERVISOR':
|
case 'STATION_SUPERVISOR':
|
||||||
|
if (this.selfJmap) { Vue.prototype.$jlmap = this.selfJmap; }
|
||||||
this.$store.dispatch('training/setPrdType', '01');
|
this.$store.dispatch('training/setPrdType', '01');
|
||||||
this.$store.dispatch('training/setRoles', 'STATION_SUPERVISOR');
|
this.$store.dispatch('training/setRoles', 'STATION_SUPERVISOR');
|
||||||
this.$refs.menuSchema.chiShowStation = deviceCode;
|
this.$refs.menuSchema.chiShowStation = deviceCode;
|
||||||
this.showStation = deviceCode;
|
this.showStation = deviceCode;
|
||||||
// this.changePrdType('01');
|
// this.changePrdType('01');
|
||||||
|
if (this.lineCode === '14') {
|
||||||
|
const list = [];
|
||||||
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
|
this.$jlmap.setMap(this.$store.state.map.map, this.$store.state.map.mapDevice, {routeData:this.$store.state.map.routeData, autoReentryData: this.$store.state.map.autoReentryData});
|
||||||
|
for (const key in mapDevice) {
|
||||||
|
list.push(mapDevice[key]);
|
||||||
|
}
|
||||||
|
this.$jlmap.updateShowMode(list, '02');
|
||||||
|
}
|
||||||
this.$jlmap.amendDevice([...this.sectionList, ...this.signalList]);
|
this.$jlmap.amendDevice([...this.sectionList, ...this.signalList]);
|
||||||
this.mapViewLoadedOver && this.switchStationMode(deviceCode);
|
this.mapViewLoadedOver && this.switchStationMode(deviceCode);
|
||||||
this.jl3dmaintainershow = false;
|
this.jl3dmaintainershow = false;
|
||||||
@ -404,8 +468,8 @@ export default {
|
|||||||
}
|
}
|
||||||
this.$jlmap.updateShowStation(list, showStation);
|
this.$jlmap.updateShowStation(list, showStation);
|
||||||
}
|
}
|
||||||
const tempData = this.$store.state.map.map.displayList.find(item => { return item.stationCodeList.includes(deviceCode); });
|
tempData = this.$store.state.map.map.displayList.find(item => { return item.stationCodeList.includes(deviceCode); });
|
||||||
const dataZoom = { offsetX: tempData.offsetX, offsetY: tempData.offsetY, scaleRate: tempData.scaleRate };
|
dataZoom = { offsetX: tempData.offsetX, offsetY: tempData.offsetY, scaleRate: tempData.scaleRate };
|
||||||
this.$store.commit('map/setDataZoom', dataZoom);
|
this.$store.commit('map/setDataZoom', dataZoom);
|
||||||
this.$jlmap.setDepot(dataZoom);
|
this.$jlmap.setDepot(dataZoom);
|
||||||
this.jl3dmaintainershow = false;
|
this.jl3dmaintainershow = false;
|
||||||
@ -629,6 +693,15 @@ export default {
|
|||||||
addSimulationMember() {
|
addSimulationMember() {
|
||||||
this.$refs.addMember.doShow();
|
this.$refs.addMember.doShow();
|
||||||
},
|
},
|
||||||
|
troClick() {
|
||||||
|
this.$refs.troDialog.doShow();
|
||||||
|
},
|
||||||
|
openTrainTrunkDetail(index) {
|
||||||
|
this.$refs.trainTrunkDetail.doShow(index);
|
||||||
|
},
|
||||||
|
openTra() {
|
||||||
|
this.$refs.traDialog.doShow();
|
||||||
|
},
|
||||||
checkRoleChange(data) {
|
checkRoleChange(data) {
|
||||||
data.forEach(item => {
|
data.forEach(item => {
|
||||||
if (item.messageType === 'KICK_OUT' && item.userId == this.userId) {
|
if (item.messageType === 'KICK_OUT' && item.userId == this.userId) {
|
||||||
@ -651,9 +724,10 @@ export default {
|
|||||||
<style scoped lang="scss" rel="stylesheep/scss">
|
<style scoped lang="scss" rel="stylesheep/scss">
|
||||||
.main {
|
.main {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100% !important;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
background: #000000;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -132,6 +132,9 @@ export default {
|
|||||||
const dataList = convertSheetToList(wb.Sheets[index], true);
|
const dataList = convertSheetToList(wb.Sheets[index], true);
|
||||||
if (dataList.length) {
|
if (dataList.length) {
|
||||||
const accountMap = {};
|
const accountMap = {};
|
||||||
|
if (!dataList[0][0].includes('学号') || !dataList[1][0].includes('姓名')) {
|
||||||
|
throw new Error('检测到Excel格式错误,请使用模板格式导入!');
|
||||||
|
}
|
||||||
for ( let i = 1; i <= dataList[0].length; i++) {
|
for ( let i = 1; i <= dataList[0].length; i++) {
|
||||||
const studentId = dataList[0][i];
|
const studentId = dataList[0][i];
|
||||||
const name = dataList[1][i];
|
const name = dataList[1][i];
|
||||||
|
Loading…
Reference in New Issue
Block a user