Merge branch 'test' into test_conflictRoute
# Conflicts: # src/jmapNew/theme/components/menus/dialog/routeHandControl.vue
This commit is contained in:
commit
4b5ff657c9
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 8.0 KiB |
@ -7,6 +7,12 @@ export default {
|
|||||||
surveillanceDisplay: 'In-vehicle surveillance - display',
|
surveillanceDisplay: 'In-vehicle surveillance - display',
|
||||||
trainInstrumentationDisplay: 'Train instrumentation - display',
|
trainInstrumentationDisplay: 'Train instrumentation - display',
|
||||||
trainInstrumentationHidden: 'Train instrumentation - hidden',
|
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:',
|
terminal: 'terminal:',
|
||||||
nextStation: 'Next station:',
|
nextStation: 'Next station:',
|
||||||
confirmSignalOpen: 'Please confirm that the signal ahead is open',
|
confirmSignalOpen: 'Please confirm that the signal ahead is open',
|
||||||
|
@ -5,8 +5,12 @@ export default {
|
|||||||
stopTime:'停站时间:',
|
stopTime:'停站时间:',
|
||||||
surveillanceHidden: '车内监控——隐藏',
|
surveillanceHidden: '车内监控——隐藏',
|
||||||
surveillanceDisplay: '车内监控——显示',
|
surveillanceDisplay: '车内监控——显示',
|
||||||
trainInstrumentationDisplay: '列车仪表——显示',
|
trainInstrumentationDisplay: '列车mmi仪表——显示',
|
||||||
trainInstrumentationHidden: '列车仪表——隐藏',
|
trainInstrumentationHidden: '列车mmi仪表——隐藏',
|
||||||
|
trainInstrumentationMmiDisplay: '列车mmi仪表——显示',
|
||||||
|
trainInstrumentationMmiHidden: '列车mmi仪表——隐藏',
|
||||||
|
trainInstrumentationTmsDisplay: '列车tms仪表——显示',
|
||||||
|
trainInstrumentationTmsHidden: '列车tms仪表——隐藏',
|
||||||
terminal: '终点站:',
|
terminal: '终点站:',
|
||||||
nextStation: '下一站:',
|
nextStation: '下一站:',
|
||||||
confirmSignalOpen: '请确认前方信号开放',
|
confirmSignalOpen: '请确认前方信号开放',
|
||||||
|
@ -305,10 +305,36 @@ export function JLmap3dEdit(dom, data, mapid) {
|
|||||||
for(let i=0,leni=scope.mapdata.stationstandlist.list.length;i<leni;i++){
|
for(let i=0,leni=scope.mapdata.stationstandlist.list.length;i<leni;i++){
|
||||||
if(changeStation.code == scope.mapdata.stationstandlist.list[i].code){
|
if(changeStation.code == scope.mapdata.stationstandlist.list[i].code){
|
||||||
let changeData = scope.mapdata.stationstandlist.list[i];
|
let changeData = scope.mapdata.stationstandlist.list[i];
|
||||||
|
console.log(changeData);
|
||||||
let topStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[0].section];
|
let topStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[0].section];
|
||||||
let downStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[changeData.stands.length-1].section];
|
let downStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[changeData.stands.length-1].section];
|
||||||
changeStation.position.set(topStandTrack.railpoint[0].x+(topStandTrack.leftStopPointOffset+topStandTrack.rightStopPointOffset)/2,topStandTrack.railpoint[1].y,(topStandTrack.railpoint[1].z+downStandTrack.railpoint[1].z)/2);
|
|
||||||
|
|
||||||
|
console.log(scope.mapdata.sectionlist.sections);
|
||||||
|
console.log(topStandTrack.mesh.railpoint[0].x);
|
||||||
|
console.log(topStandTrack.mesh.railpoint[2].x);
|
||||||
|
console.log(downStandTrack.mesh.railpoint[0].x);
|
||||||
|
console.log(downStandTrack.mesh.railpoint[2].x);
|
||||||
|
|
||||||
|
let rightpos = topStandTrack.leftStopPercent*(topStandTrack.mesh.railpoint[2].x -topStandTrack.mesh.railpoint[0].x)+topStandTrack.mesh.railpoint[0].x;
|
||||||
|
let leftpos = downStandTrack.rightStopPercent*(downStandTrack.mesh.railpoint[2].x -downStandTrack.mesh.railpoint[0].x)+downStandTrack.mesh.railpoint[0].x;
|
||||||
|
|
||||||
|
let rightX = changeData.mesh.position.x-63.4 - rightpos;
|
||||||
|
let leftX = changeData.mesh.position.x+63.4 - leftpos;
|
||||||
|
console.log("----------------------------");
|
||||||
|
console.log(rightpos);
|
||||||
|
console.log(leftpos);
|
||||||
|
console.log("----------------------------");
|
||||||
|
console.log(rightX);
|
||||||
|
console.log(leftX);
|
||||||
|
topStandTrack.mesh.position.x = topStandTrack.mesh.position.z + rightX;
|
||||||
|
downStandTrack.mesh.position.x = downStandTrack.mesh.position.x + leftX;
|
||||||
|
//
|
||||||
|
// // changeStation.position.set(topStandTrack.railpoint[0].x+(topStandTrack.leftStopPointOffset+topStandTrack.rightStopPointOffset)/2,topStandTrack.railpoint[1].y,(topStandTrack.railpoint[1].z+downStandTrack.railpoint[1].z)/2);
|
||||||
|
topStandTrack.mesh.railpoint[0].x = topStandTrack.mesh.railpoint[0].x+rightX;
|
||||||
|
topStandTrack.mesh.railpoint[2].x = topStandTrack.mesh.railpoint[2].x+rightX;
|
||||||
|
|
||||||
|
downStandTrack.mesh.railpoint[0].x = downStandTrack.mesh.railpoint[0].x+leftX;
|
||||||
|
downStandTrack.mesh.railpoint[2].x = downStandTrack.mesh.railpoint[2].x+leftX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,9 +57,11 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
|||||||
renderer.domElement.style.top = '0';
|
renderer.domElement.style.top = '0';
|
||||||
|
|
||||||
var renderercctv = new THREE.WebGLRenderer();
|
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.position = 'absolute';
|
||||||
renderercctv.domElement.style.top = '0';
|
renderercctv.domElement.style.bottom = '0';
|
||||||
|
|
||||||
document.getElementById('jlsimulation').appendChild(renderer.domElement);
|
document.getElementById('jlsimulation').appendChild(renderer.domElement);
|
||||||
document.getElementById('jlcctv').appendChild(renderercctv.domElement);
|
document.getElementById('jlcctv').appendChild(renderercctv.domElement);
|
||||||
|
@ -995,29 +995,29 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
|||||||
function signalupdate(data) {
|
function signalupdate(data) {
|
||||||
code = data.code;
|
code = data.code;
|
||||||
if(data.red == 1){
|
if(data.red == 1){
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map = materials[0];
|
signallist.list[code].mesh.getObjectByName("red").material.map = materials["red"];
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
||||||
}else{
|
}else{
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map = materials[3];
|
signallist.list[code].mesh.getObjectByName("red").material.map = materials["black"];
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.yellow == 1){
|
if(data.yellow == 1){
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials[1];
|
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials["yellow"];
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials[3];
|
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials["black"];
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.green == 1){
|
if(data.green == 1){
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map = materials[2];
|
signallist.list[code].mesh.getObjectByName("green").material.map = materials["green"];
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map = materials[3];
|
signallist.list[code].mesh.getObjectByName("green").material.map = materials["black"];
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -956,6 +956,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function squeezeStart(){
|
function squeezeStart(){
|
||||||
|
console.log("squeeze");
|
||||||
scope.modelmanager.otherDevice.action.play();
|
scope.modelmanager.otherDevice.action.play();
|
||||||
if(positionStatus == "dm"){
|
if(positionStatus == "dm"){
|
||||||
if(vrPlaneStatus){
|
if(vrPlaneStatus){
|
||||||
|
@ -1,60 +1,24 @@
|
|||||||
/**
|
class VRButton {
|
||||||
* @author mrdoob / http://mrdoob.com
|
|
||||||
* @author Mugen87 / https://github.com/Mugen87
|
|
||||||
*/
|
|
||||||
|
|
||||||
var VRButton = {
|
static createButton(originPos,vrPos, renderer, options ) {
|
||||||
|
|
||||||
createButton: function ( originPos,vrPos,renderer, options ) {
|
if ( options ) {
|
||||||
|
|
||||||
if ( options && options.referenceSpaceType ) {
|
console.error( 'THREE.VRButton: The "options" parameter has been removed. Please set the reference space type via renderer.xr.setReferenceSpaceType() instead.' );
|
||||||
|
|
||||||
renderer.vr.setReferenceSpaceType( options.referenceSpaceType );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showEnterVR( device ) {
|
const button = document.createElement( 'button' );
|
||||||
|
|
||||||
button.style.display = '';
|
function showEnterVR( /*device*/ ) {
|
||||||
|
|
||||||
button.style.cursor = 'pointer';
|
let currentSession = null;
|
||||||
button.style.left = 'calc(50% - 50px)';
|
|
||||||
button.style.width = '100px';
|
|
||||||
|
|
||||||
button.textContent = 'ENTER_VR';
|
async function onSessionStarted( session ) {
|
||||||
|
|
||||||
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 ) {
|
|
||||||
|
|
||||||
session.addEventListener( 'end', onSessionEnded );
|
session.addEventListener( 'end', onSessionEnded );
|
||||||
|
|
||||||
renderer.vr.setSession( session );
|
await renderer.vr.setSession( session );
|
||||||
button.textContent = 'EXIT VR';
|
button.textContent = 'EXIT VR';
|
||||||
|
|
||||||
currentSession = session;
|
currentSession = session;
|
||||||
@ -65,7 +29,6 @@ var VRButton = {
|
|||||||
|
|
||||||
currentSession.removeEventListener( 'end', onSessionEnded );
|
currentSession.removeEventListener( 'end', onSessionEnded );
|
||||||
|
|
||||||
renderer.vr.setSession( null );
|
|
||||||
button.textContent = 'ENTER VR';
|
button.textContent = 'ENTER VR';
|
||||||
|
|
||||||
currentSession = null;
|
currentSession = null;
|
||||||
@ -105,9 +68,9 @@ var VRButton = {
|
|||||||
// ('local' is always available for immersive sessions and doesn't need to
|
// ('local' is always available for immersive sessions and doesn't need to
|
||||||
// be requested separately.)
|
// 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 );
|
navigator.xr.requestSession( 'immersive-vr', sessionInit ).then( onSessionStarted );
|
||||||
|
originPos.position.set(vrPos.x,vrPos.y,vrPos.z);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
currentSession.end();
|
currentSession.end();
|
||||||
@ -133,21 +96,11 @@ var VRButton = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showVRNotFound() {
|
function showWebXRNotFound() {
|
||||||
|
|
||||||
disableButton();
|
disableButton();
|
||||||
|
|
||||||
button.textContent = 'VR NOT FOUND';
|
button.textContent = 'VR NOT SUPPORTED';
|
||||||
|
|
||||||
renderer.vr.setDevice( null );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function showXRNotFound() {
|
|
||||||
|
|
||||||
disableButton();
|
|
||||||
|
|
||||||
button.textContent = 'VR NOT FOUND';
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,82 +122,36 @@ var VRButton = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( 'xr' in navigator ) {
|
if ( 'xr' in navigator ) {
|
||||||
console.log("xr");
|
|
||||||
var button = document.createElement( 'button' );
|
button.id = 'VRButton';
|
||||||
button.style.display = 'none';
|
button.style.display = 'none';
|
||||||
|
|
||||||
stylizeElement( button );
|
stylizeElement( button );
|
||||||
|
|
||||||
navigator.xr.isSessionSupported( 'immersive-vr' ).then( function ( supported ) {
|
navigator.xr.isSessionSupported( 'immersive-vr' ).then( function ( supported ) {
|
||||||
|
|
||||||
if ( supported ) {
|
supported ? showEnterVR() : showWebXRNotFound();
|
||||||
|
|
||||||
showEnterXR();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
showXRNotFound();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return button;
|
return button;
|
||||||
|
|
||||||
} else if ( 'getVRDisplays' in navigator ) {
|
} else {
|
||||||
console.log("vr");
|
|
||||||
var button = document.createElement( 'button' );
|
|
||||||
button.style.display = 'none';
|
|
||||||
|
|
||||||
stylizeElement( button );
|
const message = document.createElement( 'a' );
|
||||||
|
|
||||||
window.addEventListener( 'vrdisplayconnect', function ( event ) {
|
if ( window.isSecureContext === false ) {
|
||||||
|
|
||||||
showEnterVR( event.display );
|
message.href = document.location.href.replace( /^http:/, 'https:' );
|
||||||
|
message.innerHTML = 'WEBXR NEEDS HTTPS'; // TODO Improve message
|
||||||
}, 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 {
|
} else {
|
||||||
|
|
||||||
showVRNotFound();
|
message.href = 'https://immersiveweb.dev/';
|
||||||
|
message.innerHTML = 'WEBXR NOT AVAILABLE';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} ).catch( showVRNotFound );
|
|
||||||
|
|
||||||
return button;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
var message = document.createElement( 'a' );
|
|
||||||
message.href = 'https://immersive-web.github.io/webxr/';
|
|
||||||
message.innerHTML = 'WEBXR NOT SUPPORTED';
|
|
||||||
|
|
||||||
message.style.left = 'calc(50% - 90px)';
|
message.style.left = 'calc(50% - 90px)';
|
||||||
message.style.width = '180px';
|
message.style.width = '180px';
|
||||||
message.style.textDecoration = 'none';
|
message.style.textDecoration = 'none';
|
||||||
@ -257,6 +164,6 @@ var VRButton = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
}
|
||||||
|
|
||||||
export { VRButton };
|
export { VRButton };
|
||||||
|
@ -54,6 +54,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
|||||||
// this.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
// this.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
||||||
this.renderer.gammaInput = true;
|
this.renderer.gammaInput = true;
|
||||||
this.renderer.gammaOutput = true;
|
this.renderer.gammaOutput = true;
|
||||||
|
console.log( this.renderer);
|
||||||
this.renderer.vr.enabled = true;
|
this.renderer.vr.enabled = true;
|
||||||
this.dom.appendChild(this.renderer.domElement);
|
this.dom.appendChild(this.renderer.domElement);
|
||||||
document.body.appendChild( VRButton.createButton( human,{x:25,y:1.3,z:1},this.renderer ) );
|
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 ) {
|
function onSelectStart( event ) {
|
||||||
// console.log();
|
// console.log();
|
||||||
|
console.log("select");
|
||||||
var controller = event.target;
|
var controller = event.target;
|
||||||
var intersections = getIntersections( controller );
|
var intersections = getIntersections( controller );
|
||||||
|
|
||||||
@ -249,6 +251,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
|||||||
let controlMoveSwitch = false;
|
let controlMoveSwitch = false;
|
||||||
let nowControlModel = null;
|
let nowControlModel = null;
|
||||||
function squeezeStart(){
|
function squeezeStart(){
|
||||||
|
console.log("squeezestart");
|
||||||
TrainRescueStatic.handR.action.reset();
|
TrainRescueStatic.handR.action.reset();
|
||||||
TrainRescueStatic.handR.action.time = TrainRescueStatic.handR.action._clip.duration;
|
TrainRescueStatic.handR.action.time = TrainRescueStatic.handR.action._clip.duration;
|
||||||
TrainRescueStatic.handR.action.timeScale = 1;
|
TrainRescueStatic.handR.action.timeScale = 1;
|
||||||
@ -271,6 +274,7 @@ export function Jl3dTrainRescueVr(dom,group,skinCode) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
function squeezeEnd(){
|
function squeezeEnd(){
|
||||||
|
console.log("squeezeend");
|
||||||
TrainRescueStatic.handR.action.reset();
|
TrainRescueStatic.handR.action.reset();
|
||||||
TrainRescueStatic.handR.action.time = 0;
|
TrainRescueStatic.handR.action.time = 0;
|
||||||
TrainRescueStatic.handR.action.timeScale = -1;
|
TrainRescueStatic.handR.action.timeScale = -1;
|
||||||
|
@ -798,29 +798,29 @@ export function Jlmap3dSubscribeNew(jlmap3d,routegroup,jsonwebwork) {
|
|||||||
code = data.code;
|
code = data.code;
|
||||||
if(signallist.list[code]){
|
if(signallist.list[code]){
|
||||||
if(data.red == 1){
|
if(data.red == 1){
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map = materials[0];
|
signallist.list[code].mesh.getObjectByName("red").material.map = materials["red"];
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
||||||
}else{
|
}else{
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map = materials[3];
|
signallist.list[code].mesh.getObjectByName("red").material.map = materials["black"];
|
||||||
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("red").material.map.needsUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.yellow == 1){
|
if(data.yellow == 1){
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials[1];
|
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials["yellow"];
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials[3];
|
signallist.list[code].mesh.getObjectByName("yellow").material.map = materials["black"];
|
||||||
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("yellow").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.green == 1){
|
if(data.green == 1){
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map = materials[2];
|
signallist.list[code].mesh.getObjectByName("green").material.map = materials["green"];
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map = materials[3];
|
signallist.list[code].mesh.getObjectByName("green").material.map = materials["black"];
|
||||||
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
signallist.list[code].mesh.getObjectByName("green").material.map.needsUpdate = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -47,8 +47,8 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
light.position.set( 0, 4000, 0 );
|
light.position.set( 0, 4000, 0 );
|
||||||
scene.add( light );
|
scene.add( light );
|
||||||
|
|
||||||
let fire = new Fire();
|
// let fire = new Fire();
|
||||||
fire.init(scene);
|
// fire.init(scene);
|
||||||
|
|
||||||
let animateManager = new AnimateManager();
|
let animateManager = new AnimateManager();
|
||||||
|
|
||||||
@ -60,8 +60,6 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
animateManager.initAnimation(assetModelManager);
|
animateManager.initAnimation(assetModelManager);
|
||||||
controlManager.init(animateManager.actions,assetModelManager);
|
controlManager.init(animateManager.actions,assetModelManager);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
startLesson();
|
startLesson();
|
||||||
animate();
|
animate();
|
||||||
resolve("loadeend"); //['成功了', 'success']
|
resolve("loadeend"); //['成功了', 'success']
|
||||||
@ -90,12 +88,14 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
this.changeIndex = function(nowIndex){
|
this.changeIndex = function(nowIndex){
|
||||||
lessonIndex = nowIndex;
|
lessonIndex = nowIndex;
|
||||||
scope.nowSceneType = lessonData.lessonProgress[nowIndex].progressScene;
|
scope.nowSceneType = lessonData.lessonProgress[nowIndex].progressScene;
|
||||||
|
console.log(nowRole);
|
||||||
|
console.log(lessonData.lessonProgress[lessonIndex].roleName);
|
||||||
if(lessonData.lessonProgress[lessonIndex].roleName == nowRole){
|
if(lessonData.lessonProgress[lessonIndex].roleName == nowRole){
|
||||||
controlManager.initControlMode(lessonIndex);
|
controlManager.initControlMode(lessonIndex);
|
||||||
controlManager.initRoleMode(true,nowRole);
|
controlManager.initRoleMode(true,nowRole);
|
||||||
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,true,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,true,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
||||||
}else{
|
}else{
|
||||||
|
controlManager.initControlMode(lessonIndex);
|
||||||
controlManager.initRoleMode(false,nowRole);
|
controlManager.initRoleMode(false,nowRole);
|
||||||
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,false,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,false,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
||||||
}
|
}
|
||||||
@ -107,6 +107,7 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.initNowRole = function(role){
|
this.initNowRole = function(role){
|
||||||
|
if(role){
|
||||||
nowRole = role;
|
nowRole = role;
|
||||||
controlManager.initControlMode(lessonIndex);
|
controlManager.initControlMode(lessonIndex);
|
||||||
let roleMode = false;
|
let roleMode = false;
|
||||||
@ -118,6 +119,10 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
console.log(assetModelManager);
|
console.log(assetModelManager);
|
||||||
// if(lessonData.lessonProgress[lessonIndex].action.length>0){
|
// if(lessonData.lessonProgress[lessonIndex].action.length>0){
|
||||||
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,roleMode,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,roleMode,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,false,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
||||||
|
}
|
||||||
// }
|
// }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -133,7 +138,7 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
if(controlManager.controlMode == "non"){
|
if(controlManager.controlMode == "non"){
|
||||||
controlManager.updateOrbitControl();
|
controlManager.updateOrbitControl();
|
||||||
}
|
}
|
||||||
fire.update();
|
// fire.update();
|
||||||
animateManager.updateAnimation();
|
animateManager.updateAnimation();
|
||||||
requestAnimationFrame(animate);
|
requestAnimationFrame(animate);
|
||||||
|
|
||||||
|
@ -529,9 +529,8 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(eventTrigger);
|
||||||
if(actions[i].actionType == "contact"){
|
if(actions[i].actionType == "contact"){
|
||||||
|
|
||||||
for(let j=0;j<eventTrigger.length;j++){
|
for(let j=0;j<eventTrigger.length;j++){
|
||||||
if(eventTrigger[j].label == actions[i].actionModel){
|
if(eventTrigger[j].label == actions[i].actionModel){
|
||||||
let eventTestBox = new THREE.Box3(new THREE.Vector3(), new THREE.Vector3());
|
let eventTestBox = new THREE.Box3(new THREE.Vector3(), new THREE.Vector3());
|
||||||
@ -575,6 +574,8 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else if(actions.length>0){
|
||||||
|
console.log(actions);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ export function AssetModelManager(editor,scene) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// console.log(modelList);
|
console.log(modelList);
|
||||||
return modelList;
|
return modelList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,9 +218,9 @@ export function AssetModelManager(editor,scene) {
|
|||||||
|
|
||||||
this.deleteAsset = function(selectModel,nowSceneType){
|
this.deleteAsset = function(selectModel,nowSceneType){
|
||||||
scope.otherModel.remove(selectModel);
|
scope.otherModel.remove(selectModel);
|
||||||
for(let i=0;i<scope.lessonTriggerList.length;i++){
|
for(let i=0;i<scope.lessonTriggerList[nowSceneType].length;i++){
|
||||||
if(scope.lessonTriggerList[nowSceneType][i].uuid == selectModel.uuid){
|
if(scope.lessonTriggerList[nowSceneType][i].uuid == selectModel.uuid){
|
||||||
scope.lessonTriggerList.splice(i,1);
|
scope.lessonTriggerList[nowSceneType].splice(i,1);
|
||||||
updateTriggerList(scope.lessonTriggerList[nowSceneType]);
|
updateTriggerList(scope.lessonTriggerList[nowSceneType]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -309,7 +309,8 @@ export function AssetModelManager(editor,scene) {
|
|||||||
function fbxpromise(asset){
|
function fbxpromise(asset){
|
||||||
return new Promise(function(resolve, reject){
|
return new Promise(function(resolve, reject){
|
||||||
var loader = new THREE.FBXLoader();
|
var loader = new THREE.FBXLoader();
|
||||||
console.log(asset);
|
// console.log(asset);
|
||||||
|
// console.log(asset.url);
|
||||||
if(asset.assetType == "static"){
|
if(asset.assetType == "static"){
|
||||||
loader.load( asset.url, function ( object ) {
|
loader.load( asset.url, function ( object ) {
|
||||||
if(asset.sceneType){
|
if(asset.sceneType){
|
||||||
|
@ -23,7 +23,7 @@ export function Lesson3dEditor(dom,lessonData) {
|
|||||||
|
|
||||||
// let stats = new Stats();
|
// let stats = new Stats();
|
||||||
// dom.appendChild( stats.dom );
|
// dom.appendChild( stats.dom );
|
||||||
|
let lessonIndex = 0;
|
||||||
let scope = this;
|
let scope = this;
|
||||||
this.dom = dom;
|
this.dom = dom;
|
||||||
this.nowSceneType = "";
|
this.nowSceneType = "";
|
||||||
|
@ -257,6 +257,52 @@ export function JobPaneData() {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name:"工程部门",
|
||||||
|
value:"gcbm",
|
||||||
|
text:"负责修复设备。",
|
||||||
|
picurl:"",
|
||||||
|
controlList:[
|
||||||
|
//联控
|
||||||
|
{
|
||||||
|
name:"联控",
|
||||||
|
data:[],
|
||||||
|
},
|
||||||
|
//动作
|
||||||
|
{
|
||||||
|
name:"动作",
|
||||||
|
data:[],
|
||||||
|
},
|
||||||
|
//口呼
|
||||||
|
{
|
||||||
|
name:"口呼",
|
||||||
|
data:[],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"报警中心",
|
||||||
|
value:"bjzx",
|
||||||
|
text:"报告,处理突发应急事件。",
|
||||||
|
picurl:"",
|
||||||
|
controlList:[
|
||||||
|
//联控
|
||||||
|
{
|
||||||
|
name:"联控",
|
||||||
|
data:[],
|
||||||
|
},
|
||||||
|
//动作
|
||||||
|
{
|
||||||
|
name:"动作",
|
||||||
|
data:[],
|
||||||
|
},
|
||||||
|
//口呼
|
||||||
|
{
|
||||||
|
name:"口呼",
|
||||||
|
data:[],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name:"地铁公安",
|
name:"地铁公安",
|
||||||
value:"110",
|
value:"110",
|
||||||
|
@ -33,7 +33,7 @@ function settexture(materiallist,name,textureurl){
|
|||||||
// onLoad回调
|
// onLoad回调
|
||||||
function ( texture ) {
|
function ( texture ) {
|
||||||
texture.name = name;
|
texture.name = name;
|
||||||
materiallist.push(texture);
|
materiallist[name] = texture;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 目前暂不支持onProgress的回调
|
// 目前暂不支持onProgress的回调
|
||||||
|
@ -473,7 +473,7 @@ class SkinCode extends defaultStyle {
|
|||||||
borderColor: '#FE0000', // 道岔边框颜色
|
borderColor: '#FE0000', // 道岔边框颜色
|
||||||
lossColor: '#FFFFFF', // 道岔失去颜色
|
lossColor: '#FFFFFF', // 道岔失去颜色
|
||||||
locateColor: '#00FF00', // 道岔定位颜色
|
locateColor: '#00FF00', // 道岔定位颜色
|
||||||
inversionColor: '#9C9D09', // 道岔反位颜色
|
inversionColor: '#EDBD65', // 道岔反位颜色
|
||||||
monolockLocationColor: '#ea282c', // 道岔单锁'定位'颜色
|
monolockLocationColor: '#ea282c', // 道岔单锁'定位'颜色
|
||||||
monolockInversionColor: '#ea282c', // 道岔单锁'反位'颜色
|
monolockInversionColor: '#ea282c', // 道岔单锁'反位'颜色
|
||||||
block: true, // 封锁名称
|
block: true, // 封锁名称
|
||||||
|
@ -153,6 +153,8 @@ class Painter {
|
|||||||
trainDevice.overLapIndex = index;
|
trainDevice.overLapIndex = index;
|
||||||
trainDevice.instance && this.mapInstanceLevel[deviceType.Train].remove(trainDevice.instance);
|
trainDevice.instance && this.mapInstanceLevel[deviceType.Train].remove(trainDevice.instance);
|
||||||
trainDevice.instance = null;
|
trainDevice.instance = null;
|
||||||
|
trainDevice.zrOffsetX = this.$jmap.$options.offsetX;
|
||||||
|
trainDevice.zrOffsetY = this.$jmap.$options.offsetY;
|
||||||
this.add(trainDevice);
|
this.add(trainDevice);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -66,15 +66,7 @@ class ESafeDoor extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setState(model) {
|
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) {
|
if (model.interlockRelease) {
|
||||||
const style = this.model.style;
|
const style = this.model.style;
|
||||||
this.setColor(style.Psd.safetyDoorNormal.splitDoorColor);
|
this.setColor(style.Psd.safetyDoorNormal.splitDoorColor);
|
||||||
|
@ -612,8 +612,12 @@ class Signal extends Group {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.cbtcStatus = '';
|
this.cbtcStatus = '';
|
||||||
|
if (parseInt(this.model.lampPositionType) === 2) {
|
||||||
|
this.lamps[1] && this.lamps[1].setColor(this.style.Signal.lamp.greenColor);
|
||||||
|
this.lamps[0] && this.lamps[0].setColor(this.style.backgroundColor); // 设置黑色
|
||||||
|
} else {
|
||||||
this.lamps[0] && this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
|
this.lamps[0] && this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
|
||||||
this.lamps[1] && this.lamps[1].setColor(this.style.backgroundColor); // 设置黑色
|
}
|
||||||
this.virtualSignal && this.virtualSignal.setColor(this.style.Signal.lamp.blueColor);
|
this.virtualSignal && this.virtualSignal.setColor(this.style.Signal.lamp.blueColor);
|
||||||
if (this.style.Signal.lamp.guidName === 'doubleAndBase') { // 设置底座颜色
|
if (this.style.Signal.lamp.guidName === 'doubleAndBase') { // 设置底座颜色
|
||||||
this.sigPost.setColor('#00FF00');
|
this.sigPost.setColor('#00FF00');
|
||||||
@ -636,8 +640,12 @@ class Signal extends Group {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.cbtcStatus = '';
|
this.cbtcStatus = '';
|
||||||
|
if (parseInt(this.model.lampPositionType) === 2) {
|
||||||
|
this.lamps[1] && this.lamps[1].setColor(this.style.Signal.lamp.yellowColor);
|
||||||
|
this.lamps[0] && this.lamps[0].setColor(this.style.backgroundColor);
|
||||||
|
} else {
|
||||||
this.lamps[0] && this.lamps[0].setColor(this.style.Signal.lamp.yellowColor);
|
this.lamps[0] && this.lamps[0].setColor(this.style.Signal.lamp.yellowColor);
|
||||||
this.lamps[1] && this.lamps[1].setColor(this.style.backgroundColor);
|
}
|
||||||
if (this.style.Signal.lamp.guidName === 'doubleAndBase') { // 设置底座颜色
|
if (this.style.Signal.lamp.guidName === 'doubleAndBase') { // 设置底座颜色
|
||||||
this.sigPost.setColor('#00FF00');
|
this.sigPost.setColor('#00FF00');
|
||||||
if (this.model.logicLight) { // 设置哈尔滨逻辑点灯 颜色
|
if (this.model.logicLight) { // 设置哈尔滨逻辑点灯 颜色
|
||||||
|
@ -38,7 +38,7 @@ class EReentry extends Group {
|
|||||||
|
|
||||||
setColor(color) {
|
setColor(color) {
|
||||||
this.create();
|
this.create();
|
||||||
this.reentry.setStyle('textFill', color);
|
this.reentry.setStyle('fill', color);
|
||||||
}
|
}
|
||||||
|
|
||||||
hideMode() {
|
hideMode() {
|
||||||
@ -56,16 +56,16 @@ class EReentry extends Group {
|
|||||||
|
|
||||||
setState(model) {
|
setState(model) {
|
||||||
const style = this.model.style;
|
const style = this.model.style;
|
||||||
let reentryStrategy = '';
|
let typeStrategy = '';
|
||||||
if (model.reentryStrategy !== '04') {
|
if (model.typeStrategy !== '04') {
|
||||||
reentryStrategy = model.reentryStrategy;
|
typeStrategy = model.typeStrategy;
|
||||||
} else {
|
} else {
|
||||||
reentryStrategy = model.defaultReentryStrategy;
|
typeStrategy = model.defaultReentryStrategy;
|
||||||
}
|
}
|
||||||
switch (reentryStrategy) {
|
switch (typeStrategy) {
|
||||||
case 'DEFAULT': /** 默认*/
|
case 'DEFAULT': /** 默认*/
|
||||||
case 'NONE': {
|
case 'NONE': {
|
||||||
this.reentry && this.reentry.hideMode(); /** 无折返策略*/
|
this.reentry && this.hideMode(); /** 无折返策略*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'UNMANNED': {
|
case 'UNMANNED': {
|
||||||
|
@ -171,7 +171,18 @@ class EMouse extends Group {
|
|||||||
}
|
}
|
||||||
mouseover() {
|
mouseover() {
|
||||||
if (this.device.model.style.Train.common.trainTip) {
|
if (this.device.model.style.Train.common.trainTip) {
|
||||||
|
const zrRect = { x: this.device.model.model.zrOffsetX, y: this.device.model.model.zrOffsetY, width: store.state.config.width, height: store.state.config.height };
|
||||||
this.device.deviceModel.__down = true;
|
this.device.deviceModel.__down = true;
|
||||||
|
const arrowTextRect = this.arrowText.getBoundingRect();
|
||||||
|
const zrRectX = zrRect.x + zrRect.width;
|
||||||
|
const zrRectY = zrRect.y + zrRect.height;
|
||||||
|
const arrowTextRectX = arrowTextRect.x + arrowTextRect.width;
|
||||||
|
const arrowTextRectY = arrowTextRect.y + arrowTextRect.height;
|
||||||
|
if (arrowTextRectX > zrRectX || arrowTextRectY > zrRectY) {
|
||||||
|
const offsetX = arrowTextRectX > zrRectX ? arrowTextRectX - zrRectX : 0;
|
||||||
|
const offsetY = arrowTextRectY > zrRectY ? arrowTextRectY - zrRectY : 0;
|
||||||
|
this.arrowText.setStyle({ x: this.device.model.point.x + 50 - offsetX, y: this.device.model.point.y + 25 - offsetY });
|
||||||
|
}
|
||||||
this.arrowText.show();
|
this.arrowText.show();
|
||||||
}
|
}
|
||||||
if (this.device.style.Train.mouseOverStyle) {
|
if (this.device.style.Train.mouseOverStyle) {
|
||||||
|
@ -223,6 +223,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -365,6 +369,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -136,6 +136,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -275,6 +279,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -119,6 +119,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -246,6 +250,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
:class="systemName+' route-hand-control'"
|
:class="systemName+' route-hand-control'"
|
||||||
:title="title"
|
:title="title"
|
||||||
:visible.sync="show"
|
:visible.sync="show"
|
||||||
:width="systemName == 'xian-01__systerm'?'400px':'300px'"
|
:width="width"
|
||||||
:before-close="doClose"
|
:before-close="doClose"
|
||||||
:z-index="2000"
|
:z-index="2000"
|
||||||
:modal="false"
|
:modal="false"
|
||||||
@ -63,6 +63,11 @@
|
|||||||
<!-- :disabled="scope.row.disabled" -->
|
<!-- :disabled="scope.row.disabled" -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
<el-row>
|
||||||
@ -132,7 +137,8 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapGetters('map', [
|
...mapGetters('map', [
|
||||||
'signalList',
|
'signalList',
|
||||||
'routeData'
|
'routeData',
|
||||||
|
'overlapData'
|
||||||
]),
|
]),
|
||||||
show() {
|
show() {
|
||||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
@ -140,6 +146,9 @@ export default {
|
|||||||
domIdCancel() {
|
domIdCancel() {
|
||||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
},
|
},
|
||||||
|
width() {
|
||||||
|
return this.systemName === 'xian-01__systerm' ? '500px' : '300px';
|
||||||
|
},
|
||||||
domIdChoose() {
|
domIdChoose() {
|
||||||
if (this.dialogShow) {
|
if (this.dialogShow) {
|
||||||
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
||||||
@ -291,6 +300,19 @@ 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 switchLength = this.overlapData[row.overlapCode].pathList[0].switchPositionList.length;
|
||||||
|
const switchDevice = this.$store.getters['map/getDeviceByCode'](this.overlapData[row.overlapCode].pathList[0].switchPositionList[switchLength - 1].switchCode);
|
||||||
|
if (switchDevice) {
|
||||||
|
name = switchDevice.name + (this.overlapData[row.overlapCode].pathList[0].switchPositionList[switchLength - 1].normal ? '定位保护' : '反位保护');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
},
|
||||||
allSelectChange() {
|
allSelectChange() {
|
||||||
this.changeList = [];
|
this.changeList = [];
|
||||||
if (this.allSelect) {
|
if (this.allSelect) {
|
||||||
|
@ -116,6 +116,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -209,6 +213,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -127,6 +127,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -262,6 +266,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -96,6 +96,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -237,6 +241,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -207,6 +207,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -335,6 +339,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -208,6 +208,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -335,6 +339,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
nextStation() {
|
nextStation() {
|
||||||
const group = this.$route.query.group;
|
const group = this.$route.query.group;
|
||||||
const param = {
|
const param = {
|
||||||
|
@ -211,6 +211,10 @@ export default {
|
|||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '托管',
|
label: '托管',
|
||||||
handler: this.setCollocation
|
handler: this.setCollocation
|
||||||
@ -361,6 +365,9 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
|
},
|
||||||
// 设置连挂
|
// 设置连挂
|
||||||
setLink() {
|
setLink() {
|
||||||
commitOperate(menuOperate.Common.setLink, { code: this.selected.code }, 0).then(({valid, operate})=>{
|
commitOperate(menuOperate.Common.setLink, { code: this.selected.code }, 0).then(({valid, operate})=>{
|
||||||
|
@ -102,19 +102,13 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getProtectedSectionName(row) {
|
getProtectedSectionName(row) {
|
||||||
let name = '';
|
let name = '';
|
||||||
if (row &&
|
if (row && row.overlapCode && this.overlapData[row.overlapCode] &&
|
||||||
row.overlapSectionList &&
|
this.overlapData[row.overlapCode].pathList.length &&
|
||||||
row.overlapSectionList &&
|
this.overlapData[row.overlapCode].pathList[0].switchPositionList.length) {
|
||||||
row.overlapSectionList.length > 0) {
|
const switchLength = this.overlapData[row.overlapCode].pathList[0].switchPositionList.length;
|
||||||
|
const switchDevice = this.$store.getters['map/getDeviceByCode'](this.overlapData[row.overlapCode].pathList[0].switchPositionList[switchLength - 1].switchCode);
|
||||||
const protect = row.overlapSectionList[0];
|
if (switchDevice) {
|
||||||
name = `${protect.name}`;
|
name = switchDevice.name + (this.overlapData[row.overlapCode].pathList[0].switchPositionList[switchLength - 1].normal ? '定位保护' : '反位保护');
|
||||||
if (protect.parentName) {
|
|
||||||
name = `${protect.parentName}${protect.name}`;
|
|
||||||
}
|
|
||||||
const station = this.$store.getters['map/getDeviceByCode'](protect.stationCode);
|
|
||||||
if (station) {
|
|
||||||
name = `${name}(${station.name})`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return name;
|
return name;
|
||||||
|
@ -74,7 +74,8 @@ export default {
|
|||||||
val && this.$store.dispatch('config/updateMenuBar');
|
val && this.$store.dispatch('config/updateMenuBar');
|
||||||
},
|
},
|
||||||
'$store.state.menuOperation.menuCount': function (val) {
|
'$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);
|
this.popDoShow(this.$store.state.menuOperation.menuPosition);
|
||||||
} else {
|
} else {
|
||||||
this.popDoClose();
|
this.popDoClose();
|
||||||
@ -118,6 +119,7 @@ export default {
|
|||||||
},
|
},
|
||||||
initMenu() {
|
initMenu() {
|
||||||
this.menuNormal = [];
|
this.menuNormal = [];
|
||||||
|
if (this.$store.state.training.prdType == '02') {
|
||||||
this.$store.state.map.map.stationList.forEach(station => {
|
this.$store.state.map.map.stationList.forEach(station => {
|
||||||
if (station.relStationCodeList && station.relStationCodeList.length) {
|
if (station.relStationCodeList && station.relStationCodeList.length) {
|
||||||
const node = {
|
const node = {
|
||||||
@ -142,6 +144,46 @@ export default {
|
|||||||
this.menuNormal.push(node);
|
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;
|
||||||
|
});
|
||||||
|
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.menu = [...this.menuNormal];
|
this.menu = [...this.menuNormal];
|
||||||
},
|
},
|
||||||
popDoClose() {
|
popDoClose() {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<!--<div class="holdTrainStatus">H</div>-->
|
<!--<div class="holdTrainStatus">H</div>-->
|
||||||
<!--<div class="jumpStopStatus">S</div>-->
|
<!--<div class="jumpStopStatus">S</div>-->
|
||||||
<!--</div>-->
|
<!--</div>-->
|
||||||
<station-control-convert ref="stationControlConvert" />
|
<station-control-convert ref="stationControlConvert" @warningInfoDoShow="warningInfoDoShow" />
|
||||||
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
|
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
|
||||||
<view-train-id ref="viewTrainId" />
|
<view-train-id ref="viewTrainId" />
|
||||||
<view-name ref="viewName" />
|
<view-name ref="viewName" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<train-delete ref="trainDelete" />
|
<train-delete ref="trainDelete" />
|
||||||
<manage-user ref="manageUser" />
|
<manage-user ref="manageUser" />
|
||||||
<help-about ref="helpAbout" />
|
<help-about ref="helpAbout" />
|
||||||
|
<warning-info ref="warningInfo" />
|
||||||
<!-- <delete-runplan-line ref="deleteRunplanLine" /> -->
|
<!-- <delete-runplan-line ref="deleteRunplanLine" /> -->
|
||||||
<!-- <add-runplan-line ref="addRunplanLine" /> -->
|
<!-- <add-runplan-line ref="addRunplanLine" /> -->
|
||||||
</div>
|
</div>
|
||||||
@ -23,6 +24,7 @@
|
|||||||
import MenuBar from '@/jmapNew/theme/components/menus/menuBar';
|
import MenuBar from '@/jmapNew/theme/components/menus/menuBar';
|
||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler.js';
|
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler.js';
|
||||||
import StationControlConvert from './menuDialog/stationControlConvert';
|
import StationControlConvert from './menuDialog/stationControlConvert';
|
||||||
|
import WarningInfo from './menuDialog/warningInfo';
|
||||||
import TrainAdd from './menuDialog/trainAdd';
|
import TrainAdd from './menuDialog/trainAdd';
|
||||||
// import AddRunplanLine from './menuDialog/addRunplanLine';
|
// import AddRunplanLine from './menuDialog/addRunplanLine';
|
||||||
import TrainTranstalet from './menuDialog/trainTranstalet';
|
import TrainTranstalet from './menuDialog/trainTranstalet';
|
||||||
@ -50,7 +52,8 @@ export default {
|
|||||||
TrainTranstalet,
|
TrainTranstalet,
|
||||||
TrainDelete,
|
TrainDelete,
|
||||||
ManageUser,
|
ManageUser,
|
||||||
HelpAbout
|
HelpAbout,
|
||||||
|
WarningInfo
|
||||||
// DeleteRunplanLine
|
// DeleteRunplanLine
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@ -484,6 +487,9 @@ export default {
|
|||||||
blankClickClose() {
|
blankClickClose() {
|
||||||
this.$refs.menuBar.doClose();
|
this.$refs.menuBar.doClose();
|
||||||
},
|
},
|
||||||
|
warningInfoDoShow(info) {
|
||||||
|
this.$refs.warningInfo.doShow(info);
|
||||||
|
},
|
||||||
undeveloped() {
|
undeveloped() {
|
||||||
this.$refs.menuBar.doClose();
|
this.$refs.menuBar.doClose();
|
||||||
this.$alert(this.$t('menu.menuBar.implemented'), this.$t('global.tips'), {
|
this.$alert(this.$t('menu.menuBar.implemented'), this.$t('global.tips'), {
|
||||||
|
@ -153,6 +153,12 @@ export default {
|
|||||||
'$store.state.map.controlTransfer':function (controlTransferList) {
|
'$store.state.map.controlTransfer':function (controlTransferList) {
|
||||||
controlTransferList.forEach(controlTransfer=>{
|
controlTransferList.forEach(controlTransfer=>{
|
||||||
this.updateTableValue(controlTransfer);
|
this.updateTableValue(controlTransfer);
|
||||||
|
if (controlTransfer.applicantId && this.$store.state.training.memberData[controlTransfer.applicantId] &&
|
||||||
|
this.$store.state.training.memberData[controlTransfer.applicantId].userId == this.$store.state.user.id &&
|
||||||
|
this.$store.state.training.prdType === '01'
|
||||||
|
) {
|
||||||
|
this.$emit('warningInfoDoShow', controlTransfer);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 深度数据状态
|
// 深度数据状态
|
||||||
@ -164,7 +170,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.loadTableData();
|
// this.loadTableData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
updateTableValue(controlTransfer) {
|
updateTableValue(controlTransfer) {
|
||||||
@ -241,15 +247,37 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
initTableDataStatus() {
|
initTableDataStatus() {
|
||||||
this.tableData.forEach(row => {
|
this.tableData = [];
|
||||||
row.disabled = this.checkBoxDisabled(row);
|
if (this.$store.state.training.prdType === '02') {
|
||||||
row.check = false;
|
this.stationList && this.stationList.forEach(station => {
|
||||||
row.result = '';
|
if (station.createControlMode) {
|
||||||
const control = this.$store.getters['map/getDeviceByCode'](row.code);
|
const control = this.$store.getters['map/getDeviceByCode'](station.code);
|
||||||
if (control) {
|
this.tableData.push({
|
||||||
row.control = this.controlProps[control.controlMode];
|
code: station.code,
|
||||||
|
operate: station.name || '',
|
||||||
|
control: control ? this.controlProps[control.controlMode] : '',
|
||||||
|
check: false,
|
||||||
|
disabled: this.checkBoxDisabled(station),
|
||||||
|
status: '正常',
|
||||||
|
result: ''
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else if (this.$store.state.training.prdType === '01') {
|
||||||
|
const stationCodeList = this.$store.state.map.stationControlMap[this.$store.state.training.roleDeviceCode];
|
||||||
|
stationCodeList && stationCodeList.forEach(stationCode => {
|
||||||
|
const station = this.$store.getters['map/getDeviceByCode'](stationCode);
|
||||||
|
this.tableData.push({
|
||||||
|
code: station.code,
|
||||||
|
operate: station.name || '',
|
||||||
|
control: station ? this.controlProps[station.controlMode] : '',
|
||||||
|
check: false,
|
||||||
|
disabled: this.checkBoxDisabled(station),
|
||||||
|
status: '正常',
|
||||||
|
result: ''
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
doShow(operate) {
|
doShow(operate) {
|
||||||
if (!this.dialogShow) {
|
if (!this.dialogShow) {
|
||||||
|
105
src/jmapNew/theme/xian_01/menus/menuDialog/warningInfo.vue
Normal file
105
src/jmapNew/theme/xian_01/menus/menuDialog/warningInfo.vue
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-dialogDrag
|
||||||
|
class="xian-01__systerm station-control-convert"
|
||||||
|
title="0级报警详细信息"
|
||||||
|
:visible.sync="show"
|
||||||
|
width="900px"
|
||||||
|
:z-index="2000"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
>
|
||||||
|
<div style="font-size: 14px;color: #000;">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<div>线路名称</div>
|
||||||
|
<div style="width: 180px;" class="border-style">{{ $store.state.map.mapName }}</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<div>单位名称</div>
|
||||||
|
<div style="width: 180px;" class="border-style">{{ stationName }}</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<div>模块名称</div>
|
||||||
|
<div style="width: 180px;" class="border-style">CMM控制模式转换模块</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row style="margin-top: 10px;">
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<div>报警时间</div>
|
||||||
|
<div style="width: 180px;" class="border-style">{{ time }}</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<div>等  级</div>
|
||||||
|
<div style="width: 180px;" class="border-style">0级告警</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<div>确认状态</div>
|
||||||
|
<div style="width: 180px;" class="border-style">未确认</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row style="margin-top: 10px;">
|
||||||
|
<el-col :span="12" style="display: flex;">
|
||||||
|
<div>类  型</div>
|
||||||
|
<div style="width: 325px;" class="border-style">系统事件</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12" style="display: flex;">
|
||||||
|
<div>子 类 型</div>
|
||||||
|
<div style="width: 325px;" class="border-style">依据信号设备操作命令设置控制模式</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row style="display: flex;margin-top: 10px;">
|
||||||
|
<div>事件摘要</div>
|
||||||
|
<div style="width: 760px;" class="border-style">控制模式转换</div>
|
||||||
|
</el-row>
|
||||||
|
<el-row style="display: flex;margin-top: 10px;">
|
||||||
|
<div>推荐操作</div>
|
||||||
|
<div style="width: 760px;" class="border-style" />
|
||||||
|
</el-row>
|
||||||
|
<el-row style="margin-top: 10px;">
|
||||||
|
<span>报警详细描述</span>
|
||||||
|
<div style="width: 825px;margin-left: 0;height: 80px;" class="border-style">{{ `控制模式转换:${stationName}由中控模式转为站控模式!` }}</div>
|
||||||
|
</el-row>
|
||||||
|
<div style="text-align: center;margin-top: 10px;">
|
||||||
|
<el-button @click="doClose">确认</el-button>
|
||||||
|
<span>未确认0级报警数目:1</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { parseTime } from '@/utils/index';
|
||||||
|
export default {
|
||||||
|
name: 'WarningInfo',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
show: false,
|
||||||
|
stationName: '',
|
||||||
|
time: ''
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doClose() {
|
||||||
|
this.show = false;
|
||||||
|
},
|
||||||
|
doShow(info) {
|
||||||
|
const station = this.$store.getters['map/getDeviceByCode'](info.code);
|
||||||
|
this.stationName = station.name;
|
||||||
|
this.time = parseTime(this.$store.state.training.initTime);
|
||||||
|
this.show = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.border-style {
|
||||||
|
border-top: 2px solid #858585;
|
||||||
|
border-left: 2px solid #858585;
|
||||||
|
border-right: 2px solid #F2F2F2;
|
||||||
|
border-bottom: 2px solid #F2F2F2;
|
||||||
|
padding: 0 10px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -263,6 +263,14 @@ export default {
|
|||||||
initMenu() {
|
initMenu() {
|
||||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||||
// 故障模式菜单列表
|
// 故障模式菜单列表
|
||||||
|
const menuItem = this.menu.find( item => item.cmdType === CMD.Signal.CMD_SIGNAL_SET_CI_AUTO);
|
||||||
|
const menuItemDisabled = menuItem.disabled;
|
||||||
|
menuItem.disabled = true;
|
||||||
|
this.routeList.forEach(route => {
|
||||||
|
if (route.startSignalCode === this.selected.code && route.flt) {
|
||||||
|
menuItem.disabled = menuItemDisabled;
|
||||||
|
}
|
||||||
|
});
|
||||||
if (this.operatemode === OperateMode.FAULT) {
|
if (this.operatemode === OperateMode.FAULT) {
|
||||||
this.menu = this.menuForce;
|
this.menu = this.menuForce;
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,10 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '取消故障',
|
label: '取消故障',
|
||||||
handler: this.cancelStoppage
|
handler: this.cancelStoppage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '触发故障管理',
|
||||||
|
handler: this.triggerFaultManagement
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuDirective: [
|
menuDirective: [
|
||||||
@ -528,6 +532,9 @@ export default {
|
|||||||
callback: action => {
|
callback: action => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
triggerFaultManagement() {
|
||||||
|
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
|
||||||
}
|
}
|
||||||
// // 交换列车识别号
|
// // 交换列车识别号
|
||||||
// switchTrainId() {
|
// switchTrainId() {
|
||||||
|
@ -29,7 +29,7 @@ export const MapDeviceType = {
|
|||||||
/** 设备故障类型 */
|
/** 设备故障类型 */
|
||||||
export const deviceFaultType = {
|
export const deviceFaultType = {
|
||||||
Section: [
|
Section: [
|
||||||
{label: '计轴故障', value: 'FAULT'},
|
{label: '红光带故障', value: 'FAULT'},
|
||||||
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||||
{label: '橙光带故障', value: 'ARB'}
|
{label: '橙光带故障', value: 'ARB'}
|
||||||
// {label: '计轴干扰', value: 'DISTURBANCE'}
|
// {label: '计轴干扰', value: 'DISTURBANCE'}
|
||||||
@ -43,7 +43,7 @@ export const deviceFaultType = {
|
|||||||
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||||
{label: '挤岔', value: 'SQUEEZE'},
|
{label: '挤岔', value: 'SQUEEZE'},
|
||||||
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||||
{label: '计轴故障', value: 'AXLE_FAULT'},
|
{label: '红光带故障', value: 'AXLE_FAULT'},
|
||||||
{label: '橙光带故障', value: 'ARB'}
|
{label: '橙光带故障', value: 'ARB'}
|
||||||
// {label: '道岔区段计轴故障', value: 'AXLE_FAULT'}
|
// {label: '道岔区段计轴故障', value: 'AXLE_FAULT'}
|
||||||
],
|
],
|
||||||
@ -61,7 +61,8 @@ export const deviceFaultType = {
|
|||||||
],
|
],
|
||||||
Train: [
|
Train: [
|
||||||
{label: '通信异常', value: 'COMMUNICATION_ABNORMAL'},
|
{label: '通信异常', value: 'COMMUNICATION_ABNORMAL'},
|
||||||
{label: '驾驶故障', value: 'DRIVE_FAULT'}
|
{label: '驾驶故障', value: 'DRIVE_FAULT'},
|
||||||
|
{label: '突然EB', value: 'SUDDEN_EB' }
|
||||||
],
|
],
|
||||||
Power:[
|
Power:[
|
||||||
{label: '供电故障', value: 'FAULT'}
|
{label: '供电故障', value: 'FAULT'}
|
||||||
@ -70,7 +71,7 @@ export const deviceFaultType = {
|
|||||||
/** 设备故障类型map */
|
/** 设备故障类型map */
|
||||||
export const deviceFaultMap = {
|
export const deviceFaultMap = {
|
||||||
Section: {
|
Section: {
|
||||||
FAULT: '计轴故障',
|
FAULT: '红光带故障',
|
||||||
CBTC_OCCUPIED_FAULT: '通信车占用',
|
CBTC_OCCUPIED_FAULT: '通信车占用',
|
||||||
ARB: '橙光带故障'
|
ARB: '橙光带故障'
|
||||||
},
|
},
|
||||||
@ -83,7 +84,7 @@ export const deviceFaultMap = {
|
|||||||
REVERSE_SPLIT: '反位失表',
|
REVERSE_SPLIT: '反位失表',
|
||||||
SQUEEZE: '挤岔',
|
SQUEEZE: '挤岔',
|
||||||
CBTC_OCCUPIED_FAULT: '通信车占用',
|
CBTC_OCCUPIED_FAULT: '通信车占用',
|
||||||
AXLE_FAULT: '计轴故障',
|
AXLE_FAULT: '红光带故障',
|
||||||
ARB: '橙光带故障'
|
ARB: '橙光带故障'
|
||||||
},
|
},
|
||||||
StationStand: {
|
StationStand: {
|
||||||
|
@ -246,7 +246,8 @@ const map = {
|
|||||||
controlTransfer:[], // 控制权转移消息
|
controlTransfer:[], // 控制权转移消息
|
||||||
mapDataParseCount: 0,
|
mapDataParseCount: 0,
|
||||||
foldLineMap: {}, // 现地折行线map数据
|
foldLineMap: {}, // 现地折行线map数据
|
||||||
clearButtonCount: 0 // 清除操作按钮计数器
|
clearButtonCount: 0, // 清除操作按钮计数器
|
||||||
|
stationControlMap: {} // 站控显示的map { 当前车站:显示车站列表 }
|
||||||
},
|
},
|
||||||
|
|
||||||
getters: {
|
getters: {
|
||||||
@ -718,6 +719,18 @@ const map = {
|
|||||||
state.foldLineMap = foldLineMap;
|
state.foldLineMap = foldLineMap;
|
||||||
const parser = parserFactory(ParserType.Graph.value);
|
const parser = parserFactory(ParserType.Graph.value);
|
||||||
state.mapDevice = parser.parser(map, map.skinVO.code, showConfig);
|
state.mapDevice = parser.parser(map, map.skinVO.code, showConfig);
|
||||||
|
state.stationControlMap = {};
|
||||||
|
map.stationList.forEach(station => {
|
||||||
|
if (station.ciStation) {
|
||||||
|
const centrailzedList = [station.code];
|
||||||
|
station.relStationCodeList.forEach(relStationCode => {
|
||||||
|
state.stationControlMap[relStationCode] = centrailzedList;
|
||||||
|
if (state.mapDevice[relStationCode].centralized) {
|
||||||
|
centrailzedList.push(relStationCode);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
Vue.prototype.$jlmap && Vue.prototype.$jlmap.setMapDevice(state.mapDevice);
|
Vue.prototype.$jlmap && Vue.prototype.$jlmap.setMapDevice(state.mapDevice);
|
||||||
} else {
|
} else {
|
||||||
state.map = null;
|
state.map = null;
|
||||||
@ -905,9 +918,9 @@ const map = {
|
|||||||
const holdIndex = state.holdStandList.indexOf(status.code);
|
const holdIndex = state.holdStandList.indexOf(status.code);
|
||||||
const jumpIndex = state.jumpStandList.indexOf(status.code);
|
const jumpIndex = state.jumpStandList.indexOf(status.code);
|
||||||
const device = state.mapDevice[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);
|
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.holdStandList.splice(holdIndex, 1);
|
||||||
}
|
}
|
||||||
state.holdStatus = state.holdStandList.length > 0;
|
state.holdStatus = state.holdStandList.length > 0;
|
||||||
|
@ -2,11 +2,11 @@ export function getBaseUrl() {
|
|||||||
let BASE_API;
|
let BASE_API;
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
// BASE_API = 'https://joylink.club/jlcloud';
|
// BASE_API = 'https://joylink.club/jlcloud';
|
||||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||||
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
||||||
// BASE_API = 'http://192.168.2.175:9000'; // 旭强 有线
|
// BASE_API = 'http://192.168.2.175:9000'; // 旭强 有线
|
||||||
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
||||||
BASE_API = 'http://192.168.2.183:9000'; // 张赛
|
// BASE_API = 'http://192.168.2.183:9000'; // 张赛
|
||||||
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
// BASE_API = 'http://192.168.8.140: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'; // 杜康
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="textStatus" class="icon-box" :style="{top: offset+'px'}">
|
<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: holdBackground}" @mouseenter="showHoldStatus" @mouseleave="hideHoldStatus" @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: jumpBackground}" @mouseenter="showJumpStatus" @mouseleave="hideJumpStatus" @contextmenu="showJumpStationPop">S</div>
|
||||||
<pop-tip v-show="popShow" :position="position" :tip="tip" />
|
<pop-tip v-show="popShow" :position="position" :tip="tip" />
|
||||||
<pop-menu ref="popMenu" :menu="menu" pop-menu-class="statusIcon" />
|
<pop-menu ref="popMenu" :menu="menu" pop-menu-class="statusIcon" />
|
||||||
</div>
|
</div>
|
||||||
@ -117,6 +117,44 @@ export default {
|
|||||||
},
|
},
|
||||||
setCenter(val) {
|
setCenter(val) {
|
||||||
this.$jlmap && this.$jlmap.setCenter(val.code);
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="div1" class ="pane-box" >
|
<div id="div1" class ="pane-box" >
|
||||||
<img class="paneimg" :src="pane"/>
|
<img class="paneimg" :src="pane" @mouseout="speedout"/>
|
||||||
<div class="panelb" :style="{right: isZh? '80px': '80px', top: isZh? '0px': '0px'}">{{ $t('jlmap3d.traction') }}</div>
|
<div class="panelb" :style="{right: isZh? '80px': '80px', top: isZh? '0px': '0px'}">{{ $t('jlmap3d.traction') }}</div>
|
||||||
<div class="panelb" :style="{right: isZh? '80px': '80px', top: '70px'}">0</div>
|
<div class="panelb" :style="{right: isZh? '80px': '80px', top: '70px'}">0</div>
|
||||||
<div class="panelb" :style="{right: isZh? '80px': '80px', top: isZh? '130px': '130px'}">{{ $t('jlmap3d.braking') }}</div>
|
<div class="panelb" :style="{right: isZh? '80px': '80px', top: isZh? '130px': '130px'}">{{ $t('jlmap3d.braking') }}</div>
|
||||||
@ -242,13 +242,16 @@
|
|||||||
console.log(error);
|
console.log(error);
|
||||||
})
|
})
|
||||||
,200,true);
|
,200,true);
|
||||||
updatemmic1(this.move);
|
// updatemmic1(this.move);
|
||||||
},
|
},
|
||||||
speedend: function(event){
|
speedend: function(event){
|
||||||
document.getElementById("div1").onmousemove = null;
|
document.getElementById("div1").onmousemove = null;
|
||||||
document.getElementById("div2").onmouseup = null;
|
document.getElementById("div2").onmouseup = null;
|
||||||
},
|
},
|
||||||
|
speedout: function(event){
|
||||||
|
document.getElementById("div1").onmousemove = null;
|
||||||
|
document.getElementById("div2").onmouseup = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
click:function(){//图标点击事件
|
click:function(){//图标点击事件
|
||||||
@ -317,8 +320,8 @@
|
|||||||
if(mx<px&&my<py){//鼠标在第二象限
|
if(mx<px&&my<py){//鼠标在第二象限
|
||||||
angle = 360 - angle;
|
angle = 360 - angle;
|
||||||
}
|
}
|
||||||
console.log(angle);
|
// console.log(angle);
|
||||||
console.log(this.userRole );
|
// console.log(this.userRole );
|
||||||
if(angle<127 && angle>46){
|
if(angle<127 && angle>46){
|
||||||
if(angle<63 && angle>46){
|
if(angle<63 && angle>46){
|
||||||
if(this.touchstate != "Drive"){
|
if(this.touchstate != "Drive"){
|
||||||
@ -327,7 +330,7 @@
|
|||||||
gear:"Drive"
|
gear:"Drive"
|
||||||
};
|
};
|
||||||
trainSimulationGear(this.group,data).then(netdata => {
|
trainSimulationGear(this.group,data).then(netdata => {
|
||||||
console.log(netdata);
|
// console.log(netdata);
|
||||||
if(netdata.code == "200"){
|
if(netdata.code == "200"){
|
||||||
this.toutransform = "rotate(140deg)";
|
this.toutransform = "rotate(140deg)";
|
||||||
this.touchstate = "Drive";
|
this.touchstate = "Drive";
|
||||||
|
@ -141,7 +141,7 @@ import axios from 'axios';
|
|||||||
methods: {
|
methods: {
|
||||||
changeTrainSelect(mode){
|
changeTrainSelect(mode){
|
||||||
if(mode == "isTraining"){
|
if(mode == "isTraining"){
|
||||||
this.isTraining = false;
|
// this.isTraining = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
currentsel(selVal){
|
currentsel(selVal){
|
||||||
@ -380,9 +380,9 @@ import axios from 'axios';
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
.drivepane{
|
.drivepane{
|
||||||
width:30%;
|
width:500px;
|
||||||
height:320px;
|
height:333px;
|
||||||
right:500px;
|
right:0;
|
||||||
bottom:0;
|
bottom:0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
|
@ -11,7 +11,8 @@
|
|||||||
|
|
||||||
<!-- <el-button type="primary" @click="raystand">站台选择</el-button> -->
|
<!-- <el-button type="primary" @click="raystand">站台选择</el-button> -->
|
||||||
<el-button type="primary" @click="cctvplane">{{ cctvbuttonmsg }}</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 type="primary" @click="back">{{backmsg}}</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
@ -32,8 +33,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Drive-Mmi v-if="mmishow" ref="mmiui" />
|
<Drive-Mmi v-if="mmishow" ref="mmiui" />
|
||||||
|
<Drive-Tms v-if="tmsshow" />
|
||||||
<Drive-Tms v-if="mmishow" />
|
|
||||||
<Drive-Control v-if="dcontrolshow" ref="dcontrol" @warningmsg="warningmsg" @warningmsgoff="warningmsgoff" />
|
<Drive-Control v-if="dcontrolshow" ref="dcontrol" @warningmsg="warningmsg" @warningmsgoff="warningmsgoff" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -86,7 +86,9 @@ export default {
|
|||||||
cctvshow:true,
|
cctvshow:true,
|
||||||
cctvbuttonmsg: this.$t('jlmap3d.surveillanceHidden'),
|
cctvbuttonmsg: this.$t('jlmap3d.surveillanceHidden'),
|
||||||
mmishow: false,
|
mmishow: false,
|
||||||
showbuttonmsg: this.$t('jlmap3d.trainInstrumentationDisplay'),
|
tmsshow: false,
|
||||||
|
showbuttonmmimsg: this.$t('jlmap3d.trainInstrumentationMmiDisplay'),
|
||||||
|
showbuttontmsmsg: this.$t('jlmap3d.trainInstrumentationTmsDisplay'),
|
||||||
backmsg:this.$t('global.back'),
|
backmsg:this.$t('global.back'),
|
||||||
// trainnum: '',
|
// trainnum: '',
|
||||||
// stoptimes: '',
|
// stoptimes: '',
|
||||||
@ -177,6 +179,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.mmishow = true;
|
this.mmishow = true;
|
||||||
|
this.tmsshow = true;
|
||||||
// window.datanew = this.datanew;
|
// window.datanew = this.datanew;
|
||||||
window.updatestatus = this.updatestatus;
|
window.updatestatus = this.updatestatus;
|
||||||
|
|
||||||
@ -290,16 +293,26 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
showplane() {
|
showmmiplane() {
|
||||||
if (this.mmishow == true) {
|
if (this.mmishow == true) {
|
||||||
this.showbuttonmsg = this.$t('jlmap3d.trainInstrumentationHidden');
|
this.showbuttonmmimsg = this.$t('jlmap3d.trainInstrumentationMmiHidden');
|
||||||
this.mmishow = false;
|
this.mmishow = false;
|
||||||
} else {
|
} else {
|
||||||
this.showbuttonmsg = this.$t('jlmap3d.trainInstrumentationDisplay');
|
this.showbuttonmmimsg = this.$t('jlmap3d.trainInstrumentationMmiDisplay');
|
||||||
this.mmishow = true;
|
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(){
|
datanew(){
|
||||||
this.dcontrolshow = true;
|
this.dcontrolshow = true;
|
||||||
},
|
},
|
||||||
@ -425,10 +438,10 @@ export default {
|
|||||||
.jlmap3cctv{
|
.jlmap3cctv{
|
||||||
float: left;
|
float: left;
|
||||||
left: 0;
|
left: 0;
|
||||||
top:0;
|
bottom:333px;
|
||||||
//left:20%;
|
//left:20%;
|
||||||
width: 20%;
|
width:500px;
|
||||||
height: 20%;
|
height:333px;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class = "right">
|
<div class = "right">
|
||||||
<div class = "rightstatus narea n-tiaoting" :style="{backgroundImage: 'url(' + nimage + ')' }">
|
<div class = "rightstatus narea n-tiaoting" :style="{backgroundImage: 'url(' + tiaotingimage + ')' }">
|
||||||
</div>
|
</div>
|
||||||
<div class = "rightstatus darea d-info" :style="{backgroundImage: 'url(' + dimage + ')' }">
|
<div class = "rightstatus darea d-info" :style="{backgroundImage: 'url(' + dimage + ')' }">
|
||||||
</div>
|
</div>
|
||||||
@ -111,11 +111,13 @@ export default {
|
|||||||
nowspeed:0,
|
nowspeed:0,
|
||||||
nowatpspeed:0,
|
nowatpspeed:0,
|
||||||
nowatospeed:0,
|
nowatospeed:0,
|
||||||
|
oldspeed:0,
|
||||||
endstation:'',
|
endstation:'',
|
||||||
nextstation:'',
|
nextstation:'',
|
||||||
mmimodel:null,
|
mmimodel:null,
|
||||||
nstate:"tiaoting",
|
tiaotingjump:"false",
|
||||||
nimage:null,
|
tiaotinghold:"false",
|
||||||
|
tiaotingimage:null,
|
||||||
dstate:"info",
|
dstate:"info",
|
||||||
dimage:null,
|
dimage:null,
|
||||||
m1state:null,
|
m1state:null,
|
||||||
@ -125,13 +127,15 @@ export default {
|
|||||||
m3state:"zhefan",
|
m3state:"zhefan",
|
||||||
m3image:null,
|
m3image:null,
|
||||||
m4state:"out",
|
m4state:"out",
|
||||||
|
m4parking:false,
|
||||||
|
m4inTheStandArea:false,
|
||||||
m4image:null,
|
m4image:null,
|
||||||
m5stateleft:false,
|
m5stateleft:false,
|
||||||
m5stateright:false,
|
m5stateright:false,
|
||||||
m5image:null,
|
m5image:null,
|
||||||
m6state:"fache",
|
m6state:"fache",
|
||||||
m6image:null,
|
m6image:null,
|
||||||
m7state:"aoac",
|
m7state:"aomc",
|
||||||
m7image:null,
|
m7image:null,
|
||||||
m8state:"jinjizhidong",
|
m8state:"jinjizhidong",
|
||||||
m8image:null,
|
m8image:null,
|
||||||
@ -179,18 +183,18 @@ export default {
|
|||||||
this.setimage();
|
this.setimage();
|
||||||
},
|
},
|
||||||
setimage(){
|
setimage(){
|
||||||
this.nimage = this.images.n['tiaoting'];
|
this.tiaotingimage = this.images.n['none'];
|
||||||
this.dimage = this.images.d['info'];
|
this.dimage = this.images.d['info'];
|
||||||
this.m1image = this.images.m1['rm'];
|
this.m1image = this.images.m1['rm'];
|
||||||
this.m2image = this.images.m2['cbtc'];
|
this.m2image = this.images.m2['cbtc'];
|
||||||
this.m3image = this.images.m3['zhefan'];
|
this.m3image = this.images.m3['none'];
|
||||||
this.m4image = this.images.m4['out'];
|
this.m4image = this.images.m4['none'];
|
||||||
this.m5image = this.images.m5['noalloffdoor'];
|
this.m5image = this.images.m5['noalloffdoor'];
|
||||||
this.m6image = this.images.m6['fache'];
|
this.m6image = this.images.m6['none'];
|
||||||
this.m7image = this.images.m7['aoac'];
|
this.m7image = this.images.m7['aomc'];
|
||||||
this.m8image = this.images.m8['none'];
|
this.m8image = this.images.m8['none'];
|
||||||
this.m9image = this.images.m9['ato'];
|
this.m9image = this.images.m9['none'];
|
||||||
this.m10image = this.images.m10['jinduan'];
|
this.m10image = this.images.m10['none'];
|
||||||
this.c1image = this.images.c1['none'];
|
this.c1image = this.images.c1['none'];
|
||||||
this.c2image = this.images.c2['none'];
|
this.c2image = this.images.c2['none'];
|
||||||
this.c3image = this.images.c3['normal'];
|
this.c3image = this.images.c3['normal'];
|
||||||
@ -211,7 +215,6 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
updatetrainstatus(newdata){
|
updatetrainstatus(newdata){
|
||||||
|
|
||||||
if(typeof(newdata.eb) != "undefined"){
|
if(typeof(newdata.eb) != "undefined"){
|
||||||
|
|
||||||
this.updateEbStatus(newdata.eb);
|
this.updateEbStatus(newdata.eb);
|
||||||
@ -227,6 +230,7 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.updatemmidrivemodelevel(newdata.runLevel,newdata.driveMode,newdata.atoOn,newdata.atpOn);
|
this.updatemmidrivemodelevel(newdata.runLevel,newdata.driveMode,newdata.atoOn,newdata.atpOn);
|
||||||
// this.updatammirunlevel(newdata.runLevel);
|
// this.updatammirunlevel(newdata.runLevel);
|
||||||
//
|
//
|
||||||
@ -241,6 +245,32 @@ export default {
|
|||||||
this.updateMmiEndStation(newdata.endStation);
|
this.updateMmiEndStation(newdata.endStation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(newdata.jump){
|
||||||
|
|
||||||
|
}
|
||||||
|
if(newdata.parking != undefined){
|
||||||
|
this.m4parking = newdata.parking;
|
||||||
|
this.updateM4(newdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newdata.inTheStandArea != undefined){
|
||||||
|
this.m4inTheStandArea = newdata.inTheStandArea;
|
||||||
|
this.updateM4(newdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newdata.jump != undefined){
|
||||||
|
this.tiaotingjump = newdata.jump;
|
||||||
|
this.updateTiaoting(newdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newdata.hold != undefined){
|
||||||
|
this.tiaotinghold = newdata.hold;
|
||||||
|
this.updateTiaoting(newdata);
|
||||||
|
}
|
||||||
|
if(newdata.tow != undefined){
|
||||||
|
updatemmic1(newdata.tow);
|
||||||
|
}
|
||||||
|
|
||||||
this.updatemmidoormode(newdata.leftDoorCanClose,newdata.rightDoorCanClose);
|
this.updatemmidoormode(newdata.leftDoorCanClose,newdata.rightDoorCanClose);
|
||||||
},
|
},
|
||||||
updatemmistate(aaa){
|
updatemmistate(aaa){
|
||||||
@ -283,6 +313,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
this.nowspeed = parseInt(speed);
|
this.nowspeed = parseInt(speed);
|
||||||
|
|
||||||
if(this.mmimodel.updatezz){
|
if(this.mmimodel.updatezz){
|
||||||
this.mmimodel.updatezz(speed);
|
this.mmimodel.updatezz(speed);
|
||||||
}
|
}
|
||||||
@ -303,14 +334,49 @@ export default {
|
|||||||
}
|
}
|
||||||
if(this.newa1state != this.a1state){
|
if(this.newa1state != this.a1state){
|
||||||
this.a1state = this.newa1state;
|
this.a1state = this.newa1state;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.oldspeed=this.nowspeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
updateM4(newdata){
|
||||||
|
|
||||||
|
if(newdata.parking != undefined){
|
||||||
|
if(newdata.parking == true){
|
||||||
|
this.m4image = this.images.m4['in'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(newdata.inTheStandArea != undefined){
|
||||||
|
if(newdata.inTheStandArea == true){
|
||||||
|
this.m4image = this.images.m4['out'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.m4parking == false && this.m4inTheStandArea == false){
|
||||||
|
this.m4image = this.images.m4['none'];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateTiaoting(newdata){
|
||||||
|
|
||||||
|
if(newdata.jump != undefined){
|
||||||
|
if(newdata.jump == true){
|
||||||
|
this.tiaotingimage = this.images.n['tiaoting'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(newdata.hold != undefined){
|
||||||
|
if(newdata.hold == true){
|
||||||
|
this.tiaotingimage = this.images.n['kouche'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(this.tiaotingjump == false&& this.tiaotinghold == false){
|
||||||
|
this.tiaotingimage = this.images.n['none'];
|
||||||
|
}
|
||||||
|
},
|
||||||
updatedrivedata(drivedata){
|
updatedrivedata(drivedata){
|
||||||
// if(drivedata == "breaker"){
|
// if(drivedata == "breaker"){
|
||||||
//
|
//
|
||||||
@ -409,24 +475,24 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
if(this.m9state1){
|
// if(this.m9state1){
|
||||||
this.m9state1 = atoon;
|
// this.m9state1 = atoon;
|
||||||
if(atoon){
|
// if(atoon){
|
||||||
|
//
|
||||||
}else{
|
// }else{
|
||||||
this.m9image = this.images.m9["ato"];
|
// this.m9image = this.images.m9["ato"];
|
||||||
// this.c2image = this.images.c2['none'];
|
// // this.c2image = this.images.c2['none'];
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if(this.m9state2 != atpon){
|
// if(this.m9state2 != atpon){
|
||||||
this.m9state2 = atpon;
|
// this.m9state2 = atpon;
|
||||||
if(atpon){
|
// if(atpon){
|
||||||
|
//
|
||||||
}else{
|
// }else{
|
||||||
this.m9image = this.images.m9["atp"];
|
// this.m9image = this.images.m9["atp"];
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
},
|
},
|
||||||
updatemmidoormode(leftDoorCanClose,rightDoorCanClose){
|
updatemmidoormode(leftDoorCanClose,rightDoorCanClose){
|
||||||
@ -482,25 +548,27 @@ export default {
|
|||||||
this.malen = +parseInt(len)/2*10+"px";
|
this.malen = +parseInt(len)/2*10+"px";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updatemmic1(qspeed){
|
updatemmic1(tow){
|
||||||
if(this.nowspeed != 0 ){
|
if(tow == "1"){
|
||||||
this.newc1state = 'duoxing';
|
this.c1image = this.images.c1["qianyin"];
|
||||||
}else{
|
|
||||||
this.newc1state = 'none';
|
|
||||||
}
|
}
|
||||||
if(qspeed>0){
|
if(tow == "2"){
|
||||||
|
this.c1image = this.images.c1["zhidong"];
|
||||||
this.newc1state = 'qianyin';
|
|
||||||
}else if(qspeed<0){
|
|
||||||
|
|
||||||
this.newc1state = 'zhidong';
|
|
||||||
}
|
}
|
||||||
|
if(tow == "3"){
|
||||||
|
this.c1image = this.images.c1["duoxing"];
|
||||||
if(this.c1state != this.newc1state){
|
|
||||||
this.c1state = this.newc1state;
|
|
||||||
this.c1image = this.images.c1[this.c1state];
|
|
||||||
}
|
}
|
||||||
|
if(tow == "4"){
|
||||||
|
this.c1image = this.images.c1["none"];
|
||||||
|
}
|
||||||
|
// if(tow){
|
||||||
|
// this.newc1state = 'duoxing';
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if(this.c1state != this.newc1state){
|
||||||
|
// this.c1state = this.newc1state;
|
||||||
|
// this.c1image = this.images.c1[this.c1state];
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
updateMmiNextStation(next){
|
updateMmiNextStation(next){
|
||||||
if(next){
|
if(next){
|
||||||
@ -529,7 +597,9 @@ export default {
|
|||||||
height:333px;
|
height:333px;
|
||||||
background: black;
|
background: black;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
bottom:0;
|
bottom:333px;
|
||||||
|
right:0;
|
||||||
|
// border: 0.1px solid #ffffff;
|
||||||
}
|
}
|
||||||
.meter{
|
.meter{
|
||||||
width:60%;
|
width:60%;
|
||||||
|
@ -51,7 +51,8 @@ export default {
|
|||||||
background-size:100% 100%;
|
background-size:100% 100%;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
bottom:0;
|
bottom:0;
|
||||||
right:0;
|
left:0;
|
||||||
|
// border: 0.1px solid #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -5,7 +5,9 @@
|
|||||||
<el-tabs v-model="activeName" class="activediv" type="card" @tab-click="handleClick">
|
<el-tabs v-model="activeName" class="activediv" type="card" @tab-click="handleClick">
|
||||||
<el-tab-pane label="课程场景" name="progresslist" >
|
<el-tab-pane label="课程场景" name="progresslist" >
|
||||||
<draggable v-model="lessonData.lessonData.lessonProgress" group="people" @start="drag=true" @end="drag=false" >
|
<draggable v-model="lessonData.lessonData.lessonProgress" group="people" @start="drag=true" @end="drag=false" >
|
||||||
<div class="progressdiv" v-for="(element,index) in lessonData.lessonData.lessonProgress">
|
<div class="progressdiv"
|
||||||
|
:style="{'background-image': 'url('+localstatic+'/lesson3d/sc.png)'}"
|
||||||
|
v-for="(element,index) in lessonData.lessonData.lessonProgress">
|
||||||
<div class="changeprogressdiv" @click="changeProgressView(index)">{{element.progressName}}</div>
|
<div class="changeprogressdiv" @click="changeProgressView(index)">{{element.progressName}}</div>
|
||||||
<div class="delprogressdiv" @click="removeProgress(index)" >X</div>
|
<div class="delprogressdiv" @click="removeProgress(index)" >X</div>
|
||||||
</div>
|
</div>
|
||||||
@ -16,9 +18,14 @@
|
|||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<el-tab-pane label="场景三维资源" name="assetlist" >
|
<el-tab-pane label="场景三维资源" name="assetlist" >
|
||||||
<div class="progressdiv" v-for="(elementtrigger,indextrigger) in triggerList" :key="elementtrigger.label">
|
<div class="progressdiv"
|
||||||
<div class="changeprogressdiv" @click="selectModel(elementtrigger)">{{elementtrigger.label}}</div>
|
v-for="(elementtrigger,indextrigger) in triggerList" :key="elementtrigger.label">
|
||||||
<div class="delprogressdiv" v-if="(elementtrigger.showType == 'loadModel')" @click="deleteModel(elementtrigger)" >X</div>
|
|
||||||
|
<div class="progressdivimg"
|
||||||
|
:style="{'background-image': 'url('+localstatic+'/lesson3d/box.png)'}"/>
|
||||||
|
|
||||||
|
<div class="progressdivtext" @click="selectModel(elementtrigger)">{{elementtrigger.label}}</div>
|
||||||
|
<div class="delprogressdiv" v-if="(elementtrigger.showType == 'loadModel')" @click="deleteModel(elementtrigger)" >删除</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@ -74,7 +81,7 @@
|
|||||||
e.target.classList.remove('hideShadow')
|
e.target.classList.remove('hideShadow')
|
||||||
},
|
},
|
||||||
handleClick(tab, event) {
|
handleClick(tab, event) {
|
||||||
console.log(tab, event);
|
// console.log(tab, event);
|
||||||
},
|
},
|
||||||
addProgress(){
|
addProgress(){
|
||||||
this.$emit('addProgress');
|
this.$emit('addProgress');
|
||||||
@ -120,13 +127,32 @@
|
|||||||
top:5px;
|
top:5px;
|
||||||
}
|
}
|
||||||
.progressdiv{
|
.progressdiv{
|
||||||
width:100px;
|
width:80px;
|
||||||
height:100px;
|
height:100px;
|
||||||
// display:inline;
|
// display:inline;
|
||||||
margin: 20px;
|
margin: 20px;
|
||||||
float:left;
|
float:left;
|
||||||
border:solid 2px #000;
|
border:solid 1px #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progressdivimg{
|
||||||
|
width:70px;
|
||||||
|
height:70px;
|
||||||
|
margin-left: 5px;
|
||||||
|
left:5px;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
|
// display:inline;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
.progressdivtext{
|
||||||
|
width:80px;
|
||||||
|
height:30px;
|
||||||
|
margin: 0;
|
||||||
|
// display:inline;
|
||||||
|
float:left;
|
||||||
|
bottom: 0;
|
||||||
|
border:solid 1px #409EFF;
|
||||||
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.changeprogressdiv{
|
.changeprogressdiv{
|
||||||
@ -140,11 +166,13 @@
|
|||||||
|
|
||||||
.delprogressdiv{
|
.delprogressdiv{
|
||||||
// position: relative;
|
// position: relative;
|
||||||
width: 100%;
|
width: 20px;
|
||||||
height: 20%;
|
height: 20px;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
top: 0;
|
||||||
border:solid 2px #000;
|
float: right;
|
||||||
|
// position:absolute;
|
||||||
|
border:solid 2px #409EFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<div id="lessontoolsdiv" class="lessontoolsdiv">
|
<div id="lessontoolsdiv" class="lessontoolsdiv">
|
||||||
|
|
||||||
<el-tabs v-model="activeName" class="activediv" @tab-click="handleClick">
|
<el-tabs v-model="activeName" class="activediv" type="card" @tab-click="handleClick" tab-position="left" >
|
||||||
<el-tab-pane label="课程组件" style="height:400px" name="lessoncomponent" >
|
<el-tab-pane label="课程组件" style="height:400px" name="lessoncomponent" >
|
||||||
<div v-for="(item,index) in lessonTools" class="tooldiv" >
|
<div v-for="(item,index) in lessonTools" class="tooldiv" >
|
||||||
<div>
|
<div>
|
||||||
@ -20,15 +20,22 @@
|
|||||||
<!-- <Assets-Model></Assets-Model> -->
|
<!-- <Assets-Model></Assets-Model> -->
|
||||||
<draggable v-model="lessonAssetList" group="lessonAssetList" @start="drag=true" @end="drag=false" >
|
<draggable v-model="lessonAssetList" group="lessonAssetList" @start="drag=true" @end="drag=false" >
|
||||||
<div class="progressdiv" v-for="(item,index) in lessonAssetList"@dragend="createModel($event,item,index)">
|
<div class="progressdiv" v-for="(item,index) in lessonAssetList"@dragend="createModel($event,item,index)">
|
||||||
{{item.packageName}}
|
<div class="progressdivimg"
|
||||||
|
:style="{'background-image': 'url('+localstatic+'/lesson3d/box.png)'}"/>
|
||||||
|
<div class="progressdivtext">{{item.packageName}}</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</draggable>
|
</draggable>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="图片资源列表" name="picasset">
|
<el-tab-pane label="图片资源列表" name="picasset">
|
||||||
<draggable v-model="picAssetList" group="picasset" @start="drag=true" @end="drag=false">
|
<draggable v-model="picAssetList" group="picasset" @start="drag=true" @end="drag=false">
|
||||||
<div class="progressdiv"
|
<div class="progressdiv"
|
||||||
:style="{'background-image': 'url('+localStatic+item.url+')'}"
|
|
||||||
v-for="item in picAssetList" @click="changePicUrl($event,item)">
|
v-for="item in picAssetList" @click="changePicUrl($event,item)">
|
||||||
|
|
||||||
|
<div class="progressdivimg"
|
||||||
|
:style="{'background-image': 'url('+netStatic+item.url+')'}"/>
|
||||||
|
<div class="progressdivtext">{{item.packageName}}</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</draggable>
|
</draggable>
|
||||||
<!-- <Assets-Model></Assets-Model> -->
|
<!-- <Assets-Model></Assets-Model> -->
|
||||||
@ -50,6 +57,8 @@
|
|||||||
|
|
||||||
import { BASE_ASSET_API,getMap3dModelData } from '@/api/jlmap3d/assets3d.js'
|
import { BASE_ASSET_API,getMap3dModelData } from '@/api/jlmap3d/assets3d.js'
|
||||||
|
|
||||||
|
import { JL3D_LOCAL_STATIC } from '@/api/jlmap3d/assets3d.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'LessonTools',
|
name: 'LessonTools',
|
||||||
props:['lessonTools'],
|
props:['lessonTools'],
|
||||||
@ -58,7 +67,8 @@
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
localStatic:BASE_ASSET_API,
|
localStatic:JL3D_LOCAL_STATIC,
|
||||||
|
netStatic:BASE_ASSET_API,
|
||||||
activeName: 'lessoncomponent',
|
activeName: 'lessoncomponent',
|
||||||
lessonAssetList:[],
|
lessonAssetList:[],
|
||||||
picAssetList:[],
|
picAssetList:[],
|
||||||
@ -73,9 +83,13 @@
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
||||||
|
},
|
||||||
|
onReady(){
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log(this.localStatic);
|
this.localstatic = JL3D_LOCAL_STATIC;
|
||||||
|
console.log(this.localstatic);
|
||||||
getMap3dModelData("三维课程").then(netdata => {
|
getMap3dModelData("三维课程").then(netdata => {
|
||||||
this.lessonAssetList = netdata.data;
|
this.lessonAssetList = netdata.data;
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
@ -121,13 +135,26 @@
|
|||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
@import "src/styles/mixin.scss";
|
@import "src/styles/mixin.scss";
|
||||||
|
|
||||||
.lessontoolsdiv {
|
.lessontoolsdiv {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 15%;
|
width: 15%;
|
||||||
height: 100%;
|
height: 99%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
// background-color: #abc;
|
margin-top: 10px;
|
||||||
|
border-radius:10px;
|
||||||
|
border:solid 2px #000;
|
||||||
|
}
|
||||||
|
.lessontoolsdiv /deep/ .el-tabs--left{
|
||||||
|
height: auto !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
.lessontoolsdiv /deep/ .el-tabs--left .el-tabs__item{
|
||||||
|
width: 60px;
|
||||||
|
line-height: 24px;
|
||||||
|
height: auto;
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-line;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooldiv{
|
.tooldiv{
|
||||||
@ -140,13 +167,32 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.progressdiv{
|
.progressdiv{
|
||||||
width:100px;
|
width:80px;
|
||||||
height:100px;
|
height:100px;
|
||||||
// display:inline;
|
// display:inline;
|
||||||
margin: 20px;
|
margin: 20px;
|
||||||
float:left;
|
float:left;
|
||||||
|
border:solid 1px #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progressdivimg{
|
||||||
|
width:70px;
|
||||||
|
height:70px;
|
||||||
|
margin-left: 5px;
|
||||||
|
left:5px;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
border:solid 2px #000;
|
// display:inline;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
.progressdivtext{
|
||||||
|
width:80px;
|
||||||
|
height:30px;
|
||||||
|
margin: 0;
|
||||||
|
// display:inline;
|
||||||
|
float:left;
|
||||||
|
bottom: 0;
|
||||||
|
border:solid 1px #409EFF;
|
||||||
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div id="propertydiv" class="propertydiv">
|
<div id="propertydiv" class="propertydiv">
|
||||||
<el-tabs v-model="activeName" class="activediv" type="card" @tab-click="handleClick">
|
<el-tabs v-model="activeName" class="activediv" type="card" @tab-click="handleClick" tab-position="left">
|
||||||
<el-tab-pane label="当前场景信息" name="cameraproperty">
|
<el-tab-pane label="当前场景信息" name="cameraproperty">
|
||||||
<el-form ref="form" class="camerapropertydiv" size="mini" v-if="selectLesson3dControl">
|
<el-form ref="form" class="camerapropertydiv" size="mini" v-if="selectLesson3dControl">
|
||||||
|
|
||||||
@ -470,6 +470,18 @@
|
|||||||
border:solid 2px #000;
|
border:solid 2px #000;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
.propertydiv /deep/ .el-tabs--left{
|
||||||
|
height: auto !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
.propertydiv /deep/ .el-tabs--left .el-tabs__item{
|
||||||
|
width: 60px;
|
||||||
|
line-height: 24px;
|
||||||
|
height: auto;
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-line;
|
||||||
|
// margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
.camerapropertydiv{
|
.camerapropertydiv{
|
||||||
// width:100%;
|
// width:100%;
|
||||||
|
@ -169,8 +169,13 @@
|
|||||||
this.lessonData = new LessonData();
|
this.lessonData = new LessonData();
|
||||||
this.jobPaneData = new JobPaneData();
|
this.jobPaneData = new JobPaneData();
|
||||||
let loadData;
|
let loadData;
|
||||||
|
|
||||||
if(data.data.data){
|
if(data.data.data){
|
||||||
loadData = JSON.parse(data.data.data);
|
loadData = JSON.parse(data.data.data);
|
||||||
|
|
||||||
|
if(loadData.setup.checkedRole.length == 0){
|
||||||
|
this.showSelectJob = false;
|
||||||
|
}
|
||||||
this.selectJobList = loadData.setup.checkedRole;
|
this.selectJobList = loadData.setup.checkedRole;
|
||||||
this.jobPaneData.dataList = loadData.toolJobPane;
|
this.jobPaneData.dataList = loadData.toolJobPane;
|
||||||
this.$refs.jobpane.initJobList(this.jobPaneData.dataList);
|
this.$refs.jobpane.initJobList(this.jobPaneData.dataList);
|
||||||
@ -181,6 +186,7 @@
|
|||||||
}else{
|
}else{
|
||||||
this.lessonData.initLessonProgress();
|
this.lessonData.initLessonProgress();
|
||||||
this.$refs.jobpane.initJobList(this.jobPaneData.dataList);
|
this.$refs.jobpane.initJobList(this.jobPaneData.dataList);
|
||||||
|
this.jl3d.initNowRole();
|
||||||
}
|
}
|
||||||
console.log("loaddata----------------");
|
console.log("loaddata----------------");
|
||||||
console.log(loadData);
|
console.log(loadData);
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
<div class="jl3dmap3dMaintainerSelect" :style="{'background-image': 'url('+localStatic+'/background/other.jpg)'}">
|
<div class="jl3dmap3dMaintainerSelect" :style="{'background-image': 'url('+localStatic+'/background/other.jpg)'}">
|
||||||
<div class="maintainerSelectButton selectButtonImg1"
|
<div class="maintainerSelectButton selectButtonImg1"
|
||||||
:style="{'background-image': 'url('+localStatic+'/vrtest/maintainer.png)'}"
|
:style="{'background-image': 'url('+localStatic+'/vrtest/maintainer.png)'}"
|
||||||
style="left:40%" @mouseenter="onMouseOverNormal"></div>
|
style="left:10%" @mouseenter="onMouseOverNormal"></div>
|
||||||
|
|
||||||
<div class="maintainerSelectButton selectButtonImg2"
|
<div class="maintainerSelectButton selectButtonImg2"
|
||||||
:style="{'background-image': 'url('+localStatic+'/vrtest/zc.png)'}"
|
: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="{'background-image': 'url('+localStatic+'/vrtest/maintainervr.png)'}"
|
||||||
style="left:40%;" @mouseenter="onMouseOverVr"></div>
|
style="left:40%;" @mouseenter="onMouseOverVr"></div>
|
||||||
|
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<div class="maintainerSelectButton selectButtonImg6"
|
<div class="maintainerSelectButton selectButtonImg6"
|
||||||
:style="{'background-image': 'url('+localStatic+'/vrtest/trvr.png)'}"
|
: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>
|
</div>
|
||||||
|
@ -1434,5 +1434,6 @@ export default {
|
|||||||
.teleNameIn{
|
.teleNameIn{
|
||||||
width: 16px;
|
width: 16px;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
font-size:16px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -149,6 +149,7 @@ export default {
|
|||||||
background: #404040;
|
background: #404040;
|
||||||
color: #1DEA1E;
|
color: #1DEA1E;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -149,6 +149,7 @@ export default {
|
|||||||
background: #404040;
|
background: #404040;
|
||||||
color: #1DEA1E;
|
color: #1DEA1E;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -71,7 +71,7 @@ export default {
|
|||||||
for (const key in mapDevice) {
|
for (const key in mapDevice) {
|
||||||
list.push(mapDevice[key]);
|
list.push(mapDevice[key]);
|
||||||
}
|
}
|
||||||
|
this.$store.dispatch('training/setRoleDeviceCode', station.code);
|
||||||
this.$jlmap.updateShowStation(list, showStationCode);
|
this.$jlmap.updateShowStation(list, showStationCode);
|
||||||
this.setCenter(showStationCode);
|
this.setCenter(showStationCode);
|
||||||
}
|
}
|
||||||
|
@ -42,9 +42,20 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</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="content-box-list" style="margin-top: 10px;">
|
||||||
<div class="title-box">设备列表</div>
|
<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 v-for="nor in addModel.elementList" :key="nor.code" class="list-content">
|
||||||
<div class="name">{{ getDeviceName(nor) }}</div>
|
<div class="name">{{ getDeviceName(nor) }}</div>
|
||||||
<div class="close" @click="delList(nor, addModel.elementList)"><i class="el-icon-close" /></div>
|
<div class="close" @click="delList(nor, addModel.elementList)"><i class="el-icon-close" /></div>
|
||||||
@ -55,7 +66,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<div style="display: table; margin-left: 90px; margin-top: 12px; margin-bottom: 20px;">
|
<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="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>
|
<el-button type="primary" size="small" @click="back">返回</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
@ -82,6 +93,7 @@ export default {
|
|||||||
tableData: [],
|
tableData: [],
|
||||||
addModel: {
|
addModel: {
|
||||||
stationCodeList: [],
|
stationCodeList: [],
|
||||||
|
switchStationCodeList:[],
|
||||||
elementList: []
|
elementList: []
|
||||||
},
|
},
|
||||||
list: [],
|
list: [],
|
||||||
@ -89,7 +101,8 @@ export default {
|
|||||||
cardMode: 'generate',
|
cardMode: 'generate',
|
||||||
index: '',
|
index: '',
|
||||||
isPreview: true,
|
isPreview: true,
|
||||||
loading: false
|
loading: false,
|
||||||
|
dataLoading:false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -181,12 +194,16 @@ export default {
|
|||||||
},
|
},
|
||||||
updateOverlab() {
|
updateOverlab() {
|
||||||
if (this.index || this.index == 0) {
|
if (this.index || this.index == 0) {
|
||||||
|
this.clearData();
|
||||||
if (!this.addModel.stationCodeList.length) {
|
if (!this.addModel.stationCodeList.length) {
|
||||||
this.$messageBox('请选择车站!');
|
this.$messageBox('请选择车站!');
|
||||||
} else {
|
return;
|
||||||
this.tableData.splice(this.index, 1, this.addModel);
|
|
||||||
}
|
}
|
||||||
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,
|
displayList: this.tableData,
|
||||||
mapId: this.$route.params.mapId
|
mapId: this.$route.params.mapId
|
||||||
};
|
};
|
||||||
|
this.dataLoading = true;
|
||||||
saveMap(Object.assign(map, param)).then(response => {
|
saveMap(Object.assign(map, param)).then(response => {
|
||||||
this.$message.success('保存现地配置成功');
|
this.$message.success('保存现地配置成功');
|
||||||
|
this.dataLoading = false;
|
||||||
|
this.cancelOverlab();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
this.dataLoading = false;
|
||||||
this.$messageBox('保存现地配置失败');
|
this.$messageBox('保存现地配置失败');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -220,25 +241,30 @@ export default {
|
|||||||
generateOverlab() { // 生成
|
generateOverlab() { // 生成
|
||||||
if (!this.addModel.stationCodeList.length) {
|
if (!this.addModel.stationCodeList.length) {
|
||||||
this.$messageBox('请选择车站!');
|
this.$messageBox('请选择车站!');
|
||||||
} else {
|
return;
|
||||||
|
}
|
||||||
|
if (!this.addModel.switchStationCodeList.length) {
|
||||||
|
this.$messageBox('请选择可切换显示的车站!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.tableData.push(this.addModel);
|
this.tableData.push(this.addModel);
|
||||||
this.clearData();
|
this.clearData();
|
||||||
}
|
|
||||||
},
|
},
|
||||||
clear() {
|
clear() {
|
||||||
this.addModel = { stationCodeList: [], elementList: [] };
|
this.addModel = { stationCodeList: [], elementList: [], switchStationCodeList:[] };
|
||||||
},
|
},
|
||||||
clearData() {
|
clearData() {
|
||||||
this.addModel = { stationCodeList: [], elementList: [] };
|
this.addModel = { stationCodeList: [], elementList: [], switchStationCodeList:[] };
|
||||||
this.index = '';
|
this.index = '';
|
||||||
this.cardMode = 'generate';
|
this.cardMode = 'generate';
|
||||||
},
|
},
|
||||||
generateData() {
|
generateData() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
this.tableData = [];
|
this.tableData = [];
|
||||||
|
// switchStationCodeList:[...item.switchStationCodeList, item.code]
|
||||||
this.stationList.forEach(item => {
|
this.stationList.forEach(item => {
|
||||||
if (item.centralized) {
|
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 => {
|
saveMap(Object.assign(map, param)).then(response => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$message.success('保存现地配置成功');
|
this.$message.success('保存现地配置成功');
|
||||||
|
this.cancelOverlab();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$messageBox('保存现地配置失败');
|
this.$messageBox('保存现地配置失败');
|
||||||
|
BIN
static/lesson3d/box.png
Normal file
BIN
static/lesson3d/box.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
static/lesson3d/sc.png
Normal file
BIN
static/lesson3d/sc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.0 KiB |
1451
static/lesson3d/stopstation/datiepengzhuang726.obj
Normal file
1451
static/lesson3d/stopstation/datiepengzhuang726.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
static/lesson3d/stopstation/weixiuche726.FBX
Normal file
BIN
static/lesson3d/stopstation/weixiuche726.FBX
Normal file
Binary file not shown.
BIN
static/lesson3d/stopstation/weixiuchechangjing726.FBX
Normal file
BIN
static/lesson3d/stopstation/weixiuchechangjing726.FBX
Normal file
Binary file not shown.
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
18158
static/three.module.js
18158
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