Browse Source

保存课件改为一个进度条

黄琪勇 2 months ago
parent
commit
e9969aab96
2 changed files with 16 additions and 11 deletions
  1. 4 6
      src/store/pptWork.ts
  2. 12 5
      src/utils/oss-file-upload.ts

+ 4 - 6
src/store/pptWork.ts

@@ -44,11 +44,11 @@ const useStore = defineStore("pptWork", {
       }
     },
     async updatePPT() {
+      LoadingBar.loading(true, "课件保存中,请稍等...")
       await this.updateCoverImg()
       const { blob } = getJsonToBlob()
-      fileUpload(`${this.id}ppt`, blob, `${this.id}/`, false)
+      fileUpload(`${this.id}ppt`, blob, `${this.id}/`, false, { isLoading: false })
         .then(url => {
-          LoadingBar.loading(true, "课件保存中,请稍等...")
           httpAjaxErrMsg(putTeacherChapterKnowledgeMaterial, {
             id: this.id,
             dataJson: JSON.stringify({
@@ -68,6 +68,7 @@ const useStore = defineStore("pptWork", {
           })
         })
         .catch(() => {
+          LoadingBar.loading(false)
           ElMessage({
             showClose: true,
             message: "保存失败!",
@@ -76,19 +77,16 @@ const useStore = defineStore("pptWork", {
         })
     },
     async updateCoverImg() {
-      LoadingBar.loading(true, "资源上传中")
       try {
         const coverImgDom = document.querySelector("#thumbnailSlide_0") as HTMLElement
         if (coverImgDom) {
           const dataBlob = await toBlob(coverImgDom)
           if (dataBlob) {
-            const url = await fileUpload(`${this.id}coverImg`, dataBlob, `${this.id}/`, false)
+            const url = await fileUpload(`${this.id}coverImg`, dataBlob, `${this.id}/`, false, { isLoading: false })
             url && (this.coverImg = url)
           }
         }
-        LoadingBar.loading(false)
       } catch (err) {
-        LoadingBar.loading(false)
         console.log(err, "上传coverImg错误")
       }
     }

+ 12 - 5
src/utils/oss-file-upload.ts

@@ -6,8 +6,15 @@ import loadingBar from "@/plugins/loadingBar"
 const tencentBucket = "daya-online-1303457149"
 const ossType = "tencent"
 
-export default async function fileUpload(fileName: string, file: Blob, filePath: string, isAddTimestamp = true) {
-  loadingBar.loading(true, "资源上传中")
+export default async function fileUpload(
+  fileName: string,
+  file: Blob,
+  filePath: string,
+  isAddTimestamp = true,
+  loadingBarOpt?: { isLoading: boolean; text?: string }
+) {
+  loadingBarOpt || (loadingBarOpt = { isLoading: true })
+  loadingBarOpt.isLoading && loadingBar.loading(true, loadingBarOpt.text || "资源上传中")
   // 上传名称加上时间戳
   if (isAddTimestamp) {
     fileName = addTimestampBeforeExtension(fileName)
@@ -20,18 +27,18 @@ export default async function fileUpload(fileName: string, file: Blob, filePath:
         file,
         filePath
       })
-      loadingBar.loading(false)
+      loadingBarOpt.isLoading && loadingBar.loading(false)
       if (resUpload.statusCode === 200) {
         return resUpload.Location.includes("http") ? resUpload.Location : `https://${resUpload.Location}`
       } else {
         return Promise.reject("")
       }
     } catch {
-      loadingBar.loading(false)
+      loadingBarOpt.isLoading && loadingBar.loading(false)
       return Promise.reject("")
     }
   } else {
-    loadingBar.loading(false)
+    loadingBarOpt.isLoading && loadingBar.loading(false)
     return Promise.reject("")
   }
 }