Skip to content

Commit 5c8df39

Browse files
authored
fix(attachments): fix onRemove no work (#204)
* fix(attachments): fix onRemove no work * docs(attachments): update on-remove description
1 parent 7b72bb4 commit 5c8df39

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

docs/component/attachments.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ interface PlaceholderType {
9696
| 属性 | 说明 | 类型 | 默认值 | 版本 |
9797
| --- | --- | --- | --- | --- |
9898
| item | 附件,同 Upload `UploadFile` | Attachment | - | - |
99-
| onRemove | 附件移除时的回调函数 | (item: Attachment) => void | - | - |
99+
| onRemove | 点击移除文件时的回调,返回值为 false 时不移除。支持返回一个 Promise 对象,Promise 对象 resolve(false) 或 reject 时不移除 | (item: Attachment) => boolean \| Promise | - | - |
100100

101101
## Semantic DOM
102102

src/attachments/Attachments.vue

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const {
2626
getDropContainer,
2727
placeholder,
2828
onChange,
29+
onRemove,
2930
overflow,
3031
imageProps,
3132
disabled,
@@ -78,13 +79,19 @@ const mergedUploadProps = computed<UploadProps>(() => ({
7879
onChange: triggerChange,
7980
}));
8081
81-
const onItemRemove = (item: Attachment) => {
82-
const newFileList = fileList.value.filter((fileItem) => fileItem.uid !== item.uid);
83-
triggerChange({
84-
file: item,
85-
fileList: newFileList,
82+
const onItemRemove = (item: Attachment) =>
83+
Promise.resolve(typeof onRemove === 'function' ? onRemove(item) : onRemove).then((ret) => {
84+
// Prevent removing file
85+
if (ret === false) {
86+
return;
87+
}
88+
89+
const newFileList = fileList.value.filter((fileItem) => fileItem.uid !== item.uid);
90+
triggerChange({
91+
file: { ...item, status: 'removed' },
92+
fileList: newFileList,
93+
});
8694
});
87-
};
8895
8996
const getPlaceholderNode = (
9097
type: 'inline' | 'drop',

0 commit comments

Comments
 (0)