zhanghua
2024-11-19 dc7de04cfaa135344071803f5af14c40a5ea53f3
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;