From 69222807a4ce5b3572f34d847bd881904c7867b3 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Sat, 29 Mar 2025 21:48:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=88=B0ossId=E7=9A=84=E4=B8=A2?= =?UTF-8?q?=E5=BC=83=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/components/upload/src/hook.ts | 14 +++++++++++++- apps/web-antd/src/components/upload/src/props.d.ts | 6 ++++++ 2 files changed, 19 insertions(+), 1 deletion(-) 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; }