Sfoglia il codice sorgente

Merge branch 'develop6.0-tmd' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop6.0-tmd

Li 3 anni fa
parent
commit
302d16e7e8

+ 40 - 12
TEAMModelOS/ClientApp/src/view/evaluation/index/CreatePaper.vue

@@ -1085,23 +1085,49 @@
 
 			},
 			/* 删除试卷目录下的所有文件 */
-			onDeleteBlobPaper(files) {
-				return new Promise(async (r, j) => {
+			onDeleteBlobPaper(files,needCopyToNewPaper,newPaperName) {
+				return new Promise(async (resolve, reject) => {
 					// 获取初始化Blob需要的数据
 					let sasData = this.isSchool ? await this.$tools.getSchoolSas() : await this.$tools
 						.getPrivateSas()
 					//初始化Blob
 					let containerClient = new blobTool(sasData.url, sasData.name, sasData.sas, this.isSchool ?
 						'school' : 'private')
-					// 等待blob的返回结果
-					containerClient.deleteBlobBatch(files).then(
-						(res) => {
-							r(res)
-						},
-						(err) => {
-							this.$Message.error('API Error')
-						}
-					)
+					let containerName = !this.isSchool ? this.$store.state.userInfo.TEAMModelId : this.$store.state.userInfo.schoolCode	
+					// 如果有需要复制到新试卷目录下的多媒体文件 则要进行 copyBlob 操作
+					if(needCopyToNewPaper.length){
+						let promiseArr = []
+						needCopyToNewPaper.forEach(i => {
+							promiseArr.push(new Promise((r,j) => {
+								let target = i.replace(this.oldPaper.name,newPaperName).substring(1)
+								let mediaFullPath = this.$evTools.getBlobHost() + '/' + containerName + i
+								containerClient.copyBlob(target, mediaFullPath, sasData.sas).then(res => {
+									r(res)
+								})
+							}))
+						})
+						// 复制完多媒体文件之后 对原试卷目录进行清除
+						Promise.all(promiseArr).then(result => {
+							containerClient.deleteBlobBatch(files).then(
+								(res) => {
+									resolve(res)
+								},
+								(err) => {
+									this.$Message.error('API Error')
+								}
+							)
+						})
+					}else{
+						containerClient.deleteBlobBatch(files).then(
+							(res) => {
+								resolve(res)
+							},
+							(err) => {
+								this.$Message.error('API Error')
+							}
+						)
+					}
+					
 				})
 			},
 			/* 保存试卷业务 */
@@ -1293,7 +1319,9 @@
 								let blobList = await this.getPaperFiles('paper/' + this
 									.oldPaper.name + '/')
 								let files = blobList.blobList.map(i => i.blob)
-								this.onDeleteBlobPaper(files).then(res => {
+								console.log(files)
+								let needCopyToNewPaper = files.filter(i => !i.includes('.json'))
+								this.onDeleteBlobPaper(files,needCopyToNewPaper,paperItem.name).then(res => {
 									r(200)
 								}).catch(e => {
 									j(e)