172
172
</div >
173
173
</div >
174
174
</el-form-item >
175
+ <el-form-item
176
+ v-if =" formData.productScope === PromotionProductScopeEnum.CATEGORY.scope"
177
+ prop =" productCategoryIds"
178
+ >
179
+ <ProductCategorySelect v-model =" formData.productCategoryIds" multiple />
180
+ </el-form-item >
175
181
</el-form >
176
182
<template #footer >
177
183
<el-button :disabled =" formLoading" type =" primary" @click =" submitForm" >确 定</el-button >
@@ -190,6 +196,7 @@ import {
190
196
PromotionProductScopeEnum
191
197
} from ' @/utils/constants'
192
198
import SpuTableSelect from ' @/views/mall/product/spu/components/SpuTableSelect.vue'
199
+ import ProductCategorySelect from ' @/views/mall/product/category/components/ProductCategorySelect.vue'
193
200
194
201
defineOptions ({ name: ' CouponTemplateForm' })
195
202
@@ -218,7 +225,8 @@ const formData = ref({
218
225
fixedStartTerm: undefined ,
219
226
fixedEndTerm: undefined ,
220
227
productScope: PromotionProductScopeEnum .ALL .scope ,
221
- productSpuIds: []
228
+ productSpuIds: [],
229
+ productCategoryIds: []
222
230
})
223
231
const formRules = reactive ({
224
232
name: [{ required: true , message: ' 优惠券名称不能为空' , trigger: ' blur' }],
@@ -235,7 +243,8 @@ const formRules = reactive({
235
243
fixedStartTerm: [{ required: true , message: ' 开始领取天数不能为空' , trigger: ' blur' }],
236
244
fixedEndTerm: [{ required: true , message: ' 开始领取天数不能为空' , trigger: ' blur' }],
237
245
productScope: [{ required: true , message: ' 商品范围不能为空' , trigger: ' blur' }],
238
- productSpuIds: [{ required: true , message: ' 商品范围不能为空' , trigger: ' blur' }]
246
+ productSpuIds: [{ required: true , message: ' 商品范围不能为空' , trigger: ' blur' }],
247
+ productCategoryIds: [{ required: true , message: ' 分类范围不能为空' , trigger: ' blur' }]
239
248
})
240
249
const formRef = ref () // 表单 Ref
241
250
const productSpus = ref <ProductSpuApi .Spu []>([]) // 商品列表
@@ -302,6 +311,12 @@ const submitForm = async () => {
302
311
? formData .value .validTimes [1 ]
303
312
: undefined
304
313
} as CouponTemplateApi .CouponTemplateVO
314
+
315
+ if (formData .value .productCategoryIds ?.length > 0 ) {
316
+ // 改个名字?加个字段?
317
+ data .productSpuIds = formData .value .productCategoryIds
318
+ }
319
+
305
320
if (formType .value === ' create' ) {
306
321
await CouponTemplateApi .createCouponTemplate (data )
307
322
message .success (t (' common.createSuccess' ))
@@ -337,7 +352,8 @@ const resetForm = () => {
337
352
fixedStartTerm: undefined ,
338
353
fixedEndTerm: undefined ,
339
354
productScope: PromotionProductScopeEnum .ALL .scope ,
340
- productSpuIds: []
355
+ productSpuIds: [],
356
+ productCategoryIds: []
341
357
}
342
358
formRef .value ?.resetFields ()
343
359
productSpus .value = []
@@ -350,6 +366,10 @@ const getProductScope = async () => {
350
366
// 获得商品列表
351
367
productSpus .value = await ProductSpuApi .getSpuDetailList (formData .value .productSpuIds )
352
368
break
369
+ case PromotionProductScopeEnum .CATEGORY .scope :
370
+ formData .value .productCategoryIds = formData .value .productSpuIds
371
+ formData .value .productSpuIds = []
372
+ break
353
373
default :
354
374
break
355
375
}
0 commit comments