摘要:上傳組件點(diǎn)擊跳轉(zhuǎn)到該組件官方文檔用到的組件參數(shù)參數(shù)說明類型可選默認(rèn)值必選參數(shù),上傳的地址上傳的文件列表接受上傳的文件類型覆蓋默認(rèn)的上傳行為最大允許上傳個(gè)數(shù)文件超出個(gè)數(shù)限制時(shí)的鉤子
1. 上傳 EXCEL Upload組件 點(diǎn)擊跳轉(zhuǎn)到該組件官方文檔
用到的upload組件參數(shù)
參數(shù) | 說明 | 類型 | 可選 | 默認(rèn)值 |
---|---|---|---|---|
action | 必選參數(shù),上傳的地址 | string | --- | --- |
file-list | 上傳的文件列表 | array | --- | [] |
accept | 接受上傳的文件類型 | string | --- | --- |
http-request | 覆蓋默認(rèn)的上傳行為 | function | --- | --- |
limit | 最大允許上傳個(gè)數(shù) | number | --- | --- |
on-exceed | 文件超出個(gè)數(shù)限制時(shí)的鉤子 | function(files, fileList) | --- | --- |
組件代碼html
--說明--
style: 按項(xiàng)目需要添加,請(qǐng)按需保留
action:必需,自定義上傳直接給空串;非自定義,將地址賦給action配合屬性headers、on-success、on-error等
http-request:自定義方法,根據(jù)請(qǐng)求的響應(yīng)手動(dòng)實(shí)現(xiàn)on-success、on-error
file-list:本項(xiàng)目有清空需要【代碼略】
ref:該上傳組件放置dialog中,本項(xiàng)目有置空需求【代碼略】,請(qǐng)按需保留
import HTTP_API from "@/httpApi" // 封裝好的axios:get post請(qǐng)求(含headers和攔截器等【代碼略】) // methods fileExceed () { this.$message.error("別貪心!一次只能上傳一個(gè)哦~"); }, // 請(qǐng)求成功 importSuccess (res) { // 后端的返回碼--上傳成功 if (res.code == xxxxx) { // 顯示√圖標(biāo) let e = document.getElementsByClassName("el-upload-list__item-status-label"); e[0].setAttribute("style", "display:block !important") // 成功提示 this.$message.success("上傳成功"); // 重新調(diào)用列表請(qǐng)求(代碼略) this.getList(); // 后端的返回碼--上傳失敗 } else { // 隱藏√圖標(biāo) let e = document.getElementsByClassName("el-upload-list__item-status-label"); e[0].setAttribute("style", "display:none !important") // 失敗提示--及后端返回的失敗詳情 this.$message.error({ dangerouslyUseHTMLString: true, duration: 4500, message: res.remark+",2. 下載 EXCEL(遠(yuǎn)程地址/文檔流) button組件
請(qǐng)刪除上傳失敗的文件,修改后重新上傳" }); } }, // 請(qǐng)求失敗 importError (err) { this.$message.error({ dangerouslyUseHTMLString: true, duration: 4500, message: "上傳出現(xiàn)異常,請(qǐng)稍后重試"+",
異常原因:"+err }); }, // 自定義上傳 uploadFile (item) { const form = new FormData() form.append("file", item.file) HTTP_API.xlsx_upload(form).then(res => { this.importSuccess(res) }).catch(err => { this.importError(err) }) }
組件代碼html
js--后端返回下載地址下載模板
import axios from "axios" // methods // 導(dǎo)出模板 downTemplate () { axios({ method: "get", url:"xxx相對(duì)地址xxx", responseType: "blob" }).then(res => this.downloads(res.data, res.headers.filename)) }, // 創(chuàng)建模板下載鏈接 downloads (data, name){ if(!data){ return } let url = window.URL.createObjectURL(new Blob([data])) let link = document.createElement("a") link.style.display ="none" link.href = url link.setAttribute("download", `前端拼接后端返回的名字${name}.xlsx`) document.body.appendChild(link) link.click() document.body.removeChild(link) window.URL.revokeObjectURL(url) },js--后端返回文檔流
import HTTP_API from "@/httpApi" // 封裝好的axios:get post請(qǐng)求(含headers和攔截器等【代碼略】) // methods // 導(dǎo)出excel let selectedParams = { ids : this.idList.join(",") //導(dǎo)出條件(按照選中的ID來導(dǎo)出,按實(shí)際需求) } // 解決文檔流亂碼問題設(shè)置響應(yīng)類型 HTTP_API.exportSelected(selectedParams, {responseType: "arraybuffer"}).then(res => { let url = window.URL.createObjectURL(new Blob([res], {type: "application/vnd.ms-excel;charset=UTF-8"})) let link = document.createElement("a") link.style.display ="none" link.href = url link.setAttribute("download", "記錄列表.xls") document.body.appendChild(link) link.click() document.body.removeChild(link) window.URL.revokeObjectURL(url) });3. 結(jié)束語
上傳action必須有,空串也好,隨便寫點(diǎn)也行,反正得有
element的提示允許html代碼,但是要設(shè)置dangerouslyUseHTMLString為true
上傳的請(qǐng)求成功(狀態(tài)碼200)不等于上傳成功,element的√圖標(biāo),需要用js實(shí)現(xiàn)顯示隱藏
下載時(shí)文件名稱為動(dòng)態(tài)時(shí),請(qǐng)求后端協(xié)助在響應(yīng)的頭部增加filename字段(filename字段中含文字會(huì)有問題,后端給我日期數(shù)字,相同的文字部分前端拼接)
responseType設(shè)置為blob或者arraybuffer從結(jié)果上是一樣的。點(diǎn)擊跳轉(zhuǎn)responseType文檔
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/101618.html
摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū)說明是一款強(qiáng)大的文件處理擴(kuò)展包能夠快速完成文件的的導(dǎo)出解析等功能本項(xiàng)目由團(tuán)隊(duì)成員整理發(fā)布首發(fā)地為社區(qū)文章的項(xiàng)目截圖運(yùn)行代碼請(qǐng)見請(qǐng)參照此文檔運(yùn)行文章概覽安裝基礎(chǔ)用法更多功能接下來是詳細(xì)解說安裝使用安裝該擴(kuò)展包安裝完成后, 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū) 說明 maatwebsite/excel 是一款強(qiáng)大的 Excel 文件處理擴(kuò)展包, 能夠快速完成 Excel 文...
摘要:導(dǎo)出項(xiàng)目簡(jiǎn)介插件使用保存文件電子表格解析器安裝使用以示例給定引入插件新增方法錯(cuò)誤處理方式新增點(diǎn)擊事件瀏覽器會(huì)下載問題導(dǎo)出時(shí)間格式轉(zhuǎn)換解決方案 element-ui 導(dǎo)出excel 項(xiàng)目簡(jiǎn)介 vue + elementUi 插件使用 Project Description file-saver 保存文件 xlsx 電子表格解析器 安裝 npm install ...
1. 前言 本篇文章就是為大家講講前端導(dǎo)入并處理excel表格的情況,順便講講vue導(dǎo)入并處理excel數(shù)據(jù);也總結(jié)下使用工具。 2.vue導(dǎo)入Excel表格 vue導(dǎo)入Excel表格主要有兩種常用的方法,一個(gè)是借助ElementUI文件上傳進(jìn)行表格導(dǎo)入,另一個(gè)是自帶的input做文件上傳;以下對(duì)兩個(gè)方法做詳細(xì)介紹; 2.1 使用ElementUI中的upload組件 安裝Eleme...
摘要:社區(qū)的認(rèn)可目前已經(jīng)是相關(guān)最多的開源項(xiàng)目了,體現(xiàn)出了社區(qū)對(duì)其的認(rèn)可。監(jiān)聽事件手動(dòng)維護(hù)列表這樣我們就簡(jiǎn)單的完成了拖拽排序。 完整項(xiàng)目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)系類文章四:手摸手,帶你用vue擼后臺(tái) 系列...
摘要:社區(qū)的認(rèn)可目前已經(jīng)是相關(guān)最多的開源項(xiàng)目了,體現(xiàn)出了社區(qū)對(duì)其的認(rèn)可。監(jiān)聽事件手動(dòng)維護(hù)列表這樣我們就簡(jiǎn)單的完成了拖拽排序。 完整項(xiàng)目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)系類文章四:手摸手,帶你用vue擼后臺(tái) 系列...
閱讀 658·2021-11-24 09:39
閱讀 3031·2021-11-23 10:06
閱讀 990·2021-10-08 10:05
閱讀 766·2019-08-30 10:49
閱讀 1738·2019-08-29 14:08
閱讀 1332·2019-08-29 12:48
閱讀 3329·2019-08-26 14:04
閱讀 3623·2019-08-26 13:50