武汉项目调整

This commit is contained in:
fan 2022-09-14 13:26:59 +08:00
parent 6fc5bd1441
commit d1f0d5e27f
7 changed files with 138 additions and 17 deletions

View File

@ -158,7 +158,7 @@ class SkinCode extends defaultStyle {
display: true, // 列车实时位置显示 display: true, // 列车实时位置显示
specialShow: true, // 列车特殊显示 specialShow: true, // 列车特殊显示
specialBackground: 'rgba(36, 219, 219, 0.8)', specialBackground: 'rgba(36, 219, 219, 0.8)',
specialRectWidth: 14, specialRectWidth: 25,
stopTrainRectWidth: 7 stopTrainRectWidth: 7
} }
}; };
@ -740,12 +740,12 @@ class SkinCode extends defaultStyle {
trainTargetTextAlign: 'right' // 车次号文字显示位置 trainTargetTextAlign: 'right' // 车次号文字显示位置
}, },
trainTargetNumber: { trainTargetNumber: {
groupNumberPrefix: '00000', // 车组号前缀 groupNumberPrefix: '000', // 车组号前缀
defaultGroupNumber: 'EEEEE', // 默认车组号 defaultGroupNumber: 'EEE', // 默认车组号
trainTargetNumberOffset: {x: -4, y: 4}, // 车组号偏移量 trainTargetNumberOffset: {x: -4, y: 4}, // 车组号偏移量
lineNumber: '01', // 线路号在人工车时车组号拼接线路号 lineNumber: '', // 线路号在人工车时车组号拼接线路号
manualTypeColor: '#FA7FD7', // 人工车车组号显示颜色 manualTypeColor: '#FA7FD7' // 人工车车组号显示颜色
maskText: '0' // 车组号遮罩 // maskText: '0' // 车组号遮罩
}, },
trainHead: { trainHead: {
trainConntWidth: 0, // 列车竖杠的宽度 trainConntWidth: 0, // 列车竖杠的宽度

View File

@ -23,7 +23,7 @@ export default class ETriangle extends Group {
shape: { shape: {
x: model.point.x - this.style.Section.trainPosition.stopTrainRectWidth, x: model.point.x - this.style.Section.trainPosition.stopTrainRectWidth,
y: model.point.y - this.style.Section.line.width / 4, y: model.point.y - this.style.Section.line.width / 4,
width: this.style.Section.trainPosition.stopTrainRectWidth, width: this.style.Section.line.width - 2,
height: this.style.Section.line.width - 2 height: this.style.Section.line.width - 2
}, },
style: { style: {
@ -137,15 +137,15 @@ export default class ETriangle extends Group {
this.angle1.dirty(); this.angle1.dirty();
} }
if (this.stopRect) { if (this.stopRect) {
const offset = (this.style.Section.trainPosition.specialRectWidth - this.style.Section.trainPosition.stopTrainRectWidth) / 2; const offset = (this.style.Section.trainPosition.specialRectWidth - this.style.Section.line.width) / 2;
let trainRight = model.x + offset; let trainRight = model.x + offset;
if (right == 1) { if (right == 1) {
trainRight = model.x - offset - this.style.Section.trainPosition.stopTrainRectWidth; trainRight = model.x - offset - this.style.Section.line.width + 2;
} }
const pointsData = { const pointsData = {
x: trainRight, x: trainRight,
y: model.y - this.style.Section.line.width / 4, y: model.y - this.style.Section.line.width / 4 - 1,
width: this.style.Section.trainPosition.stopTrainRectWidth, width: this.style.Section.line.width - 2,
height: this.style.Section.line.width - 2 height: this.style.Section.line.width - 2
}; };
this.stopRect.attr({ this.stopRect.attr({

View File

@ -294,6 +294,9 @@ function handle(state, data) {
case 'Simulation_Training_Finish': case 'Simulation_Training_Finish':
state.trainingOverCount++; state.trainingOverCount++;
break; break;
case 'YJDDZH_TRAIN_POSITION':
state.whTrainInfo = msg;
break;
// //
// // 大铁项目 调度台 运行图信息 初始化消息 // // 大铁项目 调度台 运行图信息 初始化消息
// case 'SIMULATION_RAILWAY_RUN_PLAN_INIT': // case 'SIMULATION_RAILWAY_RUN_PLAN_INIT':
@ -483,7 +486,8 @@ const socket = {
voiceBroadcastChange: 0, // 语音播报信息变化 voiceBroadcastChange: 0, // 语音播报信息变化
trainingStepTip: '', // 新实训推送消息 trainingStepTip: '', // 新实训推送消息
trainingOverCount: 0, // 新实训结束计数器 trainingOverCount: 0, // 新实训结束计数器
trainingReloadCount: 0 trainingReloadCount: 0,
whTrainInfo: null
// railwaySimulationRpMsg:{}, // 大铁项目 调度台 调度台 // railwaySimulationRpMsg:{}, // 大铁项目 调度台 调度台
// railwaySimulationRpChange:0 // 大铁项目 调度台 运行图信息变化 // railwaySimulationRpChange:0 // 大铁项目 调度台 运行图信息变化
}, },

View File

@ -439,7 +439,6 @@ const training = {
commit('setOperateErrMsg', { errMsg: LangStorage.getLang() == 'en' ? 'Please click start, start training!' : '请点击开始,开始实训!', color: 'red' }); commit('setOperateErrMsg', { errMsg: LangStorage.getLang() == 'en' ? 'Please click start, start training!' : '请点击开始,开始实训!', color: 'red' });
return; return;
} }
// 处理operation // 处理operation
Handler.handle(operate).then(rtn => { Handler.handle(operate).then(rtn => {
if (store.state.trainingNew.trainingSwitch && store.state.trainingNew.trainingDetail.type === 'SINGLE') { if (store.state.trainingNew.trainingSwitch && store.state.trainingNew.trainingDetail.type === 'SINGLE') {

View File

@ -27,11 +27,11 @@ export function handlerUrl(data) {
// BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://192.168.3.233/rtss-server'; // BASE_API = 'http://192.168.3.233/rtss-server';
// BASE_API = 'http://114.116.51.125/jlcloud'; // BASE_API = 'http://114.116.51.125/jlcloud';
// BASE_API = 'http://192.168.8.152:9000'; // 袁琪 BASE_API = 'http://192.168.3.90:9100'; // 周寅
// BASE_API = 'http://192.168.3.94:9000'; // 旭强 // BASE_API = 'http://192.168.3.94:9000'; // 旭强
// BASE_API = 'http://192.168.3.15:9000'; // 张赛 // BASE_API = 'http://192.168.3.15:9000'; // 张赛
// BASE_API = 'http://192.168.3.5:9000'; // 夏增彬 // BASE_API = 'http://192.168.3.5:9000'; // 夏增彬
BASE_API = 'http://192.168.3.37:9000'; // 卫志宏 // BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
// BASE_API = 'http://b29z135112.zicp.vip'; // BASE_API = 'http://b29z135112.zicp.vip';
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康 // BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛 // BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛

View File

@ -2,6 +2,7 @@
<div class="bigScreen"> <div class="bigScreen">
<div v-show="maskOpen" class="bigScreenMask" /> <div v-show="maskOpen" class="bigScreenMask" />
<jlmap-visual ref="jlmapVisual" /> <jlmap-visual ref="jlmapVisual" />
<wh-train-list v-if="prdType=== '10'" ref="whTrainList" />
<div v-show="disPlay" class="bigScreenBack"> <div v-show="disPlay" class="bigScreenBack">
<el-button-group> <el-button-group>
<el-button type="primary" @click="back">返回</el-button> <el-button type="primary" @click="back">返回</el-button>
@ -17,11 +18,13 @@ import { mapGetters } from 'vuex';
import { creatSubscribe, clearSubscribe, displayTopic} from '@/utils/stomp'; import { creatSubscribe, clearSubscribe, displayTopic} from '@/utils/stomp';
import { getToken } from '@/utils/auth'; import { getToken } from '@/utils/auth';
import { TrainingMode } from '@/scripts/ConstDic'; import { TrainingMode } from '@/scripts/ConstDic';
import WhTrainList from './whTrainList';
export default { export default {
name: 'BigScreen', name: 'BigScreen',
components: { components: {
JlmapVisual JlmapVisual,
WhTrainList
}, },
props: { props: {
widthLeft: { widthLeft: {
@ -47,7 +50,10 @@ export default {
]), ]),
...mapGetters('config', [ ...mapGetters('config', [
'canvasId' 'canvasId'
]) ]),
prdType() {
return this.$route.query.prdType;
}
}, },
watch: { watch: {
widthLeft(val) { widthLeft(val) {
@ -76,6 +82,9 @@ export default {
}, },
'$store.state.socket.simulationOver':function(val) { '$store.state.socket.simulationOver':function(val) {
this.backOut(); this.backOut();
},
'$store.state.socket.whTrainInfo': function(val) {
} }
}, },
async beforeDestroy() { async beforeDestroy() {
@ -180,10 +189,16 @@ export default {
this.clearSubscribe(); this.clearSubscribe();
const header = { group: this.$route.query.group || '', 'X-Token': getToken() }; const header = { group: this.$route.query.group || '', 'X-Token': getToken() };
creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header); creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
if (this.prdType === '10') {
creatSubscribe(`/topic/yjddzh/trainPosition`, header);
}
// await this.$store.dispatch('training/setHasSubscribed'); // await this.$store.dispatch('training/setHasSubscribed');
}, },
clearSubscribe() { clearSubscribe() {
clearSubscribe(`${displayTopic}\/${this.$route.query.group}`); clearSubscribe(`${displayTopic}\/${this.$route.query.group}`);
if (this.prdType === '10') {
clearSubscribe(`/topic/yjddzh/trainPosition`);
}
} }
} }
}; };

View File

@ -0,0 +1,103 @@
<template>
<div class="menuTrainListOut" :class="{'active': drawer}">
<div class="menuTrainListBtn" @click="clickBtn">列车</div>
<div :show-close="false" class="menuTrainList_box" style="height: 100%;">
<div class="menuTrainList">
<el-table :data="trainList" height="100%" :highlight-current-row="true" style="border-radius:5px 0px 0px 5px;" @row-click="selectTrain">
<el-table-column property="groupNum" label="车组号" width="130" />
<el-table-column property="direction" label="方向" width="130" />
<el-table-column property="location" label="公里标" width="130" />
</el-table>
</div>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
name: 'WhTrainList',
data() {
return {
drawer: false,
trainList:[],
trainMap: new Map()
};
},
computed: {
...mapGetters('map', [
'map',
'mapConfig'
]),
lineCode() {
return this.$route.query.lineCode;
}
},
watch:{
'$store.state.socket.whTrainInfo': function (val) {
if (val) {
this.trainMap.set(val.groupNum, {groupNum: val.groupNum, direction: val.roadType === 'RIGHT' ? '右' : '左', location: val.location});
const trainList = [];
for (const [key, value] of this.trainMap) {
trainList.push(value);
}
this.trainList = trainList;
}
}
},
mounted() {
this.trainList = [];
},
methods:{
clickBtn() {
if (this.drawer) {
this.drawer = false;
} else {
this.drawer = true;
}
},
selectTrain(row, column, event) {
//
this.$jlmap.setCenter(row.code);
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menuTrainListOut{
position: absolute;
right: 0;
top: 20%;
height: 60%;
transform: translateX(400px);
transition: all 0.4s;
&.active{
transform: translateX(0px);
}
}
.menuTrainListBtn{
background: #fff;
text-align: center;
border-radius: 6px 0px 0px 6px;
position: absolute;
top: 45%;
z-index: 2;
transform: translateX(-23px);
cursor: pointer;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
justify-content: center;
padding: 7px 4px;
width: 23px;
}
.menuTrainList_box{
height: 100%;
.menuTrainList{
width: 400px;
height: 100%;
border-radius: 10px 0px 0px 10px;
background: #fff;
}
}
</style>