接口
export const areaStatisticsExport = (params = {}) => {
return request({
url: prefix + '/cmis-report/statistics/areaStatisticsExport',
method: 'post',
data: params,
responseType: 'blob'
})
};
js部分
areaStatisticsExport(trimForm(this.ruleForm))
.then(res => {
let _this = this;
if (res.data.type === "application/json") {
var blob = new Blob([res.data], {
type: "application/vnd.ms-excel"
});
var reader = new FileReader();
reader.readAsText(blob, "utf-8");
reader.onload = function(e) {
console.log(reader);// 一下为reader的输出值
/**
* FileReader {
* error: null
* onabort: null
* onerror: null
* onload: ƒ (e)
* onloadend: null
* onloadstart: null
* onprogress: null
* readyState: 2
* result: "{"code":400,"success":false,"data":{},"msg":"无数据导出"}"
* __proto__: FileReader
* }
*/
let resultObj = JSON.parse(reader.result);
if (resultObj.code !== 0) {
_this.$message({ message: resultObj.msg, type: "error" });
}
};
} else {
if (window.navigator.msSaveOrOpenBlob) {
// 兼容IE
try {
var blobObject = new Blob([encodeURI(res.data)]);
window.navigator.msSaveOrOpenBlob(blobObject, fileName);
} catch (e) {
console.log(e);
}
} else {
var blob = new Blob([res.data], {
type: "application/octet-stream;charset=UTF-8"
});
var downloadElement = document.createElement("a");
downloadElement.download = "毕结业统计表.xls"; // 下载的文件名
downloadElement.href = window.URL.createObjectURL(blob); // 创建下载的链接
downloadElement.click(); // 点击下载
document.body.appendChild(downloadElement);
document.body.removeChild(downloadElement); // 下载完成移除元素
window.URL.revokeObjectURL(downloadElement.href); // 释放掉blob对象
}
}
})
.catch(error => {
this.exportLoding = false;
});
说明
这个判断的意思就是: 在导出接口报错,或者没有数据可以导出的时候可以直接抛出异常,而不是下载一个表格,表格内容为