// 导出当前页
derive() {
let excelUsers = [];
this.tableData.forEach((i, n) => {
// console.log("获取数据", i);
let val = {
userRealName: i.userRealName,
userTel: i.userTel,
payTime: i.payTime,
payMoney: i.payMoney,
userMember: this.memberShipStatus(i.userMember)
};
excelUsers.push(val);
});
let str = `姓名,电话号码,支付时间,支付金额,支付类型`;
str = str.substring(0, str.lastIndexOf(",")) + `\n`;
// 增加\t为了不让表格显示科学计数法或者其他格式
let jsonData = [];
excelUsers &&
excelUsers.map(v => {
let obj = {};
obj.userRealName = v.userRealName || "";
obj.userTel = v.userTel || "";
obj.payTime = v.payTime || "";
obj.payMoney = v.payMoney || "";
obj.userMember = v.userMember || "";
jsonData.push(obj);
});
for (let i = 0; i < jsonData.length; i++) {
for (const key in jsonData[i]) {
str += `${jsonData[i][key] + "\t"},`;
}
str += "\n";
}
// encodeURIComponent解决中文乱码
const uri =
"data:text/csv;charset=utf-8,\ufeff" + encodeURIComponent(str);
// 通过创建a标签实现
const link = document.createElement("a");
link.href = uri;
// 对下载的文件命名
link.download = "支付记录.xlsx";
link.click();
link.remove();
}
// 通过不同的会员状态码返回不同的文字
memberShipStatus(userMember) {
const describeForNameMap = {
0: () => "普通用户",
5: () => "限时会员",
1: () => "月会员",
10: () => "季会员",
50: () => "年会员",
};
return describeForNameMap[userMember]
? describeForNameMap[userMember]()
: "普通用户";
},
将后端返回的数据列表导出成表格