美文网首页
vue 利用js触发vue-json-excel的下载操作,解决

vue 利用js触发vue-json-excel的下载操作,解决

作者: CoderZb | 来源:发表于2022-08-11 11:19 被阅读0次

    需求:列表中的每行数据都有一个导出按钮,且点击导出会发起网络请求,获取激活码列表数据。
    分析:我使用的vue-json-excel插件,该插件要导出的数据源是放到插件的data属性中,所以我们要先获取到激活码列表数据后,再触发该插件。直接触发的话会导致下载列表中的所有行数据等稀奇古怪的问题。
    解决办法:导出按钮和vue-json-excel分离,前者实现发起网络请求,获取激活码列表数据,待获取到激活码列表数据后,再执行后者,实现下载操作。

    image.png

    做法:(核心代码)

    <div
      :key="index"
      class="export_btn"
      :style="{ color: exportDisabled == true ? '#f2f2f2' : '#15a0f9' }"
      @click="exportClick(record.batch)"
    >
    导出
    </div>
    <download-excel
      style="z-index:-2;position:absolute;"
      id="download_excel"
      :data="allList"
      :fields="allFields"
      name="激活码列表.xlsx"
    >
    <a-button type="primary" class="income_detail">
      导出数据
    </a-button>
    </download-excel>
    

    js

     exportClick(batch) {
          this.allList = [];// 清空之前的数据
          this.request3Func(batch);// 网络请求
    },
     request3Func(batch) {
        // 省略部分代码
        // 在网络请求的成功回调中写上如下代码
       setTimeout(function() {
              document.getElementById("download_excel").click();
        }, 100);
    }
    

    相关文章

      网友评论

          本文标题:vue 利用js触发vue-json-excel的下载操作,解决

          本文链接:https://www.haomeiwen.com/subject/sitawrtx.html