一、应用 axios 下载文件
1、创立一个对象,用于配置接口信息
let myObj={ url: process.env.VUE_APP_BASE_API + api/studentList', method: 'get', fileName: 'studengListFile', params:{接口的params参数} }
2、封装一个 axios 下载文件的办法
exportMethod(data) { axios({ method: data.method, url: `${data.url}`, responseType: 'blob', params:data.params?data.params:null }).then((res) => { if(res.data.type=='application/octet-stream'){ const link = document.createElement('a') let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}) link.style.display = 'none' link.href = URL.createObjectURL(blob) link.download = data.fileName //下载的文件名 document.body.appendChild(link) link.click() document.body.removeChild(link) return; } var reader=new FileReader() reader.onload=e=>{ let res=JSON.parse(e.target.result); let error_html="<p><div>"+(i18n.tc(res.key) || 'Error'); error_html+="</div></p>"; let msg= Message({ dangerouslyUseHTMLString:true, message: error_html, type: 'error', duration: 5 * 1000 }) } reader.readAsText(res.data) }).catch(error => { console.log('接口调用失败:',error) })}
3、调用办法,并传入后面配置的接口对象
exportMethod(myObj)
二、PUT 申请 params 传参蕴含数组的解决方法
先写代码了,今天持续