From e2433fc531c557e96be50b546ce37544ab0af656 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 13 Jan 2026 12:06:10 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd/ele=E3=80=91?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20productSpuIds=20=E5=92=8C=20productCategor?= =?UTF-8?q?yIds=20=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8F=92=E6=A7=BD=E7=9A=84?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=9C=A8=E9=AA=8C=E8=AF=81=E5=89=8D=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=20formData=20=E4=B8=AD=E7=9A=84=E5=80=BC=E5=88=B0?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/coupon/template/modules/form.vue | 13 +++++++++++++ .../promotion/rewardActivity/modules/form.vue | 16 ++++++++++++++-- .../promotion/coupon/template/modules/form.vue | 13 +++++++++++++ .../promotion/rewardActivity/modules/form.vue | 15 ++++++++++++++- 4 files changed, 54 insertions(+), 3 deletions(-) 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;