diff --git a/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue b/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue index b015eb7f4..23bc87900 100644 --- a/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue +++ b/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue @@ -49,6 +49,19 @@ const [Form, formApi] = useVbenForm({ const [Modal, modalApi] = useVbenModal({ async onConfirm() { + // 同步商品/分类选择到表单,确保验证时能获取到值 + if (formData.value.productSpuIds) { + await formApi.setFieldValue( + 'productSpuIds', + formData.value.productSpuIds, + ); + } + if (formData.value.productCategoryIds) { + await formApi.setFieldValue( + 'productCategoryIds', + formData.value.productCategoryIds, + ); + } const { valid } = await formApi.validate(); if (!valid) { return; diff --git a/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue index 282d7ceea..4a35c0316 100644 --- a/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue +++ b/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue @@ -52,9 +52,21 @@ const [Form, formApi] = useVbenForm({ const [Modal, modalApi] = useVbenModal({ async onConfirm() { - // 在验证前同步 formData.rules 到表单中 - // TODO @puhui999:选择了分类、或者商品,还是报没选择; + // 在验证前同步 formData 中的值到表单中 await formApi.setFieldValue('rules', formData.value.rules || []); + // 同步商品/分类选择到表单,确保验证时能获取到值 + if (formData.value.productSpuIds) { + await formApi.setFieldValue( + 'productSpuIds', + formData.value.productSpuIds, + ); + } + if (formData.value.productCategoryIds) { + await formApi.setFieldValue( + 'productCategoryIds', + formData.value.productCategoryIds, + ); + } const { valid } = await formApi.validate(); if (!valid) { return; diff --git a/apps/web-ele/src/views/mall/promotion/coupon/template/modules/form.vue b/apps/web-ele/src/views/mall/promotion/coupon/template/modules/form.vue index 13e4c7535..a7f4996da 100644 --- a/apps/web-ele/src/views/mall/promotion/coupon/template/modules/form.vue +++ b/apps/web-ele/src/views/mall/promotion/coupon/template/modules/form.vue @@ -49,6 +49,19 @@ const [Form, formApi] = useVbenForm({ const [Modal, modalApi] = useVbenModal({ async onConfirm() { + // 同步商品/分类选择到表单,确保验证时能获取到值 + if (formData.value.productSpuIds) { + await formApi.setFieldValue( + 'productSpuIds', + formData.value.productSpuIds, + ); + } + if (formData.value.productCategoryIds) { + await formApi.setFieldValue( + 'productCategoryIds', + formData.value.productCategoryIds, + ); + } const { valid } = await formApi.validate(); if (!valid) { return; diff --git a/apps/web-ele/src/views/mall/promotion/rewardActivity/modules/form.vue b/apps/web-ele/src/views/mall/promotion/rewardActivity/modules/form.vue index 4ade74808..d7074f2bb 100644 --- a/apps/web-ele/src/views/mall/promotion/rewardActivity/modules/form.vue +++ b/apps/web-ele/src/views/mall/promotion/rewardActivity/modules/form.vue @@ -52,8 +52,21 @@ const [Form, formApi] = useVbenForm({ const [Modal, modalApi] = useVbenModal({ async onConfirm() { - // 在验证前同步 formData.rules 到表单中 + // 在验证前同步 formData 中的值到表单中 await formApi.setFieldValue('rules', formData.value.rules || []); + // 同步商品/分类选择到表单,确保验证时能获取到值 + if (formData.value.productSpuIds) { + await formApi.setFieldValue( + 'productSpuIds', + formData.value.productSpuIds, + ); + } + if (formData.value.productCategoryIds) { + await formApi.setFieldValue( + 'productCategoryIds', + formData.value.productCategoryIds, + ); + } const { valid } = await formApi.validate(); if (!valid) { return;