From 7031dbebe6e72936aec5c704d0620a75556bef79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AE=80?= <1538304461@qq.com> Date: Mon, 21 Jul 2025 14:27:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20(system):=20=E4=BF=AE=E5=A4=8DVbenTree?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=A1=BA=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整了数据权限分配和菜单分配表单中的加载顺序 - 确保在设置表单值之前完成树形结构数据的加载 --- .../system/role/modules/assign-data-permission-form.vue | 4 ++-- .../src/views/system/role/modules/assign-menu-form.vue | 4 ++-- .../system/role/modules/assign-data-permission-form.vue | 4 ++-- .../src/views/system/role/modules/assign-menu-form.vue | 4 ++-- .../system/role/modules/assign-data-permission-form.vue | 4 ++-- .../src/views/system/role/modules/assign-menu-form.vue | 4 ++-- playground/src/views/system/role/modules/form.vue | 9 ++++----- 7 files changed, 16 insertions(+), 17 deletions(-) diff --git a/apps/web-antd/src/views/system/role/modules/assign-data-permission-form.vue b/apps/web-antd/src/views/system/role/modules/assign-data-permission-form.vue index c7319b9c1..a495dbd9d 100644 --- a/apps/web-antd/src/views/system/role/modules/assign-data-permission-form.vue +++ b/apps/web-antd/src/views/system/role/modules/assign-data-permission-form.vue @@ -74,11 +74,11 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); try { - await formApi.setValues(await getRole(data.id as number)); - // 加载部门列表 await loadDeptTree(); toggleExpandAll(); + // 设置表单值, 一定要在加载树之后 + await formApi.setValues(await getRole(data.id as number)); } finally { modalApi.unlock(); } diff --git a/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue b/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue index aa1843f96..1d62398c3 100644 --- a/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue +++ b/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue @@ -72,13 +72,13 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); try { - await formApi.setValues(data); - // 加载角色菜单 const menuIds = await getRoleMenuList(data.id as number); await formApi.setFieldValue('menuIds', menuIds); // 加载菜单列表 await loadMenuTree(); + + await formApi.setValues(data); } finally { modalApi.unlock(); } diff --git a/apps/web-ele/src/views/system/role/modules/assign-data-permission-form.vue b/apps/web-ele/src/views/system/role/modules/assign-data-permission-form.vue index 8a7478417..08597ebf9 100644 --- a/apps/web-ele/src/views/system/role/modules/assign-data-permission-form.vue +++ b/apps/web-ele/src/views/system/role/modules/assign-data-permission-form.vue @@ -74,11 +74,11 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); try { - await formApi.setValues(await getRole(data.id as number)); - // 加载部门列表 await loadDeptTree(); toggleExpandAll(); + // 设置表单值, 一定要在加载树之后 + await formApi.setValues(await getRole(data.id as number)); } finally { modalApi.unlock(); } diff --git a/apps/web-ele/src/views/system/role/modules/assign-menu-form.vue b/apps/web-ele/src/views/system/role/modules/assign-menu-form.vue index 36634ccbd..b7e11b513 100644 --- a/apps/web-ele/src/views/system/role/modules/assign-menu-form.vue +++ b/apps/web-ele/src/views/system/role/modules/assign-menu-form.vue @@ -69,13 +69,13 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); try { - await formApi.setValues(data); - // 加载角色菜单 const menuIds = await getRoleMenuList(data.id as number); await formApi.setFieldValue('menuIds', menuIds); // 加载菜单列表 await loadMenuTree(); + + await formApi.setValues(data); } finally { modalApi.unlock(); } diff --git a/apps/web-naive/src/views/system/role/modules/assign-data-permission-form.vue b/apps/web-naive/src/views/system/role/modules/assign-data-permission-form.vue index 892aefad6..21ac3d9fd 100644 --- a/apps/web-naive/src/views/system/role/modules/assign-data-permission-form.vue +++ b/apps/web-naive/src/views/system/role/modules/assign-data-permission-form.vue @@ -75,11 +75,11 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); try { - await formApi.setValues(await getRole(data.id as number)); - // 加载部门列表 await loadDeptTree(); toggleExpandAll(); + // 设置表单值, 一定要在加载树之后 + await formApi.setValues(await getRole(data.id as number)); } finally { modalApi.unlock(); } diff --git a/apps/web-naive/src/views/system/role/modules/assign-menu-form.vue b/apps/web-naive/src/views/system/role/modules/assign-menu-form.vue index 683d1f827..30ff77c0d 100644 --- a/apps/web-naive/src/views/system/role/modules/assign-menu-form.vue +++ b/apps/web-naive/src/views/system/role/modules/assign-menu-form.vue @@ -69,13 +69,13 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); try { - await formApi.setValues(data); - // 加载角色菜单 const menuIds = await getRoleMenuList(data.id as number); await formApi.setFieldValue('menuIds', menuIds); // 加载菜单列表 await loadMenuTree(); + + await formApi.setValues(data); } finally { modalApi.unlock(); } diff --git a/playground/src/views/system/role/modules/form.vue b/playground/src/views/system/role/modules/form.vue index cae54a1c6..25b6fedca 100644 --- a/playground/src/views/system/role/modules/form.vue +++ b/playground/src/views/system/role/modules/form.vue @@ -47,10 +47,13 @@ const [Drawer, drawerApi] = useVbenDrawer({ drawerApi.unlock(); }); }, - onOpenChange(isOpen) { + async onOpenChange(isOpen) { if (isOpen) { const data = drawerApi.getData(); formApi.resetForm(); + if (permissions.value.length === 0) { + await loadPermissions(); + } if (data) { formData.value = data; id.value = data.id; @@ -58,10 +61,6 @@ const [Drawer, drawerApi] = useVbenDrawer({ } else { id.value = undefined; } - - if (permissions.value.length === 0) { - loadPermissions(); - } } }, });