fujunling
2023-06-25 d185048509bde1c8f687e79b1cf3220b841f7096
Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -1,5 +1,11 @@
<template>
  <el-dialog :title="title" :visible="visible" append-to-body>
  <el-dialog
    v-if="dialogVisible"
    :title="title"
    :visible.sync="dialogVisible"
    append-to-body
    v-dialogDrag
  >
    <Divider text="导入提示" left="30px"></Divider>
    <ul>
      <li v-for="(item, index) in tipList" :key="index">
@@ -23,6 +29,7 @@
      :headers="uploadHeaders"
      :on-success="onSuccess"
      :show-file-list="false"
      :on-change="uploadChange"
      :data="{
        codeClassifyOid: this.codeClassifyOid,
        classifyAttr: this.classifyAttr,
@@ -33,19 +40,37 @@
      >
    </el-upload>
    <template #footer>
      <el-button type="primary" size="small" @click="downloadTemplateFun" :loading="downloadLoading"
      <el-button
        type="primary"
        size="small"
        @click="downloadTemplateFun"
        :loading="downloadLoading"
        >下载导入模板</el-button
      >
      <el-button size="small">关闭</el-button>
      <el-button size="small" @click="dialogVisible = false">关闭</el-button>
    </template>
    <ShowImportData
      :visible.sync="showVisible"
      v-if="dialogVisible"
      :leftTree="leftTree"
      :classifyAttr="classifyAttr"
      :codeClassifyOid="codeClassifyOid"
      :redisOid="redisOid"
    ></ShowImportData>
  </el-dialog>
</template>
<script>
import { downloadHistoryImportTemplate, downloadErrorFile } from "../../api/batchImport/index";
import ShowImportData from "./ShowImportData.vue";
import {
  downloadHistoryImportTemplate,
  downloadErrorFile,
  getHistoryLeftTree
} from "../../api/batchImport/index";
import { getToken } from "@/util/auth";
export default {
  name: "",
  name: "BatchImport",
  components: { ShowImportData },
  props: {
    visible: {
      type: Boolean,
@@ -57,7 +82,7 @@
    },
    codeClassifyOid: {
      type: String,
      default: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
      default: "",
    },
    type: {
      type: String,
@@ -68,7 +93,11 @@
    return {
      classifyAttr: "id",
      uploadParams: {},
      downloadLoading: false
      downloadLoading: false,
      showVisible: false,
      leftTree: [],
      redisOid:'',
      pageLoading: null
    };
  },
  computed: {
@@ -76,6 +105,14 @@
      return {
        "Blade-Auth": "bearer " + getToken(),
      };
    },
    dialogVisible: {
      get() {
        return this.visible;
      },
      set(val) {
        this.$emit("update:visible", val);
      },
    },
  },
  methods: {
@@ -109,30 +146,60 @@
    },
    // 下载导入模板
    downloadTemplateFun() {
      this.downloadLoading = true
      this.downloadLoading = true;
      downloadHistoryImportTemplate({
        codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
      }).then(res => {
        this.downloadLoading = false
        console.log(res);
      }).catch(() => {
        this.downloadLoading = false
      });
        codeClassifyOid: this.codeClassifyOid,
      })
        .then((res) => {
          this.$utilFunc.downloadFileByBlob(res.data, "历史数据导入模板.xls");
          this.downloadLoading = false;
        })
        .catch(() => {
          this.downloadLoading = false;
        });
    },
    onSuccess(res) {
      if (res.code === 400) {
        this.$message.error(`${res.msg},请下载错误信息进行查看!`)
      let fileName = res.data.filePath.split('/').pop()
      if (res.data.fileOid) {
        this.$message.error("请下载错误信息文件进行查看!");
        downloadErrorFile({ uuid: res.data.fileOid }).then((res2) => {
          this.$utilFunc.downloadFileByBlob(res2.data, fileName);
        });
      }
      downloadErrorFile({uuid: res.data.fileOid})
      if (res.data.redisUuid) {
        this.redisOid = res.data.redisUuid
        getHistoryLeftTree(res.data.redisUuid).then(res => {
          this.leftTree = res.obj.map(item => {
            return {
              ...item.codeClassifyTemplateVO,
              cloNamesList: item.cloNamesList
            }
          })
          this.showVisible = true
        })
      }
    },
    uploadChange(file) {
      if (file.status === 'ready') {
        this.pageLoading = this.$loading({
          lock: true,
          text: '文件上传中',
          spinner: 'el-icon-loading',
          background: 'rgba(0, 0, 0, 0.7)'
        });
      }
      if (file.status === 'success' || file.status === 'error') {
        this.pageLoading.close()
      }
    }
  },
  watch: {
    visible: {
      immediate:true,
      immediate: true,
      handler() {
        this.getDataByType();
      }
    }
      },
    },
  },
};
</script>