This commit is contained in:
fan 2020-07-03 13:55:20 +08:00
commit 8fa62ec9ce
19 changed files with 213 additions and 73 deletions

View File

@ -4,14 +4,19 @@ import { getBaseUrl } from '@/utils/baseUrl';
const BASE_API = getBaseUrl();
let uploadurl = null;
let asseturl = null;
if(BASE_API == "https://test.joylink.club/jlcloud"){
uploadurl = "https://test.joylink.club/jlfile";
asseturl = "https://test.joylink.club/oss/joylink"
}else if(BASE_API == "https://joylink.club/jlcloud"){
uploadurl = "https://joylink.club/jlfile";
asseturl = "https://joylink.club/oss/joylink"
}else{
uploadurl = "http://192.168.3.41:9300";
asseturl = "https://test.joylink.club/oss/joylink"
}
const BASE_UPLOAD_API = uploadurl;
const BASE_ASSET_API = asseturl;
export function getUploadModelUrl() {
return (BASE_UPLOAD_API+"/api/upload/MODEL?appId=00001&appSecret=joylink00001");

View File

@ -37,6 +37,17 @@ var Staticmodel = {
//https://joylink.club/oss/wx/stationstand/stationstand.FBX
//../../static/model/device/stationstand.FBX
},
room: {
id: "5",
name: "通号设备间",
deviceType: "room",
type: "low",
picUrl: "",
assetUrl: "../../static/model/device/room/room.FBX"
//https://joylink.club/oss/wx/stationstand/stationstand.FBX
//../../static/model/device/stationstand.FBX
}
}

View File

@ -33,12 +33,20 @@ export function ModelManager(){
action:null
};
this.roommodel = {
code:"room",
sectionstatus:"01",
mesh:null,
action:null
};
this.loadpromise = function (data,mixers){
let initlist = [];
initlist.push(fbxpromise(data.Switch,mixers,scope.switchmodel));
initlist.push(fbxpromise(data.Signal,mixers,scope.signalmodel));
initlist.push(fbxpromise(data.stationstand,mixers,scope.standmodel));
initlist.push(fbxpromise(data.section,mixers,scope.sectionmodel));
initlist.push(fbxpromise(data.room,mixers,scope.roommodel));
return new Promise(function(resolve, reject){

View File

@ -219,7 +219,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
}
if (data.type == "PSD") {
if (data.type == "STAND") {
// console.log(data);
scope.modelmanager.standmodel.code = data.code;
scope.showmodel = scope.modelmanager.standmodel.mesh;
@ -233,15 +233,24 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
// scope.modelmanager.standmodel.mesh.getObjectByName("zhantaiming").material.map.needsUpdate = true;
}
if (data.type == "AXLE_COUNTER") {
if (data.type == "SECTION") {
// console.log(data);
scope.modelmanager.sectionmodel.code = data.code;
scope.showmodel = scope.modelmanager.sectionmodel.mesh;
scope.scene.add(scope.showmodel);
// scope.modelmanager.standmodel.mesh.getObjectByName("zhantaiming").material.map =scope.stationtexture[psdtexturemap[data.standCode]];
// scope.modelmanager.standmodel.mesh.getObjectByName("zhantaiming").material.map.needsUpdate = true;
}
if (data.type == "room") {
scope.showmodel = scope.modelmanager.roommodel.mesh;
scope.scene.add(scope.showmodel);
scope.camera.position.set(0, 10, 9);
scope.controls.target = new THREE.Vector3(0, 9, 8);
scope.controls.update();
}else{
scope.camera.position.set(0, 20, 30);
scope.controls.target = new THREE.Vector3(0, 0, 0);
scope.controls.update();
}
if(scope.showmodel){
scope.resetmodel();
@ -284,7 +293,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
scope.scene.add(scope.showmodel);
}
if (data.type == "PSD") {;
if (data.type == "STAND") {;
scope.showmodel = scope.modelmanager.standmodel.mesh;
scope.scene.add(scope.showmodel);
scope.modelmanager.standmodel.action.reset();
@ -295,7 +304,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
// scope.modelmanager.standmodel.mesh.getObjectByName("zhantaiming").material.map.needsUpdate = true;
}
if (data.type == "AXLE_COUNTER") {
if (data.type == "SECTION") {
scope.showmodel = scope.modelmanager.sectionmodel.mesh;
scope.scene.add(scope.showmodel);
@ -303,6 +312,18 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
// scope.modelmanager.standmodel.mesh.getObjectByName("zhantaiming").material.map.needsUpdate = true;
}
if (data.type == "room") {
scope.showmodel = scope.modelmanager.roommodel.mesh;
scope.scene.add(scope.showmodel);
scope.camera.position.set(0, 10, 9);
scope.controls.target = new THREE.Vector3(0, 9, 8);;
scope.controls.update();
}else{
scope.camera.position.set(0, 20, 30);
scope.controls.target = new THREE.Vector3(0, 0, 0);
scope.controls.update();
}
// initstatus(data);
}

View File

@ -71,35 +71,35 @@ export function Maintainerconnect(jlmap3d,routegroup,jsonwebwork,lablecodemap) {
}
if(event.data.body.type == "SIGNAL"){
newfault.name = lablecodemap.signal[newfault.code];
if(event.data.body.fault == "MAIN_FILAMENT_BROKEN"){
newfault.text = "主灯丝断丝故障";
newfault.typetext = "信号机";
if(event.data.body.fault[1] == "MAIN_FILAMENT_BROKEN"){
newfault.text = "主灯丝断丝故障";
}
}
if(event.data.body.type == "SWITCH"){
newfault.name = lablecodemap.switch[newfault.code];
if(event.data.body.fault == "SPLIT"){
newfault.text = "道岔挤岔";
newfault.typetext = "道岔";
if(event.data.body.fault[1] == "SPLIT"){
newfault.text = "道岔挤岔";
}
}
if(event.data.body.type == "AXLE_COUNTER"){
if(event.data.body.type == "SECTION"){
newfault.name = lablecodemap.section[newfault.code];
if(event.data.body.fault == "FAULT"){
newfault.text = "计轴故障";
newfault.typetext = "区段";
if(event.data.body.fault[1] == "FAULT"){
newfault.text = "计轴故障";
}
}
if(event.data.body.type == "PSD"){
newfault.name = lablecodemap.psd[newfault.code];
if(event.data.body.fault == "FAULT"){
newfault.text = "屏蔽门无法关闭故障";
if(event.data.body.type == "STAND"){
newfault.name = newfault.code;
newfault.typetext = "屏蔽门";
if(event.data.body.fault[1] == "FAULT_PSD_OPEN"){
newfault.text = "屏蔽门无法关闭故障";
}
}
@ -135,35 +135,35 @@ export function Maintainerconnect(jlmap3d,routegroup,jsonwebwork,lablecodemap) {
}
if(fault[i].type == "SIGNAL"){
newfault.name = lablecodemap.signal[newfault.code];
if(fault[i].fault == "MAIN_FILAMENT_BROKEN"){
newfault.text = "主灯丝断丝故障";
newfault.typetext = "信号机";
if(fault[i].fault[1] == "MAIN_FILAMENT_BROKEN"){
newfault.text = "主灯丝断丝故障";
}
}
if(fault[i].type == "SWITCH"){
newfault.name = lablecodemap.switch[newfault.code];
if(fault[i].fault == "SPLIT"){
newfault.text = "道岔挤岔";
newfault.typetext = "道岔";
if(fault[i].fault[1] == "SPLIT"){
newfault.text = "道岔挤岔";
}
}
if(fault[i].type == "AXLE_COUNTER"){
if(fault[i].type == "SECTION"){
newfault.name = lablecodemap.section[newfault.code];
if(fault[i].fault == "FAULT"){
newfault.text = "计轴故障";
newfault.typetext = "区段";
if(fault[i].fault[1] == "FAULT"){
newfault.text = "计轴故障";
}
}
if(fault[i].type == "PSD"){
newfault.name = lablecodemap.psd[newfault.code];
if(fault[i].fault == "FAULT"){
newfault.text = "屏蔽门无法关闭故障";
if(fault[i].type == "STAND"){
newfault.name = newfault.code;
newfault.typetext = "屏蔽门";
if(fault[i].fault[1] == "FAULT_PSD_OPEN"){
newfault.text = "屏蔽门无法关闭故障";
}
}
@ -171,38 +171,38 @@ export function Maintainerconnect(jlmap3d,routegroup,jsonwebwork,lablecodemap) {
}
return;
}
if(event.data.type == 'TrainRun_3D'){
for(let i=0,leni=event.data.body.length;i<leni;i++){
// console.log(event.data.body[i]);
trainrunnew(event.data.body[i]);
}
return;
}
//
// if(event.data.type == 'TrainRun_3D'){
//
// for(let i=0,leni=event.data.body.length;i<leni;i++){
// // console.log(event.data.body[i]);
// trainrunnew(event.data.body[i]);
// }
// return;
// }
// if(event.data.type == 'TRAIN'){
// console.log(event.data);
// trainrun(event.data);
// }
if (event.data.type== 'SIGNAL' && signallist) {
signalupdate(event.data);
// console.log(event.data);
return;
}
if (event.data.type== "PSD" && actions) {
standupdate(event.data);
return;
}
if (event.data.type == "SWITCH") {
switchupdate(event.data);
return;
}
if (event.data.type == 'TRAIN_DOOR') {
traindoorupdate(event.data);
return;
}
// if (event.data.type== 'SIGNAL' && signallist) {
// signalupdate(event.data);
// // console.log(event.data);
// return;
// }
//
// if (event.data.type== "PSD" && actions) {
// standupdate(event.data);
// return;
// }
// if (event.data.type == "SWITCH") {
// switchupdate(event.data);
// return;
// }
// if (event.data.type == 'TRAIN_DOOR') {
// traindoorupdate(event.data);
// return;
// }
if(event.data.type == 'Simulation_Reset'){
simulationreset(event.data);

View File

@ -160,7 +160,8 @@ class SkinCode extends defaultStyle {
greenColor: '#00FF00', // 信号灯绿色
yellowColor: '#FFFF00', // 信号灯黄色
whiteColor: '#FFFFFF', // 信号灯白色
blueColor: '#0070C0' // 信号灯蓝色
blueColor: '#0070C0', // 信号灯蓝色
faultType: 'flash' // 信号机故障类型 flash为西安三号线特殊类型
},
route: {
direction: false, // 自动进路方向

View File

@ -0,0 +1,17 @@
import Path from 'zrender/src/graphic/Path';
// 信号机故障 (主灯丝断裂)
export const ESigFault = Path.extend({
type: 'ESigFault',
shape: {
points: null
},
buildPath: function (ctx, shape) {
const points = shape.points;
const oldradius = shape.radius + 1;
const newradius = shape.radius + 5;
for (let i = 0; i < 8; i++) {
ctx.moveTo(points.x + oldradius * Math.sin(Math.PI / 4 * i), points.y - oldradius * Math.cos(Math.PI / 4 * i));
ctx.lineTo(points.x + newradius * Math.sin(Math.PI / 4 * i), points.y - newradius * Math.cos(Math.PI / 4 * i));
}
}
});

View File

@ -1,6 +1,8 @@
import Line from 'zrender/src/graphic/shape/Line';
import Arc from 'zrender/src/graphic/shape/Arc';
import Group from 'zrender/src/container/Group';
import Path from 'zrender/src/graphic/Path';
import {ESigFault} from './ESigFault';
class ESigLamp extends Group {
constructor(model) {
@ -30,6 +32,27 @@ class ESigLamp extends Group {
stroke: style.Signal.lamp.borderColor
}
});
if (style.Signal.lamp.faultType && style.Signal.lamp.faultType == 'flash') {
this.lampFault = new ESigFault({
zlevel: model.zlevel,
z: model.z + 1,
style:{
lineWidth: 1,
stroke: '#F00'
},
shape: {
points: {
x: model.x,
y: model.y
},
radius:style.Signal.lamp.radiusR
}
});
this.add(this.lampFault);
this.lampFault.hide();
}
if ( !style.Signal.lamp.logicDisplayNone ) {
this.lstop = new Line({
_subType: 'SignalLamp',
@ -79,6 +102,14 @@ class ESigLamp extends Group {
}
}
faultShow() {
this.lampFault.show();
}
faultHide() {
this.lampFault.hide();
}
setColor(color) {
if (this.model.style.Signal.lamp.borderVariable) {
this.lamp.setStyle({ fill: color, stroke: color });

View File

@ -456,10 +456,16 @@ class Signal extends Group {
this.sigName.setColor(this.style.Signal.text.checkColor);
}
// 故障
// // 故障
// fault() {
// this.lamps[0] && this.lamps[0].setColor(this.style.Signal.lamp.blueColor);
// this.lamps[1] && this.lamps[1].setColor(this.style.Signal.lamp.blueColor);
// }
fault() {
this.lamps[0] && this.lamps[0].setColor(this.style.Signal.lamp.blueColor);
this.lamps[1] && this.lamps[1].setColor(this.style.Signal.lamp.blueColor);
if (this.style.Signal.lamp.faultType && this.style.Signal.lamp.faultType == 'flash') {
this.lamps[0].faultShow();
}
}
// 逻辑点灯
@ -542,6 +548,7 @@ class Signal extends Group {
// 恢复状态
recover() {
this.lamps.forEach(item=> { item.show(); });
this.lamps[0].faultHide();
this.sigName.setStyle({ textBorderWidth: 0 });
this.sigName.setColor(this.style.Signal.text.defaultColor);
this.setAutoClose();
@ -588,6 +595,7 @@ class Signal extends Group {
model.redOpen && !model.yellowOpen && !model.greenOpen && this.close(model.logicLight); // 信号关闭
model.greenOpen && !model.redOpen && !model.yellowOpen && this.openPositive(model.logicLight); // 信号正向开放
model.yellowOpen && !model.redOpen && !model.greenOpen && this.openLateral(model.logicLight); // 信号侧向开放
model.fault && this.fault();// 信号机故障
// 联锁自动进路通过
model.fleetMode && this.setAutoRouteOpen();

View File

@ -101,6 +101,7 @@
</template>
<script>
import { getMap3dModelDataAll,getMap3dModelData } from '@/api/jlmap3d/assets3d.js'
export default {
name: 'EditAction',
@ -117,6 +118,15 @@ export default {
beforeDestroy() {
},
mounted() {
getMap3dModelDataAll().then(netdata => {
console.log(netdata);
}).catch(error => {
console.log(error);
});
},
methods: {
@ -162,9 +172,6 @@ export default {
}
},
mounted() {
//this.init();
}
}
</script>

View File

@ -200,14 +200,16 @@ export default {
.modellist {
float:left;
position: relative;
width:100px;
height:100px;
width:120px;
height:120px;
text-align:center;
}
.modelpic{
left:0;
position: absolute;
width:100%;
height:100%;
width:60%;
height:60%;
text-align:center;
background-image: url('/static/texture/modelfile.png');
background-size: 100% 100%;
}

View File

@ -13,7 +13,7 @@
</el-table-column>
<el-table-column
prop="packageName"
label="图片名称"
label="图片名称"
>
</el-table-column>
<el-table-column

View File

@ -35,7 +35,7 @@
<el-option label="cctv闸机" value="CctvGate"></el-option>
<el-option label="cctv人物" value="CctvHuman"></el-option>
<el-option label="通号机房" value="MaintainerRoom"></el-option>
<el-option label="通号设备间" value="MaintainerRoom"></el-option>
</el-select>
</el-form-item>
<el-form-item label="资源所属项目">

View File

@ -34,7 +34,7 @@
<el-option label="cctv闸机" value="CctvGate"></el-option>
<el-option label="cctv人物" value="CctvHuman"></el-option>
<el-option label="通号机房" value="MaintainerRoom"></el-option>
<el-option label="通号设备间" value="MaintainerRoom"></el-option>
</el-select>
</el-form-item>
<el-form-item label="模型信息">

View File

@ -10,6 +10,7 @@
</el-button-group>
</div> -->
<div id="jl3ddevicerepir" class="repirbutton" @click="devicerepir"></div>
<div id="jl3dclose" class="backbutton" @click="close3ddeviceview"></div>
<Jl3ddevice-Msg v-show="isswitch">
</Jl3ddevice-Msg>
@ -181,7 +182,7 @@
if(this.nowdevice){
let command = {
code:this.nowdevice.code,
faultType:this.nowdevice.fault,
faultType:this.nowdevice.fault[1],
};
sendCommandNew(this.group,"Cancel_Fault", command).then((response) => {
// resolve(response);
@ -211,10 +212,21 @@
//
// },
showmodel(devicedata){
console.log(devicedata);
this.jl3d.updatewindowstatus('1');
this.jl3d.selectmodel(devicedata);
this.nowdevice = devicedata;
},
showroom(){
let roomdata = {
code:"room",
name:"room",
type:"room",
};
this.jl3d.updatewindowstatus('1');
this.jl3d.selectmodel(roomdata);
this.nowdevice = roomdata;
},
back(){
this.jl3d.resetmodel();
},
@ -303,6 +315,8 @@
background-size:100%;
}
#canvastexture {
position: absolute;
float: left;
@ -312,7 +326,7 @@
.jl3dcontrolpane{
position: absolute;
top:0;
right:85px;
right:165px;
z-index: 10;
}

View File

@ -32,7 +32,7 @@
</div>
</div>
<div id="jl3droom" class="roombutton" @click="showroom"></div>
</div>
@ -212,6 +212,10 @@ export default {
this.msgshow = false;
},
showroom(){
this.deviceShow = true;
this.$refs.faultdevice.showroom();
},
back() {
this.$emit('back');
this.isswitch = false;
@ -301,6 +305,17 @@ export default {
font-size: 40px;
}
.roombutton{
width:50px;
height:50px;
position: absolute;
right:70px;
top:5px;
z-index:30;
background-image:url("/static/texture/room.png");
background-repeat:no-repeat;
background-size:100%;
}
#canvastexture {
position: absolute;
float: left;

Binary file not shown.

BIN
static/texture/room.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -684,7 +684,7 @@ function timedCount(){
function callback(Response) {
data = JSON.parse(Response.body);
// console.log(data);
console.log(data);
// if(data.type == 'TrainRun_3D'){
// for (let i=0,leni = data.body.length; i<leni; i++) {
// data.body[i].type = "TRAIN";