vue 封裝導(dǎo)出Excel數(shù)據(jù)的公共函數(shù)的方法
vue+element UI 封裝一個(gè)導(dǎo)出Excel數(shù)據(jù)的公共函數(shù)
將公共方法封裝在store的modules的common.js中,如下圖:

代碼如下:
const download = {
actions: {
downloadData({ commit, state }, data) {
return new Promise((resolve, reject) => {
data.event(data.formData).then(res => {
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
})
const objectUrl = URL.createObjectURL(blob)
const link = document.createElement('a') // 創(chuàng)建a標(biāo)簽
link.href = objectUrl
// 重命名文件
link.download = res.headers['content-disposition'].split(
'='
)[1]
link.click()
URL.revokeObjectURL(objectUrl)
resolve(res)
}).catch((err) => {
reject(err)
})
})
}
}
}
export default download
然后在store的index中導(dǎo)出到公共模塊


在需要調(diào)用方法的組件中使用
methods:{
//導(dǎo)出數(shù)據(jù)的方法
handleExport(formData) {
this.loading = true
const data = {
// import { loanDownloadData } from '@/api/loan/userLoanList'
// event: loanDownloadData, loanDownloadData是導(dǎo)出數(shù)據(jù)的接口的關(guān)鍵字
//formData是loanDownloadData接口需要的參數(shù)
event: '',
formData: formData
}
this.$store.dispatch('downloadData', data).then(res => {
this.loading= false
}).catch(() => {
this.loading = false
})
},
}
PS:如果接口能正常返回?cái)?shù)據(jù),但是接口調(diào)用時(shí)發(fā)生報(bào)錯(cuò),可能是接口攔截文件返回的數(shù)據(jù)不對(duì),首先找到utils->request.js文件中(一般情況下是放在這個(gè)位置),如下:

接口攔截的時(shí)候,如果是導(dǎo)出接口需要返回所有的數(shù)據(jù),如:response,因?yàn)樵赾ommon.js文件中需要用到headers重命名文件,如下

接口攔截的一般情況下只需要返回data就行,如:const res = response.data ,返回res

到此這篇關(guān)于vue 封裝導(dǎo)出Excel數(shù)據(jù)的公共函數(shù)的文章就介紹到這了,更多相關(guān)vue 導(dǎo)出Excel公共函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue click.stop阻止點(diǎn)擊事件繼續(xù)傳播的方法
今天小編就為大家分享一篇vue click.stop阻止點(diǎn)擊事件繼續(xù)傳播的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue中v-for循環(huán)數(shù)組,在方法中splice刪除數(shù)組元素踩坑記錄
這篇文章主要介紹了vue中v-for循環(huán)數(shù)組,在方法中splice刪除數(shù)組元素踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
nuxt.js中間件實(shí)現(xiàn)攔截權(quán)限判斷的方法
這篇文章主要介紹了nuxt.js中間件實(shí)現(xiàn)攔截權(quán)限判斷的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Vue+Vite項(xiàng)目初建(axios+Unocss+iconify)的實(shí)現(xiàn)
一個(gè)好的項(xiàng)目開始搭建總是需要配置許多初始化配置,本文就來(lái)介紹一下Vue+Vite項(xiàng)目初建(axios+Unocss+iconify)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02

