From 029b2ffaaba80c8b3a80527acece0164b957761d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 29 Dec 2025 07:03:00 +0800 Subject: [PATCH] =?UTF-8?q?review=EF=BC=9A=E3=80=90antd/ele=E3=80=91?= =?UTF-8?q?=E3=80=90mall=E3=80=91=E8=90=A5=E9=94=80=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/discountActivity/modules/form.vue | 17 +++++------------ .../promotion/rewardActivity/modules/form.vue | 2 +- .../views/_core/profile/modules/user-social.vue | 10 ++++------ .../promotion/rewardActivity/modules/form.vue | 1 + 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue index 62ed7a326..f1a9a5690 100644 --- a/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue +++ b/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue @@ -40,6 +40,7 @@ defineOptions({ name: 'DiscountActivityForm' }); const emit = defineEmits(['success']); /** 折扣类型枚举 */ +// TODO @puhui999:这里可以使用 biz-mall 里的枚举噢; const PromotionDiscountTypeEnum = { PRICE: { type: 1 }, // 满减 PERCENT: { type: 2 }, // 折扣 @@ -233,36 +234,33 @@ const [Modal, modalApi] = useVbenModal({ if (!valid) { return; } - // 校验是否选择了商品 if (spuList.value.length === 0) { message.warning('请选择活动商品'); return; } - modalApi.lock(); + // 提交表单 try { // 获取折扣商品配置 + // TODO @puhui999:structuredClone 执行会报错; const products = structuredClone( spuAndSkuListRef.value?.getSkuConfigs('productConfig') || [], ) as MallDiscountActivityApi.DiscountProduct[]; - // 转换金额为分 products.forEach((item) => { item.discountPercent = convertToInteger(item.discountPercent); item.discountPrice = convertToInteger(item.discountPrice); }); - const data = structuredClone( await formApi.getValues(), ) as MallDiscountActivityApi.DiscountActivity; data.products = products; - // 提交请求 await (formData.value?.id ? updateDiscountActivity(data) : createDiscountActivity(data)); - + // 关闭并提示 await modalApi.close(); emit('success'); message.success($t('ui.actionMessage.operationSuccess')); @@ -275,18 +273,15 @@ const [Modal, modalApi] = useVbenModal({ await resetForm(); return; } - // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { return; } - modalApi.lock(); try { const activityData = await getDiscountActivity(data.id); formData.value = activityData; - // 加载商品详情 if (activityData.products && activityData.products.length > 0) { // 按 spuId 分组 @@ -301,15 +296,13 @@ const [Modal, modalApi] = useVbenModal({ } spuProductsMap.get(spuId)!.push(product); } - // 加载每个 SPU 的详情 for (const [spuId, products] of spuProductsMap) { const skuIdArr = products.map((p) => p.skuId); await getSpuDetails(spuId, skuIdArr, products, 'load'); } } - - // 设置表单值 + // 设置到 values await formApi.setValues(activityData); } finally { modalApi.unlock(); 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 de911c629..282d7ceea 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 @@ -53,6 +53,7 @@ const [Form, formApi] = useVbenForm({ const [Modal, modalApi] = useVbenModal({ async onConfirm() { // 在验证前同步 formData.rules 到表单中 + // TODO @puhui999:选择了分类、或者商品,还是报没选择; await formApi.setFieldValue('rules', formData.value.rules || []); const { valid } = await formApi.validate(); if (!valid) { @@ -104,7 +105,6 @@ const [Modal, modalApi] = useVbenModal({ modalApi.lock(); try { const result = await getReward(data.id); - // valueFormat: 'x' 配置下,直接使用时间戳 result.startAndEndTime = [ result.startTime ? String(result.startTime) : undefined, result.endTime ? String(result.endTime) : undefined, diff --git a/apps/web-ele/src/views/_core/profile/modules/user-social.vue b/apps/web-ele/src/views/_core/profile/modules/user-social.vue index 04a537007..ada4186d8 100644 --- a/apps/web-ele/src/views/_core/profile/modules/user-social.vue +++ b/apps/web-ele/src/views/_core/profile/modules/user-social.vue @@ -176,9 +176,7 @@ onMounted(() => { />
-

+

{{ getDictLabel(DICT_TYPE.SYSTEM_SOCIAL_TYPE, item.type) }}

@@ -186,9 +184,9 @@ onMounted(() => { {{ item.socialUser?.nickname || item.socialUser?.openid }}
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 199242efb..4ade74808 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 @@ -65,6 +65,7 @@ const [Modal, modalApi] = useVbenModal({ // 使用 formData.value 作为基础,确保 rules 来自 formData const data = { ...values, ...formData.value }; if (data.startAndEndTime && Array.isArray(data.startAndEndTime)) { + // TODO @puhui999:这里 ele 会告警;antd 不会告警,可能要看看; data.startTime = Number(data.startAndEndTime[0]); data.endTime = Number(data.startAndEndTime[1]); delete data.startAndEndTime;