diff --git a/src/views/account/AccountView.vue b/src/views/account/AccountView.vue index bccc5d3..4d05d63 100644 --- a/src/views/account/AccountView.vue +++ b/src/views/account/AccountView.vue @@ -654,7 +654,6 @@ async function doRegisterRecurring() { // ===== 자주 쓰는 내역(빠른 등록 템플릿) ===== const quickEntries = ref([]) const quickEditMode = ref(false) -const quickPickerOpen = ref(false) // 불러오기 모달 피커 async function loadQuick() { try { quickEntries.value = await accountApi.quickEntries() @@ -668,6 +667,7 @@ function quickLabel(q) { // 칩 탭 → 오늘 날짜로 즉시 등록 async function useQuick(q) { if (quickEditMode.value) return + // 1) 등록 — 이 단계 실패만 '등록 실패'로 처리 try { await accountApi.create({ entryDate: todayStr(), @@ -680,11 +680,17 @@ async function useQuick(q) { installmentMonths: null, tagIds: [], }) - await load() - await loadPendingCount() - flash(`'${quickLabel(q)}' ${won(q.amount)} 등록했습니다.`) } catch (e) { flash(e.response?.data?.message || '빠른 등록에 실패했습니다.') + return + } + // 2) 등록 성공 안내 + 목록 갱신(갱신 실패는 등록 성공을 가리지 않게 분리) + flash(`'${quickLabel(q)}' ${won(q.amount)} 등록했습니다.`) + try { + await load() + await loadPendingCount() + } catch { + /* 목록 갱신 실패는 무시 — 다음 진입/새로고침 시 반영 */ } } async function removeQuick(q) { @@ -695,23 +701,6 @@ async function removeQuick(q) { flash(e.response?.data?.message || '삭제에 실패했습니다.') } } -// 신규 추가 시: 자주 쓰는 내역을 폼에 불러오기(채움, 저장은 사용자가) -function applyQuick(q) { - if (!q) return - form.type = q.type - form.category = q.category || '' - form.amount = q.amount - form.memo = q.memo || '' - if (q.walletId) { - form.walletId = q.walletId - form.walletKind = walletKindOf(q.walletId) || form.walletKind - } - syncCategoryMajor() -} -function pickQuick(q) { - applyQuick(q) - quickPickerOpen.value = false -} // 현재 폼 값을 자주 쓰는 내역으로 저장 async function saveAsQuick() { if (form.type !== 'INCOME' && form.type !== 'EXPENSE') return @@ -830,6 +819,7 @@ onMounted(async () => {
+ ⭐ 자주 쓰는 내역
- - -