Element-UI 多個el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號)
1. 需求: 有多個(不確定具體數(shù)量)的upload組件,每個都需要單獨上傳獲取文件(JS File類型),不需要action上傳到指定url,自定義上傳動作和http操作。而且因為不確定組件數(shù)量,所以每次也需要獲取是第幾個文件(索引),所以也需要實現(xiàn)附加索引這個參數(shù)
2. 實現(xiàn):如下
<el-col v-bind="grid2" v-for="(item, index) in list" :key="index"> # list 不知道一共有幾個列表項 <el-form-item required :label="item.value" prop="randomAmount"> <el-upload class="upload-demo" action="none" #這里隨便寫 :http-request="handleFileUpload" #這里會覆蓋原本的上傳http的操作,從而實現(xiàn)自定義。 :limit="1" :on-remove="(file, fileList)=> {return onRemove(file, fileList, index)}" #這里的index是自定義索引參數(shù),這種寫法能夠攜帶自己的參數(shù) :on-change="(file, fileList)=> {return onChange(file, fileList, index)}"> <el-button round>點擊上傳</el-button> </el-upload> </el-form-item> </el-col> <el-col :span="24"> <el-button type="primary" @click="submitForm">確認提交</el-button> </el-col> <script> export default { data() { return { // 暫存?zhèn)€el-upload的File fileUploaded: { 1: null, 2: null, 3: null, 4: null, 5: null // 可以多寫幾個(確定最多不會上傳超過某數(shù)量的文件) }, list:[ // 根據(jù)這個列表,渲染相應數(shù)量的el-upload組件 { key: "1", value: "個體工商戶/企業(yè)營業(yè)執(zhí)照照片" }, { key: "2", value: "政府機關/事業(yè)單位/社會組織登記證書照片" }, // list 不知道一共有幾個列表項,這部分是通過后端請求獲取的 ] } }, methods: { // 覆蓋默認的http行為 handleFileUpload(options, index){ }, // 文件操作刪除 onRemove(file, fileList, index){ this.fileUploaded[index] = null }, // 文件上傳 onChange(file, fileList, index) { // 判斷上傳的文件是否是滿足格式要求(自定義) if(!file.name.includes('.zip')) { fileList.pop() # 清除上傳文件后展示出來的文件圖標 return this.$message.error("請上傳zip壓縮包!") } // 判斷上傳的文件是否超過大小限制(自定義) if (file.size >= 5*1024*1024){ // 5mb fileList.pop() return this.$message.error("大小不能超過5MB!") } // 判斷上傳的文件的狀態(tài)(一般不會出錯) if(file.status != 'ready'){ fileList.pop() return this.$message.error("狀態(tài)錯誤") } // 暫存文件 this.fileUploaded[index] = file.raw }, // 表單上傳,先判斷文件是否按要求上傳了,滿足要求的話,構造formData submitForm(){ let formdata = new FormData() for (let i = 0; i < this.list.length; i++) { // 如果有文件未上傳,則報錯。確保每個el-upload都上傳了文件 if (!this.fileUploaded[i]){ return this.$message.error('請上傳'+this.list[i].value) } formdata.append('subMerCertFiles', this.fileUploaded[i]) // 多個文件上傳 } // 后面調用接口,上傳formdata } } } </script>
演示
到此這篇關于Element-UI 多個el-upload組件自定義上傳,不用上傳url,并且攜帶自定義傳參(文件序號)的文章就介紹到這了,更多相關Element-UI 多個el-upload組件自定義上傳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue MVVM模型與data及methods屬性超詳細講解
MVVM旨在利用WPF中的數(shù)據(jù)綁定函數(shù),通過從視圖層中幾乎刪除所有GUI代碼(代碼隱藏),更好地促進視圖層開發(fā)與模式其余部分的分離,這篇文章主要介紹了Vue MVVM模型與data及methods屬性2022-10-10Vue.js使用$.ajax和vue-resource實現(xiàn)OAuth的注冊、登錄、注銷和API調用
這篇文章主要介紹了 Vue.js使用$.ajax和vue-resource實現(xiàn)OAuth的注冊、登錄、注銷和API調用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05vue 標簽屬性數(shù)據(jù)綁定和拼接的實現(xiàn)方法
這篇文章主要介紹了vue 標簽屬性數(shù)據(jù)綁定和拼接的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05