• 前端导出/前端实现导出功能 && 调用接口导出


    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'
      })
    }
  • 相关阅读:
    03.八种数据类型
    07.条件与控制
    11.函数作用域及闭包
    04.深入数据类型
    201871010109胡欢欢《面向对象程序设计(java)》第十周学习总结 201871010109
    201871010109胡欢欢《面向对象程序设计(java)》第一周学习总结 201871010109
    201871010109胡欢欢《面向对象程序设计(java)》第二周学习总结 201871010109
    201871010109胡欢欢《面向对象程序设计(java)》第十一周学习总结 201871010109
    201871010109胡欢欢《面向对象程序设计(java)》第四周学习总结会 201871010109
    《2019面向对象程序设计(java)课程学习进度条》 201871010109
  • 原文地址:https://www.cnblogs.com/shuihanxiao/p/12988341.html
Copyright © 2020-2023  润新知