This commit is contained in:
fan 2020-04-21 18:45:05 +08:00
commit 5f4a211bf2
16 changed files with 518 additions and 134 deletions

View File

@ -285,3 +285,11 @@ export function realDeviceIsUsed(group, projectCode) {
}
});
}
// 获取仿真成员列表(新版地图)
export function getSimulationMembersNew(group) {
return request({
url: `/simulation/${group}/members`,
method: 'get'
});
}

View File

@ -187,12 +187,12 @@ export function JLmap3d(dom, data,skinCode,storemod,routegroup,project) {
scope.webwork.onmessage = function (event) {
//更新列车位置
if(scope.datatype == "new"){
UpdateTrainNew(camera,trainlisttest);
}else{
UpdateTrain(camera,trainlisttest);
}
// if(scope.datatype == "new"){
//
// UpdateTrainNew(camera,trainlisttest);
// }else{
// UpdateTrain(camera,trainlisttest);
// }
if(camerarail.moveswitch == true){
// console.log(camerarail.progress);

View File

@ -190,7 +190,7 @@ export default {
const operate = {
over: true,
operation: OperationEvent.Switch.locate.menu.operation,
cmdType: CMD.Switch.CMD_SWITCH_TURN_NP_CHAIN
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
};
this.sendCommand(operate);
@ -200,7 +200,7 @@ export default {
const operate = {
over: true,
operation: OperationEvent.Switch.reverse.menu.operation,
cmdType: CMD.Switch.CMD_SWITCH_TURN_RP_CHAIN
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
};
this.sendCommand(operate);

View File

@ -45,11 +45,36 @@ export default {
Local: [
],
Center: [
// {
// label: '',
// handler: this.setSpeed,
// cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
// },
{
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
}
]
},
menuForce: [
@ -213,48 +238,84 @@ export default {
},
//
locate(selectType) {
commitOperate(menuOperate.Switch.locate, {switchCode:selectType.code}, 3).then(({valid, operate})=>{
// this.$refs.switchControl.doShow(data.operate, this.selected);
let code = selectType.code;
let type = 3;
if (!code) {
code = this.selected.code;
type = 0;
}
commitOperate(menuOperate.Switch.locate, {switchCode: code}, type).then(({valid, operate})=>{
!selectType.code && this.$refs.switchControl.doShow(operate, this.selected);
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
reverse(selectType) {
commitOperate(menuOperate.Switch.reverse, {switchCode:selectType.code}, 3).then(({valid, operate})=>{
// this.$refs.switchControl.doShow(data.operate, this.selected);
let code = selectType.code;
let type = 3;
if (!code) {
code = this.selected.code;
type = 0;
}
commitOperate(menuOperate.Switch.reverse, {switchCode: code}, type).then(({valid, operate})=>{
!selectType.code && this.$refs.switchControl.doShow(operate, this.selected);
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
lock(selectType) {
commitOperate(menuOperate.Switch.lock, {switchCode:selectType.code}, 3).then(({valid, operate})=>{
// this.$refs.switchControl.doShow(data.operate, this.selected);
let code = selectType.code;
let type = 3;
if (!code) {
code = this.selected.code;
type = 0;
}
commitOperate(menuOperate.Switch.lock, {switchCode: code}, type).then(({valid, operate})=>{
!selectType.code && this.$refs.switchControl.doShow(operate, this.selected);
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
unlock(selectType) {
commitOperate(menuOperate.Switch.unlock, {switchCode:selectType.code}, 3).then(({valid, operate})=>{
// this.$refs.switchUnLock.doShow(data.operate, this.selected);
let code = selectType.code;
let type = 3;
if (!code) {
code = this.selected.code;
type = 0;
}
commitOperate(menuOperate.Switch.unlock, {switchCode: code}, type).then(({valid, operate})=>{
!selectType.code && this.$refs.switchUnLock.doShow(operate, this.selected);
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
block(selectType) {
commitOperate(menuOperate.Switch.block, {switchCode:selectType.code}, 3).then(({valid, operate})=>{
// this.$refs.switchControl.doShow(data.operate, this.selected);
let code = selectType.code;
let type = 3;
if (!code) {
code = this.selected.code;
type = 0;
}
commitOperate(menuOperate.Switch.block, {switchCode: code}, type).then(({valid, operate})=>{
!selectType.code && this.$refs.switchControl.doShow(operate, this.selected);
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
unblock(selectType) {
commitOperate(menuOperate.Switch.unblock, {switchCode:selectType.code}, 3).then(({valid, operate})=>{
// this.$refs.switchUnLock.doShow(data.operate, this.selected);
let code = selectType.code;
let type = 3;
if (!code) {
code = this.selected.code;
type = 0;
}
commitOperate(menuOperate.Switch.unblock, {switchCode: code}, type).then(({valid, operate})=>{
!selectType.code && this.$refs.switchUnLock.doShow(operate, this.selected);
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});

View File

@ -89,7 +89,7 @@ export default {
],
roleTypeNew:[
{label: '管理员', value: 'ADMIN', enLabel: 'Admin '},
// {label: '教员', value: 'Instructor', enLabel: 'Instructor '},
{label: '教员', value: 'Instructor', enLabel: 'Instructor '},
{label: '行调', value: 'DISPATCHER', enLabel: 'Dispatcher '},
{label: '行值', value: 'STATION_SUPERVISOR', enLabel: 'Attendant '},
{label: '观众', value: 'AUDIENCE', enLabel: 'Audience '},

View File

@ -1,5 +1,5 @@
<template>
<div style="width:25%;height:100%;position:absolute;left:50%;">
<div style="width:100%;height:50%;position:absolute;bottom:4%">
<div id="start" class="panebutton2" style="bottom:1%;left:5%;">
<img class="buttonimg2" :src="start" />
</div>

View File

@ -1,7 +1,7 @@
<template>
<div class="drivepane">
<div style="position: absolute;left:50%;top:10%;z-index:10;background: #EBEBEB;">
<div style="position: absolute;right:50%;top:60%;z-index:10;background: #EBEBEB;">
<el-select v-model="value" placeholder="请选择列车" @change="currentsel" @visible-change="clickselect">
<el-option
v-for="item in options"
@ -14,9 +14,9 @@
<Centerc-Pane ref="centercontrol" :draw-way="drawWay" :group-num="groupnum" :user-role="userrole" />
<Left-Pane ref="leftcontrol" />
<!-- <Left-Pane ref="leftcontrol" /> -->
<Right-Pane ref="rightcontrol" />
<!-- <Right-Pane ref="rightcontrol" /> -->
<TopRight-Pane ref="topcontrol" />
@ -148,13 +148,14 @@ import axios from 'axios';
<style>
.drivepane{
width:100%;
height:160px;
left:0;
width:30%;
height:320px;
right:500px;
bottom:0;
position: absolute;
background-size: 100% 100%;
background-image: url('/static/jl3d/control/scene.png');
border-radius:10px;
}
.panebutton{
height: 73px;

View File

@ -1,58 +1,73 @@
<template>
<div style="width:25%;height:100%;position:absolute;bottom:0;left:0;">
<div id="breaker" class="panebutton" style="top:3%;left:3%;" @tap="breakerclick">
<!-- 高速断路器 -->
<!-- <div id="breaker" class="panebutton" style="top:3%;left:3%;" @tap="breakerclick">
<img class="buttonimg" :src="greenzimg" />
<div class="buttontext">{{ $t('jlmap3d.highSpeedCircuitBreaker') }}</div>
</div>
<div id="carwash" class="panebutton" style="top:3%;left:14%;" @tap="carwashclick">
</div> -->
<!-- 洗车模式 -->
<!-- <div id="carwash" class="panebutton" style="top:3%;left:14%;" @tap="carwashclick">
<img class="buttonimg" :src="redzimg" />
<div class="buttontext">{{ $t('jlmap3d.washCarModel') }}</div>
</div>
<div id="aircom" class="panebutton" style="top:3%;left:28%;" @tap="aircomclick">
</div> -->
<!-- 空压机强迫启动 -->
<!-- <div id="aircom" class="panebutton" style="top:3%;left:28%;" @tap="aircomclick">
<img class="buttonimg" :src="aircomimg" />
<div class="buttontext">{{ $t('jlmap3d.forcedAirCompressor') }}</div>
</div>
</div> -->
<!-- ATB启动 -->
<div id="atb" class="panebutton" style="top:3%;left:42%;" @tap="atbclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">{{ $t('jlmap3d.ATBStart') }}</div>
</div>
<!-- BM/CBTC -->
<div id="bmcbtc" class="panebutton" style="top:3%;left:56%;" @tap="bmcbtcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">BM/CBTC</div>
</div>
<!-- RM -->
<div id="rm" class="panebutton" style="top:3%;left:70%;" @tap="rmclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">RM</div>
</div>
<div id="relieve" class="panebutton" style="top:3%;left:84%;" @tap="relieveclick">
<!-- 强迫缓解 -->
<!-- <div id="relieve" class="panebutton" style="top:3%;left:84%;" @tap="relieveclick">
<img class="buttonimg" :src="aircomimg" />
<div class="buttontext">{{ $t('jlmap3d.forcedRelieve') }}</div>
</div>
</div> -->
<!-- 关左门 -->
<div id="dlclose" class="panebutton" style="bottom:3%;left:3%;" @tap="dlcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">{{ $t('jlmap3d.closeLeftDoor') }}</div>
</div>
<!-- 开左门A -->
<div id="dlopen" class="panebutton" style="bottom:3%;left:14%;" @tap="dloclick">
<img class="buttonimg" :src="redimg" />
<div class="buttontext">{{ $t('jlmap3d.openLeftDoor') }}</div>
</div>
<div id="dlopen" class="panebutton" style="bottom:3%;left:28%;" @tap="dloclick">
<!-- 开左门B -->
<!-- <div id="dlopen" class="panebutton" style="bottom:3%;left:28%;" @tap="dloclick">
<img class="buttonimg" :src="redimg" />
<div class="buttontext">{{ $t('jlmap3d.openLeftDoor') }}</div>
</div>
</div> -->
<!-- ATO启动A -->
<div id="atoa" class="panebutton" style="bottom:3%;left:42%;" @tap="atoaclick">
<img class="buttonimg" :src="apoimg" />
<div class="buttontext">{{ $t('jlmap3d.ATOStart') }}</div>
</div>
<div id="atob" class="panebutton" style="bottom:3%;left:56%;" @tap="atobclick">
<!-- ATO启动B -->
<!-- <div id="atob" class="panebutton" style="bottom:3%;left:56%;" @tap="atobclick">
<img class="buttonimg" :src="apoimg" />
<div class="buttontext">{{ $t('jlmap3d.ATOStart') }}</div>
</div>
</div> -->
<!-- cbtc -->
<div id="cbtc" class="panebutton" style="bottom:3%;left:70%;" @tap="cbtcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">CBTC</div>
</div>
<!-- 电笛按钮 -->
<div id="elflute" class="panebutton" style="bottom:3%;left:84%;" @tap="elfluteclick">
<img class="buttonimg" :src="grayimg" />
<div class="buttontext">{{ $t('jlmap3d.electricHornButton') }}</div>

View File

@ -1,22 +1,22 @@
<template>
<div style="width:25%;height:100%;position:absolute;left:75%;">
<div style="width:25%;height:100%;position:absolute;left:75%;">
<div id="dropen" class="panebutton" style="bottom:1%;left:1%;" @tap="droclick">
<img class="buttonimg" :src="redlimg" />
<div class="buttontext">{{ $t('jlmap3d.openRightDoor') }}</div>
</div>
<div id="dropen" class="panebutton" style="bottom:1%;left:21%;" @tap="droclick">
<!-- <div id="dropen" class="panebutton" style="bottom:1%;left:21%;" @tap="droclick">
<img class="buttonimg" :src="redlimg" />
<div class="buttontext">{{ $t('jlmap3d.openRightDoor') }}</div>
</div>
</div> -->
<div id="drclose" class="panebutton" style="bottom:1%;left:41%;" @tap="drcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">{{ $t('jlmap3d.closeRightDoor') }}</div>
</div>
<div id="waterswitch" class="panebutton2" style="bottom:1%;left:61%;" @tap="waterclick">
<!-- <div id="waterswitch" class="panebutton2" style="bottom:1%;left:61%;" @tap="waterclick">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:watertou}" @touchstart='watertouchstart' @touchmove='watertouchmove' @touchend='watertouchend'/>
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.close') }}</div>
@ -31,7 +31,7 @@
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.slow') }}</div>
<div class="tfbutton" style="font-size:1px;top:23px;left:50px;">{{ $t('jlmap3d.highSpeed') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.wiperSwitch') }}</div>
</div>
</div> -->
<div id="urgestop" class="panebutton" style="top:1%;left:1%;">
<img class="buttonimg" :src="urgestopimg" />
@ -47,14 +47,14 @@
<div class="buttontext2">{{ $t('jlmap3d.doorSideChoose') }}</div>
</div>
<div id="doormode" class="panebutton2" style="top:1%;left:66%;">
<!-- <div id="doormode" class="panebutton2" style="top:1%;left:66%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:doormodetou}" @touchstart='doormodetouchstart' @touchmove='doormodetouchmove' @touchend='doormodetouchend'/>
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">AA</div>
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">AM</div>
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">MM</div>
<div class="buttontext2">{{ $t('jlmap3d.doorModel') }}</div>
</div>
</div> -->
</div>
</template>

View File

@ -1,10 +1,50 @@
<template>
<div style="width:25%;height:100%;position:absolute;left:25%;">
<div style="width:100%;height:48%;position:absolute;top:0px;">
<!-- ATB启动 -->
<div id="atb" class="panebutton" style="top:8%;left:3%;" @tap="atbclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">{{ $t('jlmap3d.ATBStart') }}</div>
</div>
<!-- BM/CBTC -->
<div id="bmcbtc" class="panebutton" style="top:8%;left:17%;" @tap="bmcbtcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">BM/CBTC</div>
</div>
<!-- RM -->
<div id="rm" class="panebutton" style="top:8%;left:31%;" @tap="rmclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">RM</div>
</div>
<!-- 关左门 -->
<div id="dlclose" class="panebutton" style="top:8%;left:45%;" @tap="dlcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">{{ $t('jlmap3d.closeLeftDoor') }}</div>
</div>
<!-- 开左门A -->
<div id="dlopen" class="panebutton" style="top:8%;left:59%;" @tap="dloclick">
<img class="buttonimg" :src="redimg" />
<div class="buttontext">{{ $t('jlmap3d.openLeftDoor') }}</div>
</div>
<!-- ATO启动A -->
<div id="atoa" class="panebutton" style="top:8%;left:73%;" @tap="atoaclick">
<img class="buttonimg" :src="apoimg" />
<div class="buttontext">{{ $t('jlmap3d.ATOStart') }}</div>
</div>
<!-- cbtc -->
<div id="cbtc" class="panebutton" style="top:8%;left:87%;" @tap="cbtcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">CBTC</div>
</div>
<!-- 电笛按钮 -->
<!-- <div id="elflute" class="panebutton" style="bottom:3%;left:84%;" @tap="elfluteclick">
<img class="buttonimg" :src="grayimg" />
<div class="buttontext">{{ $t('jlmap3d.electricHornButton') }}</div>
</div> -->
<div id="passlight" class="panebutton2" style="top:1%;left:1%;">
<!-- <div id="passlight" class="panebutton2" style="top:1%;left:1%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:passlighttf}" @touchstart='passlighttouchstart' @touchmove='passlighttouchmove' @touchend='passlighttouchend'/>
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.close') }}</div>
<div class="tfbutton" style="font-size:1px;top:8px;left:33px;">{{ $t('jlmap3d.close') }}</div>
<div class="tfbutton" style="font-size:1px;top:25px;left:50px;">{{ $t('jlmap3d.open') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.roomLightingControl') }}</div>
</div>
@ -12,15 +52,15 @@
<div id="siv" class="panebutton2" style="top:1%;left:20%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:sivtf}" @touchstart='sivtouchstart' @touchmove='sivtouchmove' @touchend='sivtouchend'/>
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.close') }}</div>
<div class="tfbutton" style="font-size:1px;top:8px;left:33px;">{{ $t('jlmap3d.close') }}</div>
<div class="tfbutton" style="font-size:1px;top:25px;left:50px;">{{ $t('jlmap3d.open') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.sivsControl') }}</div>
</div>
</div> -->
<div id="driverlight" class="panebutton2" style="top:1%;left:40%;">
<!-- <div id="driverlight" class="panebutton2" style="top:1%;left:40%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:driverlighttf}" @touchstart='driverlighttouchstart' @touchmove='driverlighttouchmove' @touchend='driverlighttouchend'/>
<div class="tfbutton" style="font-size:1px;top:5px;left:28px;">{{ $t('jlmap3d.shut') }}</div>
<div class="tfbutton" style="font-size:1px;top:8px;left:28px;">{{ $t('jlmap3d.shut') }}</div>
<div class="tfbutton" style="font-size:1px;top:25px;left:50px;">{{ $t('jlmap3d.open') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.driverRoomLights') }}</div>
</div>
@ -28,41 +68,63 @@
<div id="headlight" class="panebutton2" style="top:1%;left:60%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:headlighttf}" @touchstart='headlighttouchstart' @touchmove='headlighttouchmove' @touchend='headlighttouchend'/>
<div class="tfbutton" style="font-size:1px;top:5px;left:28px;">{{ $t('jlmap3d.shut') }}</div>
<div class="tfbutton" style="font-size:1px;top:8px;left:28px;">{{ $t('jlmap3d.shut') }}</div>
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.passingBeam') }}</div>
<div class="tfbutton" style="font-size:1px;top:25px;left:50px">{{ $t('jlmap3d.distanceLight') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.headLamp') }}</div>
</div>
</div> -->
<div id="sg" class="panebutton" style="bottom:1%;left:1%;" @tap="sgclink">
<!-- 受电弓升 -->
<!-- <div id="sg" class="panebutton" style="bottom:6%;left:3%;" @tap="sgclink">
<img class="buttonimg" :src="sgimg" />
<div class="buttontext">{{ $t('jlmap3d.electricGongSheng') }}</div>
</div>
<div id="jg" class="panebutton" style="bottom:1%;left:20%;" @tap="jgclick">
</div> -->
<!-- 受电弓降 -->
<!-- <div id="jg" class="panebutton" style="bottom:6%;left:17%;" @tap="jgclick">
<img class="buttonimg" :src="jgimg" />
<div class="buttontext">{{ $t('jlmap3d.pantographFall') }}</div>
</div>
<div id="sl" class="panebutton" style="bottom:1%;left:40%;" @tap="slclick">
</div> -->
<!-- 试灯按钮 -->
<!-- <div id="sl" class="panebutton" style="bottom:6%;left:40%;" @tap="slclick">
<img class="buttonimg" :src="slimg" />
<div class="buttontext">{{ $t('jlmap3d.lampButton') }}</div>
</div>
<div id="atp" class="panebutton" style="bottom:1%;left:60%;" @tap="atpclick">
</div> -->
<!-- ATP切除 -->
<div id="atp" class="panebutton" style="bottom:6%;left:31%;" @tap="atpclick">
<img class="buttonimg" :src="atpimg" />
<div class="buttontext">{{ $t('jlmap3d.removalATP') }}</div>
</div>
<div id="staymode" class="panebutton2" style="bottom:1%;left:80%;">
<!-- <div id="staymode" class="panebutton2" style="bottom:6%;left:80%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:toutransform}" @touchstart='stopmodetouchstart' @touchmove='stopmodetouchmove' @touchend='stopmodetouchend'/>
<div class="tfbutton" style="top:25px;left:1px;">{{ $t('jlmap3d.infliction') }}</div>
<div class="tfbutton" style="top:5px;left:25px;">{{ $t('jlmap3d.mesoPosition') }}</div>
<div class="tfbutton" style="top:8px;left:25px;">{{ $t('jlmap3d.mesoPosition') }}</div>
<div class="tfbutton" style="top:25px;left:50px;">{{ $t('jlmap3d.remission') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.parkingBrakeMode') }}</div>
</div> -->
<div id="dropen" class="panebutton" style="bottom:6%;left:45%;" @tap="droclick">
<img class="buttonimg" :src="redlimg" />
<div class="buttontext">{{ $t('jlmap3d.openRightDoor') }}</div>
</div>
<div id="drclose" class="panebutton" style="bottom:6%;left:59%;" @tap="drcclick">
<img class="buttonimg" :src="greenimg" />
<div class="buttontext">{{ $t('jlmap3d.closeRightDoor') }}</div>
</div>
<div id="urgestop" class="panebutton" style="bottom:6%;left:73%;">
<img class="buttonimg" :src="urgestopimg" />
<div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</div>
</div>
<div id="doorpick" class="panebutton2" style="bottom:6%;left:85%;">
<img class="buttonimg2" :src="zuoimg" />
<img class="buttonimg2" :src="niuimg" :style="{transform:doordirecttou}" @touchstart='doordirecttouchstart' @touchmove='doordirecttouchmove' @touchend='doordirecttouchend'/>
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
<div class="tfbutton" style="font-size:1px;top:8px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
<div class="buttontext2">{{ $t('jlmap3d.doorSideChoose') }}</div>
</div>
</div>
</template>
@ -80,7 +142,7 @@
return {
move:0,
movex:"20%",
apoimg:"",
apoimg:"/static/jl3d/control/green.png",
sgimg:"/static/jl3d/control/redz.png",
jgimg:"/static/jl3d/control/greenz.png",
atpimg:"/static/jl3d/control/atp.png",
@ -88,6 +150,25 @@
zuoimg:"/static/jl3d/control/zuo.png",
niuimg:"/static/jl3d/control/niu.png",
toutransform:"rotate(0deg)",
redlimg:"/static/jl3d/control/redl.png",
greenimg:"/static/jl3d/control/green.png",
urgestopimg:"/static/jl3d/control/urgestop.png",
doordirecttou:"rotate(0deg)",
doormodetou:"rotate(0deg)",
watertou:"rotate(0deg)",
washtou:"rotate(0deg)",
greenzimg:"/static/jl3d/control/greenz.png",
redzimg:"/static/jl3d/control/redz.png",
redimg:"/static/jl3d/control/red.png",
greenlimg:"/static/jl3d/control/greenl.png",
grayimg:"/static/jl3d/control/gray.png",
aircomimg:"/static/jl3d/control/aircom.png",
passlighttf:"rotate(0deg)",
sivtf:"rotate(0deg)",
driverlighttf:"rotate(0deg)",
headlighttf:"rotate(0deg)",
}
},
watch: {

View File

@ -394,7 +394,7 @@ export default {
height:333px;
background: black;
position:absolute;
bottom:160px;
bottom:0;
}
.meter{
width:60%;

View File

@ -47,7 +47,7 @@ export default {
background-size:100% 100%;
background-image:url('/static/jl3d/tms.png');
position:absolute;
bottom:160px;
bottom:0;
right:0;
}

View File

@ -0,0 +1,183 @@
<template>
<div class="chatBox">
<div v-show="!minimize" class="chat-box">
<div :class="showMembers?'memberAnimate chat-box-members':'chat-box-members'">
<div class="chat-member-title">成员列表</div>
<div class="chat-member-list">
<div v-for="member in memberList" :key="member.id" class="each-chat-member">{{ member.role+'-'+member.name }}</div>
</div>
</div>
<div class="chat-box-main">
<div class="chat-box-header">
<div class="chat-box-header-title">聊天窗口</div>
<div class="minimality" @click="handleMinimality('min')">
<i class="el-icon-remove" />
</div>
<div class="showMembers" @click="handleMembers()">
<i class="el-icon-user-solid" />
</div>
</div>
</div>
</div>
<div v-show="minimize" class="reminder-drag minimize-box">
<div class="chat-title">聊天窗口</div>
<div class="minimality" @click="handleMinimality('max')">
<i class="el-icon-circle-plus" />
</div>
</div>
</div>
</template>
<script>
import {getSimulationMembersNew} from '@/api/chat';
import ConstConfig from '@/scripts/ConstConfig';
import Cookies from 'js-cookie';
export default {
name: 'ChatBox',
data() {
return {
minimize:false,
showMembers:false,
memberList:[]
};
},
methods:{
handleMinimality(data) {
if (data == 'min') {
this.minimize = true;
} else {
this.minimize = false;
}
},
handleMembers() {
if (this.showMembers) {
this.showMembers = false;
} else {
getSimulationMembersNew(this.$route.query.group).then(resp => {
// this.memberList = netdata.data;
let lastData = JSON.stringify(resp.data);
const roleTypeList = ConstConfig.ConstSelect.roleTypeNew;
roleTypeList.forEach(function(element) {
const rolename = element.value;
if (Cookies.get('user_lang') == 'en') {
lastData = lastData.replace(new RegExp(rolename, 'g'), element.enLabel);
} else {
lastData = lastData.replace(new RegExp(rolename, 'g'), element.label);
}
});
lastData = JSON.parse(lastData);
this.memberList = lastData;
});
this.showMembers = true;
}
}
}
};
</script>
<style lang="scss" scoped>
.chatBox{
width: 400px;
height: 400px;
position: absolute;
padding-left:5px;
left: 0;
bottom:28px;
}
.chat-box{
width: 100%;
height: 100%;
}
.chat-box-header{
width: 100%;
height: 40px;
border-bottom: 1px #dedede solid;
}
.chat-box-header-title{
font-size: 15px;
margin-left: 15px;
display: inline-block;
margin-top: 10px;
}
.minimality {
float: right;
line-height: 40px;
margin-right: 10px;
cursor: pointer;
}
.chat-box-main{
position: absolute;
width: 100%;
left: 0;
height: 100%;
top: 0;
border-right: 1px #dedede solid;
z-index: 4;
background: #fff;
border-radius: 5px;
left:5px;
}
.chat-member-list{
margin-top: 13px;
font-size: 12px;
margin-left: 2px;
}
.each-chat-member{
margin-bottom: 10px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.chat-box-members{
position: absolute;
width: 140px;
right: 0;
height: 100%;
background: #fff;
border-right: 1px #dedede solid;
border-radius: 0px 5px 5px 0px;
z-index: 2;
transition: transform 1s;
padding: 12px 11px 10px 16px;
font-size: 14px;
}
.chat-member-title{
}
.showMembers{
float: right;
line-height: 40px;
margin-right: 10px;
cursor: pointer;
font-size: 17px;
}
.memberAnimate{
transform: translateX(97%);
}
.minimize-box {
width: 97.5%;
height: 40px;
position: absolute;
left: 5px;
bottom: 0;
z-index: 222;
background: #fff;
border-radius: 5px;
.chat-title {
float: left;
font-size: 15px;
margin-left: 10px;
line-height: 40px;
}
.minimality {
float: right;
height: 40px;
line-height: 40px;
margin-right: 10px;
cursor: pointer;
}
}
</style>

View File

@ -1,5 +1,63 @@
<template>
<div>
<chat-box />
<!-- <div v-show="!minimize" class="reminder-drag">
<div v-if="userRole != '05' && userRole != ''">
<div class="tabs-roles">
<div
class="roles roles-first"
:class="activeName == 'first' ? 'roles-active':''"
@click="clickRoles('first')"
>角色
</div>
<div
class="roles"
:class="activeName == 'second' ? 'roles-active':''"
@click="clickRoles('second')"
>所有人
</div>
<div class="minimality" @click="handleMinimality('min')">
<i class="el-icon-remove" />
</div>
</div>
<div class="tabs-content">
<div v-show="activeName == 'first'">
<chart-view
ref="chatView"
:group="group"
:station-list="stationLists"
@showChatSpeak="showChatSpeak"
@showChat="showChat"
@showChatNone="showChatNone"
/>
</div>
<div style="flex-grow: 1">
<chart-window
ref="chat"
:group="group"
:chat-show="chatShow"
:speaking="isSpeaking"
:is-show-auto="isShowAuto"
@handleChatShow="handleChatShow"
@handleChatList="handleChatList"
/>
</div>
</div>
</div>
<div v-else>
<el-tabs v-model="activeName2" type="card">
<el-tab-pane label="所有人" name="second">
<chart-window :speaking="isSpeaking" :group="group" :is-show-auto="true" />
</el-tab-pane>
</el-tabs>
</div>
</div> -->
<!-- <div v-show="minimize" class="reminder-drag minimize-box">
<div class="chat-title">聊天窗口</div>
<div class="minimality" @click="handleMinimality('max')">
<i class="el-icon-circle-plus" />
</div>
</div> -->
<div class="display-draft" :class="{'display-type-hb': $route.query.lineCode == '07' && $store.state.training.prdType=='01'}">
<el-button-group>
<el-button v-if="isProject" type="primary" @click="setRelDevice">{{ $t('joinTraining.connectRealDevices') }}</el-button>
@ -8,7 +66,7 @@
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">{{ $t('joinTraining.drivingByPlan') }}</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">{{ $t('joinTraining.exitPlan') }}</el-button>
</template>
<el-button type="primary" @click="back">{{ $t('global.back') }}</el-button>
<el-button type="primary" :loading="backLoading" @click="back">{{ $t('global.back') }}</el-button>
</el-button-group>
</div>
<qr-code ref="qrCode" />
@ -19,6 +77,9 @@
<script>
import QrCode from '@/components/QrCode';
// import ChartWindow from './chatWindow';
// import ChartView from './chartView';
import ChatBox from './chatBox';
import SetTime from '@/views/newMap/displayNew/demon/setTime';
import { ranAsPlan, exitRunPlan } from '@/api/simulation';
import { exitFullscreen } from '@/utils/screen';
@ -30,6 +91,9 @@ import RealDevice from './menuDraft/realDevice';
export default {
name: 'MenuDemonJoint',
components: {
// ChartView,
// ChartWindow,
ChatBox,
QrCode,
SetTime,
RealDevice
@ -53,6 +117,7 @@ export default {
data() {
return {
isDisable: false,
backLoading:false,
timeNow: 0,
remainingTime: 0,
recordStep: 'BGSetting',
@ -69,7 +134,7 @@ export default {
activeName2: 'second',
stationList: [],
stationLists: [],
minimize: false
minimize: true
};
},
computed: {
@ -115,6 +180,7 @@ export default {
},
async mounted() {
this.userId = this.$store.state.user.id;
this.backLoading = false;
await this.initLoadPage();
},
beforeDestroy() {
@ -151,35 +217,29 @@ export default {
}
this.activeName = active;
},
handleMinimality(data) {
if (data == 'min') {
this.minimize = true;
} else {
this.minimize = false;
}
},
handleChatShow(data) {
if (!this.minimize) { //
if (this.activeName == 'first') {
this.$refs.chatView.select(data.id);
this.chatShow = false;
this.isShowAuto = false;
this.$refs.chat.handleTextList(data.conversationId);
} else {
this.activeName = 'first';
this.handleChatShow(data);
}
} else { //
this.minimize = false;
this.handleChatShow(data);
}
},
// handleChatShow(data) {
// if (!this.minimize) { //
// if (this.activeName == 'first') {
// this.$refs.chatView.select(data.id);
// this.chatShow = false;
// this.isShowAuto = false;
// this.$refs.chat.handleTextList(data.conversationId);
// } else {
// this.activeName = 'first';
// this.handleChatShow(data);
// }
// } else { //
// this.minimize = false;
// this.handleChatShow(data);
// }
// },
//
showChatSpeak(data) {
this.chatShow = false;
this.isShowAuto = false;
this.$refs.chat.handleTextList(data.conversationId);
},
// showChatSpeak(data) {
// this.chatShow = false;
// this.isShowAuto = false;
// this.$refs.chat.handleTextList(data.conversationId);
// },
// list
showChat(obj) {
this.chatShow = false;
@ -327,9 +387,11 @@ export default {
},
back() {
this.$store.dispatch('training/over').then(() => {
this.backLoading = true;
putJointTrainingSimulationUserNew(this.group).then(() => {
this.$router.replace({ path: `/trainroom`, query: { lineCode: this.lineCode, group: this.group, drawWay: true } });
exitFullscreen();
this.backLoading = false;
});
});
},
@ -374,12 +436,6 @@ export default {
color: #409EFF;
}
.minimality {
float: right;
line-height: 40px;
margin-right: 10px;
cursor: pointer;
}
}
.tabs-content {
@ -431,27 +487,6 @@ export default {
}
}
.minimize-box {
bottom: 10px;
width: 300px;
height: 40px;
.chat-title {
float: left;
font-size: 16px;
margin-left: 10px;
line-height: 40px;
}
.minimality {
float: right;
height: 40px;
line-height: 40px;
margin-right: 10px;
cursor: pointer;
}
}
.display-draft {
position: absolute;
float: right;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB