<template> 
 | 
  <div> 
 | 
    <vol-box 
 | 
      v-model="showDetialBox" 
 | 
      :lazy="true" 
 | 
      :height="350" 
 | 
      :width="600" 
 | 
      :padding="15" 
 | 
      title="设备协议信息-导入" 
 | 
    > 
 | 
      <upload-excel 
 | 
        ref="upload_excel" 
 | 
        :url="url" 
 | 
        :template="template" 
 | 
      ></upload-excel> 
 | 
    </vol-box> 
 | 
  </div> 
 | 
</template> 
 | 
     
 | 
    <script> 
 | 
import VolBox from "@/components/basic/VolBox.vue"; 
 | 
import UploadExcel from "@/components/basic/UploadExcel.vue"; 
 | 
export default { 
 | 
  components: { VolBox, UploadExcel }, 
 | 
  data() { 
 | 
    return { 
 | 
      showDetialBox: false, 
 | 
      url: "", 
 | 
      template: { 
 | 
        url: "", //模板下载路径,如果没有模板路径,则不显示下载模板功能 
 | 
        fileName: "设备协议信息导入模板", //下载模板的文件名 
 | 
      }, 
 | 
    }; 
 | 
  }, 
 | 
  methods: { 
 | 
    open() { 
 | 
      this.template.url = `${this.http.ipAddress}api/DeviceProtocol/DownLoadTemplate`; 
 | 
      this.url = `${this.http.ipAddress}api/DeviceProtocol/GetImportData`; 
 | 
      this.showDetialBox = true; 
 | 
      this.$nextTick(() => { 
 | 
        this.$refs.upload_excel.upload = this.upload; 
 | 
        console.log(this.$refs.upload_excel); 
 | 
      }); 
 | 
    }, 
 | 
    upload() { 
 | 
      console.log("upload"); 
 | 
      let _url = this.url; 
 | 
      if (!_url) { 
 | 
        return this.$Message.error("没有配置好Url"); 
 | 
      } 
 | 
  
 | 
      if (!this.$refs.upload_excel.file) { 
 | 
        return this.$Message.error("请选择文件"); 
 | 
      } 
 | 
      var formData = new FormData(); 
 | 
      formData.append("fileInput", this.$refs.upload_excel.file); 
 | 
      if (!this.$refs.upload_excel.importExcelBefore(formData)) { 
 | 
        return; 
 | 
      } 
 | 
      this.$refs.upload_excel.loadingStatus = true; 
 | 
      this.http.post(_url, formData).then( 
 | 
        (x) => { 
 | 
          // this.$refs.uploadFile.clearFiles(); 
 | 
          this.$refs.upload_excel.loadingStatus = false; 
 | 
          this.$refs.upload_excel.file = null; 
 | 
          if (x.status) { 
 | 
            this.$emit("parentCall", ($vue) => { 
 | 
              $vue.$refs.detail.rowData.push(...x.data); 
 | 
            }); 
 | 
          } 
 | 
  
 | 
          this.message = x.message; 
 | 
          this.resultClass = x.status ? "v-r-success" : "v-r-error"; 
 | 
        }, 
 | 
        (error) => { 
 | 
          this.$refs.upload_excel.loadingStatus = false; 
 | 
        } 
 | 
      ); 
 | 
    }, 
 | 
  }, 
 | 
  created() {}, 
 | 
}; 
 | 
</script> 
 | 
     
 | 
    <style scoped> 
 | 
.el-col { 
 | 
  border-radius: 4px; 
 | 
} 
 | 
.grid-content { 
 | 
  border-radius: 4px; 
 | 
  min-height: 36px; 
 | 
} 
 | 
.content-text { 
 | 
  display: flex; 
 | 
  align-items: center; 
 | 
  justify-content: center; 
 | 
} 
 | 
.left-text { 
 | 
  display: flex; 
 | 
  align-items: center; 
 | 
  justify-content: flex-start; 
 | 
} 
 | 
</style> 
 | 
    <style> 
 | 
.el-table .warning-row { 
 | 
  background: #fcf1e2; 
 | 
} 
 | 
  
 | 
.el-table .success-row { 
 | 
  background: #f0f9eb; 
 | 
} 
 | 
  
 | 
.el-table .error-row { 
 | 
  background: #fde2e2; 
 | 
} 
 | 
</style> 
 |