From f5ea147823a185593f48d4303bc79b8099ba640b Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 12 Sep 2025 14:26:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A7=9F=E6=88=B7=E6=8A=BD=E5=B1=89?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=AA=A8=E6=9E=B6=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 loading 状态和 Skeleton 组件 - 优化租户信息加载逻辑,与套餐选择初始化并行执行 - 使用骨架屏替代原有的 loading,提升用户体验 --- .../src/views/system/tenant/tenant-drawer.vue | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/web-antd/src/views/system/tenant/tenant-drawer.vue b/apps/web-antd/src/views/system/tenant/tenant-drawer.vue index 1e91bbc3..337ea3e0 100644 --- a/apps/web-antd/src/views/system/tenant/tenant-drawer.vue +++ b/apps/web-antd/src/views/system/tenant/tenant-drawer.vue @@ -5,7 +5,7 @@ import { useVbenDrawer } from '@vben/common-ui'; import { $t } from '@vben/locales'; import { cloneDeep } from '@vben/utils'; -import { message } from 'ant-design-vue'; +import { message, Skeleton } from 'ant-design-vue'; import { useVbenForm } from '#/adapter/form'; import { tenantAdd, tenantInfo, tenantUpdate } from '#/api/system/tenant'; @@ -69,6 +69,7 @@ const { onBeforeClose, markInitialized, resetInitialized } = useBeforeCloseDiff( }, ); +const loading = ref(false); const [BasicDrawer, drawerApi] = useVbenDrawer({ onBeforeClose, onClosed: handleClosed, @@ -78,15 +79,19 @@ const [BasicDrawer, drawerApi] = useVbenDrawer({ return null; } drawerApi.drawerLoading(true); + loading.value = true; const { id } = drawerApi.getData() as { id?: number | string }; isUpdate.value = !!id; - // 初始化 - await setupPackageSelect(); if (isUpdate.value && id) { - const record = await tenantInfo(id); + const [record] = await Promise.all([ + tenantInfo(id), + setupPackageSelect(), + ]); await formApi.setValues(record); + } else { + await setupPackageSelect(); } formApi.updateSchema([ @@ -100,6 +105,7 @@ const [BasicDrawer, drawerApi] = useVbenDrawer({ await markInitialized(); drawerApi.drawerLoading(false); + loading.value = false; }, }); @@ -133,7 +139,8 @@ async function handleClosed() {