针埠戳 2021-12-02 01:01 采纳率: 0%
浏览 102

download-excel导出数据为excel

问题遇到的现象和发生背景

我的下载按钮并不是绑定一个数据源的,而是根据点击下载按钮得到当前行的某些字段去后端查找对应的数据返回前端才导出为excel的,
加载完这一个页面,比如点击第一行的下载按钮,点击的第一下是没有任何反应的,但是数据已经从后端返回到前端了,在控制台打印出来了,打印的数据也是对的。再第二次点击第一行的下载按钮,页面才回用反应,才会将数据导出为excel。但是我接着点击第二行的下载按钮,导出的excel内容却是第一行的数据。在点击第三行的下载按钮,导出的excel内容却是第二行的数据。
我每点击一次下载按钮,控制台会打印对应行的对应的数据,导出的时候就是不对,求解为什么点击下载按钮,导出的excel却不是对应的数据,而是上一次点击下载按钮对应的数据

问题相关代码,请勿粘贴截图
<el-table-column align="center" label="操作" min-width="200">
        <template slot-scope="scope">
          <download-excel :data="jsonData" name="xxxx.xls">
            <el-button type="primary" size="mini" @click="download(scope.$index, scope.row)">下载</el-button>
          </download-excel>
          <el-button size="mini" type="danger" @click="delImportManagement(scope.$index, scope.row)">删除</el-button>
        </template>
      </el-table-column>

if(row.dataType == 'xxx'){
        geShuidownloadButton(row.month).then((res => {
          this.jsonData = []
          for(let o of res.data.data){
            this.jsonData.push({
              "工号": o.jobNumber,
              
            })
          }
        }))
      }
      if(row.dataType == 'xx'){
        downloadButton(row.month,row.dataType).then((res => {
          this.jsonData = []
          for(let i of res.data.data){
            this.jsonData.push({
              "工号":i.jobNumber,
             
            })
          }
        }))
      }
      

运行结果及报错内容

并没有报错

我的解答思路和尝试过的方法
我想要达到的结果

我点击哪一行的下载按钮,哪一行的数据就会导出问excel文件

  • 写回答

3条回答 默认 最新

  • 关注

    说明你传参的顺序有问题,换一下代码的调用顺序。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月2日