vue中导出报表并兼容客户端的方式

涉及到管理后台系统都免不了需要导出报表的功能。纵然网上资源千千万,但我这种是可以兼容客户端的方法(亲测之前的方法在客户端会有bug),经过不断优化在客户端也得到很好的效果。我这里的需求是:点击导出调起后端的api,返回下载文件的url,前端根据url地址创建下载的iframe。下面看使用:

comm.js

export default {
  // Vue.js的插件应当有一个公开方法 install。这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象。
  install: function(Vue) {
	//创建个全局的$derive方法
	Vue.prototype.$derive = function (url) {
	  let div = document.createElement("div");
	  div.style.display = 'none';
	  //生成隐藏的iframe标签
	  div.innerHTML = '<iframe id="idFrame" name="idFrame" src="' + url + '" height = "0" width = "0" frameborder="0" scrolling="auto" style = "display:none;visibility:hidden" ></iframe>';
	  document.body.appendChild(div)
	  setTimeout(function () {
	    document.body.removeChild(div)
	  }, 30000)
	}
}

使用

handleExportPort() {
   this.$api.commonExport(this.paramsObj).then(res => {
     if (res.data.appCode == '0000') {
     	//res.dataa.data就是后端返回的地址
       this.$derive(res.data.data)
     } else {
       this.$Message('error', '导出失败!')
     }
   })
 }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端发现

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值