This commit is contained in:
fan 2020-06-10 16:57:04 +08:00
commit 9b489d088b
21 changed files with 207 additions and 244 deletions

View File

@ -14,176 +14,6 @@ export function Moveanimate(main){
this.status = true;
//当前动画模型
this.nowmodelname = undefined;
//定义所有继电器部件动画
// this.initlist = function(modellist){
//
// for(let j=0,lenj=modellist.length;j<lenj;j++){
//
// for(let i=0,leni=switchmodel.children.length;i<leni;i++){
//
// if(switchmodel.children[i].name == "dizuo"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z-150));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"dizuoon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z-150));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"dizuooff",points2,0.5,true,0);
//
//
// }
// if(switchmodel.children[i].name == "Lxing"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-50,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"Lxingon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-50,switchmodel.children[i].position.z));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"Lxingoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "jiaoxingxiantie"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z+25));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"jiaoxingxiantieon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z+25));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"jiaoxingxiantieoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "xianquan"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-100,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"xianquanon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-100,switchmodel.children[i].position.z));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"xianquanoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "zhongchuipian"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-25,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"zhongchuipianon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+25,switchmodel.children[i].position.z));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"zhongchuipianoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "lagan"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z+50));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"laganon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z+50));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"laganoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "dongjiedianzhou"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z+25));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"dongjiedianzhouon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z+25));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"dongjiedianzhouoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "neibu"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z-50));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"neibuon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z-50));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"neibuoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "jiedian"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z-15));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"jiedianon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z-15));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"jiedianoff",points2,0.5,true,0);
//
// }
// if(switchmodel.children[i].name == "yapian"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z-25));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"yapianon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z-25));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"yapianoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "fanghuozhao"){
// let points1 = [];
//
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z+200));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"fanghuozhaoon",points1,0.5,true,0);
//
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z+200));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"fanghuozhaooff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "dianyuanpian"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z-50));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"dianyuanpianon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z-50));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"dianyuanpianoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name == "xinpian"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+150,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"xinpianon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+150,switchmodel.children[i].position.z));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"xinpianoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name =="jueyuanzhou"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"jueyuanzhouon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y+100,switchmodel.children[i].position.z));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"jueyuanzhouoff",points2,0.5,true,0);
// }
// if(switchmodel.children[i].name =="cigang"){
// let points1 = [];
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// points1.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-100,switchmodel.children[i].position.z+100));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"cigangon",points1,0.5,true,0);
// let points2 = [];
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y-100,switchmodel.children[i].position.z+100));
// points2.push(new THREE.Vector3(switchmodel.children[i].position.x,switchmodel.children[i].position.y,switchmodel.children[i].position.z));
// scope.initanimate(switchmodel.children[i],switchmodel.name+"cigangoff",points2,0.5,true,0);
// }
// }
//
// }
// //
//
//
//
// }
this.initlistnew = function(switchmodel){

View File

@ -138,3 +138,12 @@ export function trainSimulationChangeHead(group,groupNumber) {
params: ''
})
}
//
export function trainSimulationDoorControl(group,groupNumber,direct,open) {
return request({
url: `/simulation/driving/${group}/train/${groupNumber}/onOrOffDoor?right=${direct}&open=${open}`,
method: 'put',
params: ''
})
}

View File

@ -153,6 +153,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
getPublishMapDetail(mapId).then(data => {
let mapnetdata = data.data;
getPublish3dMapDetail(mapId).then(netdata => {
console.log(netdata);
let assetsdata = JSON.parse(netdata.data.sections);
if(assetsdata.link){
scope.datatype = "old";

View File

@ -355,21 +355,22 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,sta
}
function traindoorupdate(data){
// console.log(data);
if(trainmodel.code == data.code){
if(trainmodel.right == "0"){
if(data.doorCode == "2"){
if(trainmodel.open != data.open && data.open == "0"){
trainmodel.open = "0";
if(trainmodel.openleft != data.open && data.open == "0"){
trainmodel.openleft = "0";
for(let an=actions["traindoor"].top.length-1;an>=0;an--){
actions["traindoor"].top[an].reset();
actions["traindoor"].top[an].time = actions["traindoor"].top[an]._clip.duration;
actions["traindoor"].top[an].timeScale = -1;
actions["traindoor"].top[an].play();
}
}else if(trainmodel.open != data.open && data.open == "1"){
trainmodel.open = "1";
}else if(trainmodel.openleft != data.open && data.open == "1"){
trainmodel.openleft = "1";
for(let an=actions["traindoor"].top.length-1;an>=0;an--){
actions["traindoor"].top[an].reset();
actions["traindoor"].top[an].time = 0;
@ -380,16 +381,16 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,sta
}else{
if (trainmodel.open != data.open && data.open == '0') {
trainmodel.open = '0';
if (trainmodel.openright != data.open && data.open == '0') {
trainmodel.openright = '0';
for (let an=actions["traindoor"].down.length-1; an>=0; an--) {
actions["traindoor"].down[an].reset();
actions["traindoor"].down[an].time = actions["traindoor"].down[an]._clip.duration;
actions["traindoor"].down[an].timeScale = -1;
actions["traindoor"].down[an].play();
}
} else if (trainmodel.open != data.open && data.open == '1') {
trainmodel.open = "1";
} else if (trainmodel.openright != data.open && data.open == '1') {
trainmodel.openright = "1";
for(let an=actions["traindoor"].down.length-1;an>=0;an--){
actions["traindoor"].down[an].reset();
actions["traindoor"].down[an].time = 0;
@ -402,16 +403,16 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,sta
}else{
if(data.doorCode == "1"){
if(trainmodel.open != data.open && data.open == "0"){
trainmodel.open = "0";
if(trainmodel.openright != data.open && data.open == "0"){
trainmodel.openright = "0";
for(let an=actions["traindoor"].top.length-1;an>=0;an--){
actions["traindoor"].top[an].reset();
actions["traindoor"].top[an].time = actions["traindoor"].top[an]._clip.duration;
actions["traindoor"].top[an].timeScale = -1;
actions["traindoor"].top[an].play();
}
}else if(trainmodel.open != data.open && data.open == "1"){
trainmodel.open = "1";
}else if(trainmodel.openright != data.open && data.open == "1"){
trainmodel.openright = "1";
for(let an=actions["traindoor"].top.length-1;an>=0;an--){
actions["traindoor"].top[an].reset();
actions["traindoor"].top[an].time = 0;
@ -422,16 +423,16 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,sta
}else{
if (trainmodel.open != data.open && data.open == '0') {
trainmodel.open = '0';
if (trainmodel.openleft != data.open && data.open == '0') {
trainmodel.openleft = '0';
for (let an=actions["traindoor"].down.length-1; an>=0; an--) {
actions["traindoor"].down[an].reset();
actions["traindoor"].down[an].time = actions["traindoor"].down[an]._clip.duration;
actions["traindoor"].down[an].timeScale = -1;
actions["traindoor"].down[an].play();
}
} else if (trainmodel.open != data.open && data.open == '1') {
trainmodel.open = "1";
} else if (trainmodel.openleft != data.open && data.open == '1') {
trainmodel.openleft = "1";
for(let an=actions["traindoor"].down.length-1;an>=0;an--){
actions["traindoor"].down[an].reset();
actions["traindoor"].down[an].time = 0;
@ -490,7 +491,8 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,sta
trainmodel.dispose = "1";
code = trainlisttest.group.children[i].name;
trainmodel.rotation.y = 0;
trainmodel.open = '1';
trainmodel.openleft = '1';
trainmodel.openright = '1';
trainmodel.curve = null;
trainmodel.nextcurve = null;
trainmodel.speed = 0;

View File

@ -240,6 +240,7 @@ export function AssetLoader(){
// scope.modellist.push(defaultswitch2);
let modeldata = JSON.parse(data);
// console.log(data);
for(let j=0;j<modeldata.assets.length;j++){
let had = false;
for(let i=0;i<scope.modellist.length;i++){

View File

@ -138,7 +138,8 @@ export function TrainListN() {
newmesh.speed = 0;
newmesh.speeds = 0;
newmesh.offset = null;
newmesh.open = '3';
newmesh.openleft = '3';
newmesh.openright = '3';
scope.group.add(newmesh);

View File

@ -450,9 +450,11 @@ class Jlmap {
if (index) {
status.atsControl = status.atsControl && elem.atsControl;
status.fleetMode = status.fleetMode || elem.fleetMode;
status.ciControl = status.ciControl && elem.ciControl;
} else {
status.atsControl = elem.atsControl;
status.fleetMode = elem.fleetMode;
status.ciControl = elem.ciControl;
}
});
}

View File

@ -34,12 +34,12 @@ class EMouse extends Group {
direction = this.device.model.right != 1;
}
if (LangStorage.getLang() == 'en') {
text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${direction ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? this.device.model.sectionModel.parentName : ''}\n Current Station: \n Train-ground communication: normal \n Operation Speed level: 4 \n Detained: ${this.device.model.hold ? 'Detained' : 'Normal'}\n \n 跳停状态: ${this.device.model.jump ? 'Skip to continue moving' : 'Normal'}Stationary: ${!this.device.model.stop ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`;
text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${direction ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n Current Station: \n Train-ground communication: normal \n Operation Speed level: 4 \n Detained: ${this.device.model.hold ? 'Detained' : 'Normal'}\n \n 跳停状态: ${this.device.model.jump ? 'Skip to continue moving' : 'Normal'}Stationary: ${!this.device.model.stop ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`;
} else {
if (Vue.prototype.$jlmap.lineCode == '11' || Vue.prototype.$jlmap.lineCode == '10') {
text = `列车类型: ${trainType}\n\0\0\0\0源:人工标记\n\0\0号: ${this.device.model.groupNumber}\n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0点: ${destinationText}\n运行方向: ${direction ? '上行' : '下行'}\nATP报告方向: ${direction ? '上行' : '下行'}\n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? this.device.model.sectionModel.parentName : ''}\n所在车站: \n车次通信: 通信车\n运行时间: \n停站时间: \n扣车状态: ${ this.device.model.hold ? '扣车' : '正常'}\n车载扣车: 不执行\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'}\n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车状态: CTC车\n最高信号系统控制: CTC\n驾驶模式: SM模式\n最高ATP模式: AM\nATP1状态: 激活\nATP2状态: 备用\n速度: ${this.device.model.speed || 0} km/h\n车门状态: ${this.device.model.speed ? '关闭' : direction ? '左开右关' : '左关右开'}\n制动状态: 无紧急制动\n停车保证: 可保证停车\n站台无法进入: 否\n前方站台停车点: 中间\n折法策略: \n折返状态: \n屏蔽门开门许可: 是\n运营里程: 无效\n总重量: 196T\n车长: 11860cm\n列车编组: 1`;
text = `列车类型: ${trainType}\n\0\0\0\0源:人工标记\n\0\0号: ${this.device.model.groupNumber}\n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0点: ${destinationText}\n运行方向: ${direction ? '上行' : '下行'}\nATP报告方向: ${direction ? '上行' : '下行'}\n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: \n车次通信: 通信车\n运行时间: \n停站时间: \n扣车状态: ${ this.device.model.hold ? '扣车' : '正常'}\n车载扣车: 不执行\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'}\n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车状态: CTC车\n最高信号系统控制: CTC\n驾驶模式: SM模式\n最高ATP模式: AM\nATP1状态: 激活\nATP2状态: 备用\n速度: ${this.device.model.speed || 0} km/h\n车门状态: ${this.device.model.speed ? '关闭' : direction ? '左开右关' : '左关右开'}\n制动状态: 无紧急制动\n停车保证: 可保证停车\n站台无法进入: 否\n前方站台停车点: 中间\n折法策略: \n折返状态: \n屏蔽门开门许可: 是\n运营里程: 无效\n总重量: 196T\n车长: 11860cm\n列车编组: 1`;
} else {
text = `列车类型: ${trainType} \n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0号: ${this.device.model.groupNumber}\n\0\0点: ${destinationText}\n运行方向: ${direction ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${ this.device.model.hold ? '扣车' : '正常'}\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'} \n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`;
text = `列车类型: ${trainType} \n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0号: ${this.device.model.groupNumber}\n\0\0点: ${destinationText}\n运行方向: ${direction ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${this.device.model.hold ? '扣车' : '正常'}\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'} \n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`;
}
}
const trainTip = this.device.style.Train.common.trainTip;

View File

@ -85,6 +85,10 @@ export default {
return '信号机控制';
} else if (this.operation == OperationEvent.Signal.cancelAutoInterlock.menu.operation) {
return '信号机控制';
} else if (this.operation == OperationEvent.Signal.setAutoTrigger.menu.operation) {
return '设置联锁自动触发';
} else if (this.operation == OperationEvent.Signal.cancelAutoTrigger.menu.operation) {
return '取消联锁自动触发';
}
return '';
}
@ -146,6 +150,10 @@ export default {
this.singalPassModel(); //
} else if (this.operation == OperationEvent.Signal.cancelAutoInterlock.menu.operation) {
this.singalCancelPassModel(); //
} else if (this.operation == OperationEvent.Signal.setAutoTrigger.menu.operation) {
this.setAutoTrigger(); /** 设置联锁自动触发*/
} else if (this.operation == OperationEvent.Signal.cancelAutoTrigger.menu.operation) {
this.cancelAutoTrigger(); /** 取消联锁自动触发*/
}
},
//
@ -208,6 +216,26 @@ export default {
this.sendCommand(operate);
},
//
setAutoTrigger() {
const operate = {
over: true,
operation: OperationEvent.Signal.setAutoTrigger.menu.operation,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO_TRIGGER
};
this.sendCommand(operate);
},
//
cancelAutoTrigger() {
const operate = {
over: true,
operation: OperationEvent.Signal.cancelAutoTrigger.menu.operation,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO_TRIGGER
};
this.sendCommand(operate);
},
sendCommand(operate) {
this.loading = true;
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {

View File

@ -188,12 +188,12 @@ export default {
getLevelByTime(time) {
const times = Object.keys(this.timeList).findIndex(key => {
return this.timeList[key].findIndex(obj => {
return obj.value === time;
return obj.value == time;
}) >= 0;
}).toString();
return times == -1 ? '0' : times;
},
loadInitData(selected, opts) {
loadInitData(selected) {
this.tempData = [];
const index = this.stationList.findIndex(n => n.code == selected.stationCode);
if (selected.direction == '01') { //
@ -201,18 +201,18 @@ export default {
if (index != 0) {
const stationStand = this.$store.getters['map/getDeviceByCode'](this.stationStandList[index + 1].code);
const station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
this.tempData.push({ name: `${stationStand.name}(${station.name})`, level: this.getLevelByTime(opts.intervalRunTime), time: opts.intervalRunTime ? opts.intervalRunTime : 0, check: opts.intervalRunTimeValidStatus });
this.tempData.push({ name: `${stationStand.name}(${station.name})`, level: this.getLevelByTime(selected.runLevelTime), time: selected.runLevelTime ? selected.runLevelTime : 0, check: !!selected.runLevelTimeForever });
}
} else {
//
if (index != this.stationList.length) {
const stationStand = this.$store.getters['map/getDeviceByCode'](this.stationStandList[index + 1].code);
const station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
this.tempData.push({ name: `${stationStand.name}(${station.name})`, level: this.getLevelByTime(opts.intervalRunTime), time: opts.intervalRunTime ? opts.intervalRunTime : 0, check: opts.intervalRunTimeValidStatus });
this.tempData.push({ name: `${stationStand.name}(${station.name})`, level: this.getLevelByTime(selected.runLevelTime), time: selected.runLevelTime ? selected.runLevelTime : 0, check: !!selected.runLevelTimeForever });
}
}
},
doShow(operate, selected, opts) {
doShow(operate, selected) {
this.selected = selected;
//
if (!this.dialogShow) {
@ -225,7 +225,7 @@ export default {
this.stationName = station.name;
}
}
this.loadInitData(selected, opts);
this.loadInitData(selected);
}
this.dialogShow = true;
@ -249,10 +249,11 @@ export default {
},
timeSelectChange(time) {
const operate = {
operation: OperationEvent.StationStand.setRunLevel.choose.operation
operation: OperationEvent.StationStand.setRunLevel.choose.operation,
val: this.time
};
this.time = time.toString();
this.time = time;
this.isSelect = false;
this.isConfirm = true;
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -263,7 +264,8 @@ export default {
},
levelSelectChange(row) {
const operate = {
operation: OperationEvent.StationStand.setRunLevel.chooseLevel.operation
operation: OperationEvent.StationStand.setRunLevel.chooseLevel.operation,
val: row.level
};
this.time = row.time = this.timeList[row.level][0].value;
@ -277,8 +279,10 @@ export default {
},
checkChange(check) {
const operate = {
operation: OperationEvent.StationStand.setRunLevel.check.operation
operation: OperationEvent.StationStand.setRunLevel.check.operation,
val: check
};
this.isConfirm = true;
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
@ -299,7 +303,7 @@ export default {
operation: OperationEvent.StationStand.setRunLevel.menu.operation,
cmdType: CMD.Stand.CMD_STAND_SET_RUN_TIME,
param: {
runLevelTime: this.time,
runLevelTime: Number(this.time),
runLevelTimeForever: !!this.tempData[0].check
}
};

View File

@ -38,8 +38,8 @@
<span class="base-label" style="left: -9px;">有效次数</span>
<div style=" position: relative; top:-10px;">
<el-radio-group v-model="effective" :disabled="disabledTime" @change="chooseEffective">
<el-radio :id="effective === 0? '': domIdChoose2" label="0" name="effective">一次有效</el-radio>
<el-radio :id="effective === 1? '': domIdChoose2" label="1" name="effective">一直有效</el-radio>
<el-radio :id="effective == '0'? '': domIdChoose2" label="0" name="effective">一次有效</el-radio>
<el-radio :id="effective == '1'? '': domIdChoose2" label="1" name="effective">一直有效</el-radio>
</el-radio-group>
</div>
</div>
@ -128,7 +128,7 @@ export default {
});
},
methods: {
doShow(operate, selected, tempDate) {
doShow(operate, selected) {
this.selected = selected || {};
//
if (!this.dialogShow) {
@ -142,11 +142,11 @@ export default {
}
}
this.control = Number(tempDate.parkingTime) === -1 ? '01' : '02';
this.time = Number(tempDate.parkingTime) === -1 ? 15 : Number(tempDate.parkingTime);
// this.effective = tempDate.parkingValidStatus ? true : false;
this.effective = tempDate.parkingValidStatus ? '1' : '0';
this.control = Number(selected.parkingTime) == -1 ? '01' : '02';
this.effective = selected.parkingAlwaysValid ? '1' : '0';
this.direction = selected.direction;
this.time = Number(selected.parkingTime) == -1 ? 15 : Number(selected.parkingTime);
}
this.dialogShow = true;
this.$nextTick(function () {
@ -162,12 +162,13 @@ export default {
chooseControl(control) {
/** 自动时的默认时间*/
if (control == '01') {
this.inputTime = 15;
this.effective = 1;
this.time = 15;
this.effective = '1';
}
const operate = {
operation: OperationEvent.StationStand.setStopTime.choose1.operation
operation: OperationEvent.StationStand.setStopTime.choose1.operation,
val: this.control
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -178,7 +179,8 @@ export default {
},
chooseEffective() {
const operate = {
operation: OperationEvent.StationStand.setStopTime.choose2.operation
operation: OperationEvent.StationStand.setStopTime.choose2.operation,
val: this.effective
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -190,7 +192,8 @@ export default {
inputTime() {
const operate = {
repeat: true,
operation: OperationEvent.StationStand.setStopTime.input.operation
operation: OperationEvent.StationStand.setStopTime.input.operation,
val: this.time
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -205,11 +208,9 @@ export default {
operation: OperationEvent.StationStand.setStopTime.menu.operation,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME,
param: {
parkingTime: this.control == '01' ? -1 : 1,
runLevelTime: this.time,
parkingTime: this.control == '01' ? -1 : this.time,
parkingAlwaysValid: this.effective == '1'
}
// messages: [`: ${this.stationName} - ${this.standName}, ${this.control == '01' ? '' : this.time + ''}, ${this.effective == false ? '' : ''}`]
};
this.loading = true;
@ -217,8 +218,6 @@ export default {
this.loading = false;
if (valid) {
this.doClose();
// this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
// this.$refs.confirmControl.doShow(operate);
}
}).catch((error) => {
this.loading = false;

View File

@ -1,9 +1,9 @@
<template>
<div v-if="isShowBtn" class="menu menuButton" style="height:45px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<button
:id="Signal.cancelTrainRoute.button.domId"
:id="MixinCommand.totalCancel.button.domId"
:style="{display: 'block', float: 'left', width: width+'px', backgroundColor:buttonUpColor}"
@click="buttonDown(Signal.cancelTrainRoute.button.operation)"
@click="buttonDown(MixinCommand.totalCancel.button.operation)"
>
<span style="color: black">
<center>
@ -278,6 +278,9 @@ export default {
},
isShowBtn() {
return this.$store.state.training.prdType == '01';
},
MixinCommand() {
return OperationEvent.MixinCommand;
}
},
watch: {

View File

@ -101,6 +101,16 @@ export default {
handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
},
{
label: '设置联锁自动触发',
handler: this.setAutoTrigger,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO_TRIGGER
},
{
label: '取消联锁自动触发',
handler: this.cancelAutoTrigger,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO_TRIGGER
},
{
label: '查询进路状态',
handler: this.detail,
@ -245,6 +255,23 @@ export default {
}
break;
}
case OperationEvent.MixinCommand.totalCancel.button.operation: {
//
// const occupy = this.isTrainOccupy(selectType);
// if (occupy) {
// //
// this.signalCloseByLow(selectType);
// } else {
//
this.cancelTrainRouteByLow(selectType);
// }
break;
}
case OperationEvent.Signal.humanTrainRoute.button.operation: {
//
this.humanTrainRoute(selectType);
break;
}
}
},
//
@ -255,6 +282,13 @@ export default {
}
});
},
//
cancelTrainRouteByLow(selectType) {
commitOperate(menuOperate.Signal.cancelTrainRoute, {signalCode:selectType.code}, 3).then(({valid, operate})=>{
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
cancelTrainRoute() {
commitOperate(menuOperate.Signal.cancelTrainRoute, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
@ -327,6 +361,22 @@ export default {
this.$refs.noticeInfo.doShow({}, error.message);
});
},
//
setAutoTrigger() {
commitOperate(menuOperate.Signal.setAutoTrigger, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}
});
},
//
cancelAutoTrigger() {
commitOperate(menuOperate.Signal.cancelAutoTrigger, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}
});
},
//
detail() {
commitOperate(menuOperate.Signal.detail, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
@ -336,12 +386,16 @@ export default {
});
},
//
humanTrainRoute() {
commitOperate(menuOperate.Signal.cancelGuide, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routerCommand.doShow(operate, this.selected, '是否执行人解列车进路命令?');
}
humanTrainRoute(selectType) {
commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode:selectType.code}, 3).then(({valid, operate})=>{
}).catch(error=>{
this.$refs.noticeInfo.doShow({}, error.message);
});
// commitOperate(menuOperate.Signal.cancelGuide, {signalCode:selectType.code}, 0).then(({valid, operate})=>{
// if (valid) {
// this.$refs.routerCommand.doShow(operate, this.selected, '?');
// }
// });
},
//
guide() {

View File

@ -43,6 +43,11 @@ export const menuOperate = {
operation: OperationEvent.Signal.cancelTrainRoute.menu.operation,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
},
humanTrainRoute:{
// 总人解
operation: OperationEvent.Signal.humanTrainRoute.menu.operation,
cmdType:CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
},
lock:{
// 信号封锁
operation:OperationEvent.Signal.lock.menu.operation,
@ -106,6 +111,16 @@ export const menuOperate = {
// 取消自动折返
operation: OperationEvent.AutoTurnBack.CancelAutoTurnBackButton.menu.operation,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK
},
setAutoTrigger: {
// 设置联锁自动触发
operation: OperationEvent.Signal.setAutoTrigger.menu.operation,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO_TRIGGER
},
cancelAutoTrigger: {
// 取消联锁自动触发
operation: OperationEvent.Signal.cancelAutoTrigger.menu.operation,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO_TRIGGER
}
},
Switch:{

View File

@ -140,7 +140,7 @@
<script>
import Vue from 'vue';
// import { sendSimulationCommand } from '@/api/simulation.js';
import { trainSimulationDriveMode, trainSimulationAto ,trainSimulationAtp,trainSimulationChangeHead } from '@/jlmap3d/jl3ddrive/drivecontrol/simulation.js';
import { trainSimulationDriveMode, trainSimulationAto ,trainSimulationAtp,trainSimulationChangeHead,trainSimulationDoorControl } from '@/jlmap3d/jl3ddrive/drivecontrol/simulation.js';
export default {
name: 'TopRightPane',
@ -185,6 +185,8 @@
rmbuttonimg:"/static/jl3d/control/green.png",
runLevel:null,
cbtcbuttonimg:"/static/jl3d/control/green.png",
doorleftstatus:false,
doorleftstatus:false,
}
},
@ -369,12 +371,27 @@
trainSimulationDriveMode(this.group,this.groupNum,"RM").then(netdata => {
console.log(netdata);
});
},
dlcclick: function (e){
},
dloclick: function (e){
trainSimulationDoorControl(this.group,this.groupNum,false,true).then(netdata => {
// console.log(netdata);
});
},
dlcclick: function (e){
trainSimulationDoorControl(this.group,this.groupNum,false,false).then(netdata => {
// console.log(netdata);
});
},
droclick: function (e){
trainSimulationDoorControl(this.group,this.groupNum,true,true).then(netdata => {
// console.log(netdata);
});
},
drcclick: function (e){
trainSimulationDoorControl(this.group,this.groupNum,true,false).then(netdata => {
// console.log(netdata);
});
},
atoaclick: function (e){
trainSimulationAto(this.group,this.groupNum).then(netdata => {
@ -383,12 +400,6 @@
},
cbtcclick: function (e){
},
droclick: function (e){
},
drcclick: function (e){
},
updatabuttonlight: function (data){
// console.log(data);

View File

@ -249,7 +249,6 @@ export default {
this.mouseNum = 1;
},
handleRoomInfo(data) {
// debugger;
if (data.state == '03') { // 退
this.$router.go(-1);
} else if (data.state == '01') { //

View File

@ -1,6 +1,6 @@
<template>
<div v-show="dialogVisible">
<el-dialog v-dialogDrag title="配置项" :visible.sync="dialogVisible" fullscreen :before-close="handleClose" center :close-on-click-modal="false" :z-index="2000">
<el-dialog v-dialogDrag :title="title" :visible.sync="dialogVisible" fullscreen :before-close="handleClose" center :close-on-click-modal="false" :z-index="2000">
<div style="overflow-y: scroll;" :style="{height: height+ 'px'}">
<el-card>
<div slot="header" style="font-weight: bold;text-align: center;">
@ -23,7 +23,7 @@
<el-radio v-model="scope.row.configValue" :label="false"></el-radio>
</div>
<div v-else-if="scope.row.type === 'select'">
<el-select v-model="scope.row.configValue" size="mini" style="width: 80px;">
<el-select v-model="scope.row.configValue" size="mini" style="width:120px;">
<el-option
v-for="item in scope.row.options"
:key="item.value"
@ -65,17 +65,19 @@ export default {
return {
dialogVisible: false,
index: 0,
title:'',
id: '',
generalData: [],
height: 800,
roadData: [],
focus: false,
booleanList: ['lockFirst', 'switchSingleHandle', 'switchNRTurnChain', 'switchSingleLockChain', 'signalForceCancelRoute'],
selectList: ['upDirection'],
generalConfig: ['lockFirst', 'switchSingleHandle', 'upDirection', 'switchNRTurnChain', 'switchSingleLockChain', 'signalForceCancelRoute'],
selectList: ['upDirection', 'runMode'],
generalConfig: ['lockFirst', 'switchSingleHandle', 'upDirection', 'switchNRTurnChain', 'switchSingleLockChain', 'signalForceCancelRoute', 'runMode'],
numberList: [],
optionsMap: {
upDirection: [{label: 'right', value: 'right'}, {label: 'left', value: 'left'}]
upDirection: [{label: 'right', value: 'right'}, {label: 'left', value: 'left'}],
runMode:[{label: 'CBTC级别', value: 'CBTC'}, {label: '点式通信', value: 'ITC'}, {label: '联锁级', value: 'IL'}]
},
remarkMap: {
lockFirst: '是否先锁闭——办理过程直接先锁闭区段',
@ -83,7 +85,8 @@ export default {
switchSingleHandle: '道岔区段状态改变按单个道岔处理',
switchNRTurnChain:'道岔正/反操是否联动',
switchSingleLockChain:'道岔单解/锁是否联动',
signalForceCancelRoute:'是否强制取消进路/在接近区段占用时是否依旧强制执行取消进路'
signalForceCancelRoute:'是否强制取消进路/在接近区段占用时是否依旧强制执行取消进路',
runMode:'列车控制模式/级别'
}
};
},
@ -91,6 +94,7 @@ export default {
},
methods: {
async show(row) {
this.title = row.name + ' 配置项';
this.dialogVisible = true;
this.height = document.documentElement.clientHeight - 180;
if (row && row.id) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Binary file not shown.