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="條碼號"></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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue el-table設(shè)置selection選中狀態(tài)實(shí)現(xiàn)方式
在Vue使用Element UI的el-table組件時(shí),toggleRowSelection方法用于切換行的選中狀態(tài),關(guān)鍵代碼通常涉及調(diào)用該方法并傳入行數(shù)據(jù)和選中狀態(tài)(true或false),以實(shí)現(xiàn)行的選中或取消選中2025-12-12
vue實(shí)現(xiàn)給div綁定keyup的enter事件
這篇文章主要介紹了vue實(shí)現(xiàn)給div綁定keyup的enter事件,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
antd vue表格可編輯單元格以及求和實(shí)現(xiàn)方式
這篇文章主要介紹了antd vue表格可編輯單元格以及求和實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Vue使用canvas實(shí)現(xiàn)圖片壓縮上傳
這篇文章主要為大家詳細(xì)介紹了Vue使用canvas實(shí)現(xiàn)圖片壓縮上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
vue checkbox 全選 數(shù)據(jù)的綁定及獲取和計(jì)算方法
下面小編就為大家分享一篇vue checkbox 全選 數(shù)據(jù)的綁定及獲取和計(jì)算方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
在Vue3中為路由Query參數(shù)標(biāo)注類型的方法
這篇文章主要介紹了在Vue3中如何為路由Query參數(shù)標(biāo)注類型,我們就針對這個(gè)話題如何為路由Query參數(shù)標(biāo)注類型為例,看看Composable和IOC容器的代碼風(fēng)格究竟有什么不同,需要的朋友可以參考下2024-08-08
Vue動(dòng)態(tài)修改頁面Title(瀏覽器頁簽名稱)的三種方法
在開發(fā) Vue 項(xiàng)目時(shí),我們經(jīng)常需要根據(jù)不同的頁面動(dòng)態(tài)修改瀏覽器的頁簽標(biāo)題(title),那么,如何在 Vue 項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)修改 document.title 呢?本文將介紹三種實(shí)用方法,并結(jié)合代碼示例,助你輕松實(shí)現(xiàn),需要的朋友可以參考下2025-03-03

