1/* 时间戳 */
2const timeStamp = () => {
3 const date = new Date();
4
5 let yyyy = date.getFullYear(),
6 MM = date.getMonth() + 1,
7 dd = date.getDate(),
8 hh = date.getHours(),
9 mm = date.getMinutes(),
10 ss = date.getSeconds();
11 // 补0
12 MM = MM < 10 ? "0" + MM : MM;
13 dd = dd < 10 ? "0" + dd : dd;
14 hh = hh < 10 ? "0" + hh : hh;
15 mm = mm < 10 ? "0" + mm : mm;
16 ss = ss < 10 ? "0" + ss : ss;
17
18 let timeStr = `${yyyy}${MM}${dd}${hh}${mm}${ss}`;
19 return timeStr;
20};
21
22/* 导出数据 */
23const exportData = () => {
24 // 所需参数
25 let params = {};
26
27 axios
28 .get("API", { responseType: "blob", params })
29 .then(res => {
30 setTimeout(() => {
31 // 获取文件流,生成 URL 对象
32 let url = window.URL.createObjectURL(res.data);
33 // 创建用于下载的 a 标签
34 let link = document.createElement("a");
35 // 隐藏动态创建的 a 标签
36 link.style.display = "none";
37 // 设置 herf 属性并赋值生成的 url 文件地址
38 link.href = url;
39 // 生成时间戳
40 let timeStr = timeStamp();
41 /**
42 * 重命名文件名
43 * 格式必须以 “.文件格式后缀名”的形式结尾
44 * */
45 let fileName = `${timeStr}.xls`;
46 // 设置被下载的超链接目标
47 link.setAttribute("download", fileName);
48 // 触发 a 标签跳转
49 link.click();
50 // 释放 URL 对象
51 window.URL.revokeObjectURL(url);
52 }, 500);
53 })
54 .catch(err => {
55 console.log("导出失败:", err);
56 });
57};