Преглед на файлове

711水泵风机风门图标修改,相关代码修改

tangjunhao преди 2 месеца
родител
ревизия
cbb81f3093

BIN
public/static/3d/fengji.ply


BIN
public/static/3d/fengmen.ply


BIN
public/static/3d/shuibeng.ply


+ 257 - 17
src/control/vtkModel.js

@@ -170,6 +170,12 @@ export class VtkModel {
     // 用于管道上位置移动(监测点)
     this.actorpipjcs=[]; 
 
+    this.actorpippumps=[];
+
+    this.actorpipfans=[];
+
+    this.actorpipdoors=[];
+
     this.jcdActors = []; //检测点数据
     this.jcreader = vtkPLYReader.newInstance();
     fetchJSFileAsArrayBuffer('static/3d/jiancd.ply').then(arrayBuffer => {
@@ -185,14 +191,36 @@ export class VtkModel {
         this.soureReader.parseAsArrayBuffer(arrayBuffer);
     });
 
-
-    this.pmpActors=[];
     this.cgqActors=[];
     this.cgqreader = vtkPLYReader.newInstance();
     fetchJSFileAsArrayBuffer('static/3d/cgq.ply').then(arrayBuffer => {
       // 读取PLY数据
       this.cgqreader.parseAsArrayBuffer(arrayBuffer);
     });
+
+    // 水泵
+    this.waterPumpActors = [];
+    this.waterPumpreader = vtkPLYReader.newInstance();
+    fetchJSFileAsArrayBuffer('static/3d/shuibeng.ply').then(arrayBuffer => {
+      // 读取PLY数据
+      this.waterPumpreader.parseAsArrayBuffer(arrayBuffer);
+    });
+
+    // 风机
+    this.fanActors = [];
+    this.fanreader = vtkPLYReader.newInstance();
+    fetchJSFileAsArrayBuffer('static/3d/fengji.ply').then(arrayBuffer => {
+      // 读取PLY数据
+      this.fanreader.parseAsArrayBuffer(arrayBuffer);
+    });
+
+    // 风门
+    this.doorActors = [];
+    this.doorreader = vtkPLYReader.newInstance();
+    fetchJSFileAsArrayBuffer('static/3d/fengmen.ply').then(arrayBuffer => {
+      // 读取PLY数据
+      this.doorreader.parseAsArrayBuffer(arrayBuffer);
+    });
   }
   
   xyz_back(){ 
@@ -297,7 +325,7 @@ removePname(){
 }
 
 
-//水泵/风门、风机添加
+//水泵添加
 addpump(pid,site){
 
   let pipe =this.pipeByPid(pid,site);
@@ -311,38 +339,133 @@ addpump(pid,site){
     ] 
     console.log(pipsite_point)
     const mapper = vtkMapper.newInstance();
-    mapper.setInputConnection(this.cgqreader.getOutputPort());
+    mapper.setInputConnection(this.waterPumpreader.getOutputPort());
     const actor = vtkActor.newInstance();
     actor.setPosition(pipsite_point[0],pipsite_point[1],pipsite_point[2]);
-    actor.getProperty().setColor(SOURECOLOR);
+    actor.getProperty().setColor(GREEN);
     actor.setMapper(mapper);
     actor.rotateZ(90);
-    actor.setScale(0.2,0.2,0.2);//放大
+    actor.setScale(0.1,0.1,0.1);//放大
       // 旋转actor
     // actor.rotateY(90);// 绕y轴旋转
-    this.pmpActors.push(actor);
-    this.pmpActors.forEach((actor)=>{
+    this.waterPumpActors.push(actor);
+    this.waterPumpActors.forEach((actor)=>{
       this.renderer.addActor(actor);
     });
     this.renderWindow.render();
 }
 showpump(){ 
-  this.pmpActors.forEach((actor)=>{
+  this.waterPumpActors.forEach((actor)=>{
     this.renderer.addActor(actor);
   });
   this.renderWindow.render();
 
 }
 removepump(){
-  this.pmpActors.forEach((actor)=>{
+  this.waterPumpActors.forEach((actor)=>{
     this.renderer.removeActor(actor);
   });
   this.renderWindow.render();
 }
 delpump(){
   this.removepump();
-  this.pmpActors=[];
+  this.waterPumpActors=[];
+}
+
+//风机添加
+addfan(pid,site){
+
+  let pipe =this.pipeByPid(pid,site);
+  let point1 = this.pointByPipeNodeId(pipe.snId);
+  let point2 = this.pointByPipeNodeId(pipe.enId);
+  let py = site/(1-site);
+  let pipsite_point=[
+    (point1[0]+py*point2[0])/(1+py),
+    (point1[1]+py*point2[1])/(1+py),
+    (point1[2]+py*point2[2])/(1+py),
+    ] 
+    console.log(pipsite_point)
+    const mapper = vtkMapper.newInstance();
+    mapper.setInputConnection(this.fanreader.getOutputPort());
+    const actor = vtkActor.newInstance();
+    actor.setPosition(pipsite_point[0],pipsite_point[1],pipsite_point[2]);
+    actor.getProperty().setColor(GREEN);
+    actor.setMapper(mapper);
+    actor.rotateZ(90);
+    actor.setScale(0.1,0.1,0.1);//放大
+      // 旋转actor
+    // actor.rotateY(90);// 绕y轴旋转
+    this.fanActors.push(actor);
+    this.fanActors.forEach((actor)=>{
+      this.renderer.addActor(actor);
+    });
+    this.renderWindow.render();
+}
+showfan(){ 
+  this.fanActors.forEach((actor)=>{
+    this.renderer.addActor(actor);
+  });
+  this.renderWindow.render();
+
+}
+removefan(){
+  this.fanActors.forEach((actor)=>{
+    this.renderer.removeActor(actor);
+  });
+  this.renderWindow.render();
+}
+delfan(){
+  this.removefan();
+  this.fanActors=[];
+}
+
+//风门添加
+adddoor(pid,site){
+
+  let pipe =this.pipeByPid(pid,site);
+  let point1 = this.pointByPipeNodeId(pipe.snId);
+  let point2 = this.pointByPipeNodeId(pipe.enId);
+  let py = site/(1-site);
+  let pipsite_point=[
+    (point1[0]+py*point2[0])/(1+py),
+    (point1[1]+py*point2[1])/(1+py),
+    (point1[2]+py*point2[2])/(1+py),
+    ] 
+    console.log(pipsite_point)
+    const mapper = vtkMapper.newInstance();
+    mapper.setInputConnection(this.doorreader.getOutputPort());
+    const actor = vtkActor.newInstance();
+    actor.setPosition(pipsite_point[0],pipsite_point[1],pipsite_point[2]);
+    actor.getProperty().setColor(GREEN);
+    actor.setMapper(mapper);
+    // actor.rotateZ(90);
+    actor.setScale(0.1,0.1,0.1);//放大
+      // 旋转actor
+    // actor.rotateY(90);// 绕y轴旋转
+    this.doorActors.push(actor);
+    this.doorActors.forEach((actor)=>{
+      this.renderer.addActor(actor);
+    });
+    this.renderWindow.render();
 }
+showdoor(){ 
+  this.doorActors.forEach((actor)=>{
+    this.renderer.addActor(actor);
+  });
+  this.renderWindow.render();
+
+}
+removedoor(){
+  this.doorActors.forEach((actor)=>{
+    this.renderer.removeActor(actor);
+  });
+  this.renderWindow.render();
+}
+deldoor(){
+  this.removedoor();
+  this.doorActors=[];
+}
+
 addSensor(val){
   let pipe =this.pipeByPid(val.pid,val.site);
   let point1 = this.pointByPipeNodeId(pipe.snId);
@@ -503,7 +626,7 @@ deljc() {
       const pipsiteMapper = vtkMapper.newInstance();
       pipsiteMapper.setInputConnection(sphereSource.getOutputPort());
       actorpipsite.setMapper(pipsiteMapper);
-      actorpipsite.getProperty().setColor(WHITE);
+      actorpipsite.getProperty().setColor(GRAY);
       this.actorpipsites.push(actorpipsite);
     }
     const actorpipsite =this.actorpipsites[0];  
@@ -536,7 +659,7 @@ deljc() {
       const pipsiteMapper = vtkMapper.newInstance();
       pipsiteMapper.setInputConnection(sphereSource.getOutputPort());
       actorpipsite.setMapper(pipsiteMapper);
-      actorpipsite.getProperty().setColor(WHITE);
+      actorpipsite.getProperty().setColor(GRAY);
       this.actorpipsites.push(actorpipsite);
     }
     const actorpipsite =this.actorpipsites[1];  
@@ -570,7 +693,7 @@ addpipsensor(pid,site){
       actorpipsensor.setMapper(pipsensorMapper);
       actorpipsensor.rotateZ(90);
       actorpipsensor.setScale(0.05,0.05,0.05);//放大
-      actorpipsensor.getProperty().setColor(SOURECOLOR);
+      actorpipsensor.getProperty().setColor(GRAY);
       this.actorpipsensors.push(actorpipsensor);
     }
     const actorpipsensor =this.actorpipsensors[0];  
@@ -606,7 +729,7 @@ addpipjc(pid,site){
       actorpipjc.setMapper(pipjcMapper);
       actorpipjc.rotateZ(90);
       actorpipjc.setScale(0.1,0.1,0.1);//放大
-      actorpipjc.getProperty().setColor(JCDCOLOR);
+      actorpipjc.getProperty().setColor(GRAY);
       this.actorpipjcs.push(actorpipjc);
     }
     const actorpipjc =this.actorpipjcs[0];  
@@ -630,6 +753,114 @@ clearpipjc(){
   });
 }
 
+// 显示所选管道水泵位置
+addpipPump(pid,site){
+    
+    let pipe =this.pipeByPid(pid);
+    console.log("管道数据",pipe)
+    if(this.actorpippumps.length==0){
+      const actorpippump = vtkActor.newInstance();
+      const pippumpMapper = vtkMapper.newInstance();
+      pippumpMapper.setInputConnection(this.waterPumpreader.getOutputPort());
+      actorpippump.setMapper(pippumpMapper);
+      actorpippump.rotateZ(90);
+      actorpippump.setScale(0.1,0.1,0.1);//放大
+      actorpippump.getProperty().setColor(GRAY);
+      this.actorpippumps.push(actorpippump);
+    }
+    const actorpippump =this.actorpippumps[0];  
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    let py = site/(1.01-site);
+    let pipsite_point=[
+      (point1[0]+py*point2[0])/(1+py),
+      (point1[1]+py*point2[1])/(1+py),
+      (point1[2]+py*point2[2])/(1+py),
+      ] 
+    actorpippump.setPosition(pipsite_point);
+    this.renderer.addActor(actorpippump);
+    this.renderWindow.render();
+  }
+
+//移除水泵在所选择的巷道中的位置
+clearpipPump(){
+  this.actorpippumps.forEach((actor) => {
+    this.renderer.removeActor(actor);
+  });
+}
+
+// 显示所选管道风机位置
+addpipfan(pid,site){
+    
+    let pipe =this.pipeByPid(pid);
+    console.log("管道数据",pipe)
+    if(this.actorpipfans.length==0){
+      const actorpipfan = vtkActor.newInstance();
+      const pipfanMapper = vtkMapper.newInstance();
+      pipfanMapper.setInputConnection(this.fanreader.getOutputPort());
+      actorpipfan.setMapper(pipfanMapper);
+      actorpipfan.rotateZ(90);
+      actorpipfan.setScale(0.1,0.1,0.1);//放大
+      actorpipfan.getProperty().setColor(GRAY);
+      this.actorpipfans.push(actorpipfan);
+    }
+    const actorpipfan =this.actorpipfans[0];  
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    let py = site/(1.01-site);
+    let pipsite_point=[
+      (point1[0]+py*point2[0])/(1+py),
+      (point1[1]+py*point2[1])/(1+py),
+      (point1[2]+py*point2[2])/(1+py),
+      ] 
+    actorpipfan.setPosition(pipsite_point);
+    this.renderer.addActor(actorpipfan);
+    this.renderWindow.render();
+  }
+
+//移除风机在所选择的巷道中的位置
+clearpipfan(){
+  this.actorpipfans.forEach((actor) => {
+    this.renderer.removeActor(actor);
+  });
+}
+
+// 显示所选管道风门位置
+addpipdoor(pid,site){
+    
+    let pipe =this.pipeByPid(pid);
+    console.log("管道数据",pipe)
+    if(this.actorpipdoors.length==0){
+      const actorpipdoor = vtkActor.newInstance();
+      const pipdoorMapper = vtkMapper.newInstance();
+      pipdoorMapper.setInputConnection(this.doorreader.getOutputPort());
+      actorpipdoor.setMapper(pipdoorMapper);
+      // actorpipdoor.rotateZ(90);
+      actorpipdoor.setScale(0.1,0.1,0.1);//放大
+      actorpipdoor.getProperty().setColor(GRAY);
+      this.actorpipdoors.push(actorpipdoor);
+    }
+    const actorpipdoor =this.actorpipdoors[0];  
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    let py = site/(1.01-site);
+    let pipsite_point=[
+      (point1[0]+py*point2[0])/(1+py),
+      (point1[1]+py*point2[1])/(1+py),
+      (point1[2]+py*point2[2])/(1+py),
+      ] 
+    actorpipdoor.setPosition(pipsite_point);
+    this.renderer.addActor(actorpipdoor);
+    this.renderWindow.render();
+  }
+
+//移除风门在所选择的巷道中的位置
+clearpipdoor(){
+  this.actorpipdoors.forEach((actor) => {
+    this.renderer.removeActor(actor);
+  });
+}
+
 // 安全路径显示
 safetypath(rows){
   this.renderWindowWith.resize();
@@ -1243,6 +1474,8 @@ safetypathremove(){
     this.delSensor();
     this.delSoures();
     this.delpump();
+    this.deldoor();
+    this.delfan();
   }
 
 
@@ -1502,13 +1735,20 @@ function processSelections(selections) {
           input.getPoints().getPoint(pointId)
         );
         const scalarDataArray = input.getPointData().getScalars().getData();
-        console.log(scalarDataArray[pointIds[0]]);//节点标量数据
+        // console.log('pointIds',pointIds);
+        // console.log('points',points);
+        console.log('节点标量数据',scalarDataArray[pointIds[0]]);//节点标量数据
         
         // pointIds.forEach(pointId=>{
         //   console.log(input.getPointData().getScalars().getName());
         //   console.log(scalarDataArray[pointId]);//节点标量数据
         // });
-        vtkmodel.selectJgPointId = pointIds[0];
+        vtkmodel.selectJgPointId = {
+          scalar:pointIds[0],
+          x:points[0][0],
+          y:points[0][1],
+          z:points[0][2],
+        };
       }
     }
 

+ 81 - 36
src/view/components/Fengmen.vue

@@ -282,14 +282,14 @@
           <el-button
             type="primary"
             @click="
-              fireclick();
+              fireclick('fj');
               sdialog.dialogVisiblenode = true;
             "
             >选择巷道</el-button
           >
         </div>
         <div class="btn2" style="padding-left: 10px">
-          <el-button type="primary" @click="Dclick()">3D巷道选择</el-button>
+          <el-button type="primary" @click="Dclick('fj')">3D巷道选择</el-button>
         </div>
       </div>
       <div class="input">
@@ -461,14 +461,14 @@
           <el-button
             type="primary"
             @click="
-              fireclick();
+              fireclick('fm');
               sdialog.dialogVisiblenode = true;
             "
             >选择巷道</el-button
           >
         </div>
         <div class="btn2" style="padding-left: 10px">
-          <el-button type="primary" @click="Dclick()">3D巷道选择</el-button>
+          <el-button type="primary" @click="Dclick('fm')">3D巷道选择</el-button>
         </div>
       </div>
       <div class="input">
@@ -482,7 +482,7 @@
             controls-position="right"
             class="w-50 m-2"
             placeholder="相对位置"
-            @change="inputnuberChange"
+            @change="inputnuberChange1"
           />
         </el-form-item>
       </div>
@@ -637,18 +637,24 @@ const props = defineProps({
   let fmtableData=ref([]);
   let tableDatafmjz=ref([]);
   let tabledatafmjzref = ref();
+
+let opendialogname = '';//用于区分风机风门打开的弹窗
+
+
   const handlerow = (val) => {
-    vtkmodel.delpump();
+    vtkmodel.delfan();
     currentrow.value=true; 
     handobj.value=val;
     console.log(val);
-    vtkmodel.addpump(val.pid,val.site);
+    vtkmodel.delAll();
+    vtkmodel.addfan(val.pid,val.site);
 };
 const handlerow2 = (val) => {
-  vtkmodel.delpump();
+  vtkmodel.deldoor();
     currentrow.value=true; 
     handobjfm.value=val;
-    vtkmodel.addpump(val.pid,val.site);
+    vtkmodel.delAll();
+    vtkmodel.adddoor(val.pid,val.site);
 
 };
 let coolactiveName1 = ref(["1", "2"]);
@@ -673,15 +679,22 @@ const initisshow=()=>{
 }
 
 // 3D弹屏
-const Dclick = () => {
+const Dclick = (val) => {
+  opendialogname = val;
   dialogtrue.value.dialoglog = true;
-  // vtkmodel.clearJgAddMode() ;
-  // vtkmodel.selectPipes();
-  // dialogtrue.value.jgSelect();
+  vtkmodel.clearJgAddMode();
+  vtkmodel.clearpipfan();
+  vtkmodel.clearpipdoor();
+  
+  vtkmodel.selectPipes();
+  dialogtrue.value.jgSelect();
   console.log(dialogtrue.value.dialoglog);
 };
+
+
 // 选择巷道
-const fireclick = () => {
+const fireclick = (val) => {
+    opendialogname = val;
     pipeline.value.searchtaggd='';
     pipeline.value.dialogVisiblenode = true;
     pipeline.value.pipelinedata('');
@@ -691,10 +704,11 @@ const closeDialog=()=>{
 state.value=sessionStorage.getItem("state");
   if(state.value=='1'){
     vtkmodel.clearModeAddJg();
-  }else{
-    vtkmodel.selectNoting();
-  }//节点图形
-  vtkmodel.clearpipsite();//清除选择巷道的位置
+  }
+  //节点图形
+  vtkmodel.clearpipfan();//清除选择巷道的位置
+  vtkmodel.clearpipdoor();
+  vtkmodel.selectNoting();
   dialogtrue.value.timintclaer();
   sdialog.value.fjdialog=false
 }
@@ -703,6 +717,14 @@ const pipelineapi = (row) => {
     console.log(row);
     pid.value = row.id;
     source.value.selectstr = row.name;
+
+    vtkmodel.selectByPipeId(row.id);
+    if(opendialogname === "fj"){
+      vtkmodel.addpipfan(row.id, source.value.site|| 0.0);
+    }else {
+      vtkmodel.addpipdoor(row.id, source.value.site|| 0.0);
+    }
+    
 }
 
 //风机加载
@@ -802,11 +824,11 @@ const fjclick=()=>{
     source.value.selectstr='';
     pid.value='';
     source.value.site=='';
-    vtkmodel.clearJgAddMode() ;
-  vtkmodel.selectPipes();
-  dialogtrue.value.jgSelect();
+
+    vtkmodel.clearJgAddMode();
+    vtkmodel.delAll();
 }
-// 风的修改
+// 风的修改
 const xiugaiclick=()=>{
   zhtext.value='修改';
   if (JSON.stringify(handobj.value) == "{}"|| currentrow.value==false) {
@@ -823,10 +845,11 @@ const xiugaiclick=()=>{
     source.value.site=handobj.value.site;
     pid.value=handobj.value.pid;
     source.value.site==handobj.value.site;
-    vtkmodel.clearJgAddMode() ;
-  vtkmodel.selectPipes();
-  dialogtrue.value.jgSelect();
 
+    vtkmodel.clearJgAddMode();
+    vtkmodel.delAll();
+    vtkmodel.selectByPipeId(pid.value);
+    vtkmodel.addpipfan(pid.value, source.value.site|| 0.0);
   }
 }
 //风机删除
@@ -882,9 +905,20 @@ const deletefun=()=>{
 const inputnuberChange = (number) => {
     source.value.site=number;
     dsite.value=number;
- dialogtrue.value.jgSelenum();
+    dialogtrue.value.jgSelenum();
+    
+    vtkmodel.addpipfan(pid.value,number)
+    
+}
 
+const inputnuberChange1 = (number) => {
+    source.value.site=number;
+    dsite.value=number;
+    dialogtrue.value.jgSelenum();
+   
+    vtkmodel.addpipdoor(pid.value,number)
 }
+
 const handleSwitchChange=(value)=> {
     fjobj.value.onoff=value;
     }
@@ -903,7 +937,7 @@ const getrequest=()=>{
   request(params)
     .then((res) => {
         console.log(res)
-        vtkmodel.delpump();
+        vtkmodel.delfan();
         fjtableData.value=res.rows;
         currentrow.value=false;
         console.log( currentrow.value);
@@ -969,7 +1003,7 @@ const fmrequest=()=>{
   };
   request(params)
     .then((res) => {
-      vtkmodel.delpump();
+      vtkmodel.deldoor();
         fmtableData.value=res.rows;
         currentrow.value=false;
     })
@@ -1073,9 +1107,10 @@ const fmrequest=()=>{
     source.value.site=null;
     source.value.selectstr='';
     pid.value=null;
-    vtkmodel.clearJgAddMode() ;
-  vtkmodel.selectPipes();
-  dialogtrue.value.jgSelect();
+
+
+    vtkmodel.clearJgAddMode();
+    vtkmodel.delAll();
 
   }
   //风门的修改
@@ -1095,9 +1130,12 @@ const fmrequest=()=>{
     source.value.site=handobjfm.value.site;
     pid.value=handobjfm.value.pid;
     source.value.site==handobjfm.value.site;
-    vtkmodel.clearJgAddMode() ;
-    vtkmodel.selectPipes();
-    dialogtrue.value.jgSelect();
+
+
+    vtkmodel.clearJgAddMode();
+    vtkmodel.delAll();
+    vtkmodel.selectByPipeId(pid.value);
+    vtkmodel.addpipdoor(pid.value, source.value.site|| 0.0);
 
   }
   }
@@ -1175,12 +1213,19 @@ const fun3D = () => {
     vtkmodel.selectNoting();
   }
   dialogtrue.value.timintclaer();
-  vtkmodel.clearpipsite();//清除选择巷道的位置
+  vtkmodel.clearpipdoor();//清除选择巷道的位置
+  vtkmodel.clearpipfan();
 }
 const Dtext=(val)=>{
-  console.log(val);
+  console.log('dayin',val);
+  console.log('opendialogname',opendialogname);
   source.value.selectstr=val.name;
   pid.value=val.id;
+  if(opendialogname === "fj"){
+    vtkmodel.addpipfan(pid.value, source.value.site|| 0.0);
+  }else {
+    vtkmodel.addpipdoor(pid.value, source.value.site|| 0.0);
+  }
 }
 defineExpose({getquery,initisshow});
 </script>

+ 12 - 3
src/view/components/Menupump.vue

@@ -576,6 +576,8 @@ const addsg = () => {
   currentrow.value = false
   addVisible.value = true
   tableobj.value = {}
+
+  vtkmodel.delAll();
 }
 // 添加修改的接口
 const addEied = () => {
@@ -616,6 +618,13 @@ const amend = () => {
   } else {
     senobj.value = tableobj.value
     addVisible.value = true
+
+    // console.log("tableobj.value",tableobj.value)
+    vtkmodel.delAll();
+    vtkmodel.clearJgAddMode();
+    //选中指定管道
+    vtkmodel.selectByPipeId(tableobj.value.pid);
+    vtkmodel.addpipPump(tableobj.value.pid, tableobj.value.site);
   }
 }
 // 巷道方法
@@ -635,16 +644,16 @@ const pipelineapi = (row) => {
   vtkmodel.clearJgAddMode();
     //选中指定管道
     vtkmodel.selectByPipeId(row.id);
-    vtkmodel.addpipsite(row.id, 0.0);
+    vtkmodel.addpipPump(row.id, 0.0);
 }
 
 const inputnumberChange = (val) => {
   console.log("tableobj.value",tableobj.value)
-  vtkmodel.addpipsite(tableobj.value.pid, val);
+  vtkmodel.addpipPump(tableobj.value.pid, val);
 }
 
 const clearvtk = () => {
-  vtkmodel.clearpipsite();
+  vtkmodel.clearpipPump();
   vtkmodel.selectNoting();
 }
 defineExpose({ sendialogVisible })

+ 13 - 8
src/view/components/Menuventdoor.vue

@@ -234,7 +234,7 @@ const fmtabxz=(val)=>{
   fmObj.value = val;
   currentrow.value = true
   vtkmodel.delAll();
-  vtkmodel.addpump(val.pid,val.site);
+  vtkmodel.adddoor(val.pid,val.site);
 }
 const fmupdate=()=>{
   if (JSON.stringify(fmObj.value) == "{}") {
@@ -242,6 +242,12 @@ const fmupdate=()=>{
   }else{
     tishi.value = "修改";
     fmDShow.value = true;
+
+    vtkmodel.delAll();
+    vtkmodel.clearJgAddMode();
+    //选中指定管道
+    vtkmodel.selectByPipeId(fmObj.value.pid);
+    vtkmodel.addpipdoor(fmObj.value.pid, fmObj.value.site);
   }
 }
 const fmadd=()=>{
@@ -249,6 +255,8 @@ const fmadd=()=>{
   fmObj.value={};
   currentrow.value = false;
   fmDShow.value = true;
+
+  vtkmodel.delAll();
 }
 
 const fmsave=()=>{
@@ -329,29 +337,26 @@ const fireclick = () => {
 
 }
 
-const tableobj = ref({});
-
 //点击确定
 const pipelineapi = (row) => {
   fmObj.value.pid = row.id
   fmObj.value.pcode = row.code
   fmObj.value.pname = row.name
 
-  tableobj.value.pid = row.id;
   vtkmodel.clearJgAddMode();
   //选中指定管道
   vtkmodel.selectByPipeId(row.id);
-  vtkmodel.addpipsite(row.id, 0.0);
+  vtkmodel.addpipdoor(row.id, 0.0);
 }
 
 
 const inputnumberChange = (val) => {
-  console.log("tableobj.value",tableobj.value)
-  vtkmodel.addpipsite(tableobj.value.pid, val);
+  console.log("fmObj.value",fmObj.value)
+  vtkmodel.addpipdoor(fmObj.value.pid, val);
 }
 
 const clearvtk = () => {
-  vtkmodel.clearpipsite();
+  vtkmodel.clearpipdoor();
   vtkmodel.selectNoting();
 }
 defineExpose({ sendialogVisible })

+ 13 - 8
src/view/components/Menuventfan.vue

@@ -228,13 +228,11 @@ let femObjs=ref([]);
 let femObj= ref({});
 let tishi = ref();
 
-let tableobj = ref({});
-
 const femtabxz=(val)=>{
   femObj.value = val;
   currentrow.value = true
   vtkmodel.delAll();
-  vtkmodel.addpump(val.pid,val.site);
+  vtkmodel.addfan(val.pid,val.site);
 }
 const femupdate=()=>{
   if (JSON.stringify(femObj.value) == "{}") {
@@ -242,6 +240,12 @@ const femupdate=()=>{
   }else{
     tishi.value = "修改";
     femDShow.value = true;
+
+    vtkmodel.delAll();
+    vtkmodel.clearJgAddMode();
+    //选中指定管道
+    vtkmodel.selectByPipeId(femObj.value.pid);
+    vtkmodel.addpipfan(femObj.value.pid, femObj.value.site);
   }
 }
 const femadd=()=>{
@@ -249,6 +253,8 @@ const femadd=()=>{
   femObj.value={};
   currentrow.value = false;
   femDShow.value = true;
+
+  vtkmodel.delAll();
 }
 
 const femsave=()=>{
@@ -341,20 +347,19 @@ const pipelineapi = (row) => {
   femObj.value.pcode = row.code
   femObj.value.pname = row.name
 
-  tableobj.value.pid = row.id;
   vtkmodel.clearJgAddMode();
   //选中指定管道
   vtkmodel.selectByPipeId(row.id);
-  vtkmodel.addpipsite(row.id, 0.0);
+  vtkmodel.addpipfan(row.id, 0.0);
 }
 
 const inputnumberChange = (val) => {
-  console.log("tableobj.value",tableobj.value)
-  vtkmodel.addpipsite(tableobj.value.pid, val);
+  console.log("femObj.value",femObj.value)
+  vtkmodel.addpipfan(femObj.value.pid, val);
 }
 
 const clearvtk = () => {
-  vtkmodel.clearpipsite();
+  vtkmodel.clearpipfan();
   vtkmodel.selectNoting();
 }
 

+ 1 - 2
src/view/components/SetPipe.vue

@@ -181,7 +181,6 @@ function jgSelenum(){
   if(selectObj.value==null){
 }else{
  msg.value=selectObj.value;
- vtkmodel.addpipsite(selectObj.value.id,props.site);
 }
 
 }
@@ -201,7 +200,7 @@ function jgSelect(){
                     };
                     });
    msg.value=arrobj[0];
-   vtkmodel.addpipsite(selectObj.value.id,props.site);
+   
 }
    }, 800);
 }

Файловите разлики са ограничени, защото са твърде много
+ 392 - 413
src/view/index/first-left.vue


+ 77 - 94
src/view/index/htmldialog.vue

@@ -1,30 +1,19 @@
 <template>
   <!-- 加载html界面 -->
   <div v-show="htmldialogshow" class="htmlclass">
-    <el-dialog
-      width="200px"
-      v-model="htmldialogshow"
-      :modal="false"
-      :style="{ left:X}"
-      ref="dialogRef"
-      :top="Y"
-      :close-on-click-modal="false"
-      :append-to-body="true"
-      draggable
-      modal-class="summary-dlg"
-      @close="closeDialog"
-      class=" shubiao log_cla22 tianjia asideg asidegbg leftbgimg1"
-    >
+    <el-dialog width="250px" v-model="htmldialogshow" :modal="false" :style="{ left: X }" ref="dialogRef" :top="Y"
+      :close-on-click-modal="false" :append-to-body="true" draggable modal-class="summary-dlg" @close="closeDialog"
+      class=" shubiao log_cla22 tianjia asideg asidegbg leftbgimg1">
       <template #header="{ titleId, titleClass }">
         <div class="my-header">
           <h4 class="telet" :id="titleId" :class="titleClass">3D选点</h4>
         </div>
       </template>
-      <div class="htmlclass_content" v-for="(item, i) in msgval" :key="i">
-        <span class="htmlclass_txte" style="width: 120px; display: inline-block">{{
+      <div class="htmlclass_content" v-for="(item, i) in msgval" :key="i" style="display: flex;">
+        <span class="htmlclass_txte" style="width: 200px;">{{
           item.name
         }}</span>
-        <span class="htmlclass_txte">{{ item.value }}</span>
+        <span class="htmlclass_txte" style="width: 100%;text-align: left;">{{ item.value }}</span>
         <!-- <p class="htmlclass_txte">水位:{{ item.value }}</p> -->
       </div>
       <div class="dialog-footer footer_div l_btn">
@@ -41,44 +30,34 @@
             >
           </div>
         </div> -->
-       
+
         <div class="footerbtn flex1">
           <div class="borderimg">
-            <el-button @click="tiaozhuan('1')"> 内部查看</el-button
-            >
+            <el-button @click="tiaozhuan('1')"> 内部查看</el-button>
           </div>
         </div>
         <div class="footerbtn flex1">
           <div class="borderimg">
-            <el-button @click="tiaozhuan('0')"> 外部查看</el-button
-            >
+            <el-button @click="tiaozhuan('0')"> 外部查看</el-button>
           </div>
         </div>
       </div>
-     
+
     </el-dialog>
   </div>
-  <el-dialog
-      width="54%"
-      v-model="iframeshow"
-      :modal="false"
-      align-center
-      :close-on-click-modal="false"
-      :append-to-body="true"
-      draggable
-      modal-class="summary-dlg"
-      class=" log_class bgcolor tianjia asideg asidegbg leftbgimg"
-    >
-      <template #header="{ titleId, titleClass }">
-        <div class="my-header">
-          <h4 class="telet" :id="titleId" :class="titleClass">局部</h4>
-        </div>
-      </template>
-      <div>
-        <!-- <iframe :src="ifr" width="100%" height="630px" frameborder="0"></iframe> -->
-        <homeindex :water="water" :fire="fire" :neiw="neiw" :classradio="props.classradio" />
+  <el-dialog width="54%" v-model="iframeshow" :modal="false" align-center :close-on-click-modal="false"
+    :append-to-body="true" draggable modal-class="summary-dlg"
+    class=" log_class bgcolor tianjia asideg asidegbg leftbgimg">
+    <template #header="{ titleId, titleClass }">
+      <div class="my-header">
+        <h4 class="telet" :id="titleId" :class="titleClass">局部</h4>
       </div>
-    </el-dialog>
+    </template>
+    <div>
+      <!-- <iframe :src="ifr" width="100%" height="630px" frameborder="0"></iframe> -->
+      <homeindex :water="water" :fire="fire" :neiw="neiw" :classradio="props.classradio" />
+    </div>
+  </el-dialog>
 </template>
 <script setup>
 import { ref, onMounted, reactive } from "vue";
@@ -95,71 +74,75 @@ let htmldialogshow = ref(false);
 let msgval = ref([]);
 let water = ref();
 let fire = ref();
-let dialogRef=ref()
-let iframeshow=ref(false);
-let ifr=ref();
-let X=ref(null);
-let Y=ref(null);
-let neiw=ref();
+let dialogRef = ref()
+let iframeshow = ref(false);
+let ifr = ref();
+let X = ref(null);
+let Y = ref(null);
+let neiw = ref();
 const props = defineProps({
   isshow: {
     type: Boolean,
     // required: true,
   },
   classradio: {
-  type: String,
-  // default: '',activeIndex
-},
+    type: String,
+    // default: '',activeIndex
+  },
 });
 
-let jghrfe=ref();
-let jghrfe2=ref();
+let jghrfe = ref();
+let jghrfe2 = ref();
 let url;
 const getdatahtml = (val) => {
-  console.log(val);
-  const obj2 = { 
-      "Temperature": "温度(℃)", 
-      "Pressure": "压强(Pa)",
-      'CO':'一氧化碳(ppm)',
-      "CO2": "二氧化碳(%)", 
-      "HCL": "氯化氢((ppm))",
-      'NO2':'二氧化氮(ppm)',
-      "SO2": "二氧化硫(ppm)", 
-      "H2S": "硫化氢(%)",
-      "Flow":"流量(m³/s)",
-      "Height":"水深(m)",
-      "CH4":"甲烷(ppm)",
-      };
-  if(props.classradio=='Water'){
+  console.log('打印',val);
+  const obj2 = {
+    "Temperature": "温度(℃)",
+    "Pressure": "压强(Pa)",
+    'CO': '一氧化碳(ppm)',
+    "CO2": "二氧化碳(%)",
+    "HCL": "氯化氢((ppm))",
+    'NO2': '二氧化氮(ppm)',
+    "SO2": "二氧化硫(ppm)",
+    "H2S": "硫化氢(%)",
+    "Flow": "流量(m³/s)",
+    "Height": "水深(m)",
+    "CH4": "甲烷(ppm)",
+    "X:": "X:",
+    "Y:": "Y:",
+    "Z:": "Z:"
+
+  };
+  if (props.classradio == 'Water') {
     water.value = Number(val[0].value) / 4;
     val.map((item) => {
-          item.name=obj2[item.name]
-        item.value = item.value.toFixed(2);
+      item.name = obj2[item.name]
+      item.value = item.value.toFixed(2);
     })
-  jghrfe=url+"static/index.html?camera=1&water="+ water.value;
-  jghrfe2=url+"static/index.html?camera=0&water="+ water.value;
-  msgval.value = val;
-  }else if(props.classradio=='Fire'||props.classradio=='Gass'||props.classradio=='Gass1'){
-          val.map((item) => {
-          item.name=obj2[item.name]
-        item.value = item.value.toFixed(2);
+    jghrfe = url + "static/index.html?camera=1&water=" + water.value;
+    jghrfe2 = url + "static/index.html?camera=0&water=" + water.value;
+    msgval.value = val;
+  } else if (props.classradio == 'Fire' || props.classradio == 'Gass' || props.classradio == 'Gass1') {
+    val.map((item) => {
+      item.name = obj2[item.name]
+      item.value = item.value.toFixed(2);
     })
 
-    fire.value=Number(val[0].value);
-    msgval.value = val;  
-  }else{
+    fire.value = Number(val[0].value);
+    msgval.value = val;
+  } else {
   }
 
 };
 const tiaozhuan = (val) => {
-  neiw.value=val;
-  if(val=='1'){
-    ifr.value=jghrfe;
- 
-  }else{
-    ifr.value=jghrfe2;
+  neiw.value = val;
+  if (val == '1') {
+    ifr.value = jghrfe;
+
+  } else {
+    ifr.value = jghrfe2;
   }
-  iframeshow.value=true;
+  iframeshow.value = true;
 
 }
 const closeDialog = () => {
@@ -168,7 +151,7 @@ const closeDialog = () => {
 
 };
 onMounted(() => {
-  url =window.location.href.replace("#/","");
+  url = window.location.href.replace("#/", "");
   // arrowtimeStart();
 });
 
@@ -182,22 +165,22 @@ watch(
 
     } else {
       htmldialogshow.value = false;
-      iframeshow.value=false;
+      iframeshow.value = false;
       console.log(2222)
     }
   },
   { deep: true }
 ); //深度监视
-defineExpose({ getdatahtml,X,Y});
+defineExpose({ getdatahtml, X, Y });
 </script>
-<style >
-.shubiao{
+<style>
+.shubiao {
   width: 219px;
   /* background: linear-gradient( 270deg, rgba(201,0,0,0) 0%, #CCDDFF 0%, #90B6FF 38%, #105CF0 65%, #105CF0 100%);
 border-radius: 0px 0px 0px 0px;
 border: 1px solid;
 border-image: linear-gradient(324deg, rgba(16, 92, 240, 1), rgba(255, 252, 252, 1)) 1 1; */
-background:rgba(0, 0, 0, 0.5);
+  background: rgba(0, 0, 0, 0.5);
   /* background-image: url(../../assets/img/Group1241.png) !important;
    background-position: center;
 background-size: 100% 100%;

Някои файлове не бяха показани, защото твърде много файлове са промени