zhanghua
2025-03-12 ad51ed48d64a29467b38196cfd47ba1a5d3ed37f
src/views/student/components/upload-student.vue
@@ -10,7 +10,7 @@
                        @fileSuccess="fatherMethod"
                        @file-uploading="showUploadProcess"
                        :type="'AUDIENCE'"
                        :action="'/dream_dev/player/importPlayer'"
                        :action="'/dream/player/importPlayer'"
                    >
                        <div class="uploading-btn-to">
                            <i class="iconfont iconAdd"></i> 上传
@@ -49,6 +49,7 @@
<script>
import dragUpload from "@/components/drag-upload";
var self = null;
var eventSource = null;
export default {
    inject: ["reload"],
    name: "Creation",
@@ -59,7 +60,8 @@
            hasAudience: false,
            progress: false,
            percentage: 0,
            progressStatus: ""
            progressStatus: "",
            over: false
        };
    },
    components: { dragUpload },
@@ -72,57 +74,128 @@
            this.hasAudience = false;
        },
        fatherMethod(res, type) {
            // if (res.falseLst === null) {
            this.progress = false;
            // if (res.falseLst === null || res.falseLst.length === 0) {
            //     this.$message.success("上传数据成功");
            //     this.$emit("load-success");
            // } else if (res.falseLst.length >= 1) {
            // }
            // else {
            //     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("[]", "");
            //     });
            //     this.$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,
            //     });
            // }
            if (res.success) {
                var ojb = JSON.parse(res.message);
                if (ojb.falseLst === null) {
                    this.$message.success("上传数据成功");
                    this.$emit("load-success");
                } else if (ojb.falseLst.length >= 1) {
                    let errortips = "";
                    ojb.falseLst.map((item) => {
                        errortips += (
                            `${item.playerRoll}` +
                            `${item.cause} </div><div style='line-height: 1.5;'>`
                        ).replace("[]", "");
                    });
                    this.$message({
                        dangerouslyUseHTMLString: true,
                        message: `<div style='line-height: 1.5;'>导入数据成功导入${ojb.successNum || 0
                            }条,错误信息:</div><div style='line-height: 1.5;'>${errortips}</div>`,
                        type: "error",
                        duration: 6000,
                        showClose: true,
                    });
                }
            } else {
                this.$message.error(res.message);
            }
            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,
                });
            }
            setTimeout(function () {
                if (eventSource)
                    eventSource.close()
            }, 5 * 1000);
        },
        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);
                eventSource = new EventSource(
                    "/dream/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.progress) {
                            self.$message.success("上传数据成功");
                            self.$emit("load-success");
                        } 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,
                            });
                        }
                        eventSource.close()
                        self.progress = false;
                    }
                };
                eventSource.onerror = function (err) {
                    console.error("EventSource failed:", err);
                    eventSource.close();
                    // self.showUploadProcess();
                };
            }, 3 * 1000);
        }
            }, 2 * 1000);
        },
    },
    created() {
        self = this
        self = this;
        const selectStaff = JSON.parse(localStorage.getItem("selectStaff"));
        this.orgId = selectStaff.org.id;
        this.staffId = selectStaff.id;