liuqiao 2 éve
szülő
commit
07bb3e5798

+ 2 - 8
src/views/index/FEMLab/fem.vue

@@ -2584,19 +2584,13 @@ this.init();
                }else{
                  this.$emit("exlodingfalse",false)
                }
-               console.log(this.parameterObj);
-               console.log(this.parameterObj.dynamic.value);
       if(this.parameterObj.f_static.value==true){
         this.fenxval='0';
-           console.log(this.parameterObj.f_static.value);
-      }else if(this.parameterObj.eigenv.value=true){
-               console.log(this.parameterObj.eigenv.value);
+      }else if(this.parameterObj.eigenv.value==true){
           this.fenxval='1';
-      }else if(this.parameterObj.dynamic.value=true){
-               console.log(this.parameterObj.dynamic.value);
+      }else if(this.parameterObj.dynamic.value==true){
         this.fenxval='3';
       }
-      console.log(this.fenxval);
       this.changestleixing(this.fenxval);
     },
        async femRun() {

+ 6 - 2
src/views/index/HCFDLab/TFileStream.vue

@@ -41,11 +41,15 @@ export default {
     mounted(){
     },
     methods:{
-      fetchData(imgs) {
+      fetchData(imgs,num) {
+        if(num=='1'){
+          console.log(1111)
+        this.imgsrc = imgs;
         
+        }else{
       this.loadingend(this.loadingopen());
      this.imgsrc = imgs;
-     
+     }
       },
       //开起loading
 loadingopen(){

+ 185 - 57
src/views/index/HCFDLab/index.vue

@@ -2351,20 +2351,24 @@
          <div class='selecttype'>
         <span class="texttype">zoom</span>
           <ul style="padding:0">
-      <li v-for="(item,key) in animationobj.zoomarr" :key="key">
-          <el-checkbox-group v-model="checkList"  @change="zoomList">
-        <span  class="zoomclass">{{item}}</span>
-          <el-checkbox :label="item"  :key="item" >hide</el-checkbox>
+            <li>
+          <el-checkbox-group v-model="checkList"  >
+          <el-checkbox v-for="(item,key) in animationobj.zoomarr" @change="zoomList(item,key)" :key="key" :label="item"  >{{item}}</el-checkbox>
             </el-checkbox-group>
-      </li>
+       
+        </li>
     </ul>
-      </div>
+     </div>
           <div class="yiinpu loadclass" >
-             <el-button plain class="anniu">Load</el-button>
-             <el-progress :percentage="50" :stroke-width="5" ></el-progress>
+             <el-button plain class="anniu" @click="loadonclick()">Load</el-button>
+             <el-progress   :percentage="percentage"  v-if="!isNaN(parseInt(percentage))" :stroke-width="5" ></el-progress>
  </div>
        </div> 
+       <div class="line">
+      <div class="linetext">通用场景</div>
+    </div> 
        <el-form-item label="第一步" :label-width="formLabelWidth2" >
+          <el-input v-model="animationobj.firststep" autocomplete="off"></el-input>
       </el-form-item>
           <el-form-item label="最后一步" :label-width="formLabelWidth2" >
       <el-input v-model="animationobj.laststep" autocomplete="off"></el-input>
@@ -2372,6 +2376,22 @@
           <el-form-item label="当前步" :label-width="formLabelWidth2" >
       <el-input  v-model="animationobj.currentstep" autocomplete="off"></el-input>
       </el-form-item>
+      <!-- <animation  :animationobj='animationobj'  :solverConfigid="solverConfigid"  :action="animaval"></animation> -->
+        <div class="block1" style="dispaly:flex">
+        <div class="listbtn"> 
+       <el-button plain class="anniu" @click="lowclick()">low</el-button>
+         <el-slider :max='1000' v-model.number="value1" style="width:50%;margin: 0 10px 0 15px;"></el-slider>
+        <el-button plain class="anniu" @click="Quickclick()">Quick</el-button>
+      </div>
+        <div class="listbtn anbtn"> 
+       <el-button plain class="anniu" @click="Startclick()">Start</el-button>
+        <el-button plain class="anniu" @click="Lastclick()">Last</el-button>
+        <el-button plain class="anniu" @click="Playstop()">Play/stop</el-button>
+        <el-button plain class="anniu" @click="Nextclick()">Next</el-button>
+        <el-button plain class="anniu" @click="Endclick()">End</el-button>
+       
+      </div>
+  </div>
       <!-- <div class="timeanmiantion">
         <ul>
         <li>Time<span>1</span></li>
@@ -2391,41 +2411,7 @@
    
         </ul>
       </div> -->
-<div class="line">
-      <div class="linetext">通用场景</div>
-    </div> 
-     <div class="block1" style="dispaly:flex">
-        <div class="listbtn"> 
-       <el-button plain class="anniu">low</el-button>
-         <el-slider v-model="value1" style="width:50%;margin: 0 10px 0 15px;"></el-slider>
-        <el-button plain class="anniu">Quick</el-button>
-      </div>
-        <div class="listbtn anbtn"> 
-       <el-button plain class="anniu">Start</el-button>
-        <el-button plain class="anniu">Last</el-button>
-        <el-button plain class="anniu">Play/stop</el-button>
-          <el-button plain class="anniu">Next</el-button>
-            <el-button plain class="anniu">End</el-button>
-       
-      </div>
-      <div class="anbtn1">
-        <div class="yiinpu">
-    <el-form-item label="Interral" :label-width="formLabelWidth5">
-      <el-input v-model="form.name" autocomplete="off"></el-input>
-         <el-button plain class="anniu">Edit</el-button>
-          <el-button plain class="anniu">apply</el-button>
-    </el-form-item>
- </div>
-         <div class="yiinpu">
-    <el-form-item label="Scale Factor" :label-width="formLabelWidth5">
-      <el-input v-model="form.name" autocomplete="off"></el-input>
-         <el-button plain class="anniu">apply</el-button>
-    </el-form-item>
- </div>
- </div>
-     
-  
-  </div>
+
  </div> 
   </el-form>
   <div slot="footer" class="dialog-footer">
@@ -2796,9 +2782,9 @@ import loading from "./loading.vue";
 import transformtool from "./loads/transformtool.vue";
 import echartsHFCD from "./echartsHFCD.vue";
 import Addtabs from './addtabs.vue'
-
+import animation from "../compoents/animation.vue";
 export default {
-    components:{geometry,meshindex,  vueUploader,
+    components:{geometry,meshindex,  vueUploader,animation,
     filesload,
     loading,
     UgridLoad,
@@ -2833,6 +2819,7 @@ export default {
 
   data() {
     return {
+      numan:0,
     checkList:[],
       // 云图参数
          Stepe:'',//步数
@@ -2847,6 +2834,9 @@ export default {
         nameTypes:'',
         scalarmax:'',
      },
+    percentage:0,
+     animationType:'',
+     hideZones:'',
      checkList:[],
      animationobj:{
         firststep:'',
@@ -3020,10 +3010,10 @@ export default {
             // {icon:t5, titlie:'并行类型'}, 
         ],
         classlist:[
-             {val:'0', titlie:' 轮廓显示'},
-             {val:'1', titlie:'线'},
-             {val:'2', titlie:'矢量'},
-             {val:'3', titlie:'实体表面'},
+             {val:'ContourDisplay', titlie:' 轮廓显示'},
+             {val:'LineDisplay', titlie:'线'},
+             {val:'VectorDisplay', titlie:'矢量'},
+             {val:'SolidSurfaceDisplay', titlie:'实体表面'},
         ],
         animaval:'',
         meshlist:[
@@ -3622,6 +3612,7 @@ export default {
    },
  mounted() {
      this.init();
+
   },    
 watch:{        
 },
@@ -3977,6 +3968,9 @@ bStepok(action,index,paramJson){
         dataW:this.vector.w,
         scaleFactor:this.vectorobj.scaleFactor,
         index:index,
+        animationType:this.animationType,
+        hideZones:this.hideZones,
+
 
         }
         request(params)
@@ -4049,9 +4043,17 @@ vectordata(data){
         console.log( this.animationobj.zoomarr);
   },
 //拿到勾选数据
-zoomList(val){
-  console.log(this.checked);
+zoomList(data,index){
+  console.log(this.checkList)
+  console.log(data+index);
 
+},
+// 动画
+loadonclick(){
+//   console.log(this.paramJson);
+// console.log(this.animationType);
+this.hideZones=(this.checkList).toString()
+this.bStepok("animation",'','')
 },
 // 矢量的OK按钮
 vectorOK(){
@@ -4275,6 +4277,7 @@ this.styX.left=e.clientX+'px';
         this.dialog.Stream_Surface= true;
        break;
         case 'five9-0':
+            this.value1=Number(this.animationobj.currentstep);  
         this.dialog.an_Animation = true;
        break;
         case 'five10-0':
@@ -4287,22 +4290,24 @@ this.styX.left=e.clientX+'px';
 
   },
   animationclick(val){
+    this.percentage=0;
     console.log(val);
+    this.animationType=val;
     switch(val){
-       case '0':
+       case 'ContourDisplay':
          
         this.active='five7-0';
         this.dialog.contour_visiable = true;
       break;
-       case '1':
+       case 'LineDisplay':
           this.active='five7-1';
         this.dialog.Line_visiable = true;
       break;
-       case '2':
+       case 'VectorDisplay':
            this.active='five7-2';
        this.dialog.Vector_visiable = true;
       break;
-       case '3':
+       case 'SolidSurfaceDisplay':
          this.active='five8-0';
          this.dialog.Solid_Surface = true;
       break;
@@ -4545,6 +4550,8 @@ bStepChange(val){
     this.animationobj.firststep= this.boundaryStep[0];
     this.animationobj.laststep= this.boundaryStep[this.boundaryStep.length -1];
     this.animationobj.currentstep=this.bStep;   
+    
+
 },
 //选择step
 vStepChange(val){
@@ -5045,7 +5052,7 @@ if(val==true){
           })
     },
     changest(val){
-console.log(111)
+
     },
     // 查看已经中的
         resourcelook(){
@@ -5093,7 +5100,128 @@ console.log(111)
           this.openshow=true;
         }
         },
-
+//动画
+  // 循环步数
+    
+        // 动画的开始
+        Startclick(){
+          let that=this;
+            this.value1= Number(this.animationobj.currentstep);
+              this.timesleep(1000)
+        },
+      timesleep(time){
+          const sleep = (timeout= time)=>new Promise( (resolve, reject)=>{
+                    setTimeout (resolve, timeout);
+                    });
+              let timer = async(timeout) => {
+              for(let i=0;i<=this.boundaryStep.length-1;i++){
+              await sleep(time);
+              this.jiekou(this.boundaryStep[i]);
+              }
+              }
+              timer(time);
+      },
+        //Low/2
+   lowclick(){
+             this.timesleep(3000)
+   },
+   Quickclick(){
+       this.timesleep(500)
+ 
+   },
+  //上一个
+  Lastclick(){
+     let startstep=Number(this.animationobj.firststep)
+    if(this.value1<=startstep){
+   Message({
+            type: "warning",
+            message: "已经是最开始一张",
+          });
+    }else{
+     
+  this.animationobj.currentstep= (this.value1)-100;
+  console.log( this.animationobj.currentstep);
+  this.jiekou( this.animationobj.currentstep); 
+    }
+   
+  },
+  // 下一个
+  Nextclick(){
+    let  laststep=Number(this.animationobj.laststep)
+    if(this.value1>=laststep){
+   Message({
+            type: "warning",
+            message: "已经是最后一张",
+          });
+    }else{
+  this.animationobj.currentstep= (this.value1)+100;
+  console.log( this.animationobj.currentstep);
+  this.jiekou( this.animationobj.currentstep); 
+    }
+  },
+  // 点击一下循环,再点击一下停止备注记录长度在循环
+    Playstop(){
+      console.log(1111);
+     this.numan++;
+        let flag = true;
+           this.value1= Number(this.animationobj.currentstep);
+          const sleep = (timeout= 4000)=>new Promise( (resolve, reject)=>{
+                    setTimeout (resolve, timeout);
+                    });
+                    console.log(this.value1+''+typeof this.value1)
+              let timer = async(timeout) => {
+              for(let i=this.value1;i<=this.boundaryStep.length-1;i++){
+                if(this.numan%2==0){
+                   
+                      this.jiekou(this.boundaryStep[i]);
+                    console.log("点击开始")
+                       
+                }else{
+                 flag = true;
+                 this.value1=Number(this.animationobj.currentstep);
+                  console.log("点击结束")
+                       break;
+                   console.log("点击结束")
+                }
+              await sleep(4000);
+          
+              }
+              }
+              timer(4000);
+         // this.numan++;
+        // if(this.numan%2==0){
+              
+        //      console.log("点击结束")
+        // }else{
+        //       console.log("点击开始")
+          
+        // }
+    },
+  // 最后一张
+  Endclick(){
+  this.jiekou(this.animationobj.laststep); 
+  },
+  // 接口
+      jiekou(step){
+            this.value1=Number(step);
+              let that=this;
+             this.animationobj.currentstep=step+'';
+        let params = {
+            transCode: "AFT003",// 服务器渲染实例接口创建推流
+            pid:this.project.projectId,
+            solverConfigId: this.solverConfigid,
+            animationType:this.animaval,
+            step:step,
+          };
+          this.loading = true;
+          request(params)
+            .then((res) => {
+              console.log(res)
+              this.$parent.chaild(res.img);
+            })
+            .catch((err) => {
+            }); 
+      },
  
 
       }

+ 8 - 3
src/views/index/compoents/TFileStreamhcfd.vue

@@ -34,10 +34,15 @@ export default {
     mounted(){
     },
     methods:{
-      fetchData(imgs) {
-      this.loadingend(this.loadingopen());
-      
+      fetchData(imgs,num) {
+         if(num=='1'){
+          this.imgsrc = imgs;
+        
+        }else{
+         this.loadingend(this.loadingopen());
           this.imgsrc = imgs.img;
+     }
+     
       
      
       },

+ 20 - 12
src/views/index/index.vue

@@ -7,7 +7,7 @@
                     
              </div> -->
         <div v-if="value2=='HCFDLab'">
-        <hcfd ref="hcfd" :objopp="objopp" :ytdata="ytdata" :vectorparam="vectorparam" :pid="pid" @fun="fun()" @changelines="changelines()" @linezhexian="linezhexian()" :elodingfalse="elodingfalse" @exlodingfalse="exlodingfalse" :femnum="femnum"></hcfd>
+        <hcfd ref="hcfd" :objopp="objopp" :ytdata="ytdata" :vectorparam="vectorparam" :pid="pid" @fun="fun()" @chaild='chaild()' @changelines="changelines()" @linezhexian="linezhexian()" :elodingfalse="elodingfalse" @exlodingfalse="exlodingfalse" :femnum="femnum"></hcfd>
         </div>
           <div v-else-if="value2=='FEMLab(结构力学)'">
         <fem ref="fem" :femnum="femnum" :logs='logs' @getthislog='getthislog' :pid="pid" @exlodingfalse="exlodingfalse" ></fem>
@@ -402,7 +402,6 @@ beforeDestroy() {
 destroyed() { 
   this.websock.close()
   //this.websock=null;
-    console.log("销毁了")
     //console.log( this.websock.close());
   // 清除时间
   clearTimeout(this.timeoutObj)
@@ -413,6 +412,11 @@ mounted(){
       this.classH2 = 'custome-' + curcolor;
 },
 methods:{
+  // 子组件调用子组件的方法
+  chaild(img){
+ 
+     this.$refs.TFileStream.fetchData(img,'1');
+  },
   //折线图
 changelines(val){
     let _this=this;
@@ -754,7 +758,6 @@ reconnect(){
         self.timeoutObj&&clearTimeout(self.timeoutObj);
         self.serverTimeoutObj&&clearTimeout(self.serverTimeoutObj);
         self.timeoutObj = setTimeout(function(){
-          console.log(self.websock.readyState);
           //这里发送一个心跳,后端收到后,返回一个心跳消息
           if(self.websock.readyState==1){//如果连接正常
                 self.websock.send("heartCheck");
@@ -792,19 +795,24 @@ reconnect(){
       },
       websocketonmessage(e){ //数据接收
       console.log(e);
-        
             this.reset();
-            let data=e.data;
-            if(data.indexOf("heartCheck") != -1){
+            try{
+            let eadata=e.data;
+            if(eadata.indexOf("heartCheck") != -1){
+            }else if(JSON.parse(e.data).action=='animation'){;
+             let rdata=JSON.parse(e.data)
+            let srtpnum=(Number(rdata.step))/10
+               this.$refs.hcfd.percentage=srtpnum;
+
             }else{
                  this.loadingopen();
-        try{
-             let eadata=e.data
+       
+            //  let eadata=e.data
              var rdata=JSON.parse(e.data)
            if(rdata.hasOwnProperty("img")){
             this.loadingopen();
            this.$refs.TFileStream.imgtupian=true;
-          this.$refs.TFileStream.fetchData(rdata);
+          this.$refs.TFileStream.fetchData(rdata,null);
           this.$refs.monitor.container_show=false;
            }
           // HCFD云图的参数返回 存储
@@ -909,12 +917,12 @@ reconnect(){
          console.log(rdataparamJson);
        }
         return true;       
-        }catch(error){
+        }
+                       
+            }catch(error){
         this.loadingend(this.loadingopen());
           return false;
         }
-                       
-            }
       },
       websocketsend(Data){//数据发送
         this.websock.send(Data);