vue實(shí)現(xiàn)批量下載文件
今天ld提了一個(gè)需求,說頁面的列表里面有要下載的地址,然后點(diǎn)擊批量下載。我思索片刻,給出了代碼
1.這個(gè)是列表頁面的代碼
<!-- 這個(gè)是列表頁面的代碼 --> <el-table :data="userListShow" align="center" border highlight-current-row size="small" style="width: 100%" stripe ref="table"> <el-table-column label="選擇" width="45px" fixed > <template slot-scope="scope" > <el-checkbox class="biaodiandian" v-model="scope.row.selected" :label="scope.row" @change="clickChange(scope.row)"><i></i></el-checkbox> </template> </el-table-column> <el-table-column prop="barcode" width="200px" show-overflow-tooltip align="center" label="條碼號(hào)"></el-table-column> <el-table-column prop="createTime" width="200px" show-overflow-tooltip align="center" label="登記時(shí)間"></el-table-column> </el-table>
2.這個(gè)是選擇框的代碼
data(){ return(){ selectedRows:[], //這個(gè)是傳遞的復(fù)選框的值,因?yàn)槭桥窟x擇嗎,所以給的是數(shù)組 } } methods:{ //選擇文件 選擇復(fù)選框 clickChange(row) { if (row.selected) { this.selectedRows.push(row); // 選中時(shí)添加到數(shù)組中 } else { const index = this.selectedRows.findIndex(item => item === row); if (index > -1) { this.selectedRows.splice(index, 1); // 取消選中時(shí)從數(shù)組中移除 } } }, }
3.好了,現(xiàn)在該批量下載了,之所以寫上面兩步,是因?yàn)榈米雠窟x擇的復(fù)選框,也就是得批量拿到數(shù)據(jù)
<!-- 這個(gè)是批量下載的按鈕-> <el-button type="warning" @click="handleDownload" round size="mini">下載體檢報(bào)告</el-button>
4.這個(gè)按鈕的方法
methods:{ //這個(gè)可以直接賦值過去就能用,還有你的瀏覽器得開啟允許批量下載,也就是第一次回 //觸發(fā)一個(gè)提示說,是否允許批量下載多個(gè)文件,要點(diǎn)擊允許就行了 async handleDownload() { //this.selectedRows 這個(gè)就是上面寫的那個(gè)批量拿到的數(shù)據(jù) //row.reportUrl 這個(gè)就是列表數(shù)據(jù)里面的地址路徑, const reportUrls = this.selectedRows.map(row => row.reportUrl); for (const reportUrl of reportUrls) { if (reportUrl) { //判斷是否存在 const link = document.createElement('a'); link.href = reportUrl; link.download = reportUrl.substring(reportUrl.lastIndexOf('/') + 1); link.style.display = 'none'; document.body.appendChild(link); link.click(); await new Promise((resolve) => setTimeout(resolve, 500)); document.body.removeChild(link); } } }, }
好了兄弟們,到這里就結(jié)束了,上面的代碼可以直接拿過就能用,不想要上面插件上面依賴的,就是vue的代碼。
到此這篇關(guān)于vue實(shí)現(xiàn)批量下載文件的文章就介紹到這了,更多相關(guān)vue下載文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue項(xiàng)目中引入外部文件的方法(css、js、less)
本篇文章主要介紹了Vue項(xiàng)目中引入外部文件的方法(css、js、less),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-07-07vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法
這篇文章主要介紹了vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08vue el-checkbox實(shí)現(xiàn)全選單選方式
這篇文章主要介紹了vue el-checkbox實(shí)現(xiàn)全選單選方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Vue項(xiàng)目路由刷新的實(shí)現(xiàn)代碼
這篇文章主要介紹了Vue項(xiàng)目路由刷新的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04一篇文章搞懂Vue3中如何使用ref獲取元素節(jié)點(diǎn)
過去在Vue2中,我們采用ref來獲取標(biāo)簽的信息,用以替代傳統(tǒng) js 中的 DOM 行為,下面這篇文章主要給大家介紹了關(guān)于如何通過一篇文章搞懂Vue3中如何使用ref獲取元素節(jié)點(diǎn)的相關(guān)資料,需要的朋友可以參考下2022-11-11運(yùn)行npm?run?dev報(bào)錯(cuò)的原因及解決
剛剛創(chuàng)建好vue項(xiàng)目的時(shí)候,運(yùn)行 npm run dev 會(huì)報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于運(yùn)行npm?run?dev報(bào)錯(cuò)的原因及解決方法,需要的朋友可以參考下2022-10-10解決vue js IOS H5focus無法自動(dòng)彈出鍵盤的問題
今天小編就為大家分享一篇解決vue js IOS H5focus無法自動(dòng)彈出鍵盤的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08vue 動(dòng)態(tài)給每個(gè)頁面添加title、關(guān)鍵詞和描述的方法
這篇文章主要介紹了vue 動(dòng)態(tài)給每個(gè)頁面添加title、關(guān)鍵詞和描述的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08