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 (