zoukankan      html  css  js  c++  java
  • 前端导出/前端实现导出功能 && 调用接口导出

    1.前端导出,不需要调用后台接口后台导出,前端直接实现导出功能

    导出table数据

    js 引入
      import FileSaver from "file-saver";
      import XLSX from "xlsx";
     
    table id  out-table
    <el-table
          v-loading="dataLoading"
          ref="multipleTable"
          id="out-table"
          :data="tableData3"
          border
          tooltip-effect="dark"
        >
          <el-table-column label="序号" width="50">
            <template slot-scope="scope">{{scope.$index+1}}</template>
          </el-table-column>
          <el-table-column width="200" prop="company" label="所属区域公司">
              <template slot-scope="scope">{{scope.row.company.companyName}}</template>
          </el-table-column>
          <el-table-column width="200" prop="storeName" label="门店名称"></el-table-column>
          <el-table-column width="200" prop="storeSn" label="门店编码"></el-table-column>
           <el-table-column width="200" prop="amount" label="门店佣金余额(¥)">
            <template slot-scope="scope">{{scope.row.amount | formatMoney}}</template>
          </el-table-column>
          <el-table-column width="200" prop="status" label="门店状态">
             <template slot-scope="scope">
                <span v-if="scope.row.status=='1'">合作中</span>
                <span v-if="scope.row.status=='9'">停业</span>
             </template>
          </el-table-column>
           <el-table-column width="200" prop="createTime" label="创建时间"></el-table-column>
          <!-- <el-table-column  width="200" prop="licenseImg[0].imgUrl" label="营业执照照片">
            <template slot-scope="scope">
              <el-popover placement="left" trigger="hover">
                <img :src="scope.row.licenseImg[0].imgUrl" width="700" v-if="scope.row.licenseImg"/>
                <img slot="reference" :src="scope.row.licenseImg[0].imgUrl" width="40" height="40"  v-if="scope.row.licenseImg"/>
              </el-popover>
            </template>
          </el-table-column> -->
          <el-table-column label="操作" width="250">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="warning"
                @click="wareEdit(scope.$index, scope.row)"
              >查看佣金明细</el-button>
              <el-button
                size="mini"
                type="primary"
                @click="setRate(scope.$index, scope.row)"
              >佣金发放</el-button>
            </template>
          </el-table-column>
        </el-table>

     js代码  table 的id 需要为 out-table

     
      /**
           * 点击-导出
           */
          exportExcel() {
            this.loading=true;
            var wb = XLSX.utils.table_to_book(document.querySelector("#out-table"),{raw:true});
            var wbout = XLSX.write(wb, {
              bookType: "xlsx",
              bookSST: true,
              type: "array"
            });
            try {
              FileSaver.saveAs(
                new Blob([wbout], { type: "application/octet-stream" }),
                "门店佣金流水-数据导出.xlsx"
              );
               this.loading=false;
            } catch (e) {
              if (typeof console !== "undefined") console.log(e, wbout);
                this.loading=false;
            }
            return wbout;
          },
    

      

    二  后台导出

     download() {
          let obj = {}
          api.downloadTask(obj).then(res => {
            const content = res
            const blob = new Blob([content])
            const fileName = '任务管理数据概览-数据导出.xlsx'
            if ('download' in document.createElement('a')) {
              // 非IE下载
              const elink = document.createElement('a')
              elink.download = fileName
              elink.style.display = 'none'
              elink.href = URL.createObjectURL(blob)
              document.body.appendChild(elink)
              elink.click()
              URL.revokeObjectURL(elink.href) // 释放URL 对象
              document.body.removeChild(elink)
            } else {
              // IE10+下载
              navigator.msSaveBlob(blob, fileName)
            }
          })
        },
    //数据概览导出
    export function downloadTask(obj) {
      return request({
        url: '/admin/download/store/task',
        method: 'post',
        data: obj,
        responseType: 'arraybuffer'
      })
    }
  • 相关阅读:
    The builder launch configuration could not be found
    桌面上的图标不见了
    outlook软件后台运行
    c盘突然少了容量
    win7台式机睡眠时间修改
    系统占用的内存
    详细讲解 java 中的synchronized 转自 http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html
    The US ASCII Character Set 对应码 可以解决 URL中的特殊符号的传输问题
    oracle基本操作 转载
    内存中的 栈与堆
  • 原文地址:https://www.cnblogs.com/shuihanxiao/p/12988341.html
Copyright © 2011-2022 走看看