diff --git a/src/views/coupon/ActivityList.vue b/src/views/coupon/ActivityList.vue index 86a0462..9a2e4e8 100644 --- a/src/views/coupon/ActivityList.vue +++ b/src/views/coupon/ActivityList.vue @@ -199,10 +199,20 @@ + @@ -449,6 +459,12 @@ export default defineComponent({ key: 'quantity', width: 120, align: 'center' + }, + { + title: '有效天数', + key: 'days', + width: 120, + align: 'center' } ] @@ -469,20 +485,41 @@ export default defineComponent({ return formState.value.selected_coupons.includes(couponId); } + // 获取优惠券配置值 + const getCouponConfigValue = (couponId, field) => { + return formState.value.coupon_config[couponId]?.[field] ?? (field === 'count' ? 0 : 7) + } + + // 处理优惠券配置变更 + const handleCouponConfigChange = (couponId, field, value) => { + if (!formState.value.coupon_config[couponId]) { + formState.value.coupon_config[couponId] = { + count: 1, + days: 7 + } + } + formState.value.coupon_config[couponId][field] = value + } + // 处理优惠券选择 const handleCouponSelect = (couponId, checked) => { if (checked) { // 添加到选中列表 if (!isSelectedCoupon(couponId)) { formState.value.selected_coupons.push(couponId); - // 如果数量未设置,默认设为1 + // 如果配置未设置,默认设为1张,7天有效期 if (!formState.value.coupon_config[couponId]) { - formState.value.coupon_config[couponId] = 1; + formState.value.coupon_config[couponId] = { + count: 1, + days: 7 + }; } } } else { // 从选中列表移除 formState.value.selected_coupons = formState.value.selected_coupons.filter(id => id !== couponId); + // 删除配置 + delete formState.value.coupon_config[couponId]; } } @@ -521,8 +558,11 @@ export default defineComponent({ const selectedCoupons = [] Object.entries(record.coupon_config || {}).forEach(([key, value]) => { - if (value && value > 0) { - couponConfig[key] = value + if (value && value.count > 0) { + couponConfig[key] = { + count: value.count, + days: value.days || 7 // 如果没有设置天数,默认为7天 + } selectedCoupons.push(parseInt(key)) } }) @@ -557,9 +597,12 @@ export default defineComponent({ // 处理优惠券配置,只保留选中的优惠券 const couponConfig = {} formState.value.selected_coupons.forEach(couponId => { - const quantity = formState.value.coupon_config[couponId] + const quantity = formState.value.coupon_config[couponId].count if (quantity && quantity > 0) { - couponConfig[couponId] = quantity + couponConfig[couponId] = { + count: quantity, + days: formState.value.coupon_config[couponId].days || 7 + } } }) @@ -731,7 +774,9 @@ export default defineComponent({ qrCodeUrl, qrCodeLoading, handleGetQrCode, - handleQrCodeModalCancel + handleQrCodeModalCancel, + getCouponConfigValue, + handleCouponConfigChange } } })