liuqiao před 2 roky
rodič
revize
54828a4ba2

+ 225 - 64
src/views/index/HCFDLab/fileupload.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="webuploader-container">
+  <div class="webuploader-container">
         <div :id="'uploader'+upId">
                 <el-row>
                     <!-- <el-col :span="6"> {{name}}  </el-col>                   
@@ -18,6 +18,7 @@
         </div>
     </div>
 
+
 </template>
 <script>
 import $ from 'jquery' ;
@@ -26,23 +27,30 @@ import store from "@/store";
 import { request } from "@/utils/request";
 import { ElMessage } from '@/utils/message.js'
 import { log } from 'three';
-let Message = new ElMessage()
+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:[]
+            files:[],
+           nmllist:[],// 批量上传的数组
+            gridFileId:'',
+            boundaryFileId:'',
+             uuid:'',
+             nmlid:'',
+             upstate:'1', //状态
+           hcfdBoundarys:[],
         }
     },
+    updated(){
+      //  this.initWebUploader(); 
+    },
     mounted(){
-        this.initWebUploader();
-        this.$nextTick(function() {
-            this.$on('childmethods', function() {
-                this.uploaderClear()
-            });
-        });
+  this.initWebUploader();
     },
     props:{//传入参数
         projectId: String,
@@ -50,10 +58,76 @@ export default {
         accept:String,
         upId:String,
         name:String,
-        upfileName:Array
+        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);
+          })
+          
+     },
+     //HCFDugrid绑定
+        bindugrid(bfid){
+                let params = {
+                            transCode: "D00001",
+                            pid: this.projectId,
+                            gridFileType:this.solverType,
+                            gridFileId:bfid,
+                            };
+                      
+                request(params)
+                    .then((res) => {
+                     console.log("绑定成功")
+                    
+                })
+                .catch((err) => {});
+            },
+    //HCFDmapbc绑定
+    bindmapbc(mapbcFileId){
+        let solverConfigId= sessionStorage.getItem("solverConfigid");
+         let params = {
+                            transCode: "D00002",
+                            solverConfigId: solverConfigId,
+                            mapbcFileId:mapbcFileId,
+                            };
+                      
+                request(params)
+                    .then((res) => {
+                     console.log("绑定成功")
+                    this.mapbc();
+                    
+                })
+                .catch((err) => {});
+    },
+    //调用c0003
+    mapbc(){
+        let paramsdata=JSON.parse(sessionStorage.getItem("params"))
+         request(paramsdata)
+          .then((res) => { 
+               let data = JSON.parse(res.parameterObj);
+              this.hcfdBoundarys= data.hcfdBoundarys
+                console.log(this.hcfdBoundarys)
+            this.$emit("changedesc",JSON.stringify(this.hcfdBoundarys));
+            console.log('3333');
+
+          })
+          .catch((err) => {
+          })
+        
+    },
+    
         initWebUploader(){
+            this.files=[];
             var v_this=this;
             this.uploader=WebUploader.create({
                 // swf文件路径
@@ -71,35 +145,54 @@ export default {
                         multiple:true
                       },
                 // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
-                resize: false,
+                  resize: false,
                 // 开起分片上传。
                 chunked: true,
-                chunkSize: 1024 * 1024,
+                chunkSize: 2 * 1024 * 1024,
                 threads :4,
 
             })
             // 当有文件被添加进队列的时候
             this.uploader.on( 'fileQueued', file=> {
                 v_this.fileName=file.name;
+            //     console.log(  v_this.fileName);
+              if(this.upId=='1'||this.upId=='2'||this.upId=='3'){
                 const fax=v_this.fileName.split(".")[1];
-                if(this.upfileName&&this.upfileName.length===1&&this.upfileName[0].includes(`.${file.ext}`)&&this.upfileName[0]!==file.name){
+                if(v_this.accept.indexOf(fax)<0){//判断上传支持文件类型
                     v_this.uploader.reset();
-                    Message.error("请检查上传文件名!");
-                    return
+                    Message.error("只支持" +v_this.accept+"格式文件!");
+                    return;
                 }
-                  // 判断名字是否包含特殊字符
-                 var flag = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\] _ <>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、? ]")
-                    console.log(flag.test(file.name))
-                        if(flag.test(file.name)){
-                               v_this.uploader.reset();
-                             Message.error("上传文件名不能包含特殊字符");
-                                 return
-                        }
-                if(this.upfileName&&this.upfileName.length===2&&!this.upfileName.includes(file.name)){
-                    v_this.uploader.reset();
-                    Message.error("请检查上传文件名!");
-                    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();
+              }
+              else{
+                 
+                if(v_this.namelist.includes(v_this.fileName)){
+                     v_this.uploader.reset();
+                        Message.error("文件名已存在请修改文件名才能上传");
+                   return;
+                 
                 }
+                      this.namelist.push(v_this.fileName);
+                const fax=v_this.fileName.split(".")[1];
                 if(v_this.accept.indexOf(fax)<0){//判断上传支持文件类型
                     v_this.uploader.reset();
                     Message.error("只支持" +v_this.accept+"格式文件!");
@@ -123,7 +216,9 @@ export default {
                     msg:"等待上传...",
                     percentage:0
                 })
-                      this.uploader.upload();
+               this.uploader.upload();
+                // }
+                  }
             });
             
             /**文件发送前
@@ -134,52 +229,85 @@ export default {
             this.uploader.on('uploadBeforeSend', (file,data,headers)=> {
                data.chunk=file.chunk;
                data.chunks=file.chunks;
-               data.pid=v_this.projectId;
-               data.solverType=v_this.solverType;
-               data.md5=v_this.md5;
+               data.bfid=v_this.uuid;
                data.fileName=v_this.fileName;
-               data.uploadFlag=2;//1 普通 2覆盖 3续传
+            //    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='A00113';
+               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.upstate='2';
+              sessionStorage.setItem('upstate', this.upstate)
             });
             this.uploader.on( 'uploadSuccess', ( file ,response) =>{
-                 
-                let params = {
-                            transCode: "A00117",
-                            pid: v_this.projectId,
-                            fileName:this.fileName,
-                            solverType:v_this.solverType,
+             console.log(response);
+                       if(file.ext=='ugrid'){
+                        this.gridFileId=response.bfid;
+                          let params = {
+                            transCode: "B00029",
+                            bfid: response.bfid,
                             };
-                      
-                request(params)
-                    .then((res) => {
-                     v_this.files.forEach(fileObj=>{
-                    if(fileObj.id=file.id)
-                    fileObj.msg='已上传'
-                    })
-                    let rows= res.rows;
-                    rows.forEach(row=>{
-                        self.logs += "\n" + row.log;
-                    })
-                    
-                })
-                .catch((err) => {});
-                
+                            request(params)
+                                .then((res) => {
+                                    sessionStorage.removeItem('upstate');
+                                    console.log(res)
+                                v_this.files.forEach((fileObj) => {
+                                if ((fileObj.id = file.id)){
+                                    fileObj.msg = "已上传";
+                                    v_this.$emit('upoK')
+                                }
+                                v_this.bindugrid(response.bfid);
+                                });
+                                
+                            })
+                            .catch((err) => {});
+                     
+                }else if(file.ext=='mapbc'){
+                              let params = {
+                            transCode: "B00029",
+                            bfid: response.bfid,
+                            };
+                            request(params)
+                                .then((res) => {
+                                    sessionStorage.removeItem('upstate');
+                                    console.log(res)
+                                v_this.files.forEach((fileObj) => {
+                                if ((fileObj.id = file.id)){
+                                    fileObj.msg = "已上传";
+                                    v_this.$emit('upoK')
+                                }
+                                v_this.bindmapbc(response.bfid);
+                                });
+                                
+                            })
+                            .catch((err) => {});
+                        
+                        }else{
+                       
+                        }
+              
             });
+            //
             /**
              * 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为false, 则此文件将派送server类型的uploadError事件。
              * object {Object}
@@ -187,19 +315,17 @@ export default {
              */
             this.uploader.on('uploadAccept',(object,res)=>{
                if(res.returnCode=="000000000"){
-                   if(res.code=="3"){
-                       return true;
-                   }else{
-                       v_this.uploader.stop(true);//失败暂停当前上传的文件
-                       return false;
-                   }
+                   return true;
                }else{
                    Message.error(res.returnMsg);
                    return false;
                }
             });
             this.uploader.on( 'uploadError', ( file ,reason)=> {
+                  sessionStorage.removeItem('upstate');
                 $( '#'+file.id ).text(file.name+'上传出错');
+                 this.getUUID();
+                    this.uuid= this.getUUID();
             });
 
             this.uploader.on('uploadComplete', file => {
@@ -211,20 +337,55 @@ export default {
              this.uploader.reset();
              this.percentage=0;
              this.files=[];
-            //  this.$emit('childFn',{name:v_this.name,percentage:v_this.percentage})
         },
         fileDel(fileId){
+        //     if(sessionStorage.getItem('upstate')=='2'){
+        //          Message({
+        //   type: "error",
+        //   message: "上传中不能删除",
+        // });
+        //     }else{
+            if(this.upId=='1'||this.upId=='2'||this.upId=='3'){
+                  this.getUUID();
+                    this.uuid= this.getUUID();
+                        sessionStorage.removeItem('upstate');
             this.files=this.files.filter(fileObj=>{
                 if( fileObj.id == fileId){
-                    this.uploader.removeFile(fileId);
+                       console.log(fileObj);
+                    this.uploader.removeFile(fileId);  
+           
                 }
                return  fileObj.id != fileId
+              
             })
+            }else{
+                 sessionStorage.removeItem('upstate');
+            this.files=this.files.filter(fileObj=>{
+                if( fileObj.id == fileId){
+                       console.log(fileObj);
+                    this.uploader.removeFile(fileId);  
+                    this.namelist.splice(this.namelist.findIndex(item => item === fileObj.name), 1)
+           
+                }
+               return  fileObj.id != fileId
+              
+            })
+
+            }
+           
+            // }
+        
+                
+  
         },
+       
         
     },
-    watch:{//数据监听
-    },
+    datalish(){
+        
+    }
+
+   
 }
 
 </script>

+ 19 - 4
src/views/index/HCFDLab/index.vue

@@ -1070,12 +1070,15 @@
               :accept="'.mapbc,.dat'"
               :name="'Load BC File'"
               :upId="'1'"
+               @changedesc="changedesc1($event)"
             ></vue-uploader>
              </div>
-                <el-form-item >
-            <el-input type="textarea" v-model="form.desc"></el-input>
-          </el-form-item>
-  
+                <!-- <el-form-item >
+            <el-input type="textarea" v-model="desc" style="min-height: 131px;"></el-input>
+          </el-form-item> -->
+            <div class="desc">{{desc}}
+              
+            </div>
            <el-form-item label=" 边界类型" :label-width="formLabelWidth2">
       <el-select 
                   size="mini"
@@ -2077,6 +2080,7 @@ export default {
 
   data() {
     return {
+          desc:'' ,
       checked:false,
       solverConfigid:'',
       mcnames:'apply1',
@@ -2726,6 +2730,11 @@ export default {
   //     this.websock.close() //离开路由之后断开websocket连接
   //   },
 methods:{
+  changedesc1(val){
+    this.desc=val;
+    console.log(1111);
+    console.log(val);
+  },
   leixingchange(val){
     if(val=='MPI Parallel'){
       this.dialog.parallel_visiable=true;
@@ -2739,6 +2748,7 @@ console.log(val)
        this.parameterObj = JSON.parse(obj);
       sessionStorage.setItem("res", obj);
       this.solverConfigid=solverConfigid;
+      sessionStorage.setItem("solverConfigid", solverConfigid);
     },
 //更新参数配置
 hcfdparam(){
@@ -4405,6 +4415,11 @@ body {
   padding: 5px;
 
 }
+.desc{
+  width: 100%;
+  height: 130px;
+  border:1px solid #000
+}
 .radiogroup{
   display:flex;
 }

+ 1 - 0
src/views/index/index.vue

@@ -362,6 +362,7 @@ methods:{
         company:this.value0,
         solverModel:this.value2
         }
+        sessionStorage.setItem('params',JSON.stringify(params))
         request(params)
           .then((res) => { 
         this.objopp=res.parameterObj;