• vue


    1.导出

    <el-button type="primary" @click="btnExport">导出</el-button>
    
    btnExport() {
          let queryParam = {};
          api.exportData(queryParam, response => {
            if (response.data.statusMessage === "-1") {
              this.$message({
                showClose: true,
                message: "导出失败",
                type: "error"
              });
              return;
            }
            this.doDownload(response.request.responseURL);
            this.$message({
              showClose: true,
              message: "导出成功!",
              type: "success"
            });
          });
        },
        doDownload(src) {
          var a = document.createElement("a");
          a.href = src;
          document.body.appendChild(a);
          a.click();
        }
    

    2.导入

    <el-button type="primary" @click="btnImport">导入</el-button>
    btnImport() {
        this.importVisible = true
    }
    <template>
      <div>
        <td-dialog
          :visible="importVisible"
          v-dialogDrag
          :title="IMPORT"
          width="25%"
          :before-close="importDialogClose"
        >
          <el-row>
            <el-col :span="16" style="margin-top:10px;margin-bottom:5px;">
              <td-button type="primary" @click="chooseFile">{{SELECTFILE}}</td-button>
              <td-button @click="upLoadFile">{{UPLOADFILE}}</td-button>
            </el-col>
            <el-col style="margin-bottom:30px;">
              <span style="font-size:10px;">{{ONLIEXCEL}}</span>
            </el-col>
            <el-col style="margin-bottom:30px;text-align:center">
              <span style="font-size:14px; color:#666">{{uploadFileName}}</span>
              <td-button
                @click="removeFile"
                type="text"
                size="small"
                v-show="uploadFileName != ''"
                style="font-size:14px; color:#000; padding-left: 30px"
              >{{DELFILE}}</td-button>
              <input type="file" id="btn_file" style="display:none" accept=".xls" ref="btnFile" />
            </el-col>
          </el-row>
          <span slot="footer" class="dialog-footer">
            <td-button @click="importTemplate">{{IMPORTMODELDOWNLOAD}}</td-button>
            <td-button @click="importCancel">{{CANCEL}}</td-button>
          </span>
        </td-dialog>
      </div>
    </template>
    
    <script>
    import api from "@/assets/api";
    export default {
      props: {
        importVisible: {
          type: Boolean,
          default: false
        }
      },
      data() {
        return {
          IMPORT: this.$t("sightWordImportDialog.IMPORT"),
          SELECTFILE: this.$t("sightWordImportDialog.SELECTFILE"),
          UPLOADFILE: this.$t("sightWordImportDialog.UPLOADFILE"),
          ONLIEXCEL: this.$t("sightWordImportDialog.ONLIEXCEL"),
          DELFILE: this.$t("sightWordImportDialog.DELFILE"),
          IMPORTMODELDOWNLOAD: this.$t("sightWordImportDialog.IMPORTMODELDOWNLOAD"),
          CANCEL: this.$t("sightWordImportDialog.CANCEL"),
          uploadFileName: ""
        };
      },
      methods: {
        importDialogClose() {
          this.$emit("importDialogClose");
        },
        importTemplate() {
          let aTag = document.createElement("a");
          aTag.href =
            "http://192.168.96.44:7000/mclz/filemanagement/sightWordTemplate.xls";
          document.body.appendChild(aTag);
          aTag.click();
        },
        chooseFile() {
          let _this = this;
          let btnImport = this.$refs.btnFile;
          btnImport.click();
          btnImport.onchange = function() {
            _this.importData(btnImport.files);
          };
        },
        importData(files) {
          if (files.length > 0) {
            let fileName = files[files.length - 1].name;
            if (fileName.indexOf(".xls", fileName.length - ".xls".length) === -1) {
              this.$message.error({
                showClose: true,
                message: $t("sightWordImportDialog.EILEMESSAGEERROR")
              });
              this.$refs.btnFile.value = "";
              return;
            } else {
              if (files[files.length - 1].size / 1024 / 1024 > 300) {
                this.$message.error({
                  showClose: true,
                  message: $t("sightWordImportDialog.FILESIZELESS300M")
                });
                this.$refs.btnFile.value = "";
                return;
              }
              this.uploadFileName = fileName;
            }
          }
        },
        upLoadFile() {
          let files = this.$refs.btnFile.files;
          if (files.length === 0) {
            this.$message.error({
              showClose: true,
              message: $t("sightWordImportDialog.FILESIZELESS300M")
            });
            this.$refs.btnFile.value = "";
            return;
          }
          let header = {};
          let params = new FormData();
          params.append("file", this.$refs.btnFile.files[files.length - 1]);
          api.importData(params, response => {
            if (response.data.statusCode === "API-COMMON-INF-OK") {
              this.$message({
                showClose: true,
                message: $t("sightWordImportDialog.FILESIZELESS300M"),
                type: "success"
              });
              this.importDialogClose();
            } else {
              this.$message({
                showClose: true,
                message: $t("sightWordImportDialog.FILESIZELESS300M"),
                type: "error"
              });
            }
            this.$refs.btnFile.value = "";
            this.uploadFileName = "";
          });
        },
        removeFile() {
          this.$refs.btnFile.value = "";
          this.uploadFileName = "";
        },
        importCancel() {
          this.importDialogClose();
        }
      }
    };
    </script>
    
    <style>
    </style>
    
    学贵有恒,而行胜于言
  • 相关阅读:
    VMware Workstation网卡不启动
    解决IE10以下对象不支持“bind”属性或方法
    二分法查找
    选择排序与冒泡排序
    方法内部开启线程的方法
    重写Collections实现自定义排序
    根据反射生成SQL语句
    vue插件安装备忘
    vue cli4.x 新建项目 过程提醒
    php setcooike()失败的原因之一,希望能帮到你
  • 原文地址:https://www.cnblogs.com/huangbinlooksgood/p/14198169.html
Copyright © 2020-2023  润新知