fix: 直接回填日计划编辑数据

This commit is contained in:
zhouz
2026-08-14 16:49:03 +08:00
parent 846fb4bd23
commit 1183a3ca26
2 changed files with 7 additions and 21 deletions

View File

@@ -42,7 +42,7 @@ function handleCreate() {
} }
function handleEdit(row: LmsDailyPlanApi.DailyPlan) { function handleEdit(row: LmsDailyPlanApi.DailyPlan) {
formDrawerApi.setData({ dailyPlanId: row.dailyPlanId, isUpdate: true }).open(); formDrawerApi.setData({ isUpdate: true, row }).open();
} }
function handleDetail(row: LmsDailyPlanApi.DailyPlan) { function handleDetail(row: LmsDailyPlanApi.DailyPlan) {

View File

@@ -9,7 +9,7 @@ import { useVbenDrawer, useVbenModal } from '@vben/common-ui';
import { message } from 'antdv-next'; import { message } from 'antdv-next';
import { useVbenForm } from '#/adapter/form'; import { useVbenForm } from '#/adapter/form';
import { createDailyPlan, getDailyPlan, updateDailyPlan } from '#/api/lms/dailyplan'; import { createDailyPlan, updateDailyPlan } from '#/api/lms/dailyplan';
import MaterialSelectModalComponent from '#/views/base/materialbase/components/MaterialSelectModal.vue'; import MaterialSelectModalComponent from '#/views/base/materialbase/components/MaterialSelectModal.vue';
import { usePlanFormSchema } from '../data'; import { usePlanFormSchema } from '../data';
@@ -18,11 +18,10 @@ const emit = defineEmits(['success']);
const formData = ref<LmsDailyPlanApi.DailyPlan>(); const formData = ref<LmsDailyPlanApi.DailyPlan>();
const isUpdate = ref(false); const isUpdate = ref(false);
const title = computed(() => isUpdate.value ? '编辑日计划' : '新增日计划'); const title = computed(() => isUpdate.value ? '编辑日计划' : '新增日计划');
let loadSerial = 0;
interface DrawerData { interface DrawerData {
dailyPlanId?: LmsDailyPlanApi.ApiId;
isUpdate: boolean; isUpdate: boolean;
row?: LmsDailyPlanApi.DailyPlan;
} }
const [MaterialSelectModal, materialSelectModalApi] = useVbenModal({ const [MaterialSelectModal, materialSelectModalApi] = useVbenModal({
@@ -88,31 +87,18 @@ const [Drawer, drawerApi] = useVbenDrawer({
}, },
async onOpenChange(isOpen: boolean) { async onOpenChange(isOpen: boolean) {
if (!isOpen) { if (!isOpen) {
loadSerial += 1;
isUpdate.value = false;
formData.value = undefined;
void formApi.resetForm();
return; return;
} }
const currentSerial = ++loadSerial;
const data = drawerApi.getData<DrawerData>(); const data = drawerApi.getData<DrawerData>();
isUpdate.value = Boolean(data?.isUpdate); isUpdate.value = Boolean(data?.isUpdate);
await formApi.resetForm(); await formApi.resetForm();
if (!data?.dailyPlanId) { if (!data?.row) {
formData.value = undefined;
await formApi.setValues({ sortSeq: 1, weight: 1 }); await formApi.setValues({ sortSeq: 1, weight: 1 });
return; return;
} }
try { formData.value = data.row;
const detail = await getDailyPlan(data.dailyPlanId); await formApi.setValues(data.row);
if (currentSerial !== loadSerial) return;
formData.value = detail;
await formApi.setValues(detail);
} catch (error) {
if (currentSerial === loadSerial) {
message.error('加载日计划详情失败');
}
throw error;
}
}, },
}); });
</script> </script>