ZBLOG

根据你提供的代码片段,我看到了一些错误和缺失的部分。下面是完整修改后的代码:

<a-button
  @click="templateDwn"
  icon="download"
  class="margin-right-10 button-light-blue"
>
  数据模板
</a-button>

methods: {
  templateDwn() {
    this.$httpacm
      .post("/gw/api/acm-service/limitManage/downLoadApprovalBatchAdjustmentTable", { responseType: 'blob' })
      .then(r => {
        console.log('0000000', r);
        let nameString = r.headers['content-disposition'];
        this.download(r.data, window.decodeURI(nameString.split(',')[1].split('=')[1]));
        
        const url = window.URL.createObjectURL(new Blob([r.data]));
        const link = document.createElement('a');
        link.href = url;
        link.setAttribute('download', 'filename.xlsx'); // 设置下载的文件名
        
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      });
  },
  
  download(data, filename) {
    const blob = new Blob([data]);
    if (navigator.msSaveBlob) {
      // For IE browser
      navigator.msSaveBlob(blob, filename);
    } else {
      // For other browsers
      const link = document.createElement('a');
      if (link.download !== undefined) {
        const url = URL.createObjectURL(blob);
        link.setAttribute('href', url);
        link.setAttribute('download', filename);
        
        // Simulate click event to trigger the download
        link.style.visibility = 'hidden';
        document.body.appendChild(link);
        link.click();
        
        document.body.removeChild(link);
      }
    }
  }
}

请注意以下修改:

  1. @click 事件绑定中,修正了 templateDwn 方法的括号闭合问题。

  2. 在 POST 请求中,正确设置了请求路径和参数,并指定响应类型为 'blob'

  3. then() 回调函数中,添加了对返回结果的处理逻辑。

  4. 将文件下载相关代码封装到了 download() 方法中,以便复用。该方法会根据浏览器支持情况来选择不同的下载方式(包括 IE 浏览器和其他浏览器)。

请根据你的实际需求进行进一步修改和测试。如果还有其他问题,请提供更多详细信息以便我能够更好地帮助你。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11509

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?