From 846fb4bd2343d9e57fe56f41d50fc36bcab48917 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 14 Aug 2026 16:47:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A5=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E7=BC=96=E8=BE=91=E6=8A=BD=E5=B1=89=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/lms/daily-plan/management/index.vue | 4 +-- .../daily-plan/management/modules/form.vue | 34 ++++++++++++++----- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/index.vue b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/index.vue index 0e1307f7..1a891c4e 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/index.vue +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/index.vue @@ -38,11 +38,11 @@ function handleRefresh() { } function handleCreate() { - formDrawerApi.setData(null).open(); + formDrawerApi.setData({ isUpdate: false }).open(); } function handleEdit(row: LmsDailyPlanApi.DailyPlan) { - formDrawerApi.setData(row).open(); + formDrawerApi.setData({ dailyPlanId: row.dailyPlanId, isUpdate: true }).open(); } function handleDetail(row: LmsDailyPlanApi.DailyPlan) { diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/modules/form.vue b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/modules/form.vue index 6a99ffa4..7541341f 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/modules/form.vue +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/management/modules/form.vue @@ -16,7 +16,14 @@ import { usePlanFormSchema } from '../data'; const emit = defineEmits(['success']); const formData = ref(); -const title = computed(() => formData.value ? '编辑日计划' : '新增日计划'); +const isUpdate = ref(false); +const title = computed(() => isUpdate.value ? '编辑日计划' : '新增日计划'); +let loadSerial = 0; + +interface DrawerData { + dailyPlanId?: LmsDailyPlanApi.ApiId; + isUpdate: boolean; +} const [MaterialSelectModal, materialSelectModalApi] = useVbenModal({ connectedComponent: MaterialSelectModalComponent, @@ -81,21 +88,30 @@ const [Drawer, drawerApi] = useVbenDrawer({ }, async onOpenChange(isOpen: boolean) { if (!isOpen) { + loadSerial += 1; + isUpdate.value = false; formData.value = undefined; - await formApi.resetForm(); + void formApi.resetForm(); return; } - const row = drawerApi.getData(); - if (!row?.dailyPlanId) { + const currentSerial = ++loadSerial; + const data = drawerApi.getData(); + isUpdate.value = Boolean(data?.isUpdate); + await formApi.resetForm(); + if (!data?.dailyPlanId) { await formApi.setValues({ sortSeq: 1, weight: 1 }); return; } - drawerApi.lock(); try { - formData.value = await getDailyPlan(row.dailyPlanId); - await formApi.setValues(formData.value); - } finally { - drawerApi.unlock(); + const detail = await getDailyPlan(data.dailyPlanId); + if (currentSerial !== loadSerial) return; + formData.value = detail; + await formApi.setValues(detail); + } catch (error) { + if (currentSerial === loadSerial) { + message.error('加载日计划详情失败'); + } + throw error; } }, });