|
|
@ -4,7 +4,7 @@ |
|
|
|
* @Author: sueRimn |
|
|
|
* @Author: sueRimn |
|
|
|
* @Date: 2020-12-24 14:15:10 |
|
|
|
* @Date: 2020-12-24 14:15:10 |
|
|
|
* @LastEditors: sueRimn |
|
|
|
* @LastEditors: sueRimn |
|
|
|
* @LastEditTime: 2021-01-08 09:48:06 |
|
|
|
* @LastEditTime: 2021-01-11 14:04:49 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
import { Component, OnInit, ViewChild, Inject } from '@angular/core'; |
|
|
|
import { Component, OnInit, ViewChild, Inject } from '@angular/core'; |
|
|
|
import { HttpClient } from '@angular/common/http' |
|
|
|
import { HttpClient } from '@angular/common/http' |
|
|
@ -84,29 +84,23 @@ export class OnetwoEntryPlanComponent implements OnInit { |
|
|
|
pageSizeOptions: number[] = [10] //设置每页条数
|
|
|
|
pageSizeOptions: number[] = [10] //设置每页条数
|
|
|
|
PageNumber:any; //第几页
|
|
|
|
PageNumber:any; //第几页
|
|
|
|
|
|
|
|
|
|
|
|
//获得所有预案信息
|
|
|
|
|
|
|
|
getAllPlanInfo(){ |
|
|
|
|
|
|
|
let paramsdata:any = { |
|
|
|
|
|
|
|
HasChildrenPlanLevel: this.plcheck || '', |
|
|
|
|
|
|
|
PageNumber: this.PageNumber || '1', |
|
|
|
|
|
|
|
PageSize: this.pageSizeOptions[0], |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.http.get("/api/Plans",{params:paramsdata}).subscribe((data:any)=>{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.length = data.totalCount |
|
|
|
|
|
|
|
//this.allPlanInfo = data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//this.tabledataSource = new MatTableDataSource(data.items)
|
|
|
|
|
|
|
|
console.log(this.tabledataSource)
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取表格数据
|
|
|
|
//获取表格数据
|
|
|
|
getAlltabledate(){ |
|
|
|
getAlltabledate(){ |
|
|
|
|
|
|
|
let reservePlanType |
|
|
|
|
|
|
|
this.reservePlanType ? reservePlanType = JSON.parse(JSON.stringify(this.reservePlanType)) : reservePlanType = '' |
|
|
|
|
|
|
|
if(this.reservePlanType && this.reservePlanType.length != 0){ |
|
|
|
|
|
|
|
reservePlanType = eval(this.reservePlanType.join("|")) |
|
|
|
|
|
|
|
}
|
|
|
|
let paramsdata:any = { |
|
|
|
let paramsdata:any = { |
|
|
|
PlanCategory:this.url=='2'?2:1, |
|
|
|
Name:this.unitname||'', |
|
|
|
PlanType:this.projectlevel||'', |
|
|
|
planCategories:this.url=='2'?2:1, |
|
|
|
|
|
|
|
PlanType:reservePlanType||'', |
|
|
|
|
|
|
|
CreatorName:this.addname||'', |
|
|
|
AuditStatus:this.unitstate|| '', |
|
|
|
AuditStatus:this.unitstate|| '', |
|
|
|
|
|
|
|
QueryStartTime:this.addtime||'', |
|
|
|
|
|
|
|
QueryEndTime:this.endtime||'', |
|
|
|
|
|
|
|
PlanLevel:this.projectlevel||'', |
|
|
|
|
|
|
|
HasChildrenPlanLevel:this.plcheck||'', |
|
|
|
PageNumber: this.PageNumber || '1', |
|
|
|
PageNumber: this.PageNumber || '1', |
|
|
|
PageSize: this.pageSizeOptions[0], |
|
|
|
PageSize: this.pageSizeOptions[0], |
|
|
|
|
|
|
|
|
|
|
@ -114,7 +108,6 @@ export class OnetwoEntryPlanComponent implements OnInit { |
|
|
|
this.http.get("/api/PlanComponentsMajor",{params:paramsdata}).subscribe((data:any)=>{ |
|
|
|
this.http.get("/api/PlanComponentsMajor",{params:paramsdata}).subscribe((data:any)=>{ |
|
|
|
this.length = data.totalCount |
|
|
|
this.length = data.totalCount |
|
|
|
this.tabledataSource = data.items |
|
|
|
this.tabledataSource = data.items |
|
|
|
console.log(this.tabledataSource)
|
|
|
|
|
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -124,29 +117,160 @@ export class OnetwoEntryPlanComponent implements OnInit { |
|
|
|
this.level='' |
|
|
|
this.level='' |
|
|
|
this.addname='' |
|
|
|
this.addname='' |
|
|
|
this.addtime='' |
|
|
|
this.addtime='' |
|
|
|
//this.unittype=''
|
|
|
|
this.endtime='' |
|
|
|
|
|
|
|
this.reservePlanType='' |
|
|
|
this.unitstate='' |
|
|
|
this.unitstate='' |
|
|
|
this.projectlevel='' |
|
|
|
this.projectlevel='' |
|
|
|
|
|
|
|
this.plcheck=false |
|
|
|
|
|
|
|
this.getAlltabledate() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//查询
|
|
|
|
//查询
|
|
|
|
onSubmit (value) { |
|
|
|
onSubmit (value) { |
|
|
|
this.PageNumber = 1 |
|
|
|
//console.log(value)
|
|
|
|
this.pageEvent.pageIndex = 0 |
|
|
|
if(this.endtime!=undefined&&this.addtime>this.endtime){ |
|
|
|
this.getAlltabledate(); |
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
|
|
|
config.duration = 3000 |
|
|
|
|
|
|
|
this.snackBar.open('开始时间不能大于结束时间!','确定',config); |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
this.PageNumber = 1 |
|
|
|
|
|
|
|
this.pageEvent.pageIndex = 0 |
|
|
|
|
|
|
|
this.getAlltabledate(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//删除预案
|
|
|
|
|
|
|
|
deletePlan(id){ |
|
|
|
|
|
|
|
let isTrue = confirm('您确定要删除吗') |
|
|
|
|
|
|
|
if(isTrue){ |
|
|
|
|
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
|
|
|
config.duration = 3000 |
|
|
|
|
|
|
|
this.http.delete(`/api/PlanComponentsMajor/${id}`).subscribe(data=>{ |
|
|
|
|
|
|
|
this.snackBar.open('删除成功!','确定',config); |
|
|
|
|
|
|
|
this.getAlltabledate() |
|
|
|
|
|
|
|
},err => { |
|
|
|
|
|
|
|
this.snackBar.open(err,'确定',config); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//新增预案弹窗
|
|
|
|
//新增预案弹窗
|
|
|
|
addunit(){ |
|
|
|
addunit(){ |
|
|
|
const dialogRef = this.dialog.open(newunitComponent, { |
|
|
|
const dialogRef = this.dialog.open(newunitComponent, { |
|
|
|
width: '340px', |
|
|
|
width: '340px', |
|
|
|
height:'430px' |
|
|
|
height:'440px' |
|
|
|
//data: paperDataInfo
|
|
|
|
//data: paperDataInfo
|
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
dialogRef.afterClosed().subscribe(result => { |
|
|
|
|
|
|
|
this.getAlltabledate() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//下载↓
|
|
|
|
|
|
|
|
selectDownloadFile:any; //选择下载的文件
|
|
|
|
|
|
|
|
download:any; //下载文件元数据
|
|
|
|
|
|
|
|
downloadisLoading:boolean = false; //进度条loading加载
|
|
|
|
|
|
|
|
downloadProgress:number=0; //进度条进度
|
|
|
|
|
|
|
|
downloadFileName:any |
|
|
|
|
|
|
|
fileUrls:any //当前预案附件地址
|
|
|
|
|
|
|
|
fileDatas:any = [] |
|
|
|
|
|
|
|
selectedFileIndex : any = 0 |
|
|
|
|
|
|
|
selectedFileData : any
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uploadFileLonging:any |
|
|
|
|
|
|
|
//读取下载文件信息
|
|
|
|
|
|
|
|
readFile (element) { |
|
|
|
|
|
|
|
this.uploadFileLonging = element |
|
|
|
|
|
|
|
element.attachmentUrls.forEach(item=>{ |
|
|
|
|
|
|
|
this.http.get('/api/ObjectMetadata/PlanPlatform/'+item).subscribe((data:any)=>{ |
|
|
|
|
|
|
|
data.filePige = (data.fileLength / (1024*1024)).toFixed(2) |
|
|
|
|
|
|
|
//console.log(data)
|
|
|
|
|
|
|
|
this.download = data |
|
|
|
|
|
|
|
this.downloadFile() |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//初始化下载
|
|
|
|
|
|
|
|
downloadFile () { |
|
|
|
|
|
|
|
this.downloadProgress = 0 |
|
|
|
|
|
|
|
let file = this.download |
|
|
|
|
|
|
|
let fileSize = file.fileLength//下载文件的总大小
|
|
|
|
|
|
|
|
let shardSize = 10 * 1024 * 1024 //文件大小是否大于10MB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (file && fileSize<=shardSize) { //<=10MB时直接下载
|
|
|
|
|
|
|
|
this.downloadisLoading = true |
|
|
|
|
|
|
|
// this.setFileLoading()
|
|
|
|
|
|
|
|
this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`,{responseType: 'blob'},).subscribe(data=>{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let url = window.URL.createObjectURL(new Blob([data])); //createObjectURL创建一个下载Blob的url地址
|
|
|
|
|
|
|
|
let link = document.createElement("a"); |
|
|
|
|
|
|
|
link.style.display = "none"; |
|
|
|
|
|
|
|
link.href = url; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let suffix = file.objectName.substring(file.objectName.lastIndexOf(".")+1,file.objectName.length) ; |
|
|
|
|
|
|
|
link.setAttribute("download", file.fileName + "-" +this.uploadFileLonging.name + "." + suffix); |
|
|
|
|
|
|
|
document.body.appendChild(link); |
|
|
|
|
|
|
|
link.click(); |
|
|
|
|
|
|
|
this.downloadisLoading = false |
|
|
|
|
|
|
|
// this.setFileLoading()
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} else if (file && fileSize > shardSize) { //>10MB时分块下载
|
|
|
|
|
|
|
|
this.blockingDownload() //分段下载
|
|
|
|
|
|
|
|
this.downloadisLoading = true |
|
|
|
|
|
|
|
// this.setFileLoading()
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//分段下载并合并
|
|
|
|
|
|
|
|
async blockingDownload () { |
|
|
|
|
|
|
|
let file = this.download |
|
|
|
|
|
|
|
let fileSize = file.fileLength //下载文件的总大小
|
|
|
|
|
|
|
|
let shardSize = 3 * 1024 * 1024 //3MB一个分片
|
|
|
|
|
|
|
|
let allSlice = Math.ceil(fileSize / shardSize) //总文件/3MB===共分多少段
|
|
|
|
|
|
|
|
let allFile:any = [] //所有的file分段
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let i=0;i<allSlice;i++) { |
|
|
|
|
|
|
|
let start = i * shardSize //每次下载文件开始位置
|
|
|
|
|
|
|
|
let end = Math.min(fileSize, start + shardSize-1); //每次下载文件结束为止
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let result = await new Promise ((result,reject)=>{ |
|
|
|
|
|
|
|
this.http.get(`/api/Objects/PlanPlatform/${file.objectName}`,{headers:{'range':`bytes= ${start}-${end}`},responseType:'blob'}).subscribe(data=>{ |
|
|
|
|
|
|
|
result(data) })
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
allFile.push(result) |
|
|
|
|
|
|
|
this.downloadProgress = Number((i/allSlice).toFixed(2))*100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (allFile.length === allSlice) { //合并文件输出给浏览器
|
|
|
|
|
|
|
|
let url = window.URL.createObjectURL(new Blob(allFile)); //createObjectURL创建一个下载Blob的url地址
|
|
|
|
|
|
|
|
let link = document.createElement("a"); |
|
|
|
|
|
|
|
link.style.display = "none"; |
|
|
|
|
|
|
|
link.href = url; |
|
|
|
|
|
|
|
let suffix = file.objectName.substring(file.objectName.lastIndexOf(".")+1,file.objectName.length) ; |
|
|
|
|
|
|
|
link.setAttribute("download", file.fileName + "-" +this.uploadFileLonging.name + "." + suffix); |
|
|
|
|
|
|
|
document.body.appendChild(link); |
|
|
|
|
|
|
|
link.click(); |
|
|
|
|
|
|
|
// this.downloadProgress = 0
|
|
|
|
|
|
|
|
this.downloadisLoading = false |
|
|
|
|
|
|
|
// this.setFileLoading()
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} //for循环
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//取消分块下载
|
|
|
|
|
|
|
|
cancelDowload () { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查看预案按钮跳转
|
|
|
|
//查看预案按钮跳转
|
|
|
|
routerTo(element){ |
|
|
|
routerTo(element){ |
|
|
|
console.log(element) |
|
|
|
|
|
|
|
sessionStorage.setItem("companyName",element.unitname) |
|
|
|
sessionStorage.setItem("companyName",element.unitname) |
|
|
|
window.open(`/planManagement/entryPlandetail?unitId=${element.company.id}&unitTypeId=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].id}&operation=true&pagetype=entryplan&unitName=${element.company.name}&orName=${element.company.organizationName}&unitType=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].name}&unitAdd=${element.company.address}`); |
|
|
|
window.open(`/planManagement/entryPlandetail?unitId=${element.company.id}&unitTypeId=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].id}&operation=true&pagetype=entryplan&unitName=${element.company.name}&orName=${element.company.organizationName}&unitType=${element.company.buildingTypes.length == 0 ? null :element.company.buildingTypes[0].name}&unitAdd=${element.company.address}`); |
|
|
|
} |
|
|
|
} |
|
|
@ -160,13 +284,190 @@ export class OnetwoEntryPlanComponent implements OnInit { |
|
|
|
}) |
|
|
|
}) |
|
|
|
export class newunitComponent{ |
|
|
|
export class newunitComponent{ |
|
|
|
constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef<newunitComponent>,@Inject(MAT_DIALOG_DATA) public data: any) {} |
|
|
|
constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef<newunitComponent>,@Inject(MAT_DIALOG_DATA) public data: any) {} |
|
|
|
|
|
|
|
ngOnInit(): void { |
|
|
|
|
|
|
|
this.url=window.location.href.substring(window.location.href.length-1,window.location.href.length) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
url |
|
|
|
unitname//预案名称
|
|
|
|
unitname//预案名称
|
|
|
|
level//预案级别
|
|
|
|
level//预案级别
|
|
|
|
addname//添加人
|
|
|
|
addname//添加人
|
|
|
|
addtime//添加时间
|
|
|
|
addtime//添加时间
|
|
|
|
unittype//预案类型
|
|
|
|
reservePlanType//预案类型
|
|
|
|
unitstate//审核状态
|
|
|
|
unitstate//审核状态
|
|
|
|
projectlevel//编制级别
|
|
|
|
projectlevel//编制级别
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//上传文件↓
|
|
|
|
|
|
|
|
file:any; //上传的文件
|
|
|
|
|
|
|
|
fileName:any; //上传文件name
|
|
|
|
|
|
|
|
uploadisLoading:boolean = false; //进度条loading加载
|
|
|
|
|
|
|
|
uploadProgress:number=0; //进度条进度
|
|
|
|
|
|
|
|
objectName:any; //上传对象名
|
|
|
|
|
|
|
|
uploadId:any; //上传分块上传事件编号
|
|
|
|
|
|
|
|
uploadover:any = false //上传完成之后提示
|
|
|
|
|
|
|
|
selectedPLanType:any//所选预案类型
|
|
|
|
|
|
|
|
selectedPLanName:any//所选预案名称
|
|
|
|
|
|
|
|
localup:boolean = false //本地上传
|
|
|
|
|
|
|
|
defaultisshow = '0' //默认显示上传input框
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//上传
|
|
|
|
|
|
|
|
upload(){ |
|
|
|
|
|
|
|
document.getElementById('up').click() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//上传文件input
|
|
|
|
|
|
|
|
filechange(e){ |
|
|
|
|
|
|
|
this.file = e.target.files[0] || null //上传的文件
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//上传文件
|
|
|
|
|
|
|
|
startUploading (planType) { |
|
|
|
|
|
|
|
let file = this.file || null //获取上传的文件
|
|
|
|
|
|
|
|
let fileSize = file.size || null //上传文件的总大小
|
|
|
|
|
|
|
|
let shardSize = 5 * 1024 * 1024 //5MB一个分片
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (file && fileSize<=shardSize) { //上传文件<=5MB时
|
|
|
|
|
|
|
|
let formData = new FormData() |
|
|
|
|
|
|
|
formData.append("file",file) |
|
|
|
|
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
|
|
|
config.duration = 3000 |
|
|
|
|
|
|
|
this.http.post(this.url=='2'?`/api/Objects/PlanPlatform/twoClass`:'/api/Objects/PlanPlatform/oneClass',formData).subscribe((data:any)=>{ |
|
|
|
|
|
|
|
this.objectName = data.objectName |
|
|
|
|
|
|
|
//this.snackBar.open('上传成功!','确定',config);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let body:any = { |
|
|
|
|
|
|
|
Name:this.unitname||'', |
|
|
|
|
|
|
|
PlanCategory:this.url=='2'?2:1, |
|
|
|
|
|
|
|
PlanType: Number(this.reservePlanType), |
|
|
|
|
|
|
|
PlanLevel:1, |
|
|
|
|
|
|
|
PlanMode:1, |
|
|
|
|
|
|
|
attachmentUrls:[`${this.objectName}`] |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.http.post("/api/PlanComponentsMajor",body).subscribe((data:any)=>{ |
|
|
|
|
|
|
|
this.snackBar.open('创建成功!','确定',config); |
|
|
|
|
|
|
|
this.dialogRef.close();
|
|
|
|
|
|
|
|
},err=>{ |
|
|
|
|
|
|
|
this.snackBar.open('创建失败!','确定',config); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
},err=>{ |
|
|
|
|
|
|
|
this.snackBar.open('上传失败!','确定',config); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} else if (file && fileSize>shardSize) { //上传文件>5MB时,分块上传
|
|
|
|
|
|
|
|
let data = {filename: file.name} |
|
|
|
|
|
|
|
this.uploadisLoading = true |
|
|
|
|
|
|
|
this.http.post(this.url=='2'?`/api/NewMultipartUpload/PlanPlatform/twoClass`:'/api/NewMultipartUpload/PlanPlatform/oneClass',{},{params:data}).subscribe((data:any)=>{ //初始化分段上传
|
|
|
|
|
|
|
|
this.objectName = data.objectName |
|
|
|
|
|
|
|
this.uploadId = data.uploadId |
|
|
|
|
|
|
|
this.subsectionUploading(planType) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
PartNumberETag:any=[]; //每次返回需要保存的信息
|
|
|
|
|
|
|
|
//开始分段上传
|
|
|
|
|
|
|
|
async subsectionUploading (planType) { |
|
|
|
|
|
|
|
let file = this.file || null //获取上传的文件
|
|
|
|
|
|
|
|
let fileSize = file.size || null //上传文件的总大小
|
|
|
|
|
|
|
|
let shardSize = 5 * 1024 * 1024 //5MB一个分片
|
|
|
|
|
|
|
|
let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段 向上取整
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0;i < allSlice;i++) { //循环分段上传
|
|
|
|
|
|
|
|
let start = i * shardSize //切割文件开始位置
|
|
|
|
|
|
|
|
let end = Math.min(fileSize, start + shardSize); //切割文件结束位置 (对比取小数)
|
|
|
|
|
|
|
|
let formData = new FormData() |
|
|
|
|
|
|
|
formData.append("file",file.slice(start, end)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//同步写法实现异步调用
|
|
|
|
|
|
|
|
let result = await new Promise((resolve, reject) => { |
|
|
|
|
|
|
|
// await 需要后面返回一个 promise 对象
|
|
|
|
|
|
|
|
this.http.post(`/api/MultipartUpload/PlanPlatform/${this.objectName}?uploadId=${this.uploadId}&partNumber=${i+1}`,formData).subscribe((data:any)=>{ |
|
|
|
|
|
|
|
let msg = { |
|
|
|
|
|
|
|
"partNumber":data.partNumber || null, |
|
|
|
|
|
|
|
"eTag": data.eTag || null} |
|
|
|
|
|
|
|
resolve(msg) // 调用 promise 内置方法处理成功
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
this.PartNumberETag.push(result) |
|
|
|
|
|
|
|
this.uploadProgress = Number((i/allSlice).toFixed(2))*100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (this.PartNumberETag.length === allSlice) { |
|
|
|
|
|
|
|
this.uploadProgress = 100 |
|
|
|
|
|
|
|
this.endUploading(planType)} |
|
|
|
|
|
|
|
}//for循环
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//完成分块上传
|
|
|
|
|
|
|
|
endUploading (planType) { |
|
|
|
|
|
|
|
let data = this.PartNumberETag |
|
|
|
|
|
|
|
let paramsData = {uploadId:this.uploadId} |
|
|
|
|
|
|
|
this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${this.objectName}`,data,{params:paramsData}).subscribe(data=>{ |
|
|
|
|
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
|
|
|
config.duration = 3000 |
|
|
|
|
|
|
|
//this.snackBar.open('上传成功!','确定',config);
|
|
|
|
|
|
|
|
this.uploadProgress = 0; |
|
|
|
|
|
|
|
this.uploadisLoading = false |
|
|
|
|
|
|
|
this.PartNumberETag =[] //清空保存返回的信息
|
|
|
|
|
|
|
|
this.uploadover = true |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let body:any = { |
|
|
|
|
|
|
|
Name:this.unitname||'', |
|
|
|
|
|
|
|
PlanCategory:this.url=='2'?2:1, |
|
|
|
|
|
|
|
PlanType: Number(this.reservePlanType), |
|
|
|
|
|
|
|
PlanLevel:1, |
|
|
|
|
|
|
|
PlanMode:1, |
|
|
|
|
|
|
|
attachmentUrls:[`${this.objectName}`] |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.http.post("/api/PlanComponentsMajor",body).subscribe((data:any)=>{ |
|
|
|
|
|
|
|
this.snackBar.open('创建成功!','确定',config); |
|
|
|
|
|
|
|
this.dialogRef.close();
|
|
|
|
|
|
|
|
},err=>{ |
|
|
|
|
|
|
|
this.snackBar.open('创建失败!','确定',config); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//取消分块上传
|
|
|
|
|
|
|
|
cancel () { |
|
|
|
|
|
|
|
this.http.delete(`/api/MultipartUpload/PlanPlatform/${this.objectName}?uploadId=${this.uploadId}`).subscribe(data=>{ |
|
|
|
|
|
|
|
this.uploadProgress = 0; |
|
|
|
|
|
|
|
this.uploadisLoading= false; |
|
|
|
|
|
|
|
(<HTMLInputElement>document.getElementById('up')).value = null
|
|
|
|
|
|
|
|
this.PartNumberETag =[] //清空保存返回的信息
|
|
|
|
|
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
|
|
|
config.duration = 3000 |
|
|
|
|
|
|
|
this.snackBar.open('取消上传成功!','确定',config); |
|
|
|
|
|
|
|
this.uploadover = false |
|
|
|
|
|
|
|
this.file = null |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//创建预案
|
|
|
|
|
|
|
|
newplan(){ |
|
|
|
|
|
|
|
const config = new MatSnackBarConfig(); |
|
|
|
|
|
|
|
config.verticalPosition = 'top'; |
|
|
|
|
|
|
|
config.duration = 3000 |
|
|
|
|
|
|
|
if(this.unitname==undefined||this.reservePlanType==undefined){ |
|
|
|
|
|
|
|
this.snackBar.open('请输入预案名称或类型!','确定',config); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if(this.file==undefined){ |
|
|
|
|
|
|
|
this.snackBar.open('请先上传文件!','确定',config); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else{ |
|
|
|
|
|
|
|
if(this.reservePlanType!='1'){ |
|
|
|
|
|
|
|
this.startUploading("非二维") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else{this.startUploading("二维")} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//取消按钮
|
|
|
|
close(){ |
|
|
|
close(){ |
|
|
|
this.dialogRef.close(); |
|
|
|
this.dialogRef.close(); |
|
|
|
} |
|
|
|
} |
|
|
|