|
|
|
@ -18,7 +18,7 @@ export class CanvasShareDataService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isChange:boolean = false; // 数据 是否改动
|
|
|
|
|
isChange = false; // 数据 是否改动
|
|
|
|
|
|
|
|
|
|
selectTemplateData: any; // 选择当前 模板数据
|
|
|
|
|
|
|
|
|
@ -70,7 +70,7 @@ export class CanvasShareDataService {
|
|
|
|
|
['泡沫枪', '泡沫枪'], |
|
|
|
|
['泡沫发生器', '泡沫发生器'], |
|
|
|
|
['消防管网', '消防管网'], |
|
|
|
|
[ '泡沫管网', '消防管网'], |
|
|
|
|
['泡沫管网', '泡沫管网'], |
|
|
|
|
['DCS控制室', 'DCS控制室'] |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
@ -85,45 +85,45 @@ export class CanvasShareDataService {
|
|
|
|
|
|
|
|
|
|
// 分段上传
|
|
|
|
|
sectionUpload(companyId: string, file) { |
|
|
|
|
let data = {filename: file.name} |
|
|
|
|
const data = { filename: file.name }; |
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
this.http.post(`/api/NewMultipartUpload/PlanPlatform/${companyId}/DisposalNode`, {}, { params: data }).subscribe(async (data: any) => { // 初始化分段上传
|
|
|
|
|
let objectName = data.objectName |
|
|
|
|
let uploadId = data.uploadId |
|
|
|
|
let PartNumberETag = []; //每次返回需要保存的信息
|
|
|
|
|
const objectName = data.objectName; |
|
|
|
|
const uploadId = data.uploadId; |
|
|
|
|
const PartNumberETag = []; // 每次返回需要保存的信息
|
|
|
|
|
// 分块 处理
|
|
|
|
|
let fileSize = file.size || null //上传文件的总大小
|
|
|
|
|
let shardSize = 5 * 1024 * 1024 //5MB一个分片
|
|
|
|
|
let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段
|
|
|
|
|
const fileSize = file.size || null; // 上传文件的总大小
|
|
|
|
|
const shardSize = 5 * 1024 * 1024; // 5MB一个分片
|
|
|
|
|
const 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)) |
|
|
|
|
const start = i * shardSize; // 切割文件开始位置
|
|
|
|
|
const end = Math.min(fileSize, start + shardSize); // 切割文件结束位置
|
|
|
|
|
const formData = new FormData(); |
|
|
|
|
formData.append('file', file.slice(start, end)); |
|
|
|
|
|
|
|
|
|
// 同步写法实现异步调用
|
|
|
|
|
let result = await new Promise((resolve, reject) => { |
|
|
|
|
const result = await new Promise((resolve, reject) => { |
|
|
|
|
// await 需要后面返回一个 promise 对象
|
|
|
|
|
this.http.post(`/api/MultipartUpload/PlanPlatform/${objectName}?uploadId=${uploadId}&partNumber=${i + 1}`, formData).subscribe((data: any) => { |
|
|
|
|
let msg = { "partNumber":data.partNumber || null, "eTag": data.eTag || null } |
|
|
|
|
resolve(msg) // 调用 promise 内置方法处理成功
|
|
|
|
|
}) |
|
|
|
|
const msg = { partNumber: data.partNumber || null, eTag: data.eTag || null }; |
|
|
|
|
resolve(msg); // 调用 promise 内置方法处理成功
|
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
PartNumberETag.push(result) |
|
|
|
|
PartNumberETag.push(result); |
|
|
|
|
|
|
|
|
|
if (PartNumberETag.length === allSlice) { // 分块上传完成
|
|
|
|
|
let data = PartNumberETag |
|
|
|
|
let paramsData = {uploadId:uploadId} |
|
|
|
|
const data = PartNumberETag; |
|
|
|
|
const paramsData = { uploadId }; |
|
|
|
|
this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${objectName}`, data, { params: paramsData }).subscribe(data => { |
|
|
|
|
resolve(objectName) |
|
|
|
|
}) |
|
|
|
|
resolve(objectName); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}// for循环
|
|
|
|
|
|
|
|
|
|
// 分块 处理
|
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 处置节点 筛选出 匹配数据 匹配不到 return undefined
|
|
|
|
|