レポートのエクスポートを BLOB ストリームに変換し、ダウンロード リンクを作成する

インターフェース

export const exportAnalyticalStatisticsDetail = (data) =>
  request({
    url: "/monthly/settle/exportAnalyticalStatisticsDetail",
    method: "post",
    data,
    responseType: "blob",
  });

 通話インターフェース

   handleClick(row){
       
            let _this = this
            const rowinfo = row;
            this.$confirm('是否确认导出所有数据?', "警告", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            }).then(function () {
                return exportAnalyticalStatisticsDetail(rowinfo);
            }).then(res => {
                // console.log(res);
                var filename = '成本分析统计表'
                var blob = new Blob([res], { type: 'application/vnd.ms-excel' });
                var downloadElement = document.createElement('a');
                var href = window.URL.createObjectURL(blob); //创建下载的链接   
                downloadElement.href = href;
                downloadElement.download = filename;
                document.body.appendChild(downloadElement);
                downloadElement.click(); //点击下载   
                document.body.removeChild(downloadElement);//下载完成移除元素   
                window.URL.revokeObjectURL(href); //释放掉blob对象
                loading.close();
                // this.download(response.msg);
            }).catch(err => {
                // console.dir(err);
                loading.close();
                const reader = new FileReader();
                reader.readAsText(err.response.data, 'utf-8');
                reader.onload = function () {
                    const { msg } = JSON.parse(reader.result);
                    _this.$message.error(msg)
                }
            })
      },

おすすめ

転載: blog.csdn.net/weixin_69811594/article/details/129931462