|
@@ -1,5 +1,5 @@
|
|
<template>
|
|
<template>
|
|
- <div class="webuploader-container">
|
|
|
|
|
|
+ <div class="webuploader-container">
|
|
<div :id="'uploader'+upId">
|
|
<div :id="'uploader'+upId">
|
|
<el-row>
|
|
<el-row>
|
|
<!-- <el-col :span="6"> {{name}} </el-col>
|
|
<!-- <el-col :span="6"> {{name}} </el-col>
|
|
@@ -18,6 +18,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
+
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
import $ from 'jquery' ;
|
|
import $ from 'jquery' ;
|
|
@@ -26,23 +27,30 @@ import store from "@/store";
|
|
import { request } from "@/utils/request";
|
|
import { request } from "@/utils/request";
|
|
import { ElMessage } from '@/utils/message.js'
|
|
import { ElMessage } from '@/utils/message.js'
|
|
import { log } from 'three';
|
|
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 {
|
|
export default {
|
|
data(){
|
|
data(){
|
|
return {
|
|
return {
|
|
uploader:undefined,
|
|
uploader:undefined,
|
|
fileName:undefined,
|
|
fileName:undefined,
|
|
md5:"1212",
|
|
md5:"1212",
|
|
- files:[]
|
|
|
|
|
|
+ files:[],
|
|
|
|
+ nmllist:[],// 批量上传的数组
|
|
|
|
+ gridFileId:'',
|
|
|
|
+ boundaryFileId:'',
|
|
|
|
+ uuid:'',
|
|
|
|
+ nmlid:'',
|
|
|
|
+ upstate:'1', //状态
|
|
|
|
+ hcfdBoundarys:[],
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ updated(){
|
|
|
|
+ // this.initWebUploader();
|
|
|
|
+ },
|
|
mounted(){
|
|
mounted(){
|
|
- this.initWebUploader();
|
|
|
|
- this.$nextTick(function() {
|
|
|
|
- this.$on('childmethods', function() {
|
|
|
|
- this.uploaderClear()
|
|
|
|
- });
|
|
|
|
- });
|
|
|
|
|
|
+ this.initWebUploader();
|
|
},
|
|
},
|
|
props:{//传入参数
|
|
props:{//传入参数
|
|
projectId: String,
|
|
projectId: String,
|
|
@@ -50,10 +58,76 @@ export default {
|
|
accept:String,
|
|
accept:String,
|
|
upId:String,
|
|
upId:String,
|
|
name:String,
|
|
name:String,
|
|
- upfileName:Array
|
|
|
|
|
|
+ namelist:Array,//文件名的集合
|
|
},
|
|
},
|
|
|
|
+ created(){
|
|
|
|
+ this.getUUID()
|
|
|
|
+ this.uuid= this.getUUID()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+},
|
|
methods:{
|
|
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(){
|
|
initWebUploader(){
|
|
|
|
+ this.files=[];
|
|
var v_this=this;
|
|
var v_this=this;
|
|
this.uploader=WebUploader.create({
|
|
this.uploader=WebUploader.create({
|
|
// swf文件路径
|
|
// swf文件路径
|
|
@@ -71,35 +145,54 @@ export default {
|
|
multiple:true
|
|
multiple:true
|
|
},
|
|
},
|
|
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
|
|
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
|
|
- resize: false,
|
|
|
|
|
|
+ resize: false,
|
|
// 开起分片上传。
|
|
// 开起分片上传。
|
|
chunked: true,
|
|
chunked: true,
|
|
- chunkSize: 1024 * 1024,
|
|
|
|
|
|
+ chunkSize: 2 * 1024 * 1024,
|
|
threads :4,
|
|
threads :4,
|
|
|
|
|
|
})
|
|
})
|
|
// 当有文件被添加进队列的时候
|
|
// 当有文件被添加进队列的时候
|
|
this.uploader.on( 'fileQueued', file=> {
|
|
this.uploader.on( 'fileQueued', file=> {
|
|
v_this.fileName=file.name;
|
|
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];
|
|
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();
|
|
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){//判断上传支持文件类型
|
|
if(v_this.accept.indexOf(fax)<0){//判断上传支持文件类型
|
|
v_this.uploader.reset();
|
|
v_this.uploader.reset();
|
|
Message.error("只支持" +v_this.accept+"格式文件!");
|
|
Message.error("只支持" +v_this.accept+"格式文件!");
|
|
@@ -123,7 +216,9 @@ export default {
|
|
msg:"等待上传...",
|
|
msg:"等待上传...",
|
|
percentage:0
|
|
percentage:0
|
|
})
|
|
})
|
|
- this.uploader.upload();
|
|
|
|
|
|
+ this.uploader.upload();
|
|
|
|
+ // }
|
|
|
|
+ }
|
|
});
|
|
});
|
|
|
|
|
|
/**文件发送前
|
|
/**文件发送前
|
|
@@ -134,52 +229,85 @@ export default {
|
|
this.uploader.on('uploadBeforeSend', (file,data,headers)=> {
|
|
this.uploader.on('uploadBeforeSend', (file,data,headers)=> {
|
|
data.chunk=file.chunk;
|
|
data.chunk=file.chunk;
|
|
data.chunks=file.chunks;
|
|
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.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.channelNo ='service';
|
|
data.clientToken=store.getters.token;
|
|
data.clientToken=store.getters.token;
|
|
- data.transCode='A00113';
|
|
|
|
|
|
+ data.transCode='B00028';
|
|
data.userId=store.getters.userId;
|
|
data.userId=store.getters.userId;
|
|
headers.Content='multipart';
|
|
headers.Content='multipart';
|
|
headers.Type='form-data';
|
|
headers.Type='form-data';
|
|
|
|
+
|
|
})
|
|
})
|
|
// 文件上传过程中创建进度条实时显示。
|
|
// 文件上传过程中创建进度条实时显示。
|
|
this.uploader.on( 'uploadProgress', ( file, percentage ) =>{
|
|
this.uploader.on( 'uploadProgress', ( file, percentage ) =>{
|
|
|
|
+
|
|
let prage= Math.floor(percentage*100);
|
|
let prage= Math.floor(percentage*100);
|
|
|
|
+
|
|
// v_this.$emit('childFn',{name:v_this.name,percentage:prage})
|
|
// v_this.$emit('childFn',{name:v_this.name,percentage:prage})
|
|
v_this.files.forEach(fileObj=>{
|
|
v_this.files.forEach(fileObj=>{
|
|
if(fileObj.id=file.id)
|
|
if(fileObj.id=file.id)
|
|
fileObj.msg='上传中';
|
|
fileObj.msg='上传中';
|
|
fileObj.percentage=prage;
|
|
fileObj.percentage=prage;
|
|
|
|
+
|
|
|
|
+
|
|
})
|
|
})
|
|
|
|
+ this.upstate='2';
|
|
|
|
+ sessionStorage.setItem('upstate', this.upstate)
|
|
});
|
|
});
|
|
this.uploader.on( 'uploadSuccess', ( file ,response) =>{
|
|
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事件。
|
|
* 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为false, 则此文件将派送server类型的uploadError事件。
|
|
* object {Object}
|
|
* object {Object}
|
|
@@ -187,19 +315,17 @@ export default {
|
|
*/
|
|
*/
|
|
this.uploader.on('uploadAccept',(object,res)=>{
|
|
this.uploader.on('uploadAccept',(object,res)=>{
|
|
if(res.returnCode=="000000000"){
|
|
if(res.returnCode=="000000000"){
|
|
- if(res.code=="3"){
|
|
|
|
- return true;
|
|
|
|
- }else{
|
|
|
|
- v_this.uploader.stop(true);//失败暂停当前上传的文件
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
|
|
+ return true;
|
|
}else{
|
|
}else{
|
|
Message.error(res.returnMsg);
|
|
Message.error(res.returnMsg);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.uploader.on( 'uploadError', ( file ,reason)=> {
|
|
this.uploader.on( 'uploadError', ( file ,reason)=> {
|
|
|
|
+ sessionStorage.removeItem('upstate');
|
|
$( '#'+file.id ).text(file.name+'上传出错');
|
|
$( '#'+file.id ).text(file.name+'上传出错');
|
|
|
|
+ this.getUUID();
|
|
|
|
+ this.uuid= this.getUUID();
|
|
});
|
|
});
|
|
|
|
|
|
this.uploader.on('uploadComplete', file => {
|
|
this.uploader.on('uploadComplete', file => {
|
|
@@ -211,20 +337,55 @@ export default {
|
|
this.uploader.reset();
|
|
this.uploader.reset();
|
|
this.percentage=0;
|
|
this.percentage=0;
|
|
this.files=[];
|
|
this.files=[];
|
|
- // this.$emit('childFn',{name:v_this.name,percentage:v_this.percentage})
|
|
|
|
},
|
|
},
|
|
fileDel(fileId){
|
|
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=>{
|
|
this.files=this.files.filter(fileObj=>{
|
|
if( fileObj.id == fileId){
|
|
if( fileObj.id == fileId){
|
|
- this.uploader.removeFile(fileId);
|
|
|
|
|
|
+ console.log(fileObj);
|
|
|
|
+ this.uploader.removeFile(fileId);
|
|
|
|
+
|
|
}
|
|
}
|
|
return fileObj.id != 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>
|
|
</script>
|