diff --git a/apps/web-antd/src/components/upload/src/hook.ts b/apps/web-antd/src/components/upload/src/hook.ts index 71e1e254..2efa91b3 100644 --- a/apps/web-antd/src/components/upload/src/hook.ts +++ b/apps/web-antd/src/components/upload/src/hook.ts @@ -249,7 +249,19 @@ export function useUpload( }; return fileitem; } - innerFileList.value = resp.map((item) => transformFile(item)); + const transformOptions = resp.map((item) => transformFile(item)); + innerFileList.value = transformOptions; + // 单文件 丢弃策略 + if (props.maxCount === 1 && resp.length === 0 && !props.keepMissingId) { + bindValue.value = ''; + return; + } + // 多文件 + if (resp.length !== value.length && !props.keepMissingId) { + bindValue.value = (bindValue.value as string[]).filter((ossId) => + resp.map((res) => res.ossId).includes(ossId), + ); + } }, { immediate: true, deep: props.deepWatch }, ); diff --git a/apps/web-antd/src/components/upload/src/props.d.ts b/apps/web-antd/src/components/upload/src/props.d.ts index bad8b15b..7d985f7d 100644 --- a/apps/web-antd/src/components/upload/src/props.d.ts +++ b/apps/web-antd/src/components/upload/src/props.d.ts @@ -66,4 +66,10 @@ export interface BaseUploadProps { * @default false */ deepWatch?: boolean; + /** + * 当ossId查询不到文件信息时 比如被删除了 + * 是否保留列表对应的ossId 默认不保留 + * @default false + */ + keepMissingId?: boolean; }