From dc7de04cfaa135344071803f5af14c40a5ea53f3 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 19 十一月 2024 12:14:00 +0800
Subject: [PATCH] 导入优化

---
 src/views/student/components/upload-student.vue |   92 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 77 insertions(+), 15 deletions(-)

diff --git a/src/views/student/components/upload-student.vue b/src/views/student/components/upload-student.vue
index 6814ed9..aa42e4d 100644
--- a/src/views/student/components/upload-student.vue
+++ b/src/views/student/components/upload-student.vue
@@ -8,8 +8,9 @@
             :orgId="parseInt(orgId)"
             :staffId="parseInt(staffId)"
             @fileSuccess="fatherMethod"
+            @file-uploading="showUploadProcess"
             :type="'AUDIENCE'"
-            :action="'/dream/player/importPlayer'"
+            :action="'/dream_dev/player/importPlayer'"
           >
             <div class="uploading-btn-to">
               <i class="iconfont iconAdd"></i> 涓婁紶
@@ -27,11 +28,19 @@
         <i class="el-icon-close" title="鍒犻櫎" @click="clearaudience"></i>
       </div>
     </el-form-item>
+
+    <el-progress
+      v-show="progress"
+      type="circle"
+      :percentage="percentage"
+      :status="progressStatus"
+    ></el-progress>
   </el-form>
 </template>
 
 <script>
 import dragUpload from "@/components/drag-upload";
+var self = null;
 export default {
   inject: ["reload"],
   name: "Creation",
@@ -40,6 +49,9 @@
       orgId: 0,
       staffId: 0,
       hasAudience: false,
+      progress: false,
+      percentage: 0,
+      progressStatus: "",
     };
   },
   components: { dragUpload },
@@ -52,23 +64,73 @@
       this.hasAudience = false;
     },
     fatherMethod(res, type) {
-      if (res.falseLst === null) {
-        this.$message.success("涓婁紶鏁版嵁鎴愬姛");
-        this.$emit("load-success");
-      } else if (res.falseLst.length >= 1) {
-        let errortips = "";
-        res.falseLst.map((item) => {
-          errortips += (`${item.playerRoll}`+`${item.cause} \r\n`).replace('[]','');
-        });
-        this.$message({
-          message: `瀵煎叆鏁版嵁鎴愬姛瀵煎叆${res.successNum}鏉�,閿欒淇℃伅:${errortips}`,
-          type: "error",
-          duration: 6000,
-        });
-      }
+      // if (res.falseLst === null) {
+      //     this.$message.success("涓婁紶鏁版嵁鎴愬姛");
+      //     this.$emit("load-success");
+      // } else if (res.falseLst.length >= 1) {
+      //     let errortips = "";
+      //     res.falseLst.map((item) => {
+      //         errortips += (`${item.playerRoll}` + `${item.cause} \r\n`).replace('[]', '');
+      //     });
+      //     this.$message({
+      //         message: `瀵煎叆鏁版嵁鎴愬姛瀵煎叆${res.successNum}鏉�,閿欒淇℃伅:${errortips}`,
+      //         type: "error",
+      //         duration: 6000,
+      //     });
+      // }
+    },
+    showUploadProcess() {
+      self.progress = true;
+      self.percentage = 0.1;
+      self.progressStatus = "";
+      setTimeout(function () {
+        const eventSource = new EventSource(
+          "/dream_dev/sse-stream/" +
+            JSON.parse(localStorage.getItem("selectStaff")).id
+        );
+
+        eventSource.onmessage = function (event) {
+          const res = JSON.parse(event.data);
+          self.percentage = Math.floor((res.current / res.total) * 10000) / 100;
+
+          if (res.current == res.total) {
+            self.progressStatus = "success";
+            if (res.falseLst === null || res.falseLst.length === 0) {
+              self.$message.success("涓婁紶鏁版嵁鎴愬姛");
+              self.$emit("load-success");x
+            } else if (res.falseLst.length >= 1) {
+              let errortips = "";
+              res.falseLst.map((item) => {
+                errortips += (
+                  `${item.playerRoll}` +
+                  `${item.cause} </div><div style='line-height: 1.5;'>`
+                ).replace("[]", "");
+              });
+              self.$message({
+                dangerouslyUseHTMLString: true,
+                message: `<div style='line-height: 1.5;'>瀵煎叆鏁版嵁鎴愬姛瀵煎叆${
+                  res.successNum || 0
+                }鏉�,閿欒淇℃伅:</div><div style='line-height: 1.5;'>${errortips}</div>`,
+                type: "error",
+                duration: 6000,
+                showClose: true,
+              });
+            }
+
+            self.progress = false;
+          }
+        };
+
+        eventSource.onerror = function (err) {
+          console.error("EventSource failed:", err);
+          eventSource.close();
+          self.showUploadProcess()
+        };
+      }, 3 * 1000);
     },
   },
   created() {
+    self = this;
     const selectStaff = JSON.parse(localStorage.getItem("selectStaff"));
     this.orgId = selectStaff.org.id;
     this.staffId = selectStaff.id;

--
Gitblit v1.8.0