feat:【antd】【mall】商城活动优化

This commit is contained in:
puhui999
2025-12-01 18:37:05 +08:00
parent df7135b288
commit a5b51f45da
18 changed files with 149 additions and 59 deletions

View File

@@ -133,6 +133,12 @@ export function useFormSchema(): VbenFormSchema[] {
placeholder: '请输入最大砍价金额',
},
},
{
fieldName: 'spuId',
label: '砍价商品',
component: 'Input',
rules: 'required',
},
];
}

View File

@@ -14,6 +14,7 @@ import {
updateBargainActivity,
} from '#/api/mall/promotion/bargain/bargainActivity';
import { $t } from '#/locales';
import { SpuShowcase } from '#/views/mall/product/spu/components';
import { useFormSchema } from '../data';
@@ -21,7 +22,7 @@ defineOptions({ name: 'PromotionBargainActivityForm' });
const emit = defineEmits(['success']);
const formData = ref<MallBargainActivityApi.BargainActivity>();
const formData = ref<Partial<MallBargainActivityApi.BargainActivity>>({});
const getTitle = computed(() => {
return formData.value?.id
? $t('ui.actionTitle.edit', ['砍价活动'])
@@ -49,8 +50,11 @@ const [Modal, modalApi] = useVbenModal({
}
modalApi.lock();
// 提交表单
const data =
(await formApi.getValues()) as MallBargainActivityApi.BargainActivity;
const values = await formApi.getValues();
const data = {
...values,
spuId: formData.value.spuId,
} as MallBargainActivityApi.BargainActivity;
try {
await (formData.value?.id
? updateBargainActivity(data)
@@ -65,7 +69,7 @@ const [Modal, modalApi] = useVbenModal({
},
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
formData.value = undefined;
formData.value = {};
return;
}
// 加载数据
@@ -86,8 +90,12 @@ const [Modal, modalApi] = useVbenModal({
</script>
<template>
<!-- TODO @puhui999这里缺少商品的选择 -->
<Modal class="w-2/5" :title="getTitle">
<Form class="mx-4" />
<Form class="mx-4">
<!-- 自定义插槽商品选择 -->
<template #spuId>
<SpuShowcase v-model="formData.spuId" :limit="1" />
</template>
</Form>
</Modal>
</template>