liuqiao пре 2 година
родитељ
комит
7597c768ef

+ 165 - 0
src/views/index/FEMLab/addtabs.vue

@@ -0,0 +1,165 @@
+<template>
+<div>
+     <div class='selecttype'>
+        <span class="texttype">切片</span>
+        <el-form-item label="面积_范围" :label-width="formLabelWidth2" >
+      <el-input v-model="ruleForm.fw"  autocomplete="off"></el-input>
+      </el-form-item>
+      <div class="disflex lheig34 liitem">
+                      <el-checkbox-group v-model="ruleForm.slicecheck" style="display:flex">
+                        <el-checkbox
+                          label="Solid"
+                          @change="ContourvalVolume()"
+                        ></el-checkbox>
+                        <el-checkbox
+                          label="Sectional plane"
+                          @change="ContourvalVolume()"
+                        ></el-checkbox>
+                      </el-checkbox-group>
+                    </div>  
+          <div class="line">
+      <div class="linetext">正常值</div>
+    </div> 
+     <el-form-item label="X" :label-width="formLabelWidth4" >
+      <el-input v-model="ruleForm.sx" autocomplete="off"></el-input>
+      </el-form-item>
+           <el-form-item label="Y" :label-width="formLabelWidth4" >
+      <el-input v-model="ruleForm.sy" autocomplete="off"></el-input>
+      </el-form-item>
+           <el-form-item label="Z" :label-width="formLabelWidth4" >
+      <el-input v-model="ruleForm.sz" autocomplete="off"></el-input>
+      </el-form-item>
+          <div class="line">
+      <div class="linetext">位置</div>
+    </div> 
+      <div class="yiinpu heigeinput">
+    <el-form-item label="X" :label-width="formLabelWidth4">
+      <el-input v-model="ruleForm.xr" autocomplete="off"></el-input>
+         <span style="width:120px">Xrange:(0,0)</span>
+    </el-form-item>
+ </div>
+  <div class="yiinpu heigeinput">
+    <el-form-item label="Y" :label-width="formLabelWidth4">
+      <el-input v-model="ruleForm.yr" autocomplete="off"></el-input>
+         <span style="width:120px">Yrange:(0,0)</span>
+    </el-form-item>
+ </div>
+  <div class="yiinpu heigeinput">
+    <el-form-item label="Z" :label-width="formLabelWidth4">
+      <el-input v-model="ruleForm.zr" autocomplete="off"></el-input>
+         <span style="width:120px">Zrange:(0,0)</span>
+    </el-form-item>
+ </div>
+      <div class="line">
+      <div class="linetext">位置</div>
+    </div>
+          <el-form-item label="类型" :label-width="formLabelWidth2">
+              <el-select  v-model="ruleForm.con"  placeholder="请选择">
+          <el-option
+            v-for="item in conlist"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+            >
+          </el-option>
+        </el-select>
+        </el-form-item>
+          <el-form-item label="变量名" :label-width="formLabelWidth2">
+              <el-select  v-model="ruleForm.con"  placeholder="请选择">
+          <el-option
+            v-for="item in conlist"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+            >
+          </el-option>
+        </el-select>
+        </el-form-item>
+           <el-form-item label="颜色数量" :label-width="formLabelWidth2">
+          <el-input-number v-model="ruleForm.colorlevel" controls-position="right"  :min="1" :max="10"></el-input-number>
+               </el-form-item>
+               <div class="disflex lheig34 liitem">
+                      <el-checkbox-group v-model="ruleForm.secheck" style="display:flex">
+                        <el-checkbox
+                          label="Sectionalplane"
+                        ></el-checkbox>
+                        <el-checkbox
+                          label="Scalarvalue"
+                        ></el-checkbox>
+                      </el-checkbox-group>
+                    </div> 
+  </div>
+</div>
+</template>
+
+<script>
+export default {
+  props:{
+ ruleForm: {
+          type: Object,
+          default () {
+            return {}
+          }
+        },
+  },
+        data(){
+            return{
+                // ruleForm:{
+                // fw:'1',
+                // slicecheck:'Solid',
+                // sx:'',
+                // sy:'',
+                // sx:'',
+                // rx:'',
+                // yx:'',
+                // zx:'',
+                // con:'0',
+                // colorlevel:'Sectionalplane',
+                // secheck:'',
+                
+                // },
+                  formLabelWidth: '60px',
+                    formLabelWidth2:'73px',
+                    formLabelWidth4:'37px',
+                    formLabelWidth5:'100px',
+                    formLabelWidth6:'120px',
+                    formLabelWidth7:'170px',
+                     conlist:[
+            {value:'0', name: "line" },
+            {value:'1', name: "Contour"},
+          ],
+          con:'0',
+            }
+        }
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/variables.scss';
+@import '@/styles/mixin.scss';
+.selecttype{
+      position: relative;
+      margin: 35px 0 20px 0;
+      border:1px solid;
+      padding:15px;
+.divselect{
+  display:flex;
+  .el-radio{
+        height: 23px;
+    line-height: 23px;
+  }
+}
+
+}
+.texttype{
+  position: absolute;
+    display: inline-block;
+    top: -13px;
+    left: 50%;
+    margin: 0 auto;
+    margin-left: -27px;
+    font-size: 12px;
+    background-color: #fff;
+    padding: 3px 5px;
+}
+</style>

Разлика између датотеке није приказан због своје велике величине
+ 859 - 34
src/views/index/FEMLab/fem.vue


+ 127 - 0
src/views/index/FEMLab/filesload.vue

@@ -0,0 +1,127 @@
+<template>
+     <div></div>
+     <!-- <el-dialog  :visible.sync="visiable"  @close="handleClose">
+      <el-row class="lgcoent">
+        <el-col  class="lgleft" :span="8"> 
+            <div  class="lodingimg">
+              <el-image :src="imggifs" class="img"></el-image></div>
+            <h1 class="loding">Loading... </h1>
+        </el-col> 
+          <el-col :span="16" class="lodgright">
+            <el-row v-for="(fileObj,key) in files" :key="key">
+            <el-col :span="6">{{fileObj.name}} </el-col>
+            <el-col :span="18"><el-progress :percentage="fileObj.percentage"></el-progress></el-col>
+       </el-row>
+          </el-col>     
+        </el-row>
+     </el-dialog> -->
+
+</template>
+<script>
+import { Message, MessageBox } from 'element-ui'
+import imggifs from "@/assets/hcfd_images/loding.gif";
+import * as THREE from 'three'
+let loader = new THREE.FileLoader();
+export default {
+    data(){
+        return {
+            imggifs:imggifs,
+            visiable:false,
+            files:[],
+        }
+    },
+    props:{//传入参数
+        fileurls:Array,
+    },
+    mounted(){
+        this.init();
+    },
+    watch:{
+        files:{
+            handler(newVal) {
+                this.$emit("fileLoadeState",newVal);
+            },
+            deep: true,
+          immediate: false,
+        }     
+           
+    },
+    methods:{
+        init(){
+            let _this =this;
+            if( _this.fileurls === undefined)  return;
+            _this.files=[];
+            _this.fileurls.forEach(url=>{
+                let names =url.split("/");
+                let name =names[names.length-1];
+                let file={
+                    url:url,
+                    name:name,
+                    percentage:0,
+                }
+                _this.files.push(file);
+                loader.load(
+                    url,
+                    _this.loadsucess,
+                    function(xhr){
+                        _this.visiable=true
+                        file.percentage=Math.floor(xhr.loaded / xhr.total * 100)
+                    },
+                )
+            })
+        },
+        handleClose(){
+    
+        },
+        loadsucess(data){
+            
+        },
+        loaderror(err){
+            console.error('An error happened');
+        },
+        load(url){
+            if(!this.fileurls.includes(url)){
+                this.fileurls.push(url);
+            }
+            this.init();
+        }
+    }
+}
+
+</script>
+<style scoped>
+.lodingimg{
+    width: 200px;
+    height: 150px;
+  
+}
+.img{
+    width: 100%;
+    height: 100%;
+    margin-top: -40px;
+}
+.loding{
+     width: 100%;
+    text-align: center;
+   
+    position: absolute;
+    bottom: 0;
+    text-align: center;
+}
+.lodgright .el-col{
+    padding: 10px 0;
+
+} 
+.lgleft{
+    position: relative;
+    overflow: hidden;
+  
+}
+.lodgright{
+    padding: 10px 5px;
+
+}
+.lgcoent{
+    padding-bottom: 10px;
+}
+</style>

+ 305 - 0
src/views/index/FEMLab/fileupload.vue

@@ -0,0 +1,305 @@
+<template>
+  <div class="webuploader-container">
+        <div :id="'uploader'+upId">
+                <el-row>
+                    <!-- <el-col :span="6"> {{name}}  </el-col>                   
+                    <el-col :span="6"> <div :id="'picker'+upId" class="text_color" >选择文件</div>  </el-col> -->
+                    <!-- <el-button :id="'picker'+upId"> {{name}} </el-button> -->
+                    <div class="btntext upname" :id="'picker'+upId">{{name}}</div>
+                </el-row>
+
+                <el-row v-for="(fileObj,key) in files" :key="key" class="disflex">
+                    <el-col :span="6">{{fileObj.name}} </el-col>
+                    <el-col :span="8"><el-progress :percentage="fileObj.percentage"></el-progress></el-col>
+                    <el-col :span="5">{{fileObj.msg}}</el-col>
+                    <el-col :span="5"><el-button size="mini" type="danger" @click="fileDel(fileObj.id)" icon="el-icon-delete" circle></el-button></el-col>
+                </el-row>
+                <!-- <el-button size="mini" @click="uploader.upload()">开始上传</el-button> -->
+        </div>
+    </div>
+
+
+</template>
+<script>
+import $ from 'jquery' ;
+import WebUploader from 'webuploader';
+import store from "@/store";
+import { request } from "@/utils/request";
+import { ElMessage } from '@/utils/message.js'
+import { log } from 'three';
+import { Message, MessageBox } from "element-ui";
+import { connect } from 'echarts/lib/echarts';
+// let Message = new ElMessage()
+export default {
+    data(){
+        return {
+            uploader:undefined,
+            fileName:undefined,
+            md5:"1212",
+            files:[],
+           nmllist:[],// 批量上传的数组
+            gridFileId:'',
+            boundaryFileId:'',
+             uuid:'',
+             nmlid:'',
+           hcfdBoundarys:[],
+        }
+    },
+    updated(){
+      //  this.initWebUploader(); 
+    },
+    mounted(){
+  this.initWebUploader();
+    },
+    props:{//传入参数
+        projectId: String,
+        solverType: String,
+        accept:String,
+        upId:String,
+        name:String,
+        namelist:Array,//文件名的集合
+    },
+         created(){
+     this.getUUID()
+   this.uuid= this.getUUID()
+ 
+      
+},
+    methods:{
+   
+         getUUID() {
+          return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+          
+              var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
+              return v.toString(16);
+          })
+          
+     },
+     //fembdf绑定
+        fembdf(bfid){
+                let params = {
+                            transCode: "FEM001",
+                            pid: this.projectId,
+                            gridFileId:bfid,
+                            };
+                      
+                request(params)
+                    .then((res) => {
+                     console.log("绑定成功")
+                    
+                })
+                .catch((err) => {});
+            },
+        initWebUploader(){
+            this.files=[];
+            var v_this=this;
+            this.uploader=WebUploader.create({
+                // swf文件路径
+                swf: './Uploader.swf',
+                // 文件接收服务端。
+                server: process.env.VUE_APP_BASE_API+'/TransServlet',
+                //文件上传请求的参数表,每次发送都会发送此对象中的参数。
+                formData: {
+                
+                },
+                // 选择文件的按钮。可选。
+                // 内部根据当前运行是创建,可能是input元素,也可能是flash.
+                pick: {
+                        id:'#picker'+v_this.upId,
+                        multiple:true
+                      },
+                // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
+                  resize: false,
+                // 开起分片上传。
+                chunked: true,
+                chunkSize: 2 * 1024 * 1024,
+                threads :4,
+
+            })
+            // 当有文件被添加进队列的时候
+            this.uploader.on( 'fileQueued', file=> {
+                v_this.fileName=file.name;
+             
+            //     console.log(  v_this.fileName);
+                const fax=v_this.fileName.slice(-4) 
+                if(v_this.accept.indexOf(fax)<0){//判断上传支持文件类型
+                    v_this.uploader.reset();
+                    Message.error("只支持" +v_this.accept+"格式文件!");
+                    return;
+                }
+                v_this.uploader.md5File(file)
+                .progress(percentage=> {//显示加密进度
+                     console.log('Percentage:', percentage);
+                     })
+                .then(md5 =>{ // 完成
+                     v_this.md5=md5;
+             });
+                if(v_this.files.length>0){
+                    v_this.uploader.removeFile(v_this.files[0].id);
+                    v_this.files=[];
+                }
+              
+                v_this.files.push({
+                    id:file.id,
+                    name:file.name,
+                    msg:"等待上传...",
+                    percentage:0
+                })
+               this.uploader.upload();
+           
+            });
+            
+            /**文件发送前
+             *  object {Object}
+                data {Object}默认的上传参数,可以扩展此对象来控制上传参数。
+                headers {Object}可以扩展此对象来控制上传头部
+             */
+            this.uploader.on('uploadBeforeSend', (file,data,headers)=> {
+               data.chunk=file.chunk;
+               data.chunks=file.chunks;
+               data.bfid=v_this.uuid;
+               data.fileName=v_this.fileName;
+            //    data.pid=v_this.projectId;
+            //    data.solverType=v_this.solverType;
+            //    data.md5=v_this.md5;
+            //    data.uploadFlag=2;//1 普通 2覆盖 3续传
+               data.channelNo ='service';
+               data.clientToken=store.getters.token;
+               data.transCode='B00028';
+               data.userId=store.getters.userId;
+               headers.Content='multipart';
+               headers.Type='form-data';
+
+            })
+           // 文件上传过程中创建进度条实时显示。
+            this.uploader.on( 'uploadProgress', ( file, percentage ) =>{
+                let prage= Math.floor(percentage*100);
+                // v_this.$emit('childFn',{name:v_this.name,percentage:prage})
+                v_this.files.forEach(fileObj=>{
+                    if(fileObj.id=file.id)
+                    fileObj.msg='上传中';
+                    fileObj.percentage=prage;
+                })
+            });
+            this.uploader.on( 'uploadSuccess', ( file ,response) =>{
+                       if(file.ext=='bdf'){
+                        this.gridFileId=response.bfid;
+                          let params = {
+                            transCode: "B00029",
+                            bfid: response.bfid,
+                            };
+                            request(params)
+                                .then((res) => {
+                                    console.log(res)
+                                v_this.files.forEach((fileObj) => {
+                                if ((fileObj.id = file.id)){
+                                    fileObj.msg = "已上传";
+                                    v_this.$emit('upoK')
+                                }
+                                v_this.fembdf(response.bfid);
+                                });
+                                
+                            })
+                            .catch((err) => {});
+                     
+                }
+              
+            });
+            //
+            /**
+             * 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为false, 则此文件将派送server类型的uploadError事件。
+             * object {Object}
+                ret {Object}服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析
+             */
+            this.uploader.on('uploadAccept',(object,res)=>{
+               if(res.returnCode=="000000000"){
+                   return true;
+               }else{
+                   Message.error(res.returnMsg);
+                   return false;
+               }
+            });
+            this.uploader.on( 'uploadError', ( file ,reason)=> {
+                $( '#'+file.id ).text(file.name+'上传出错');
+                 this.getUUID();
+                    this.uuid= this.getUUID();
+            });
+
+            this.uploader.on('uploadComplete', file => {
+                // $( '#'+file.id ).find('.progress').fadeOut();
+            });
+            
+        },
+        uploaderClear(){
+             this.uploader.reset();
+             this.percentage=0;
+             this.files=[];
+        },
+        fileDel(fileId){
+         
+                  this.getUUID();
+                    this.uuid= this.getUUID();
+            this.files=this.files.filter(fileObj=>{
+                if( fileObj.id == fileId){
+                       console.log(fileObj);
+                    this.uploader.removeFile(fileId);  
+           
+                }
+               return  fileObj.id != fileId
+              
+            })     
+  
+        },
+       
+        
+    },
+    datalish(){
+        
+    }
+
+   
+}
+
+</script>
+<style>
+.webuploader-container {
+	position: relative;
+}
+.webuploader-pick{
+    color: #fff !important;
+}
+.webuploader-element-invisible {
+	position: absolute !important;
+	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+    clip: rect(1px,1px,1px,1px);
+}
+.webuploader-pick {
+	position: relative;
+	display: inline-block;
+	cursor: pointer;
+    padding: 1px 2px;
+    font-size: 12px;
+	color: #606266;
+	text-align: center;
+	border-radius: 3px;
+	overflow: hidden;
+}
+.webuploader-pick-hover {
+	background: #00a2d4;
+}
+
+.webuploader-pick-disable {
+	opacity: 0.6;
+	pointer-events:none;
+}
+.disflex{
+    display: flex;
+    align-items: center;
+}
+.text_color  .webuploader-pick{
+   color: #d5d5d5;
+}
+.el-progress__text{
+ color: #d5d5d5 !important;
+}
+</style>

+ 1923 - 0
src/views/index/FemLab2_0/index.vue

@@ -0,0 +1,1923 @@
+<template>
+<div class="leading  fem">
+    <div class="scal">
+      <div class="toolbar-part-detail lbg_color1 ">
+         <!-- 工具栏 -->
+      <!-- <transformtool ref="transform" :servertype="servertype" :projectId='project.projectId'  :wstep='wstep' :bStep='bStep' :vStep='vStep'></transformtool> -->
+          <el-tabs   v-model="activeName" type="card" @tab-click="handleClick">
+
+            <el-tab-pane label="几何建模" name="one"><geometry></geometry></el-tab-pane>
+          <el-tab-pane label="网格划分" name="twos"> <meshindex></meshindex></el-tab-pane>
+          <!-- 集合定义 -->
+          <el-tab-pane label="集合定义" name="two">
+              <div class="imgzong">
+             <div class="item1"  v-for="(itemcj,index) in jihlist"  :key="'two-'+ index" :class="{activeOrange:active=='two-'+ index}" @click="clickgeometry($event,index,'two-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="itemcj.titlie" placement="bottom">
+                             <el-image :src="itemcj.icon" fit="cover" /> 
+            </el-tooltip>
+            </div>
+           </div>
+          </el-tab-pane>
+                <!-- 属性设置 -->
+                 <el-tab-pane label="属性设置" name="three">
+             <div class="imgzong">
+             <div class="item1"  v-for="(item,index) in shxlist"  :key="'three-'+ index" :class="{activeOrange:active=='three-'+ index}" @click="clickgeometry($event,index,'three-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+            </div>
+          </el-tab-pane>
+            <!-- 载荷边界 -->
+                 <el-tab-pane label="载荷边界" name="four">
+             <div class="imgzong">
+             <div class="item1"  v-for="(item,index) in zhlist"  :key="'four-'+ index" :class="{activeOrange:active=='four-'+ index}" @click="clickgeometry($event,index,'four-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+              <span class="shu">|</span>
+               <div class="item1"  v-for="(item,index) in zhlist2"  :key="'four1-'+ index" :class="{activeOrange:active=='four1-'+ index}" @click="clickgeometry($event,index,'four1-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               <span class="shu">|</span>
+               <div class="item1"  v-for="(item,index) in zhlist3"  :key="'four2-'+ index" :class="{activeOrange:active=='four2-'+ index}" @click="clickgeometry($event,index,'four2-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               <span class="shu">|</span>
+               <div class="item1"  v-for="(item,index) in zhlist4"  :key="'four3-'+ index" :class="{activeOrange:active=='four3-'+ index}" @click="clickgeometry($event,index,'four3-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+            </div>
+          </el-tab-pane>
+           <!-- 求解控制 -->
+                 <el-tab-pane label="求解控制" name="five">
+              <div class="imgzong" v-if="femnum=='FEMLab(结构力学)'">
+             <div class="item1"  v-for="(item,index) in fexkz"  :key="'five-'+ index" :class="{activeOrange:active=='five-'+ index}" @click="clickgeometry($event,index,'five-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               <span class="shu">|</span>
+               <div v-if="bxval=='0'">
+               <div class="item1"   v-for="(item,index) in fexkz2"  :key="'five2-'+ index" :class="{activeOrange:active=='five2-'+ index}" @click="clickgeometry($event,index,'five2-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               </div>
+               <div v-if="bxval=='1'">
+               <div class="item1"   v-for="(item,index) in fexkz3"  :key="'five3-'+ index" :class="{activeOrange:active=='five3-'+ index}" @click="clickgeometry($event,index,'five3-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               </div>
+                <div v-if="bxval=='2'">
+               <div class="item1"   v-for="(item,index) in fexkz4"  :key="'five4-'+ index" :class="{activeOrange:active=='five4-'+ index}" @click="clickgeometry($event,index,'five4-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               </div>
+               <div v-if="bxval=='3'">
+               <div class="item1"   v-for="(item,index) in fexkz5"  :key="'five5-'+ index" :class="{activeOrange:active=='five5-'+ index}" @click="clickgeometry($event,index,'five5-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+               </div>
+            </div>
+             <div class="imgzong" v-if="femnum=='FEMLab(结构力学)版本2'">
+             <div class="item1"  v-for="(item,index) in fexkz6"  :key="'five11-'+ index" :class="{activeOrange:active=='five11-'+ index}" @click="clickgeometry($event,index,'five11-'+ index)">
+                <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
+                        <el-image :src="item.icon" fit="cover" />   
+            </el-tooltip>
+             </div>
+            </div>
+          </el-tab-pane>
+               <el-tab-pane label="结果查看" name="six">  <result></result></el-tab-pane>
+          <el-tab-pane label="工具箱" name="seven"><toolindex></toolindex></el-tab-pane>
+        </el-tabs>
+         </div> 
+          </div> 
+          <!-- 弹出框 创建集合-->
+           <el-dialog
+     v-if="active=='two-0'"
+      :visible.sync="dialog.create_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="c1" fit="cover" />
+     <span class="text-color">创建集合</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="集合类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="jhval"  placeholder="请选择">
+    <el-option
+      v-for="item in jhlist"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+       <div class="line">
+      <div class="linetext">点集合</div>
+    </div> 
+        <el-form-item label="集合名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <div class="btnaniu">
+          <el-button plain class="cj">创建</el-button>
+        <el-button plain  class="cj">清除</el-button>
+         <el-button plain  class="cj">编辑</el-button>      
+          <el-button plain  class="cj">保存</el-button>    
+       </div> 
+            <el-form-item label="集合列表" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="jhval2"  placeholder="请选择">
+    <el-option
+      v-for="item in jhlist2"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.create_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.create_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+        <!-- 单元属性-->
+           <el-dialog
+     v-if="active=='three-0'"
+      :visible.sync="dialog.attribute_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx" fit="cover" />
+     <span class="text-color">单元属性</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="单元类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="jhval3"  placeholder="请选择">
+    <el-option
+      v-for="item in jhlist3"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+     <el-form-item label="单元阶次" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="jhval4"  placeholder="请选择">
+    <el-option
+      v-for="item in jhlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.attribute_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.attribute_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 材料属性 -->
+           <el-dialog
+     v-if="active=='three-1'"
+      :visible.sync="dialog.materials_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx2" fit="cover" />
+     <span class="text-color">材料属性</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+     <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="密度" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+      <el-checkbox v-model="checked">温度相关</el-checkbox>
+      <div class="line">
+      <div class="linetext">弹性</div>
+    </div> 
+    <el-form-item label="弹性模量" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="泊松比" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+       <div class="line">
+      <div class="linetext">塑性</div>
+    </div> 
+    <el-form-item label="屈服应力" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="泊松比" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+      <div class="line">
+      <div class="linetext">热</div>
+    </div> 
+    <el-form-item label="热到率" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="比热" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="热扩散系数" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="零温" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+
+
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.materials_visiable= false">取消</el-button>
+        <el-button type="primary" @click="dialog.materials_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+   <!-- 截面属性-->
+           <el-dialog
+     v-if="active=='three-2'"
+      :visible.sync="dialog.cross_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx3" fit="cover" />
+     <span class="text-color">截面属性</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+   <div v-if="femval!='2'">
+     <el-form-item label="截面名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+      <el-form-item label="板壳厚度" :label-width="formLabelWidth2" v-if="femval=='1'">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+     <el-form-item label="材料" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval2"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist2"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+       <el-form-item label="区域" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval3"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist3"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+   </div>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.cross_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.cross_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 位移约束力 -->
+       <el-dialog
+     v-if="active=='four-0'"
+      :visible.sync="dialog.Offset_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx4" fit="cover" />
+     <span class="text-color">位移约束力</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+         <el-form-item label="类型" :label-width="formLabelWidth2">
+      <el-input v-model="form.leixing" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="单元类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.Offset_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.Offset_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+ <!-- 集中力 -->
+       <el-dialog
+     v-if="active=='four-2'"
+      :visible.sync="dialog.singleforce_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx6" fit="cover" />
+     <span class="text-color">集中力</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="单元类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval5"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist5"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+           <el-form-item label="CF1" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+            <el-form-item label="CF2" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+            <el-form-item label="CF3" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.singleforce_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.singleforce_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+<!-- 温度约束 -->
+   <el-dialog
+     v-if="active=='four-4'"
+      :visible.sync="dialog.jdtemp_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx8" fit="cover" />
+     <span class="text-color">温度约束</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="区域" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+           <el-form-item label="温度值" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+          
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.jdtemp_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.jdtemp_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+<!-- 单元类压力 -->
+   <el-dialog
+     v-if="active=='four1-2'"
+      :visible.sync="dialog.dybar_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx11" fit="cover" />
+     <span class="text-color">压力</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="区域" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+           <el-form-item label="载荷值" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+          
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.dybar_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.dybar_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+<!-- 单元类重力 -->
+   <el-dialog
+     v-if="active=='four1-5'"
+      :visible.sync="dialog.dygravity_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx14" fit="cover" />
+     <span class="text-color">重力</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="区域" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+           <el-form-item label="重力加速度" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+      <el-form-item label="X向分量" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+      <el-form-item label="Y向分量" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>      
+      <el-form-item label="Z向分量" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.dygravity_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.dygravity_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 初始条件的温度 -->
+     <el-dialog
+     v-if="active=='four2-1'"
+      :visible.sync="dialog.cstjtemp_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx8" fit="cover" />
+     <span class="text-color">温度</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="区域" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+           <el-form-item label="温度值" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+          
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.cstjtemp_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.cstjtemp_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+     <!-- 初始条件——速度 -->
+     <el-dialog
+     v-if="active=='four2-2'"
+      :visible.sync="dialog.cstjspeed_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx17" fit="cover" />
+     <span class="text-color">速度</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+             <el-form-item label="区域" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+           <el-form-item label="速度值" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+           <el-form-item label="X方向" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="Y方向" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="Z方向" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>   
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.cstjspeed_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.cstjspeed_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+     <!-- 接触属性 -->
+     <el-dialog
+     v-if="active=='four3-1'"
+      :visible.sync="dialog.properties_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx22" fit="cover" />
+     <span class="text-color">接触属性</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+           <el-form-item label="表面行为" :label-width="formLabelWidth2">
+      <el-input v-model="form.xingwei" autocomplete="off"></el-input>
+    </el-form-item>
+           <el-form-item label="摩擦系数" :label-width="formLabelWidth2">
+      <el-input v-model="form.xishu" autocomplete="off"></el-input>
+    </el-form-item>
+
+ 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.properties_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.properties_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+     <!-- 接触对 -->
+     <el-dialog
+     v-if="active=='four3-2'"
+      :visible.sync="dialog.contactpair_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx23" fit="cover" />
+     <span class="text-color">接触对</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+             <el-form-item label="名称" :label-width="formLabelWidth2">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+          <el-form-item label="表面相互作用" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval11"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist11"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+        <el-form-item label="类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval12"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist12"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>   
+        <el-form-item label="从面" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>     
+     <el-form-item label="主面" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="femval4"  placeholder="请选择">
+    <el-option
+      v-for="item in femlist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+        <el-form-item label="接触调整" :label-width="formLabelWidth2">
+              <el-radio-group v-model="form.radio">
+          <el-radio :label="0">是</el-radio>
+          <el-radio :label="1">否</el-radio>
+        </el-radio-group>
+    </el-form-item>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.contactpair_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.contactpair_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 求解控制 -->
+    <!-- 分析类型 -->
+    <el-dialog
+     v-if="active=='five-0'"
+      :visible.sync="dialog.cae_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx2" fit="cover" />
+     <span class="text-color">分析类型</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+       <el-form-item label="分析类型" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="bxval"  placeholder="请选择">
+    <el-option
+      v-for="item in bxlist"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.cae_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.cae_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 并行分析 -->
+    <el-dialog
+     v-if="active=='five-1'"
+      :visible.sync="dialog.parallel_visiable"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx10" fit="cover" />
+     <span class="text-color">并行分析</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+       <el-form-item label="并行分析" :label-width="formLabelWidth2">
+      <el-select  @change="changest" v-model="bxval1"  placeholder="请选择">
+    <el-option
+      v-for="item in bxlist1"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.parallel_visiable = false">取消</el-button>
+        <el-button type="primary" @click="dialog.parallel_visiable = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 静力分析 -->
+  <el-dialog
+     v-if="active=='five2-0'"
+      :visible.sync="dialog.statical_analysis"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx24" fit="cover" />
+     <span class="text-color">静力分析</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+       <el-form-item label="算法控制" :label-width="formLabelWidth5">
+      <el-select  @change="changest" v-model="parameterObj.solver.value"  placeholder="请选择">
+    <el-option
+      v-for="item in jlialist1"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+     <el-form-item label="非线性开关" :label-width="formLabelWidth5">
+       <el-radio-group v-model="parameterObj.nlgeom.value">
+          <el-radio label="0">开</el-radio>
+          <el-radio label="1">关</el-radio>
+        </el-radio-group>
+   </el-form-item>
+    <div class="line">
+      <div class="linetext">输出控制</div>
+    </div> 
+            <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+    <el-checkbox  v-model="parameterObj.dump_stiff.value"   true-label="true" false-label="false">刚度矩阵</el-checkbox>
+    <el-checkbox    v-model="parameterObj.strain_o.value"   true-label="true" false-label="false">节点应变</el-checkbox>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.statical_analysis = false">取消</el-button>
+        <el-button type="primary" @click="femRun(); dialog.statical_analysis = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 模态分析 -->
+ <el-dialog
+     v-if="active=='five3-0'"
+      :visible.sync="dialog.model_analysis"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx25" fit="cover" />
+     <span class="text-color">模态分析</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+         <div class="line">
+      <div class="linetext">属性</div>
+    </div> 
+       <el-form-item label="特征值求解方法" :label-width="formLabelWidth6">
+      <el-select  @change="changest" v-model="jliaval2"  placeholder="请选择">
+    <el-option
+      v-for="item in jlialist2"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+       <el-form-item label="特征值个数" :label-width="formLabelWidth6">
+      <el-input   v-model="parameterObj.num_eigv.value" autocomplete="off"></el-input>
+    </el-form-item>
+     <el-form-item label="质量耦合开关" :label-width="formLabelWidth6">
+       <el-radio-group    v-model="parameterObj.coupled.value">
+          <el-radio label="0">开</el-radio>
+          <el-radio label="1">关</el-radio>
+        </el-radio-group>
+   </el-form-item>
+    <div class="line">
+      <div class="linetext">输出控制</div>
+    </div> 
+            <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+    <el-checkbox v-model="parameterObj.dump_stiff.value"  true-label="true" false-label="false">刚度矩阵</el-checkbox>
+    <el-checkbox v-model="parameterObj.dump_mass.value"  true-label="true" false-label="false" >节点应变</el-checkbox>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.model_analysis = false">取消</el-button>
+        <el-button type="primary" @click="femparam(); dialog.model_analysis = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 传热分析 -->
+ <el-dialog
+     v-if="active=='five4-0'"
+      :visible.sync="dialog.heat_analysis"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx26" fit="cover" />
+     <span class="text-color">传热分析</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+         <div class="line">
+      <div class="linetext">属性</div>
+    </div> 
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.heat_analysis = false">取消</el-button>
+        <el-button type="primary" @click="dialog.heat_analysis = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+ <!-- 瞬态响应分析 -->
+ <el-dialog
+     v-if="active=='five5-0'"
+      :visible.sync="dialog.transient_analysis"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx27" fit="cover" />
+     <span class="text-color">瞬态响应分析</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+         <div class="line">
+      <div class="linetext">属性</div>
+    </div> 
+  <el-form-item label="求解方法" :label-width="formLabelWidth5">
+      <el-select  @change="changest" v-model="jliaval3"  placeholder="请选择">
+    <el-option
+      v-for="item in jlialist3"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+   <el-form-item label="输入δβN" :label-width="formLabelWidth5">
+      <el-input   v-model="parameterObj.betad.value" autocomplete="off"></el-input>
+    </el-form-item>
+<el-form-item label="输入αN" :label-width="formLabelWidth5">
+      <el-input    v-model="parameterObj.alphad.value" autocomplete="off"></el-input>
+    </el-form-item>
+         <div class="line">
+      <div class="linetext">分析步控制</div>
+    </div> 
+    <el-form-item label="总时间" :label-width="formLabelWidth5">
+      <el-input v-model="parameterObj.num_steps.value" autocomplete="off"></el-input>
+    </el-form-item>
+       <el-form-item label="时间步增量" :label-width="formLabelWidth5">
+      <el-input v-model="parameterObj.dt_str.value" autocomplete="off"></el-input>
+    </el-form-item>
+       <el-form-item label="写出频率" :label-width="formLabelWidth5">
+      <el-input  v-model="parameterObj.freq.value" autocomplete="off"></el-input>
+    </el-form-item>
+      <el-form-item label="写出格式" :label-width="formLabelWidth5">
+      <el-select  @change="changest" v-model="parameterObj.sort.value"  placeholder="请选择">
+    <el-option
+      v-for="item in jlialist4"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+    <div class="line">
+      <div class="linetext">输出控制</div>
+    </div> 
+            <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
+      <el-input v-model="parameterObj.result_file.value" autocomplete="off"></el-input>
+    </el-form-item>
+    <el-checkbox  v-model="parameterObj.dump_stiff.value"  true-label="true" false-label="false">刚度矩阵</el-checkbox>
+    <el-checkbox  v-model="parameterObj.strain_o.value"  true-label="true" false-label="false">节点应变</el-checkbox>
+        <el-checkbox v-model="parameterObj.dump_mass.value"  true-label="true" false-label="false">质量矩阵</el-checkbox>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info"  @click="dialog.transient_analysis = false">取消</el-button>
+        <el-button type="primary" @click="femparam();dialog.transient_analysis = false"
+          >确定</el-button
+        >
+      </div>
+    </el-dialog>
+    <!-- 创建分析 -->
+  <el-dialog
+     v-if="active=='five11-0'"
+      :visible.sync="dialog.create_analysis"
+      :close-on-click-modal="false"
+      @close='activecleer()'
+      class="dialog"
+    :modal='false'
+    custom-class='dialoglocation dialog_color'
+     width="385px"
+     :style="styX"
+    >
+      <div slot="title" class=dialog_header>
+     <el-image class="imge" :src="shx28" fit="cover" />
+     <span class="text-color">创建分析</span>
+  </div>
+  <div class="selecr">
+      <el-form>
+          <el-form-item label="分析名称" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+     <el-form-item label="非线性开关" :label-width="formLabelWidth5">
+       <el-radio-group v-model="form.radio">
+          <el-radio :label="0">开</el-radio>
+          <el-radio :label="1">关</el-radio>
+        </el-radio-group>
+   </el-form-item>
+       <el-form-item label="分析类型" :label-width="formLabelWidth5">
+      <el-select  @change="changest" v-model="cjaval"  placeholder="请选择">
+    <el-option
+      v-for="item in cjalist"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+  <div v-if="cjaval=='0'" >
+    <el-form-item label="增量步" :label-width="formLabelWidth5">
+      <el-select  @change="changest" v-model="cjaval2"  placeholder="请选择">
+    <el-option
+      v-for="item in cjalist2"
+      :key="item.value"
+      :label="item.name"
+      :value="item.value"
+      >
+    </el-option>
+  </el-select>
+   </el-form-item>
+   <div v-if="cjaval2=='1'||cjaval2=='2'">
+      <el-form-item label="时间周期" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+          <el-form-item label="初始时间增量" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+    </div>
+    <div v-if="cjaval2=='1'">
+      <el-form-item label="最小时间增量" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+          <el-form-item label="最大时间增量" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+    </div>      
+    </div>
+    <div v-if="cjaval=='1'">
+     <el-form-item label="特征数值" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+      <el-checkbox v-model="checked">频率输出</el-checkbox>
+    </div>
+          <el-form-item label="显示开关" :label-width="formLabelWidth5" v-if="cjaval=='5'">
+       <el-radio-group v-model="form.radio">
+          <el-radio :label="0">开</el-radio>
+          <el-radio :label="1">关</el-radio>
+        </el-radio-group>
+   </el-form-item>
+       <el-form-item label="Steady State" :label-width="formLabelWidth5"  v-if="cjaval=='6'">
+       <el-radio-group v-model="form.radio">
+          <el-radio :label="0">开</el-radio>
+          <el-radio :label="1">关</el-radio>
+        </el-radio-group>
+   </el-form-item>
+       <div v-if="cjaval=='5'||cjaval=='6'">
+       <el-form-item label="初始时间增量" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+        <el-form-item label="时间周期" :label-width="formLabelWidth5">
+      <el-input v-model="form.name" autocomplete="off"></el-input>
+    </el-form-item>
+    </div>
+      </el-form>
+  </div>
+      <div slot="footer" class="dialog-footer ">
+        <el-button type="info"  @click="dialog.create_analysis = false">取消</el-button>
+        <el-button type="primary" @click="dialog.create_analysis = false"
+          >确定</el-button
+        >  
+      </div>
+    </el-dialog>
+          </div>
+</template>
+<script>
+import { request, uploadFile } from "@/utils/request";
+import { Message, MessageBox } from "element-ui";
+import geometry from '../geometry/index.vue'
+import meshindex from '../meshindex/index.vue'
+import result from '../result/index.vue'
+import toolindex from '../tool/index.vue'
+import c1 from '@/assets/icon/u9667.png'
+import shx from '@/assets/icon/u9689.png'
+import shx2 from '@/assets/icon/u9690.png'
+import shx3 from '@/assets/icon/u9694.png'
+
+import shx4 from '@/assets/icon/u3085.png'
+import shx5 from '@/assets/icon/u9840.png'
+import shx6 from '@/assets/icon/u9811.png'
+import shx7 from '@/assets/icon/u9847.png'
+import shx8 from '@/assets/icon/u9843.png'
+
+import shx9 from '@/assets/icon/u9838.png'
+import shx10 from '@/assets/icon/u9820.png'
+import shx11 from '@/assets/icon/u9846.png'
+import shx12 from '@/assets/icon/u9848.png'
+import shx13 from '@/assets/icon/u9843.png'
+import shx14 from '@/assets/icon/u9921.png'
+
+import shx15 from '@/assets/icon/u9838.png'
+import shx16 from '@/assets/icon/u9843.png'
+import shx17 from '@/assets/icon/u9840.png'
+import shx19 from '@/assets/icon/u9849.png'
+import shx20 from '@/assets/icon/u9842.png'
+
+import shx21 from '@/assets/icon/u9850.png'
+import shx22 from '@/assets/icon/u9852.png'
+import shx23 from '@/assets/icon/u9851.png'
+import shx24 from '@/assets/icon/u10014.png'
+import shx25 from '@/assets/icon/u10040.png'
+import shx26 from '@/assets/icon/u100682.png'
+import shx27 from '@/assets/icon/u10082.png'
+import shx28 from '@/assets/icon/u19971.png'
+
+
+export default {
+    components:{geometry,meshindex,result,toolindex},
+    props:{
+    femnum:String,
+    Logs:String,
+    },
+  data() {
+    return {
+      checked:false,
+      c1,shx,shx2,shx3,
+      shx4,
+      shx5,
+      shx6,
+      shx7,
+      shx8,
+      shx9,
+      shx10,
+      shx11,
+      shx12,
+      shx13,
+      shx14,
+      shx15,
+      shx16,
+      shx17,
+      shx19,
+      shx20,
+      shx21,
+      shx22,
+      shx23,
+      shx24,
+       shx25,
+        shx26,
+        shx27,
+        shx28,
+         activeName: 'one',
+            active:'',
+             styX:{
+        left:''
+      },
+      fempid:'',
+       project: {
+        projectId: "",
+        lesseeId:'',
+     
+      },
+      femsolverConfigid:'',
+         parameterObj: {
+           alphad: {key: 'alphad', order: '2', value: '0.0'},
+          bet_newmark: {key: 'bet_newmark', order: '2', value: null},
+          betad: {key: 'betad', order: '2', value: ''},
+          coupled: {key: 'coupled', order: '1', value: '0'},
+          dt_str: {key: 'dt_str', order: '2', value: '0.0'},
+          dump_mass: {key: 'dump_mass', order: '1', value: 'true'},
+          dump_stiff: {key: 'dump_stiff', order: '1', value: 'true'},
+          eigenv: {key: 'eigenv', order: '3', value: 'false'},
+          eigv_method: {key: 'eigv_method', order: '1', value: null},
+          f_static: {key: 'static', order: '3', value: 'false'},
+          f_transient: {key: 'transient', order: '1', value: ''},
+          freq: {key: 'freq', order: '1', value: ''},
+          gam_newmark: {key: 'gam_newmark', order: '2', value: null},
+          mesh_inp: {key: 'mesh_inp', order: '3', value: null},
+          nlgeom: {key: 'nlgeom', order: '1', value: ''},
+          num_eigv: {key: 'num_eigv', order: '1', value: null},
+          num_steps: {key: 'num_steps', order: '1', value: ''},
+          result_file: {key: 'result_file', order: '3', value: null},
+          sid: {key: 'SID', order: '1', value: ''},
+          solver: {key: 'solver', order: '1', value: ''},
+          sort: {key: 'sort', order: '1', value: ''},
+          strain_o: {key: 'strain_o', order: '1', value: 'false'},
+        // solution: {
+        //   f_static: "true",
+        //   solver: "",
+        //   eigenv: "false",
+        //   num_eigv: "",
+        //   nlgeom: "",
+        //   eigv_method: "",
+        //   f_transient: "",
+        //   alphad: "",
+        //   betad: "",
+        //   gam_newmark: "",
+        //   bet_newmark: "",
+        //   sid: "",
+        //   num_steps: "",
+        //   dt_str: "",
+        //   freq: "",
+        //   sort: "",
+        // },
+        // static: {
+        //   dump_stiff: false,
+        //   strain_o: false,
+        // },
+        // modes: {
+        //   coupled: "",
+        //   dump_stiff: false,
+        //   dump_mass: false,
+        // },
+        // transient: {
+        //   coupled: "",
+        //   dump_stiff: false,
+        //   dump_mass: false,
+        //   strain_o: false,
+        // },
+        // results: {
+        //   loadResults: 2,
+        //   scalar: "Displacement-magnitude",
+        //   transiation: true,
+        //   showElement: [],
+        // },
+      },
+         formLabelWidth: '60px',
+        formLabelWidth2:'73px',
+        formLabelWidth4:'37px',
+        formLabelWidth5:'100px',
+         formLabelWidth6:'120px',
+         formLabelWidth7:'170px',
+         
+          form: {
+          name: '',
+          region: '',
+          date1: '',
+          date2: '',
+          delivery: false,
+          type: [],
+          resource: '',
+          desc: '',
+          leixing:'gu ding yue shu',
+          xishu:'0.1',
+          xingwei:"硬接触",
+          radio:'0'
+           
+        },
+            dialog:{
+              create_visiable:false,
+              attribute_visiable:false,
+              materials_visiable:false,
+              cross_visiable:false,
+              Offset_visiable:false,
+              singleforce_visiable:false,
+              jdtemp_visiable:false,
+              dybar_visiable:false,
+              dygravity_visiable:false,
+              cstjtemp_visiable:false,
+              cstjspeed_visiable:false,
+              properties_visiable:false,
+              contactpair_visiable:false,
+              cae_visiable:false,
+              parallel_visiable:false,
+              statical_analysis:false,
+              model_analysis:false,
+              heat_analysis:false,
+              transient_analysis:false,
+              create_analysis:false,
+           
+          },
+        jihlist:[
+            { icon:c1, titlie:'创建集合'},
+        ],
+         shxlist:[
+            { icon:shx, titlie:'单元属性'},
+            { icon:shx2, titlie:'材料属性'},
+            { icon:shx3, titlie:'截面属性'},
+        ],
+        zhlist:[
+           { icon:shx4, titlie:'节点类-位移约束力'},
+            { icon:shx5, titlie:'节点类-速度'},
+            { icon:shx6, titlie:'节点类-集中力'},
+             { icon:shx7, titlie:'节点类-加速度'},
+            { icon:shx8, titlie:'节点类-温度约束'},
+        ],
+          zhlist2:[
+           { icon:shx9, titlie:'单元类-位移'},
+            { icon:shx10, titlie:'单元类-惯性力'},
+            { icon:shx11, titlie:'单元类-压力'},
+            { icon:shx12, titlie:'单元类-均布力'},
+            { icon:shx13, titlie:'单元类-温度'},
+            { icon:shx14, titlie:'单元类-重力'},
+        ],
+          zhlist3:[
+           { icon:shx15, titlie:'初始条件-位移'},
+            { icon:shx16, titlie:'初始条件-温度'},
+            { icon:shx17, titlie:'初始条件-速度'},
+             { icon:shx19, titlie:'初始条件-塑性应变'},
+            { icon:shx20, titlie:'初始条件-应力'},
+        ],
+         zhlist4:[
+           { icon:shx21, titlie:'接触体-变形体'},
+            { icon:shx22, titlie:'接触体-接触属性'},
+            { icon:shx23, titlie:'接触体-接触对'},
+        ],
+        fexkz:[
+           { icon:shx2, titlie:'分析类型'},
+           { icon:shx10, titlie:'并行类型'},
+        ],
+         fexkz2:[
+            { icon:shx24, titlie:'静力分析'},
+        ],
+        fexkz3:[
+            { icon:shx25, titlie:'模态分析'},
+        ],
+        fexkz4:[
+            { icon:shx26, titlie:'传热分析'},
+        ],
+        fexkz5:[
+            { icon:shx27, titlie:'瞬态响应分析'},
+        ],
+      fexkz6:[
+            { icon:shx28, titlie:'创建分析'},
+        ],
+        jhlist:[
+             {value:'0',name:'节点集合'},
+            {value:'1',name:'单元集合'},
+             {value:'2',name:'表面集合'},
+        ],
+        jhval:'0',
+        jhlist2:[
+             {value:'0',name:'集合1'},
+            {value:'1',name:'集合2'},
+        ],
+        jhval2:'0',
+        jhlist3:[
+             {value:'0',name:'显示分析单元'},
+            {value:'1',name:'隐式分新单元'},
+             {value:'2',name:'传热单元'},
+        ],
+        jhval3:'0',
+         jhlist4:[
+             {value:'0',name:'一阶'},
+            {value:'1',name:'二阶'},
+        ],
+        jhval4:'0',
+        femlist:[
+             {value:'0',name:'实体截面'},
+            {value:'1',name:'板壳截面'},
+            {value:'2',name:'梁截面'},
+        ],
+        femval:'0',
+         femlist2:[
+             {value:'0',name:'选择已定义的材料'},
+         
+        ],
+        femval2:'0',
+         femlist3:[
+             {value:'0',name:'选择单元几何名称'},
+        ],
+        femval3:'0',
+        femlist4:[
+             {value:'0',name:'(选择已定义的节点集合)'},
+        ],
+        femval4:'0',
+           femlist5:[
+             {value:'0',name:'(拾取节点,显示节点编号)'},
+             {value:'1',name:'(选择已定义的节点集合)'},
+        ],
+        femval5:'0',
+        femlist11:[
+             {value:'0',name:'(选择接触属性名称)'},
+        ],
+        femval11:'0',
+         femlist12:[
+               {value:'0',name:'(面-面)'},
+               {value:'1',name:'(节点-面)'},
+        ],
+        femval12:'0',
+        bxlist:[
+               {value:'0',name:'静力分析'},
+               {value:'1',name:'模态分析'},
+               {value:'2',name:'传热分析'},
+               {value:'3',name:'瞬态响应分析'},
+        ],
+         bxval:'0',
+          bxlist1:[
+               {value:'0',name:'串行'},
+               {value:'1',name:'MPI并行'},
+        ],
+         bxval1:'0',
+         jlialist1:[
+               {value:'0',name:'MUMPS直接求解法'},
+               {value:'1',name:'PCG迭代求解法'},
+               {value:'2',name:'I DI直接求解法'},
+        ],
+        jliaval1:'0',
+         jlialist2:[
+               {value:'0',name:'Inverse iteration'},
+               {value:'1',name:'Lanczos'},
+        ],
+        jliaval2:'0',
+           jlialist3:[
+               {value:'0',name:'Newmark'},
+               {value:'1',name:'HHT'},
+                {value:'2',name:'Direct'},
+        ],
+        jliaval3:'0',
+            jlialist4:[
+               {value:'0',name:'1'},
+               {value:'1',name:'2'},
+        ],
+        jliaval4:'0',
+        cjalist:[
+          {value:'0',name:'静力分析'},
+          {value:'1',name:'模态分析'},
+          {value:'2',name:'解响分析'},
+           {value:'3',name:'响应分析'},
+          {value:'4',name:'随机振动分析'},
+           {value:'5',name:'瞬态响应分析'},
+            {value:'6',name:'热传导分析'},
+           {value:'7',name:'热-固耦合分析'},
+        ],
+        cjaval:'0',
+         cjalist2:[
+          {value:'0',name:'默认'},
+          {value:'1',name:'自动'},
+          {value:'2',name:'直接'},
+ 
+        ],
+        cjaval2:'0'
+
+    }
+  },
+  mounted(){
+this.init();
+  },
+  methods:{
+       init() {
+      //this.project.projectId = this.pid; //获取url 参数
+      this.pid='342e86b234af41a0bca0b9adeef0120d'
+      this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
+    },
+    //数据加载参数配置obj
+    femchange(obj,solverConfigid){
+       this.parameterObj = JSON.parse(obj);//JSON.parse(obj);
+       console.log(  this.parameterObj);
+      sessionStorage.setItem("res", obj);
+      this.femsolverConfigid=solverConfigid;
+    },
+       async femRun() {
+      //更新参数,求解,抓取日志
+      await this.femparam();
+      await this.femExe();
+      // this.getLogs();
+    },
+    //更新参数配置
+femparam(){
+  console.log(this.parameterObj)
+  const params = {
+        transCode: 'C00004', 
+        solverConfigid:this.femsolverConfigid,
+        parameterObj: JSON.stringify(this.parameterObj),
+        }
+        
+        request(params)
+          .then((res) => { 
+          Message({
+                  type: "success",
+                  message: "参数上传,成功",
+                });
+         })
+          .catch((err) => {
+          })
+},
+//fem求解
+    async femExe() {
+      //求解
+      var _this = this;
+      let params = {
+        transCode: "C00005",
+        solverConfigId:this.femsolverConfigid,
+      };
+      request(params)
+        .then((res) => {this.getwebsocket()})
+        .catch((err) => {
+          this.runShow='hidden'
+          if (err.returnCode == "EB8100017") {
+            //资源未分配
+            MessageBox.confirm("你还未分配资源?", "提示", {
+              confirmButtonText: "分配资源",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                let errUril =
+                  // window.location.protocol +
+                  // "//" +
+                  // window.location.host +
+                  // "/" +
+                  _this.$store.getters.proUrl +
+                  "?projectId=" +
+                  _this.project.projectId;
+                let params2 = {
+                  transCode: "A00118",
+                  lesseeId:_this.$store.getters.lesseeId
+                };
+                request(params2)
+                  .then((res) => {
+                    window.location.href =
+                      errUril + "&authCode=" + res.authCode;
+                  })
+                  .catch((err) => {});
+              })
+              .catch(() => {
+                Message({
+                  type: "info",
+                  message: "已取消",
+                });
+              });
+          }
+        });
+    },
+      //  
+      changest(){
+
+      },
+   handleClick(tab, event) {
+   this.activecleer();
+        },
+        activecleer(){
+          this.active=11;
+        },
+ //模块选择
+  clickgeometry(e,index,key){
+var e=e||window.Event
+this.styX.left=e.clientX+'px';
+    this.active=key;
+    console.log(key)
+  switch(key){
+    case 'two-0':
+       this.dialog.create_visiable=true;
+      break;
+       case 'three-0':
+       this.dialog.attribute_visiable =true;
+      break;
+        case 'three-1':
+       this.dialog.materials_visiable=true;
+      break;
+    case 'three-2':
+       this.dialog.cross_visiable  =true;
+      break;
+      case 'four-0':
+      this.dialog.Offset_visiable =true;
+      break;
+      case 'four-2':
+      this.dialog.singleforce_visiable =true;
+      break;
+          case 'four-4':
+      this.dialog.jdtemp_visiable=true;
+      break;
+        case 'four1-2':
+      this.dialog.dybar_visiable=true;
+      break;
+         case 'four1-5':
+      this.dialog.dygravity_visiable=true;
+      break;
+           case 'four2-1':
+      this.dialog.cstjtemp_visiable=true;
+      break;
+        case 'four2-2':
+      this.dialog.cstjspeed_visiable=true;
+      break;
+       case 'four3-1':
+      this.dialog.properties_visiable=true;
+      break;
+  case 'four3-2':
+      this.dialog.contactpair_visiable=true;
+      break;
+          case 'five-0':
+          this.dialog.cae_visiable=true;
+      break;
+        case 'five-1':
+          this.dialog.parallel_visiable=true;
+      break;
+         case 'five2-0':
+          this.dialog.statical_analysis=true;
+      break;
+          case 'five3-0':
+          this.dialog.model_analysis=true;
+      break;
+         case 'five4-0':
+          this.dialog.heat_analysis=true;
+      break;
+      case 'five5-0':
+          this.dialog.transient_analysis=true;
+      break;
+          case 'five11-0':
+          this.dialog.create_analysis=true;
+      break;
+
+     
+
+ 
+  }
+
+  },
+   //求解日志
+    async getLogs() {
+      //打印日志
+      var self = this;
+      console.log(self.pid);
+      function getLog() {
+          let params = {
+              transCode: "C00006",
+              pid:self.pid
+          };
+          console.log(params);
+          request(params)
+            .then((res) => {
+            console.log(11111);
+            console.log(res);
+            console.log(22222)
+           
+            })
+            .catch((err) => {
+            
+            });
+      }
+      getLog();
+    },
+
+    // 时间换算
+  timedata(d1, d2,s1){
+    console.log(this.nmlsteps);
+ var date1 = new Date(d1);   //开始时间  
+            var date2 = new Date(d2);    //结束时间  
+             var cydata=(date2.getTime() - new Date(date1).getTime())/s1*(Number(this.nmlsteps)-s1);
+           //var Milliseconds = date2.getTime() - new Date(date1).getTime();   //时间差的毫秒数       
+          
+            var Milliseconds = cydata;
+            //计算出相差天数  
+            var days = Math.floor(Milliseconds / (24 * 3600 * 1000))
+            //计算出小时数   
+            var leave1 = Milliseconds % (24 * 3600 * 1000)    //计算天数后剩余的毫秒数  
+            var hours = Math.floor(leave1 / (3600 * 1000))
+            //计算相差分钟数  
+            var leave2 = leave1 % (3600 * 1000)        //计算小时数后剩余的毫秒数  
+            var minutes = Math.floor(leave2 / (60 * 1000))
+            //计算相差秒数  
+            var leave3 = leave2 % (60 * 1000)      //计算分钟数后剩余的毫秒数  
+        
+            var seconds = Math.round(leave3 / 1000)
+            var ResultJson = {
+                days: {
+                    days: days >= 0 ? days : days + 1,
+                    hours: hours >= 0 ? hours: hours + 1,
+                    minutes: minutes >= 0 ? minutes : minutes + 1,
+                    seconds: seconds >= 0 ? seconds: seconds + 1
+                },
+                Milliseconds: Milliseconds
+            }; 
+          //console.log(ResultJson)
+            let year=ResultJson.days.days+'天'+ this.p(ResultJson.days.hours)+':'+ this.p(ResultJson.days.minutes)+':'+ this.p(ResultJson.days.seconds)
+           this.$emit('restimeyear',year);
+            return year;
+
+  },
+   p(s) {
+		return s < 10 ? '0' + s: s;
+	},
+    // 获取求解日志
+  //获取历史数据每一条
+  historydata(){
+ let params = {
+            transCode: "C00007",
+            pid: this.pid,
+             lesseeId: this.$store.getters.lesseeId
+         
+          };
+           request(params)
+        .then((res) => {
+          console.log(res)
+            })
+  },
+    // websocket
+    getwebsocket() {
+     // 初始化weosocket
+     this.numlist=[];
+      const wsuri = "ws://192.168.0.43:8031/websocket?projectId="+this.pid;
+      this.websock = new WebSocket(wsuri);
+      this.websock.onmessage = this.websocketonmessage;
+      this.websock.onopen = this.websocketonopen;
+      this.websock.onerror = this.websocketonerror;
+      this.websock.onclose = this.websocketclose;
+   
+    },
+    websocketonopen(e) {
+          
+      //连接建立之后执行send方法发送数据this.newlog();
+      // if(this.lsolverState=='1'||this.numzhexian=='1'){
+           this.getLogs();
+           this.historydata()
+            // }
+    },
+    websocketonerror() {
+      //连接建立失败重连
+      this.websock.close();
+    },
+    websocketonmessage(e) {
+      console.log(e);
+      //数据接收
+   try{
+            const redata = JSON.parse(e.data);
+            console.log(redata);
+            if(typeof redata==='object'&& redata){
+              if(redata.type == "log"){
+               // this.$emit('getthislog',redata.stats+redata.value);
+              }
+            if (redata.type == "iter") {
+       
+              // this.convergeDateLoad(redata.value);
+               //获取运行多少步了
+                const lines = redata.value;
+                 var patiter = /^ iter /;
+                  if (patiter.exec(lines) !== null) {
+              const onelines = kgReplace(lines.trim()).split(" ")
+                .map((str) => str.trim());
+              this.s1= onelines.slice(1,2).map((str) => Number(str));
+               console.log(this.s1);
+          
+            }
+               this.timedata(redata.startTime,redata.time,this.s1[0]);
+             
+            
+            }
+              }
+            }catch(error){
+                return false;
+            }
+    },
+    websocketsend(Data) {
+      //数据发送
+      this.websock.send(Data);
+    },
+    websocketclose(e) {
+      //关闭
+      Message({
+        type: "error",
+        message: "websock断开连接",
+      });
+
+      this.websock.close();
+      
+    },
+  }
+  
+}
+</script>
+
+<style>
+
+.leading  .el-input__inner{
+height: 30px;
+line-height: 30px;
+}
+</style>
+<style lang="scss" scoped>
+@import '@/styles/variables.scss';
+@import '@/styles/mixin.scss';
+.btnaniu{
+  text-align: right;
+}
+.cj{
+      height: 20px;
+    line-height: 0px;
+    font-size: 12px;
+   padding: 10px 13px;
+   
+}
+
+</style>

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

@@ -9,12 +9,12 @@
         <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>
         </div>
-          <div v-else-if="value2=='FEMLab(结构力学)'||value2=='FEMLab(结构力学)版本2'">
+          <div v-else-if="value2=='FEMLab(结构力学)'">
         <fem ref="fem" :femnum="femnum" :logs='logs' :pid="pid"></fem>
         </div>
-           <!-- <div v-else-if="value2=='FEMLab2.0'">
-        <fem ref="fem" ></fem>
-        </div> -->
+        <div v-else-if="value2=='FEMLab(结构力学)版本2'">
+        <fem2 ref="fem2" :femnum="femnum" :logs='logs' :pid="pid" ></fem2>
+        </div>
       
         <div class="adi" v-else>
           <el-tabs  :tab-position="tabPosition" v-model="activeName" type="card" @tab-click="handleClick">
@@ -185,12 +185,13 @@ import toolindex from './tool/index.vue'
 import caozuo from './caozuo/index.vue'
 import hcfd from './HCFDLab/index.vue'
 import fem from './FEMLab/fem.vue'
+import fem2 from './FemLab2_0/index.vue'
 import echartsHFCD from "./HCFDLab/echartsHFCD.vue";
 import { number } from 'echarts/lib/export'
 import TFileStream from "./compoents/TFileStreamhcfd.vue";
 import tool1 from "./compoents/tool1.vue";
 export default {
-  components:{geometry,meshindex,Geometryandclass,Materials,touch,initial,boundary,Meshauto,loadcase,zuoye,echartsHFCD,result,caozuo,toolindex,hcfd,fem,TFileStream,tool1},
+  components:{geometry,meshindex,Geometryandclass,Materials,touch,initial,boundary,Meshauto,loadcase,zuoye,echartsHFCD,result,caozuo,toolindex,hcfd,fem,TFileStream,tool1,fem2},
   data() {
     return {
       tl1,tl2,tl3,tl4,tl5,tl6,tl7,tl8,tl9,tl10,
@@ -464,10 +465,8 @@ linezhexian(num){
          this.pid=this.$route.query.pid;
         // this.pid='31f117acb7e74232a3267b091391eab2';
           this.solverchange1('HCFDLab');
-      
-        
-     
         },
+        
     //项目求解查询
       pojectquery(){
        
@@ -500,8 +499,13 @@ linezhexian(num){
            
            })   
         }else if(val=='FEMLab(结构力学)'){
-             this.$nextTick(()=>{
+            
+                 console.log(1111)
               this.$refs.fem.femchange(res.parameterObj,'abc6db6cb2c0482eb7964df6fea02c70');
+              this.$refs.TFileStream.imgtupian=false;
+              this.$refs.monitor.container_show=false;
+             this.$nextTick(()=>{
+            
            })   
         }else{
           
@@ -536,9 +540,14 @@ linezhexian(num){
          console.log(this.numsteps);
            })   
         }else if(val=='FEMLab(结构力学)'){
-             this.$nextTick(()=>{
-             // this.$refs.fem.femchange(res.parameterObj,res.solverConfigid);
+          console.log(1111)
               this.$refs.fem.femchange(res.parameterObj,'abc6db6cb2c0482eb7964df6fea02c70');
+            that.$refs.TFileStream.imgtupian=false;
+            that.$refs.monitor.container_show=false;
+              
+             that.$nextTick(()=>{
+             // this.$refs.fem.femchange(res.parameterObj,res.solverConfigid);
+           
            })   
         }else{
           

Неке датотеке нису приказане због велике количине промена