diff --git a/src/upload/demos/mobile.vue b/src/upload/demos/mobile.vue index 042d67dc3..a71d25d80 100644 --- a/src/upload/demos/mobile.vue +++ b/src/upload/demos/mobile.vue @@ -14,6 +14,9 @@ + + + diff --git a/src/upload/demos/remove.vue b/src/upload/demos/remove.vue new file mode 100644 index 000000000..7f6100076 --- /dev/null +++ b/src/upload/demos/remove.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/upload/hooks/useUpload.ts b/src/upload/hooks/useUpload.ts index 635791114..7b1f54e33 100644 --- a/src/upload/hooks/useUpload.ts +++ b/src/upload/hooks/useUpload.ts @@ -309,6 +309,13 @@ export default function useUpload(props: TdUploadProps) { ); } + function onInnerRemoveAll() { + sizeOverLimitMessage.value = ''; + toUploadFiles.value = []; + props.onWaitingUploadFilesChange?.({ files: [], trigger: 'remove' }); + setUploadValue([], { trigger: 'remove' }); + } + function onInnerRemove(p: UploadRemoveContext) { sizeOverLimitMessage.value = ''; p.e.stopPropagation?.(); @@ -384,5 +391,6 @@ export default function useUpload(props: TdUploadProps) { onNormalFileChange, onInnerRemove, cancelUpload, + onInnerRemoveAll, }; } diff --git a/src/upload/upload.tsx b/src/upload/upload.tsx index 37a5671c6..5ce781265 100644 --- a/src/upload/upload.tsx +++ b/src/upload/upload.tsx @@ -43,6 +43,7 @@ export default defineComponent({ uploadFiles, onNormalFileChange, onInnerRemove, + onInnerRemoveAll, cancelUpload, } = useUpload(props); @@ -115,6 +116,9 @@ export default defineComponent({ ); } }; + const removeAllFiles = () => { + onInnerRemoveAll(); + }; expose({ upload: inputRef.value, uploading, @@ -122,6 +126,7 @@ export default defineComponent({ uploadFiles, cancelUpload, uploadFilePercent, + removeAllFiles, // 新增的方法 }); return () => { return (