<template> 
 | 
  <div shadow="never" class="fa-card-a"> 
 | 
    <div class="mod-sync-sysDataExportRecord}"> 
 | 
      <el-form :model="dataForm" @keyup.enter.native="table.query()"> 
 | 
        <el-form-item> 
 | 
          <!-- <el-input v-model="dataForm.progressId"></el-input>--> 
 | 
          <el-button type="text" class="form-title">导入数据包</el-button> 
 | 
          <zt-uploader v-model="temp" :dataForm="dataForm" :limit="1" 
 | 
                       :file-type="fileTypeArr" @recall="processData" 
 | 
                       :onlyUploadFile="true" :accept="true" :file-size="0"/> 
 | 
          <el-progress v-show="progressFlag" style="padding: 0px" :text-inside="true" :stroke-width="30" 
 | 
                       :percentage="dataForm.speed"></el-progress> 
 | 
          <br/> 
 | 
          <el-input v-model="dataForm.text" :autosize="{ minRows: 27, maxRows: 27}" readonly type="textarea"> 
 | 
          </el-input> 
 | 
        </el-form-item> 
 | 
      </el-form> 
 | 
      <el-dialog title="警告" :visible.sync="dialogVisible" width="30%"> 
 | 
        <span style="color:red">{{ dialogMsg }}</span> 
 | 
        <span slot="footer" class="dialog-footer"> 
 | 
          <el-button type="primary" @click="dialogVisible = false">确 定</el-button> 
 | 
        </span> 
 | 
      </el-dialog> 
 | 
    </div> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
  import Cookies from 'js-cookie' 
 | 
  import qs from 'qs' 
 | 
  import {guid} from '@/commonJS/common'; 
 | 
  
 | 
  export default { 
 | 
    data() { 
 | 
      return { 
 | 
        fileTypeArr: ['zip'], 
 | 
        progressFlag: false, 
 | 
        maxFileSize: 0, 
 | 
        mark: false, 
 | 
        temp: [], 
 | 
        dataForm: { 
 | 
          progressId: '2222', 
 | 
          speed: 0, 
 | 
          text: '' 
 | 
        }, 
 | 
        apiURL: '', 
 | 
        start: 0, 
 | 
        dialogVisible: false, 
 | 
        dialogMsg: '', 
 | 
        fileList: [] 
 | 
      } 
 | 
    }, 
 | 
    created() { 
 | 
  
 | 
    }, 
 | 
    methods: { 
 | 
      format(percentage) { 
 | 
        return percentage < 100 ? '完成处理' : `已处理${percentage}%`; 
 | 
      }, 
 | 
      async processData(uid) { 
 | 
        this.progressFlag = true 
 | 
        console.log(uid, 'uid') 
 | 
        this.start = 1 
 | 
        this.timer = setInterval(this.getStroke, 1000) 
 | 
        this.dataForm.progressId = guid() 
 | 
        this.dataForm.speed = 0 
 | 
        this.dataForm.text = '正在处理' 
 | 
        this.mark = true 
 | 
  
 | 
        let formData = { 
 | 
          uid: uid, 
 | 
          progressId: this.dataForm.progressId 
 | 
        } 
 | 
        this.$http({ 
 | 
          url: "/sys/data/export/record/upload", 
 | 
          method: "POST", 
 | 
          data: formData 
 | 
        }).then(rs => { 
 | 
          this.$http.get(`/sys/common/stroke?progressId=${this.dataForm.progressId}`).then(res => { 
 | 
            if (res.success) { 
 | 
              console.log(this.dataForm.speed, 'this.dataForm.speed') 
 | 
              this.dataForm.speed = 100 
 | 
              this.dataForm.text = res.data.text 
 | 
              this.progressFlag = false 
 | 
            } 
 | 
          }) 
 | 
          this.mark = false 
 | 
          clearInterval(this.timers) 
 | 
        }); 
 | 
      }, 
 | 
      async getStroke() { 
 | 
        if (this.start === 1 && this.dataForm.speed < 100 && this.mark) { 
 | 
          let res = await this.$http.get(`/sys/common/stroke?progressId=${this.dataForm.progressId}`) 
 | 
          if (res.success) { 
 | 
            console.log(this.dataForm.speed, 'this.dataForm.speed') 
 | 
            this.dataForm.speed = parseFloat(res.data.speed) 
 | 
            this.dataForm.text = res.data.text 
 | 
          } 
 | 
        } else { 
 | 
          clearInterval(this.timer) 
 | 
        } 
 | 
      } 
 | 
    }, 
 | 
    beforeDestroy() { 
 | 
      clearInterval(this.timer) 
 | 
    } 
 | 
  } 
 | 
</script> 
 |