<!-- 导入 -->
<template>
  <el-dialog :title="importUpload.title" :visible.sync="importUpload.open" width="400px" append-to-body>
    <el-upload  ref="upload"  :limit="1"  accept=".xlsx, .xls"
                :headers="importUpload.headers"
                :action="importUpload.url + '?updateSupport=' + importUpload.updateSupport"
                :disabled="importUpload.isUploading"
                :on-progress="handleFileUploadProgress"
                :on-success="handleFileSuccess"
                :auto-upload="false" drag >
      <i class="el-icon-upload"></i>
      <div class="el-upload__text">将文件拖到此处，或<em>点击上传</em></div>
      <div class="el-upload__tip text-center" slot="tip">
        <div class="el-upload__tip" slot="tip" v-if="updateSupportShow">
          <el-checkbox v-model="importUpload.updateSupport" /> 是否更新已经存在的数据
        </div>
        <span>仅允许导入xls、xlsx格式文件。</span>
        <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
      </div>
    </el-upload>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click="submitFileForm">确 定</el-button>
      <el-button @click="importUpload.open = false">取 消</el-button>
    </div>
  </el-dialog>
</template>

<script>
  import { getToken } from "@/utils/auth";
  export default {
    name: "importUpload",
    props: {
      uploadUrl: { // 上传地址
        type: String,
      },
      importTemplateUrl: { // 模板下载地址
        type: String,
      },
      templateName: { // 下载的模板名
        type: String,
      },
    },
    data() {
      return {
        updateSupportShow:true, //是否更新已经存在的数据 选择框选择显隐。
        // 附件上传
        importUpload: {
          // 是否显示弹出层（用户导入）
          open: false,
          // 弹出层标题（用户导入）
          title: "",
          // 是否禁用上传
          isUploading: false,
          // 是否更新已经存在的用户数据
          updateSupport: 0,
          // 设置上传的请求头部
          headers: { Authorization: "Bearer " + getToken() },
          // 上传的地址
          url: process.env.VUE_APP_BASE_API + this.uploadUrl
        },
      }
    },
    methods: {
      handleImport(title,updateSupportShow) {
        this.importUpload.title = title;
        this.importUpload.open = true;
        if(updateSupportShow != null && updateSupportShow != undefined){
          this.updateSupportShow = updateSupportShow;
        }
      },
      /** 下载模板操作 */
      importTemplate() {
        this.download(this.importTemplateUrl, {
        }, this.templateName)
      },
      // 文件上传中处理
      handleFileUploadProgress(event, file, fileList) {
        this.importUpload.isUploading = true;
      },
      // 文件上传成功处理
      handleFileSuccess(response, file, fileList) {
        this.importUpload.open = false;
        this.importUpload.isUploading = false;
        this.$refs.upload.clearFiles();
        this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
        this.$parent.getList();
      },
      // 提交上传文件
      submitFileForm() {
        this.$refs.upload.submit();
      },

    }
  }
</script>
