- 사이드바·헤더·홈·업그레이드·데모·정기결제/내역 화면 라벨 통일 - 백업 엑셀 시트명(backup.js)은 기존 백업 복원 호환 위해 '고정지출' 유지 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -712,7 +712,7 @@ async function remove(e) {
|
||||
}
|
||||
}
|
||||
|
||||
// 고정지출 등록 확인 모달 상태 (네이티브 confirm 대신 — PC 팝업 제목 'sb_pt' 노출 방지)
|
||||
// 정기결제 등록 확인 모달 상태 (네이티브 confirm 대신 — PC 팝업 제목 'sb_pt' 노출 방지)
|
||||
const recurConfirm = reactive({ open: false, title: '', dom: 1, amount: 0, payload: null })
|
||||
const flashMsg = ref('')
|
||||
let flashTimer = null
|
||||
@@ -722,9 +722,9 @@ function flash(msg) {
|
||||
flashTimer = setTimeout(() => (flashMsg.value = ''), 2800)
|
||||
}
|
||||
|
||||
// 현재 수정 중인 내역을 '매월' 고정지출로 등록 — 확인 모달을 띄운다
|
||||
// 현재 수정 중인 내역을 '매월' 정기결제로 등록 — 확인 모달을 띄운다
|
||||
function registerAsRecurring() {
|
||||
if (form.type === 'REPAYMENT') return // 고정지출은 수입/지출/이체만
|
||||
if (form.type === 'REPAYMENT') return // 정기결제은 수입/지출/이체만
|
||||
const amount = Number(form.amount)
|
||||
if (!amount || amount <= 0) {
|
||||
formError.value = '금액을 올바르게 입력하세요.'
|
||||
@@ -733,7 +733,7 @@ function registerAsRecurring() {
|
||||
const title =
|
||||
(form.memo || '').trim() ||
|
||||
(form.category || '').trim() ||
|
||||
(form.type === 'INCOME' ? '정기 수입' : form.type === 'TRANSFER' ? '정기 이체' : '고정 지출')
|
||||
(form.type === 'INCOME' ? '정기 수입' : form.type === 'TRANSFER' ? '정기 이체' : '정기결제')
|
||||
const base = form.entryDate || todayStr()
|
||||
const [y, m, d] = base.split('-').map(Number)
|
||||
const dom = d
|
||||
@@ -766,9 +766,9 @@ async function doRegisterRecurring() {
|
||||
await accountApi.createRecurring(recurConfirm.payload)
|
||||
recurConfirm.open = false
|
||||
formOpen.value = false
|
||||
flash('고정지출로 등록했습니다. 고정지출 화면에서 주기를 변경할 수 있어요.')
|
||||
flash('정기결제로 등록했습니다. 정기결제 화면에서 주기를 변경할 수 있어요.')
|
||||
} catch (e) {
|
||||
formError.value = e.response?.data?.message || '고정지출 등록에 실패했습니다.'
|
||||
formError.value = e.response?.data?.message || '정기결제 등록에 실패했습니다.'
|
||||
recurConfirm.open = false
|
||||
} finally {
|
||||
submitting.value = false
|
||||
@@ -941,7 +941,7 @@ async function analyzePasted() {
|
||||
|
||||
onMounted(async () => {
|
||||
// 진입 시 밀린 정기 거래를 먼저 반영한 뒤 목록을 불러온다 (중복 없이)
|
||||
// 고정지출은 무료도 2건까지 사용 가능 → 모든 로그인 사용자에 대해 실행
|
||||
// 정기결제은 무료도 2건까지 사용 가능 → 모든 로그인 사용자에 대해 실행
|
||||
try {
|
||||
await accountApi.runRecurrings()
|
||||
} catch {
|
||||
@@ -1302,7 +1302,7 @@ onMounted(async () => {
|
||||
class="to-recurring"
|
||||
:disabled="submitting"
|
||||
@click="registerAsRecurring"
|
||||
>🔁 이 내역을 고정지출로 등록</button>
|
||||
>🔁 이 내역을 정기결제로 등록</button>
|
||||
|
||||
<button
|
||||
v-if="editId && (form.type === 'INCOME' || form.type === 'EXPENSE')"
|
||||
@@ -1346,17 +1346,17 @@ onMounted(async () => {
|
||||
</Transition>
|
||||
</Teleport>
|
||||
|
||||
<!-- 고정지출 등록 확인 (네이티브 confirm 대체 — 제목 'sb_pt' 노출 방지) -->
|
||||
<!-- 정기결제 등록 확인 (네이티브 confirm 대체 — 제목 'sb_pt' 노출 방지) -->
|
||||
<Teleport to="body">
|
||||
<Transition name="fade">
|
||||
<div v-if="recurConfirm.open" class="modal-backdrop" @click.self="recurConfirm.open = false">
|
||||
<div class="modal confirm-modal" role="dialog" aria-modal="true">
|
||||
<h2>고정지출 등록</h2>
|
||||
<h2>정기결제 등록</h2>
|
||||
<p class="confirm-body">
|
||||
<b>{{ recurConfirm.title }}</b><br />
|
||||
매월 <b>{{ recurConfirm.dom }}일</b> · <b>{{ won(recurConfirm.amount) }}</b> 으로 등록할까요?
|
||||
</p>
|
||||
<p class="confirm-sub">주기·시작일은 고정지출 화면에서 변경할 수 있어요.</p>
|
||||
<p class="confirm-sub">주기·시작일은 정기결제 화면에서 변경할 수 있어요.</p>
|
||||
<div class="buttons">
|
||||
<IconBtn icon="close" title="취소" @click="recurConfirm.open = false" />
|
||||
<IconBtn icon="save" title="등록" variant="primary" :disabled="submitting" @click="doRegisterRecurring" />
|
||||
|
||||
Reference in New Issue
Block a user