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