ElementUI文件上傳

以前用ElementUI的Upload的時候追求方便快速,實例化一次又一次,方法一次又一次的調用,代碼大幾百行還難道維護,今天找了一些資料而後封裝了一下,估計還有坑,先作個筆記!!!html

組件:this

 1 <template>
 2   <el-upload  3     class="upload-demo"
 4  :action="action"
 5  :accept="accept"
 6  :limit="limit"
 7  :multiple="multiple"
 8  :before-upload="beforeAvatarUpload"
 9  :on-exceed="handleExceed"
10  :before-remove="beforeRemove"
11  :on-remove="handleRemove"
12  :on-success="successFile"
13  :file-list="fileList">
14     <el-button size="mini" type="primary" icon="el-icon-circle-plus-outline"></el-button>
15   </el-upload>
16 </template>
17 <script>
18  export default { 19  name: 'myupload', 20  props: { 21  action: null, 22  accept: { 23  type: String, 24         default: null
25  }, 26  limit: null, 27  multiple: null, 28  uploadId: null, //接收到的自定義的參數
29  fileSize: null, 30  onBeforeAvatarUpload: Function, 31  onHandleExceed: Function, 32  onBeforeRemove: Function, 33  onSuccess: Function, 34  onRemove: Function, 35  fileList: null, 36  }, 37  methods: { 38  beforeAvatarUpload() { 39         this.onBeforeAvatarUpload(...arguments, this.uploadId); 40  }, 41  handleExceed() { 42         this.onHandleExceed(...arguments, this.uploadId); 43  }, 44  beforeRemove() { 45         this.onBeforeRemove(...arguments, this.uploadId); 46  }, 47  handleRemove() { 48         this.onRemove(...arguments, this.uploadId); 49  }, 50  successFile() { 51         this.onSuccess(...arguments, this.uploadId); 52  } 53  } 54  } 55 </script>

頁面html部分:spa

<el-row v-for="(uploadList,index) in uploadOption" :key="index">
          <el-col :lg="24">
            <el-form-item :label="uploadList.labelName">
              <div class="" style="border: 1px solid #e6e6e6;background: #FFFFFF;margin-right: 22px">
                <zgw-upload :action="uploadList.action" :accept="uploadList.accept" :limit="uploadList.limit" :fileSize="uploadList.fileSize" :multiple="uploadList.multiple" :uploadId="index" :onBeforeAvatarUpload="beforeAvatarUpload" :onHandleExceed="handleExceed" :onBeforeRemove="beforeRemove" :onSuccess="successFile" :onRemove="handleRemove" :fileList="fileList">
                </zgw-upload>
                <div slot="tip" class="el-upload__tip" style="margin-left: 20px;margin-bottom: 10px;color: #BCC3D3;display: block;"> {{uploadList.tip}} </div>
              </div>
            </el-form-item>
          </el-col>
        </el-row>

頁面js部分:code

 1     uploadOption: [  2  {  3  labelName: "身份證證實:",  4  action: "URL路徑*********************",  5  accept: "image/jpg, image/jpeg, image/png",  6  limit: 2,  7  fileSize: 2,  8  multiple: true,  9  tip: "請上傳身份證的正反面照片,支持JPG, PNG , JPEG , 最多支持2張,每張不超過2MB"  10  } 78  ],  79 
 80     /*上傳前*/  81  beforeAvatarUpload(file, limit) {  82  console.log("上傳文件以前的鉤子====接受一個參數")  83  console.log(file)  84  console.log(limit)  85  console.log("上傳文件以前的鉤子end====")  86  console.log("")  87  console.log("")  88  },  89  /*刪除前詢問*/  90  beforeRemove(file, fileList) {  91  return this.$confirm(`肯定移除 ${ file.name }?`);  92  },  93  /*刪除*/  94  handleRemove(file, fileList, limit) {  95  console.log("文件列表移除文件時的鉤子====接受兩個參數file, fileList")  96  console.log(file)  97  console.log(fileList)  98  console.log(limit)  99  console.log("文件列表移除文件時的鉤子end====") 100  console.log("") 101  console.log("") 102  }, 103  /*文件超出限制*/ 104  handleExceed(file, fileList, limit) { 105  console.log("文件超出個數限制時的鉤子====接受兩個參數file, fileList") 106  console.log(file) 107  console.log(fileList) 108  console.log(limit) 109  console.log("文件超出個數限制時的鉤子end====") 110  console.log("") 111  console.log("") 112  }, 113  /*上傳成功*/ 114  successFile(response, file, fileList, limit) { 115  console.log("文件上傳成功時的鉤子====接受三個參數response,file, fileList") 116  console.log(response) 117  console.log(file) 118  console.log(fileList) 119  console.log(limit) 120  console.log("文件上傳成功時的鉤子end====") 121  console.log("") 122  console.log("") 123       },
相關文章
相關標籤/搜索