zhanghua
2024-11-19 dc7de04cfaa135344071803f5af14c40a5ea53f3
src/views/student/components/upload-student.vue
@@ -15,25 +15,17 @@
                        <div class="uploading-btn-to">
                            <i class="iconfont iconAdd"></i> 上传
                        </div>
                        <div class="el-upload__tip" slot="tip">
                            只能上传.xls,.xlsx文件
                        </div>
            <div class="el-upload__tip" slot="tip">只能上传.xls,.xlsx文件</div>
                    </dragUpload>
                </div>
                <div class="download-file">
                    <i class="iconfont iconFile"></i>
                    <a href="/static/学员导入模板.xlsx" download
                        >下载学员模板</a
                    >
          <a href="/static/学员导入模板.xlsx" download>下载学员模板</a>
                </div>
            </div>
            <div style="font-size: 12px; color: #6993ff" v-if="hasAudience">
                已上传,如需修改直接点击上传
                <i
                    class="el-icon-close"
                    title="删除"
                    @click="clearaudience"
                ></i>
        <i class="el-icon-close" title="删除" @click="clearaudience"></i>
            </div>
        </el-form-item>
@@ -59,7 +51,7 @@
            hasAudience: false,
            progress: false,
            percentage: 0,
            progressStatus: ""
      progressStatus: "",
        };
    },
    components: { dragUpload },
@@ -88,41 +80,57 @@
            // }
        },
        showUploadProcess() {
            self.progress = true
      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);
        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 = parseInt(res.current * 100 / res.total)
          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) {
            self.progressStatus = "success";
            if (res.falseLst === null || res.falseLst.length === 0) {
                            self.$message.success("上传数据成功");
                            self.$emit("load-success");
              self.$emit("load-success");x
                        } else if (res.falseLst.length >= 1) {
                            let errortips = "";
                            res.falseLst.map((item) => {
                                errortips += (`${item.playerRoll}` + `${item.cause} \r\n`).replace('[]', '');
                errortips += (
                  `${item.playerRoll}` +
                  `${item.cause} </div><div style='line-height: 1.5;'>`
                ).replace("[]", "");
                            });
                            self.$message({
                                message: `导入数据成功导入${res.successNum}条,错误信息:${errortips}`,
                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
    self = this;
        const selectStaff = JSON.parse(localStorage.getItem("selectStaff"));
        this.orgId = selectStaff.org.id;
        this.staffId = selectStaff.id;