vue 获取字符串中的链接_vue+elementUI项目中拼接url字符串

本文介绍在Vue.js结合ElementUI的项目中,如何从后台数据获取字符串中的链接,并用于导出Excel表格。通过scope.row获取表格单元格数据,结合自定义方法处理时间格式,并拼接成API接口URL,最终实现点击按钮触发数据导出。
摘要由CSDN通过智能技术生成

在elementUI 中难免会使用table组件完成显示表格数据的功能,如下例子:将后台返回的数据的一个参数再次传给后台接口链接打印excel表格。

引用段落,首先使用scope.row的方式获取后台返回的参数time,然后通过在el-button上的点击事件触发函数getTimeDetail(),局部代码如下:

导出数据明细

export default {

name: "bill",

data() {

return {

time:'', //2019-04-02

exportBaseUrl: 接口url固定头部

}

},

methods: {

//导出明细

getTimeDetail(time){

this.time = time;

let obj = this.getUserList(true);

let tmpa = document.createElement("a");

tmpa.href = obj; //绑定a标签

tmpa.click(); //模拟点击实现下载

setTimeout(function () { //延时释放

URL.revokeObjectURL(obj); //用URL.revokeObjectURL()来释放这个object URL

}, 100);

},

// 导出明细

getUserList(is_exoprt = false) {

let params = { }; //params是对象类型

if (is_exoprt) {

let token = getMallToken();

let RegExp = /^(\d{4})(-)(\d{2})(-)(\d{2})$/; //判断日期格式

if(RegExp.test(this.time)){

let substring = this.time.substring(0) //2019-04-02

params.time = substring;

var exportUrl = this.exportBaseUrl + '后台提供接口?token=' + token;

}else{

let substring = this.time.substring(0,7) //2019

params.time = substring;

var exportUrl = this.exportBaseUrl + '后台提供接口?token=' + token;

}

return exportUrl + urlEncode(params);

} else {

this.loading = true;

distributorList(params).then(res => {

this.loading = false;

})

}

},

urlEncode(param, key, encode) {

//param表示传的数据,key表示键值对的值,encode表示URI组件编码

if (param == null) return '';

let paramStr = '';

let t = typeof (param); //判断param的类型

if (t == 'string' || t == 'number' || t == 'boolean') { //若为简单类型,直接拼接

paramStr += '&' + key + '=' + ((encode == null || encode) ? encodeURIComponent(param) : param);

} else { //若为复杂类型,递归解析

for (let i in param) {

let k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);

paramStr += urlEncode(param[i], k, encode); //多次调用解析

}

}

return paramStr;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值