<el-button type="primary"
size="small"
@click="download">下载导入模板</el-button>
import { readFileDownload } from './addNewEnRoude/model'
//下载模板
download() {
this.$http(
{
url: this.$http.adornUrl('/fuel/order/rail/download'),
method: 'get',
params: {},
responseType: 'blob',
},
{ headers: 'application/x-download' }
).then((data) => {
let blob = new Blob([data.data], {
type: 'application/vnd.ms-excel',
})
console.log('blob', blob)
const excelTitle = '模板.xlsx'
readFileDownload(blob, excelTitle)
})
},
以下为model.js中内容
export function readFileDownload(data, msg) {
var res = data;
if (
res.type === "application/json" ||
res.type === "application/json;charset=UTF-8"
) {
// 失败的时候,注意ie兼容问题
let fileReader = new FileReader();
fileReader.onload = function(event) {
let jsonData = JSON.parse(this.result); // this.result是根据event,读取文件后打印的
console.log(jsonData, "...............");
if (jsonData.data === null && jsonData.code === 1) {
Message({
message: jsonData.msg || "Error",
type: "error",
duration: 5 * 1000
});
}
};
fileReader.readAsText(res);
}
if (
res.type === "application/octet-stream" ||
res.type === "application/vnd.ms-excel" ||
res.type === "application/vnd.ms-excel;charset=UTF-8"
) {
console.log("success..."); // 成功,注意ie兼容问题
const blob = new Blob([res], {
type: "application/vnd.ms-excel;charset=utf-8"
});
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, msg);
} else {
console.log(blob);
const url = window.URL.createObjectURL(blob);
console.log(url);
const aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", msg);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink);
window.URL.revokeObjectURL(url);
}
}
}