From 0a47dc8a3deebc4e62a3c7317f394b70a6cc7c36 Mon Sep 17 00:00:00 2001 From: Dream <1012377328@qq.com> Date: Wed, 5 Aug 2026 10:24:28 +0800 Subject: [PATCH] fix(@vben/playground): reset popup form state --- .../src/views/examples/drawer/form-drawer-demo.vue | 2 ++ playground/src/views/system/dept/modules/form.vue | 9 +++++---- playground/src/views/system/role/modules/form.vue | 1 + playground/src/views/system/user/modules/form.vue | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/playground/src/views/examples/drawer/form-drawer-demo.vue b/playground/src/views/examples/drawer/form-drawer-demo.vue index 620432d7..eab0c961 100644 --- a/playground/src/views/examples/drawer/form-drawer-demo.vue +++ b/playground/src/views/examples/drawer/form-drawer-demo.vue @@ -47,6 +47,8 @@ const [Drawer, drawerApi] = useVbenDrawer({ const data = drawerApi.getData(); if (data?.values) { formApi.setValues(data.values); + } else { + formApi.reset(); } } }, diff --git a/playground/src/views/system/dept/modules/form.vue b/playground/src/views/system/dept/modules/form.vue index 5a134447..040a2bc8 100644 --- a/playground/src/views/system/dept/modules/form.vue +++ b/playground/src/views/system/dept/modules/form.vue @@ -58,11 +58,12 @@ const [Modal, modalApi] = useVbenModal({ if (isOpen) { const data = modalApi.getData(); if (data) { - if (data.pid === 0) { - data.pid = undefined; - } formData.value = 'id' in data ? data : undefined; - formApi.setValues(data); + const formValues = { + ...data, + ...(data.pid === 0 ? { pid: undefined } : {}), + }; + formApi.setValues(formValues); } else { formData.value = undefined; formApi.reset(); diff --git a/playground/src/views/system/role/modules/form.vue b/playground/src/views/system/role/modules/form.vue index 968ba2ef..79879072 100644 --- a/playground/src/views/system/role/modules/form.vue +++ b/playground/src/views/system/role/modules/form.vue @@ -57,6 +57,7 @@ const [Drawer, drawerApi] = useVbenDrawer({ formData.value = data; id.value = data.id; } else { + formData.value = undefined; id.value = undefined; } diff --git a/playground/src/views/system/user/modules/form.vue b/playground/src/views/system/user/modules/form.vue index 0a010252..f904f08e 100644 --- a/playground/src/views/system/user/modules/form.vue +++ b/playground/src/views/system/user/modules/form.vue @@ -56,6 +56,7 @@ const [Drawer, drawerApi] = useVbenDrawer({ formData.value = data; id.value = data.id; } else { + formData.value = undefined; id.value = undefined; }