From db02e1c5e2b290731d2dea1ed32c4b0fd0e78ee6 Mon Sep 17 00:00:00 2001 From: Seojin Yun Date: Sun, 4 Jan 2026 12:07:30 +0900 Subject: [PATCH] =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/campaign/CouponCreateModal.vue | 11 ++++++----- src/views/campaign/PromotionCreateModal.vue | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/views/campaign/CouponCreateModal.vue b/src/views/campaign/CouponCreateModal.vue index f82e3e6..90a00c5 100644 --- a/src/views/campaign/CouponCreateModal.vue +++ b/src/views/campaign/CouponCreateModal.vue @@ -282,11 +282,10 @@ const resetForm = () => { formRef.value && formRef.value.clearValidate(); }; -// props.recommendId 변화 감지 -watch(() => props.recommendId, async (newId) => { - if (newId) { +watch([() => props.recommendId, () => props.visible], async ([newId, isVisible]) => { + if (newId && isVisible) { await fetchRecommendCoupon(newId) - } else { + } else if (!isVisible) { resetForm() } }, { immediate: true }) @@ -338,7 +337,9 @@ const handleSubmit = () => { maxNum: form.maxNum, segmentName: form.segmentName, }); - await api.put(`/recommend/coupon/update/${props.recommendId}`); + if (props.recommendId) { + await api.put(`/recommend/coupon/update/${props.recommendId}`); + } ElMessage.success('쿠폰이 등록되었습니다.'); emit('created'); emit('update:visible', false); diff --git a/src/views/campaign/PromotionCreateModal.vue b/src/views/campaign/PromotionCreateModal.vue index 076e9a9..aa4a022 100644 --- a/src/views/campaign/PromotionCreateModal.vue +++ b/src/views/campaign/PromotionCreateModal.vue @@ -212,11 +212,10 @@ const resetForm = () => { formRef.value && formRef.value.clearValidate(); }; -watch(() => props.recommendId, async (newId) => { - if (newId) { +watch([() => props.recommendId, () => props.visible], async ([newId, isVisible]) => { + if (newId && isVisible) { await fetchRecommendPromotion(newId) - } else { - // 모달 닫힐 때 폼 초기화 + } else if (!isVisible) { resetForm() } }, { immediate: true }) @@ -276,8 +275,9 @@ const handleSubmit = () => { content: form.content, segmentName: form.segmentName, }); - await api.put(`/recommend/promotion/update/${props.recommendId}`); - + if (props.recommendId) { + await api.put(`/recommend/promotion/update/${props.recommendId}`); + } ElMessage.success('프로모션이 등록되었습니다.'); emit('created'); // 부모에서 목록 재조회 emit('update:visible', false);