mirror of https://github.com/ElemeFE/element
add onSuccess && onError hook
parent
5abde26e21
commit
88c11b29e4
|
@ -26,6 +26,12 @@
|
|||
},
|
||||
handlePreview(file) {
|
||||
console.log(file);
|
||||
},
|
||||
handleSuccess(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
},
|
||||
handleError(err, file, fileList) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -70,6 +76,8 @@
|
|||
:multiple="true"
|
||||
:on-preview="handlePreview"
|
||||
:on-remove="handleRemove"
|
||||
:on-success="handleSuccess"
|
||||
:on-error="handleError"
|
||||
>
|
||||
<i class="el-icon-cloud"></i>
|
||||
<div class="el-dragger__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
|
@ -136,6 +144,8 @@
|
|||
| accept | 可选参数, 接受上传的[文件类型](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), 拖拽文件上传时不受此参数影响 | string | — | — |
|
||||
| on-preview | 可选参数, 点击已上传的文件链接时的钩子 | function(file) | — | — |
|
||||
| on-remove | 可选参数, 文件列表移除文件时的钩子 | function(file, fileList) | — | — |
|
||||
| on-success | 可选参数, 文件上传成功时的钩子 | function(file, fileList) | — | — |
|
||||
| on-error | 可选参数, 文件上传失败时的钩子 | function(err, file, fileList) | — | — |
|
||||
| before-upload | 可选参数, 上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传。 | function(file) | — | — |
|
||||
| thumbnail-mode | 是否设置为图片模式,该模式下会显示图片缩略图 | boolean | — | false |
|
||||
| type | 上传控件类型 | string | select,drag | select |
|
||||
|
|
|
@ -65,6 +65,14 @@ export default {
|
|||
onPreview: {
|
||||
type: Function,
|
||||
default: noop
|
||||
},
|
||||
onSuccess: {
|
||||
type: Function,
|
||||
default: noop
|
||||
},
|
||||
onError: {
|
||||
type: Function,
|
||||
default: noop
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -78,7 +86,7 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
onStart(file) {
|
||||
handleStart(file) {
|
||||
file.uid = Date.now() + this.tempIndex++;
|
||||
let _file = {
|
||||
status: 'uploading',
|
||||
|
@ -100,30 +108,33 @@ export default {
|
|||
|
||||
this.uploadedFiles.push(_file);
|
||||
},
|
||||
onProgress(ev, file) {
|
||||
handleProgress(ev, file) {
|
||||
var _file = this.getFile(file);
|
||||
_file.percentage = ev.percent;
|
||||
},
|
||||
onSuccess(res, file) {
|
||||
handleSuccess(res, file) {
|
||||
var _file = this.getFile(file);
|
||||
|
||||
if (_file) {
|
||||
_file.status = 'finished';
|
||||
_file.response = res;
|
||||
|
||||
this.onSuccess(_file, this.uploadedFiles);
|
||||
|
||||
setTimeout(() => {
|
||||
_file.showProgress = false;
|
||||
}, 1000);
|
||||
}
|
||||
},
|
||||
onError(err, file) {
|
||||
handleError(err, file) {
|
||||
var _file = this.getFile(file);
|
||||
var fileList = this.uploadedFiles;
|
||||
|
||||
_file.status = 'fail';
|
||||
|
||||
fileList.splice(fileList.indexOf(_file), 1);
|
||||
this.$emit('error', _file, fileList, err);
|
||||
|
||||
this.onError(err, _file, fileList);
|
||||
},
|
||||
handleRemove(file) {
|
||||
var fileList = this.uploadedFiles;
|
||||
|
@ -168,10 +179,10 @@ export default {
|
|||
'with-credentials': this.withCredentials,
|
||||
name: this.name,
|
||||
accept: this.thumbnailMode ? 'image/*' : this.accept,
|
||||
'on-start': this.onStart,
|
||||
'on-progress': this.onProgress,
|
||||
'on-success': this.onSuccess,
|
||||
'on-error': this.onError,
|
||||
'on-start': this.handleStart,
|
||||
'on-progress': this.handleProgress,
|
||||
'on-success': this.handleSuccess,
|
||||
'on-error': this.handleError,
|
||||
'on-preview': this.handlePreview,
|
||||
'on-remove': this.handleRemove
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue