1、下载:
项目是在axios封装下掉接口,写法如下
js部分
import { axios } from '@/utils/request'
//下载接口
export function excelDownload (parameter) {
return axios({
responseType: 'arraybuffer',
url: '/result/excelDownload',
method: 'post',
data: parameter
})
}
//导入接口
export function excelImport (parameter) {
return axios({
url: '/result/excelImport',
method: 'post',
data: parameter
})
}
downloadFun () {//下载
excelDownload().then(res =>{
// 设置文件类型,这里以excel为例,并创建一个blob
let blob = new Blob([res], {type: "application/vnd.ms-excel;charset=utf-8"});
// 创建一个临时URL
let url = window.URL.createObjectURL(blob);
// 添加
var a = document.createElement("a");
document.body.appendChild(a);
a.href = url;
// 设置下载名称
a.download = 'example.xls';
a.click();
window.URL.revokeObjectURL(url);
})
},
//导入
importFun (event) {
//创建formdata对象
let that = this;
let inputDOM = that.$refs.inputer;
let file = inputDOM.files;
let formData = new FormData();
console.log(file)
formData.append('file', file[0]);
excelImport(formData).then(res =>{
if(res.code === 0){
this.$message({
type: 'success',
message: res.msg
})
}else{
this.$message({
type: 'info',
message: res.msg
})
}
})
},
html部分
<div class="addButton" @click="downloadFun">
<a-icon type="import" style="color: #ffffff"/>
<span class="addText" style="color: #ffffff;margin-left:6px">导入模板下载</span>
</div>
<div class="editorButton">
<input type="file" class="btnfile" @change="importFun" ref="inputer"/>
<a-icon type="import" style="color: #ffffff"/>
<span class="addText" style="color: #ffffff;margin-left:6px">导入</span>
</div>