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 @@
handleCouponConfigChange(record.id, 'count', value)"
+ />
+
+
+ handleCouponConfigChange(record.id, 'days', value)"
/>
@@ -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
}
}
})