Merge remote-tracking branch 'origin/test'
This commit is contained in:
commit
9be6f8cd8c
@ -7,6 +7,12 @@ export default {
|
||||
surveillanceDisplay: 'In-vehicle surveillance - display',
|
||||
trainInstrumentationDisplay: 'Train instrumentation - display',
|
||||
trainInstrumentationHidden: 'Train instrumentation - hidden',
|
||||
|
||||
trainInstrumentationMmiDisplay: 'Train instrumentation mmi - display',
|
||||
trainInstrumentationMmiHidden: 'Train instrumentation mmi - hidden',
|
||||
trainInstrumentationTmsDisplay: 'Train instrumentation tms - display',
|
||||
trainInstrumentationTmsHidden: 'Train instrumentation tms - hidden',
|
||||
|
||||
terminal: 'terminal:',
|
||||
nextStation: 'Next station:',
|
||||
confirmSignalOpen: 'Please confirm that the signal ahead is open',
|
||||
|
@ -5,8 +5,12 @@ export default {
|
||||
stopTime:'停站时间:',
|
||||
surveillanceHidden: '车内监控——隐藏',
|
||||
surveillanceDisplay: '车内监控——显示',
|
||||
trainInstrumentationDisplay: '列车仪表——显示',
|
||||
trainInstrumentationHidden: '列车仪表——隐藏',
|
||||
trainInstrumentationDisplay: '列车mmi仪表——显示',
|
||||
trainInstrumentationHidden: '列车mmi仪表——隐藏',
|
||||
trainInstrumentationMmiDisplay: '列车mmi仪表——显示',
|
||||
trainInstrumentationMmiHidden: '列车mmi仪表——隐藏',
|
||||
trainInstrumentationTmsDisplay: '列车tms仪表——显示',
|
||||
trainInstrumentationTmsHidden: '列车tms仪表——隐藏',
|
||||
terminal: '终点站:',
|
||||
nextStation: '下一站:',
|
||||
confirmSignalOpen: '请确认前方信号开放',
|
||||
|
@ -57,9 +57,11 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
renderer.domElement.style.top = '0';
|
||||
|
||||
var renderercctv = new THREE.WebGLRenderer();
|
||||
renderercctv.setSize(dom.offsetWidth*0.2, dom.offsetHeight*0.2);
|
||||
|
||||
// renderercctv.setSize(dom.offsetWidth*0.2, dom.offsetHeight*0.2);
|
||||
renderercctv.setSize(500, 333);
|
||||
renderercctv.domElement.style.position = 'absolute';
|
||||
renderercctv.domElement.style.top = '0';
|
||||
renderercctv.domElement.style.bottom = '0';
|
||||
|
||||
document.getElementById('jlsimulation').appendChild(renderer.domElement);
|
||||
document.getElementById('jlcctv').appendChild(renderercctv.domElement);
|
||||
|
@ -956,6 +956,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
}
|
||||
|
||||
function squeezeStart(){
|
||||
console.log("squeeze");
|
||||
scope.modelmanager.otherDevice.action.play();
|
||||
if(positionStatus == "dm"){
|
||||
if(vrPlaneStatus){
|
||||
|
@ -1,60 +1,24 @@
|
||||
/**
|
||||
* @author mrdoob / http://mrdoob.com
|
||||
* @author Mugen87 / https://github.com/Mugen87
|
||||
*/
|
||||
class VRButton {
|
||||
|
||||
var VRButton = {
|
||||
static createButton(originPos,vrPos, renderer, options ) {
|
||||
|
||||
createButton: function ( originPos,vrPos,renderer, options ) {
|
||||
if ( options ) {
|
||||
|
||||
if ( options && options.referenceSpaceType ) {
|
||||
|
||||
renderer.vr.setReferenceSpaceType( options.referenceSpaceType );
|
||||
console.error( 'THREE.VRButton: The "options" parameter has been removed. Please set the reference space type via renderer.xr.setReferenceSpaceType() instead.' );
|
||||
|
||||
}
|
||||
|
||||
function showEnterVR( device ) {
|
||||
const button = document.createElement( 'button' );
|
||||
|
||||
button.style.display = '';
|
||||
function showEnterVR( /*device*/ ) {
|
||||
|
||||
button.style.cursor = 'pointer';
|
||||
button.style.left = 'calc(50% - 50px)';
|
||||
button.style.width = '100px';
|
||||
let currentSession = null;
|
||||
|
||||
button.textContent = 'ENTER_VR';
|
||||
|
||||
button.onmouseenter = function () {
|
||||
|
||||
button.style.opacity = '1.0';
|
||||
|
||||
};
|
||||
|
||||
button.onmouseleave = function () {
|
||||
|
||||
button.style.opacity = '0.5';
|
||||
|
||||
};
|
||||
|
||||
button.onclick = function () {
|
||||
|
||||
device.isPresenting ? device.exitPresent() : device.requestPresent( [ { source: renderer.domElement } ] );
|
||||
originPos.position.set(vrPos.x,vrPos.y,vrPos.z);
|
||||
|
||||
};
|
||||
|
||||
renderer.vr.setDevice( device );
|
||||
|
||||
}
|
||||
|
||||
function showEnterXR( /*device*/ ) {
|
||||
|
||||
var currentSession = null;
|
||||
|
||||
function onSessionStarted( session ) {
|
||||
async function onSessionStarted( session ) {
|
||||
|
||||
session.addEventListener( 'end', onSessionEnded );
|
||||
|
||||
renderer.vr.setSession( session );
|
||||
await renderer.vr.setSession( session );
|
||||
button.textContent = 'EXIT VR';
|
||||
|
||||
currentSession = session;
|
||||
@ -65,7 +29,6 @@ var VRButton = {
|
||||
|
||||
currentSession.removeEventListener( 'end', onSessionEnded );
|
||||
|
||||
renderer.vr.setSession( null );
|
||||
button.textContent = 'ENTER VR';
|
||||
|
||||
currentSession = null;
|
||||
@ -105,9 +68,9 @@ var VRButton = {
|
||||
// ('local' is always available for immersive sessions and doesn't need to
|
||||
// be requested separately.)
|
||||
|
||||
var sessionInit = { optionalFeatures: [ 'local-floor', 'bounded-floor' ] };
|
||||
const sessionInit = { optionalFeatures: [ 'local-floor', 'bounded-floor', 'hand-tracking', 'layers' ] };
|
||||
navigator.xr.requestSession( 'immersive-vr', sessionInit ).then( onSessionStarted );
|
||||
|
||||
originPos.position.set(vrPos.x,vrPos.y,vrPos.z);
|
||||
} else {
|
||||
|
||||
currentSession.end();
|
||||
@ -133,21 +96,11 @@ var VRButton = {
|
||||
|
||||
}
|
||||
|
||||
function showVRNotFound() {
|
||||
function showWebXRNotFound() {
|
||||
|
||||
disableButton();
|
||||
|
||||
button.textContent = 'VR NOT FOUND';
|
||||
|
||||
renderer.vr.setDevice( null );
|
||||
|
||||
}
|
||||
|
||||
function showXRNotFound() {
|
||||
|
||||
disableButton();
|
||||
|
||||
button.textContent = 'VR NOT FOUND';
|
||||
button.textContent = 'VR NOT SUPPORTED';
|
||||
|
||||
}
|
||||
|
||||
@ -169,81 +122,35 @@ var VRButton = {
|
||||
}
|
||||
|
||||
if ( 'xr' in navigator ) {
|
||||
console.log("xr");
|
||||
var button = document.createElement( 'button' );
|
||||
|
||||
button.id = 'VRButton';
|
||||
button.style.display = 'none';
|
||||
|
||||
stylizeElement( button );
|
||||
|
||||
navigator.xr.isSessionSupported( 'immersive-vr' ).then( function ( supported ) {
|
||||
|
||||
if ( supported ) {
|
||||
|
||||
showEnterXR();
|
||||
|
||||
} else {
|
||||
|
||||
showXRNotFound();
|
||||
|
||||
}
|
||||
supported ? showEnterVR() : showWebXRNotFound();
|
||||
|
||||
} );
|
||||
|
||||
return button;
|
||||
|
||||
} else if ( 'getVRDisplays' in navigator ) {
|
||||
console.log("vr");
|
||||
var button = document.createElement( 'button' );
|
||||
button.style.display = 'none';
|
||||
|
||||
stylizeElement( button );
|
||||
|
||||
window.addEventListener( 'vrdisplayconnect', function ( event ) {
|
||||
|
||||
showEnterVR( event.display );
|
||||
|
||||
}, false );
|
||||
|
||||
window.addEventListener( 'vrdisplaydisconnect', function ( /*event*/ ) {
|
||||
|
||||
showVRNotFound();
|
||||
|
||||
}, false );
|
||||
|
||||
window.addEventListener( 'vrdisplaypresentchange', function ( event ) {
|
||||
|
||||
button.textContent = event.display.isPresenting ? 'EXIT_VR' : 'ENTER_VR';
|
||||
|
||||
}, false );
|
||||
|
||||
window.addEventListener( 'vrdisplayactivate', function ( event ) {
|
||||
|
||||
event.display.requestPresent( [ { source: renderer.domElement } ] );
|
||||
|
||||
}, false );
|
||||
|
||||
navigator.getVRDisplays()
|
||||
.then( function ( displays ) {
|
||||
|
||||
if ( displays.length > 0 ) {
|
||||
|
||||
showEnterVR( displays[ 0 ] );
|
||||
|
||||
} else {
|
||||
|
||||
showVRNotFound();
|
||||
|
||||
}
|
||||
|
||||
} ).catch( showVRNotFound );
|
||||
|
||||
return button;
|
||||
|
||||
} else {
|
||||
|
||||
var message = document.createElement( 'a' );
|
||||
message.href = 'https://immersive-web.github.io/webxr/';
|
||||
message.innerHTML = 'WEBXR NOT SUPPORTED';
|
||||
const message = document.createElement( 'a' );
|
||||
|
||||
if ( window.isSecureContext === false ) {
|
||||
|
||||
message.href = document.location.href.replace( /^http:/, 'https:' );
|
||||
message.innerHTML = 'WEBXR NEEDS HTTPS'; // TODO Improve message
|
||||
|
||||
} else {
|
||||
|
||||
message.href = 'https://immersiveweb.dev/';
|
||||
message.innerHTML = 'WEBXR NOT AVAILABLE';
|
||||
|
||||
}
|
||||
|
||||
message.style.left = 'calc(50% - 90px)';
|
||||
message.style.width = '180px';
|
||||
@ -257,6 +164,6 @@ var VRButton = {
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
export { VRButton };
|
||||
|
@ -54,6 +54,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
||||
// this.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
||||
this.renderer.gammaInput = true;
|
||||
this.renderer.gammaOutput = true;
|
||||
console.log( this.renderer);
|
||||
this.renderer.vr.enabled = true;
|
||||
this.dom.appendChild(this.renderer.domElement);
|
||||
document.body.appendChild( VRButton.createButton( human,{x:25,y:1.3,z:1},this.renderer ) );
|
||||
@ -208,6 +209,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
||||
|
||||
function onSelectStart( event ) {
|
||||
// console.log();
|
||||
console.log("select");
|
||||
var controller = event.target;
|
||||
var intersections = getIntersections( controller );
|
||||
|
||||
@ -249,6 +251,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
||||
let controlMoveSwitch = false;
|
||||
let nowControlModel = null;
|
||||
function squeezeStart(){
|
||||
console.log("squeezestart");
|
||||
TrainRescueStatic.handR.action.reset();
|
||||
TrainRescueStatic.handR.action.time = TrainRescueStatic.handR.action._clip.duration;
|
||||
TrainRescueStatic.handR.action.timeScale = 1;
|
||||
@ -271,6 +274,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
||||
|
||||
}
|
||||
function squeezeEnd(){
|
||||
console.log("squeezeend");
|
||||
TrainRescueStatic.handR.action.reset();
|
||||
TrainRescueStatic.handR.action.time = 0;
|
||||
TrainRescueStatic.handR.action.timeScale = -1;
|
||||
|
@ -472,7 +472,7 @@ class SkinCode extends defaultStyle {
|
||||
borderColor: '#FE0000', // 道岔边框颜色
|
||||
lossColor: '#FFFFFF', // 道岔失去颜色
|
||||
locateColor: '#00FF00', // 道岔定位颜色
|
||||
inversionColor: '#9C9D09', // 道岔反位颜色
|
||||
inversionColor: '#EDBD65', // 道岔反位颜色
|
||||
monolockLocationColor: '#ea282c', // 道岔单锁'定位'颜色
|
||||
monolockInversionColor: '#ea282c', // 道岔单锁'反位'颜色
|
||||
block: true, // 封锁名称
|
||||
|
@ -66,15 +66,7 @@ class ESafeDoor extends Group {
|
||||
}
|
||||
|
||||
setState(model) {
|
||||
if (model.fault) {
|
||||
if (model.fault == 'PSD_CANNOT_BE_OPENED') {
|
||||
this.safeC.hide();
|
||||
} else if (model.fault == 'PSD_CANNOT_BE_CLOSED') {
|
||||
this.safeC.show();
|
||||
}
|
||||
} else {
|
||||
model.screenDoorOpenStatus == 0 ? this.safeC.show() : this.safeC.hide();
|
||||
}
|
||||
model.screenDoorOpenStatus == 0 ? this.safeC.show() : this.safeC.hide();
|
||||
if (model.interlockRelease) {
|
||||
const style = this.model.style;
|
||||
this.setColor(style.Psd.safetyDoorNormal.splitDoorColor);
|
||||
|
@ -5,7 +5,7 @@
|
||||
:class="systemName+' route-hand-control'"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="300px"
|
||||
:width="width"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
@ -48,6 +48,11 @@
|
||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="systemName === 'xian-01__systerm'" width="200">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ getProtectedSectionName(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-row>
|
||||
@ -115,7 +120,8 @@ export default {
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'signalList',
|
||||
'routeData'
|
||||
'routeData',
|
||||
'overlapData'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
@ -123,6 +129,9 @@ export default {
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
width() {
|
||||
return this.systemName === 'xian-01__systerm' ? '500px' : '300px';
|
||||
},
|
||||
domIdChoose() {
|
||||
if (this.dialogShow) {
|
||||
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
||||
@ -247,6 +256,18 @@ export default {
|
||||
});
|
||||
|
||||
},
|
||||
getProtectedSectionName(row) {
|
||||
let name = '';
|
||||
if (row && row.overlapCode && this.overlapData[row.overlapCode] &&
|
||||
this.overlapData[row.overlapCode].pathList.length &&
|
||||
this.overlapData[row.overlapCode].pathList[0].switchPositionList.length) {
|
||||
const switchDevice = this.$store.getters['map/getDeviceByCode'](this.overlapData[row.overlapCode].pathList[0].switchPositionList[0].switchCode);
|
||||
if (switchDevice) {
|
||||
name = switchDevice.name + (this.overlapData[row.overlapCode].pathList[0].switchPositionList[0].normal ? '定位保护' : '反位保护');
|
||||
}
|
||||
}
|
||||
return name;
|
||||
},
|
||||
allSelectChange() {
|
||||
this.changeList = [];
|
||||
if (this.allSelect) {
|
||||
|
@ -102,19 +102,12 @@ export default {
|
||||
methods: {
|
||||
getProtectedSectionName(row) {
|
||||
let name = '';
|
||||
if (row &&
|
||||
row.overlapSectionList &&
|
||||
row.overlapSectionList &&
|
||||
row.overlapSectionList.length > 0) {
|
||||
|
||||
const protect = row.overlapSectionList[0];
|
||||
name = `${protect.name}`;
|
||||
if (protect.parentName) {
|
||||
name = `${protect.parentName}${protect.name}`;
|
||||
}
|
||||
const station = this.$store.getters['map/getDeviceByCode'](protect.stationCode);
|
||||
if (station) {
|
||||
name = `${name}(${station.name})`;
|
||||
if (row && row.overlapCode && this.overlapData[row.overlapCode] &&
|
||||
this.overlapData[row.overlapCode].pathList.length &&
|
||||
this.overlapData[row.overlapCode].pathList[0].switchPositionList.length) {
|
||||
const switchDevice = this.$store.getters['map/getDeviceByCode'](this.overlapData[row.overlapCode].pathList[0].switchPositionList[0].switchCode);
|
||||
if (switchDevice) {
|
||||
name = switchDevice.name + (this.overlapData[row.overlapCode].pathList[0].switchPositionList[0].normal ? '定位保护' : '反位保护');
|
||||
}
|
||||
}
|
||||
return name;
|
||||
|
@ -74,7 +74,8 @@ export default {
|
||||
val && this.$store.dispatch('config/updateMenuBar');
|
||||
},
|
||||
'$store.state.menuOperation.menuCount': function (val) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel) && this.$store.state.training.prdType == '02') {
|
||||
// && this.$store.state.training.prdType == '02'
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel)) {
|
||||
this.popDoShow(this.$store.state.menuOperation.menuPosition);
|
||||
} else {
|
||||
this.popDoClose();
|
||||
@ -118,30 +119,71 @@ export default {
|
||||
},
|
||||
initMenu() {
|
||||
this.menuNormal = [];
|
||||
this.$store.state.map.map.stationList.forEach(station => {
|
||||
if (station.relStationCodeList && station.relStationCodeList.length) {
|
||||
const node = {
|
||||
label: station.name,
|
||||
children: []
|
||||
};
|
||||
const relStationCodeList = [...station.relStationCodeList];
|
||||
relStationCodeList.push(station.code);
|
||||
relStationCodeList.sort((a, b) => {
|
||||
if (this.$store.state.training.prdType == '02') {
|
||||
this.$store.state.map.map.stationList.forEach(station => {
|
||||
if (station.relStationCodeList && station.relStationCodeList.length) {
|
||||
const node = {
|
||||
label: station.name,
|
||||
children: []
|
||||
};
|
||||
const relStationCodeList = [...station.relStationCodeList];
|
||||
relStationCodeList.push(station.code);
|
||||
relStationCodeList.sort((a, b) => {
|
||||
const stationA = this.$store.getters['map/getDeviceByCode'](a);
|
||||
const stationB = this.$store.getters['map/getDeviceByCode'](b);
|
||||
return stationA.kmRange - stationB.kmRange;
|
||||
});
|
||||
relStationCodeList.forEach(item => {
|
||||
const next = this.$store.getters['map/getDeviceByCode'](item);
|
||||
node.children.push({
|
||||
code: next.code,
|
||||
label: next.name,
|
||||
handler: this.mapLocation
|
||||
});
|
||||
});
|
||||
this.menuNormal.push(node);
|
||||
}
|
||||
});
|
||||
} else if (this.$store.state.training.prdType == '01') {
|
||||
const roleDeviceCode = this.$store.state.training.roleDeviceCode;
|
||||
const displayList = this.$store.state.map.map.displayList;
|
||||
const display = displayList.find(each=>{
|
||||
return each.stationCodeList.includes(roleDeviceCode);
|
||||
});
|
||||
if (display) {
|
||||
const codeList = [...display.switchStationCodeList];
|
||||
let relStationCodeList = [];
|
||||
let ciStaionCode = '';
|
||||
codeList.sort((a, b) => {
|
||||
const stationA = this.$store.getters['map/getDeviceByCode'](a);
|
||||
const stationB = this.$store.getters['map/getDeviceByCode'](b);
|
||||
if (stationA.relStationCodeList && stationA.relStationCodeList.length > 0 && relStationCodeList.length <= 0) {
|
||||
relStationCodeList = [...stationA.relStationCodeList];
|
||||
ciStaionCode = stationA.code;
|
||||
relStationCodeList.push(stationA.code);
|
||||
}
|
||||
return stationA.kmRange - stationB.kmRange;
|
||||
});
|
||||
relStationCodeList.forEach(item => {
|
||||
const next = this.$store.getters['map/getDeviceByCode'](item);
|
||||
node.children.push({
|
||||
code: next.code,
|
||||
label: next.name,
|
||||
handler: this.mapLocation
|
||||
});
|
||||
const ciStaion = this.$store.getters['map/getDeviceByCode'](ciStaionCode);
|
||||
const currentNode = {label: ciStaion.name, children: []};
|
||||
codeList.forEach(code=>{
|
||||
let node;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (station.depot) {
|
||||
return;
|
||||
}
|
||||
if (relStationCodeList.includes(code)) {
|
||||
currentNode.children.push({label: station.name, code: station.code, handler: this.mapLocation});
|
||||
if (currentNode.children.length == relStationCodeList.length) {
|
||||
this.menuNormal.push(currentNode);
|
||||
}
|
||||
} else {
|
||||
node = {label: station.name, code: station.code, handler: this.mapLocation};
|
||||
this.menuNormal.push(node);
|
||||
}
|
||||
});
|
||||
this.menuNormal.push(node);
|
||||
}
|
||||
});
|
||||
}
|
||||
this.menu = [...this.menuNormal];
|
||||
},
|
||||
popDoClose() {
|
||||
|
@ -29,7 +29,7 @@ export const MapDeviceType = {
|
||||
/** 设备故障类型 */
|
||||
export const deviceFaultType = {
|
||||
Section: [
|
||||
{label: '计轴故障', value: 'FAULT'},
|
||||
{label: '红光带故障', value: 'FAULT'},
|
||||
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '橙光带故障', value: 'ARB'}
|
||||
// {label: '计轴干扰', value: 'DISTURBANCE'}
|
||||
@ -43,7 +43,7 @@ export const deviceFaultType = {
|
||||
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||
{label: '挤岔', value: 'SQUEEZE'},
|
||||
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '计轴故障', value: 'AXLE_FAULT'},
|
||||
{label: '红光带故障', value: 'AXLE_FAULT'},
|
||||
{label: '橙光带故障', value: 'ARB'}
|
||||
// {label: '道岔区段计轴故障', value: 'AXLE_FAULT'}
|
||||
],
|
||||
@ -71,7 +71,7 @@ export const deviceFaultType = {
|
||||
/** 设备故障类型map */
|
||||
export const deviceFaultMap = {
|
||||
Section: {
|
||||
FAULT: '计轴故障',
|
||||
FAULT: '红光带故障',
|
||||
CBTC_OCCUPIED_FAULT: '通信车占用',
|
||||
ARB: '橙光带故障'
|
||||
},
|
||||
@ -84,7 +84,7 @@ export const deviceFaultMap = {
|
||||
REVERSE_SPLIT: '反位失表',
|
||||
SQUEEZE: '挤岔',
|
||||
CBTC_OCCUPIED_FAULT: '通信车占用',
|
||||
AXLE_FAULT: '计轴故障',
|
||||
AXLE_FAULT: '红光带故障',
|
||||
ARB: '橙光带故障'
|
||||
},
|
||||
StationStand: {
|
||||
|
@ -905,9 +905,9 @@ const map = {
|
||||
const holdIndex = state.holdStandList.indexOf(status.code);
|
||||
const jumpIndex = state.jumpStandList.indexOf(status.code);
|
||||
const device = state.mapDevice[status.code];
|
||||
if ((device.stationHoldTrain || device.centerHoldTrain) && holdIndex < 0) {
|
||||
if ((device.stationHoldTrain || device.centerHoldTrain || device.ibpHoldTrain) && holdIndex < 0) {
|
||||
state.holdStandList.push(device.code);
|
||||
} else if (!(device.stationHoldTrain || device.centerHoldTrain) && holdIndex > -1) {
|
||||
} else if (!(device.stationHoldTrain || device.centerHoldTrain || device.ibpHoldTrain) && holdIndex > -1) {
|
||||
state.holdStandList.splice(holdIndex, 1);
|
||||
}
|
||||
state.holdStatus = state.holdStandList.length > 0;
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div id="textStatus" class="icon-box" :style="{top: offset+'px'}">
|
||||
<div class="textStatus" style="cursor: pointer;" :style="{background: holdBackground}" @contextmenu="showHoldStationPop">H</div>
|
||||
<div class="textStatus" style="cursor: pointer;" :style="{background: jumpBackground}" @contextmenu="showJumpStationPop">S</div>
|
||||
<div class="textStatus" style="cursor: pointer;" :style="{background: holdBackground}" @mouseenter="showHoldStatus" @mouseleave="hideHoldStatus" @contextmenu="showHoldStationPop">H</div>
|
||||
<div class="textStatus" style="cursor: pointer;" :style="{background: jumpBackground}" @mouseenter="showJumpStatus" @mouseleave="hideJumpStatus" @contextmenu="showJumpStationPop">S</div>
|
||||
<pop-tip v-show="popShow" :position="position" :tip="tip" />
|
||||
<pop-menu ref="popMenu" :menu="menu" pop-menu-class="statusIcon" />
|
||||
</div>
|
||||
@ -117,6 +117,44 @@ export default {
|
||||
},
|
||||
setCenter(val) {
|
||||
this.$jlmap && this.$jlmap.setCenter(val.code);
|
||||
},
|
||||
showHoldStatus(e) {
|
||||
if (this.$store.state.map.holdStandList.length) {
|
||||
this.popShow = true;
|
||||
this.position.x = e.clientX;
|
||||
this.position.y = e.clientY;
|
||||
this.tip = '扣车提示:<br>';
|
||||
this.$store.state.map.holdStandList.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item);
|
||||
const station = this.$store.getters['map/getDeviceByCode'](stand.stationCode);
|
||||
const dir = stand.right ? '上行站台' : '下行站台';
|
||||
if (stand) {
|
||||
this.tip = this.tip + station.name + ':<br>' + dir + '站台存在扣车命令<br>';
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
hideHoldStatus(e) {
|
||||
this.popShow = false;
|
||||
},
|
||||
showJumpStatus(e) {
|
||||
if (this.$store.state.map.jumpStandList.length) {
|
||||
this.popShow = true;
|
||||
this.position.x = e.clientX;
|
||||
this.position.y = e.clientY;
|
||||
this.tip = '跳停提示:<br>';
|
||||
this.$store.state.map.jumpStandList.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item);
|
||||
const station = this.$store.getters['map/getDeviceByCode'](stand.stationCode);
|
||||
const dir = stand.right ? '上行站台' : '下行站台';
|
||||
if (stand) {
|
||||
this.tip = this.tip + station.name + ':<br>' + dir + '站台存在跳停命令<br>';
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
hideJumpStatus(e) {
|
||||
this.popShow = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -382,7 +382,7 @@ import axios from 'axios';
|
||||
.drivepane{
|
||||
width:500px;
|
||||
height:333px;
|
||||
right:500px;
|
||||
right:0;
|
||||
bottom:0;
|
||||
position: absolute;
|
||||
background-size: 100% 100%;
|
||||
|
@ -11,7 +11,8 @@
|
||||
|
||||
<!-- <el-button type="primary" @click="raystand">站台选择</el-button> -->
|
||||
<el-button type="primary" @click="cctvplane">{{ cctvbuttonmsg }}</el-button>
|
||||
<el-button type="primary" @click="showplane">{{ showbuttonmsg }}</el-button>
|
||||
<el-button type="primary" @click="showmmiplane">{{ showbuttonmmimsg }}</el-button>
|
||||
<el-button type="primary" @click="showtmsplane">{{ showbuttontmsmsg }}</el-button>
|
||||
<el-button type="primary" @click="back">{{backmsg}}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
@ -32,7 +33,7 @@
|
||||
</div>
|
||||
|
||||
<Drive-Mmi v-if="mmishow" ref="mmiui" />
|
||||
<Drive-Tms v-if="mmishow" />
|
||||
<Drive-Tms v-if="tmsshow" />
|
||||
<Drive-Control v-if="dcontrolshow" ref="dcontrol" @warningmsg="warningmsg" @warningmsgoff="warningmsgoff" />
|
||||
</div>
|
||||
|
||||
@ -85,7 +86,9 @@ export default {
|
||||
cctvshow:true,
|
||||
cctvbuttonmsg: this.$t('jlmap3d.surveillanceHidden'),
|
||||
mmishow: false,
|
||||
showbuttonmsg: this.$t('jlmap3d.trainInstrumentationDisplay'),
|
||||
tmsshow: false,
|
||||
showbuttonmmimsg: this.$t('jlmap3d.trainInstrumentationMmiDisplay'),
|
||||
showbuttontmsmsg: this.$t('jlmap3d.trainInstrumentationTmsDisplay'),
|
||||
backmsg:this.$t('global.back'),
|
||||
// trainnum: '',
|
||||
// stoptimes: '',
|
||||
@ -176,6 +179,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.mmishow = true;
|
||||
this.tmsshow = true;
|
||||
// window.datanew = this.datanew;
|
||||
window.updatestatus = this.updatestatus;
|
||||
|
||||
@ -289,16 +293,26 @@ export default {
|
||||
|
||||
|
||||
},
|
||||
showplane() {
|
||||
showmmiplane() {
|
||||
if (this.mmishow == true) {
|
||||
this.showbuttonmsg = this.$t('jlmap3d.trainInstrumentationHidden');
|
||||
this.showbuttonmmimsg = this.$t('jlmap3d.trainInstrumentationMmiHidden');
|
||||
this.mmishow = false;
|
||||
} else {
|
||||
this.showbuttonmsg = this.$t('jlmap3d.trainInstrumentationDisplay');
|
||||
this.showbuttonmmimsg = this.$t('jlmap3d.trainInstrumentationMmiDisplay');
|
||||
this.mmishow = true;
|
||||
}
|
||||
|
||||
},
|
||||
showtmsplane() {
|
||||
if (this.tmsshow == true) {
|
||||
this.showbuttontmsmsg = this.$t('jlmap3d.trainInstrumentationTmsHidden');
|
||||
this.tmsshow = false;
|
||||
} else {
|
||||
this.showbuttontmsmsg = this.$t('jlmap3d.trainInstrumentationTmsDisplay');
|
||||
this.tmsshow = true;
|
||||
}
|
||||
|
||||
},
|
||||
datanew(){
|
||||
this.dcontrolshow = true;
|
||||
},
|
||||
@ -424,10 +438,10 @@ export default {
|
||||
.jlmap3cctv{
|
||||
float: left;
|
||||
left: 0;
|
||||
top:0;
|
||||
bottom:333px;
|
||||
//left:20%;
|
||||
width: 20%;
|
||||
height: 20%;
|
||||
width:500px;
|
||||
height:333px;
|
||||
position:absolute;
|
||||
z-index: -1;
|
||||
}
|
||||
|
@ -529,7 +529,8 @@ export default {
|
||||
height:333px;
|
||||
background: black;
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
bottom:333px;
|
||||
right:0;
|
||||
// border: 0.1px solid #ffffff;
|
||||
}
|
||||
.meter{
|
||||
|
@ -51,7 +51,7 @@ export default {
|
||||
background-size:100% 100%;
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
right:0;
|
||||
left:0;
|
||||
// border: 0.1px solid #ffffff;
|
||||
}
|
||||
|
||||
|
@ -4,13 +4,13 @@
|
||||
<div class="jl3dmap3dMaintainerSelect" :style="{'background-image': 'url('+localStatic+'/background/other.jpg)'}">
|
||||
<div class="maintainerSelectButton selectButtonImg1"
|
||||
:style="{'background-image': 'url('+localStatic+'/vrtest/maintainer.png)'}"
|
||||
style="left:40%" @mouseenter="onMouseOverNormal"></div>
|
||||
style="left:10%" @mouseenter="onMouseOverNormal"></div>
|
||||
|
||||
<div class="maintainerSelectButton selectButtonImg2"
|
||||
:style="{'background-image': 'url('+localStatic+'/vrtest/zc.png)'}"
|
||||
style="left:40%;" v-show="normalShow"@mouseleave="onMouseOutNormal" @click="initNormal"></div>
|
||||
style="left:10%;" v-show="normalShow"@mouseleave="onMouseOutNormal" @click="initNormal"></div>
|
||||
|
||||
<!-- <div class="maintainerSelectButton selectButtonImg3"
|
||||
<div class="maintainerSelectButton selectButtonImg3"
|
||||
:style="{'background-image': 'url('+localStatic+'/vrtest/maintainervr.png)'}"
|
||||
style="left:40%;" @mouseenter="onMouseOverVr"></div>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
<div class="maintainerSelectButton selectButtonImg6"
|
||||
:style="{'background-image': 'url('+localStatic+'/vrtest/trvr.png)'}"
|
||||
style="left:70%;" v-show="trainRescueShow" @mouseleave="onMouseOutRescue" @click="initTrainRescueVr"></div> -->
|
||||
style="left:70%;" v-show="trainRescueShow" @mouseleave="onMouseOutRescue" @click="initTrainRescueVr"></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
@ -71,7 +71,7 @@ export default {
|
||||
for (const key in mapDevice) {
|
||||
list.push(mapDevice[key]);
|
||||
}
|
||||
|
||||
this.$store.dispatch('training/setRoleDeviceCode', station.code);
|
||||
this.$jlmap.updateShowStation(list, showStationCode);
|
||||
this.setCenter(showStationCode);
|
||||
}
|
||||
|
@ -42,9 +42,20 @@
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="margin-top:10px">
|
||||
<span>可切换显示的车站:</span>
|
||||
<el-select v-model="addModel.switchStationCodeList" size="mini" style="width:200px;" multiple placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="content-box-list" style="margin-top: 10px;">
|
||||
<div class="title-box">设备列表</div>
|
||||
<div class="list-box">
|
||||
<div class="list-box" style="height:400px;overflow:auto">
|
||||
<div v-for="nor in addModel.elementList" :key="nor.code" class="list-content">
|
||||
<div class="name">{{ getDeviceName(nor) }}</div>
|
||||
<div class="close" @click="delList(nor, addModel.elementList)"><i class="el-icon-close" /></div>
|
||||
@ -55,7 +66,7 @@
|
||||
</el-card>
|
||||
<div style="display: table; margin-left: 90px; margin-top: 12px; margin-bottom: 20px;">
|
||||
<el-button type="primary" size="small" @click="generateData">按集中站生成并保存</el-button>
|
||||
<el-button type="primary" size="small" @click="save">保存</el-button>
|
||||
<el-button type="primary" size="small" :loading="dataLoading" @click="save">保存</el-button>
|
||||
<el-button type="primary" size="small" @click="back">返回</el-button>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
@ -82,6 +93,7 @@ export default {
|
||||
tableData: [],
|
||||
addModel: {
|
||||
stationCodeList: [],
|
||||
switchStationCodeList:[],
|
||||
elementList: []
|
||||
},
|
||||
list: [],
|
||||
@ -89,7 +101,8 @@ export default {
|
||||
cardMode: 'generate',
|
||||
index: '',
|
||||
isPreview: true,
|
||||
loading: false
|
||||
loading: false,
|
||||
dataLoading:false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -181,12 +194,16 @@ export default {
|
||||
},
|
||||
updateOverlab() {
|
||||
if (this.index || this.index == 0) {
|
||||
this.clearData();
|
||||
if (!this.addModel.stationCodeList.length) {
|
||||
this.$messageBox('请选择车站!');
|
||||
} else {
|
||||
this.tableData.splice(this.index, 1, this.addModel);
|
||||
return;
|
||||
}
|
||||
this.clearData();
|
||||
if (!this.addModel.switchStationCodeList.length) {
|
||||
this.$messageBox('请选择可切换显示的车站!');
|
||||
return;
|
||||
}
|
||||
this.tableData.splice(this.index, 1, this.addModel);
|
||||
}
|
||||
},
|
||||
// 删除当前选中
|
||||
@ -208,9 +225,13 @@ export default {
|
||||
displayList: this.tableData,
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
this.dataLoading = true;
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
||||
this.$message.success('保存现地配置成功');
|
||||
this.dataLoading = false;
|
||||
this.cancelOverlab();
|
||||
}).catch(() => {
|
||||
this.dataLoading = false;
|
||||
this.$messageBox('保存现地配置失败');
|
||||
});
|
||||
},
|
||||
@ -220,25 +241,30 @@ export default {
|
||||
generateOverlab() { // 生成
|
||||
if (!this.addModel.stationCodeList.length) {
|
||||
this.$messageBox('请选择车站!');
|
||||
} else {
|
||||
this.tableData.push(this.addModel);
|
||||
this.clearData();
|
||||
return;
|
||||
}
|
||||
if (!this.addModel.switchStationCodeList.length) {
|
||||
this.$messageBox('请选择可切换显示的车站!');
|
||||
return;
|
||||
}
|
||||
this.tableData.push(this.addModel);
|
||||
this.clearData();
|
||||
},
|
||||
clear() {
|
||||
this.addModel = { stationCodeList: [], elementList: [] };
|
||||
this.addModel = { stationCodeList: [], elementList: [], switchStationCodeList:[] };
|
||||
},
|
||||
clearData() {
|
||||
this.addModel = { stationCodeList: [], elementList: [] };
|
||||
this.addModel = { stationCodeList: [], elementList: [], switchStationCodeList:[] };
|
||||
this.index = '';
|
||||
this.cardMode = 'generate';
|
||||
},
|
||||
generateData() {
|
||||
this.loading = true;
|
||||
this.tableData = [];
|
||||
// switchStationCodeList:[...item.switchStationCodeList, item.code]
|
||||
this.stationList.forEach(item => {
|
||||
if (item.centralized) {
|
||||
this.tableData.push({stationCodeList: [...item.chargeStationCodeList, item.code], elementList: [...item.chargeStationCodeList, item.code]});
|
||||
this.tableData.push({stationCodeList: [...item.chargeStationCodeList, item.code], elementList: [...item.chargeStationCodeList, item.code], switchStationCodeList:[...item.chargeStationCodeList, item.code]});
|
||||
}
|
||||
});
|
||||
|
||||
@ -265,6 +291,7 @@ export default {
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
||||
this.loading = false;
|
||||
this.$message.success('保存现地配置成功');
|
||||
this.cancelOverlab();
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$messageBox('保存现地配置失败');
|
||||
|
2
static/three.min.js
vendored
2
static/three.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
20212
static/three.module.js
20212
static/three.module.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user