diff --git a/src/api/accountApi.js b/src/api/accountApi.js index 8e0dd63..fefbe58 100644 --- a/src/api/accountApi.js +++ b/src/api/accountApi.js @@ -109,6 +109,12 @@ export const accountApi = { removeHolding(id) { return http.delete(`/account/invest/holdings/${id}`) }, + refreshPrices(walletId) { + return http.post('/account/invest/holdings/refresh-prices', null, { params: { walletId } }) + }, + refreshAllPrices() { + return http.post('/account/invest/refresh-prices') + }, holdingTrades(holdingId) { return http.get(`/account/invest/holdings/${holdingId}/trades`) }, @@ -152,6 +158,9 @@ export const accountApi = { removeTag(id) { return http.delete(`/account/tags/${id}`) }, + reorderTags(ids) { + return http.put('/account/tags/reorder', { ids }) + }, // 카드 결제 알림 자동인식 (미확인 내역) pendingCount() { diff --git a/src/api/boardApi.js b/src/api/boardApi.js index 8efca36..ef0b725 100644 --- a/src/api/boardApi.js +++ b/src/api/boardApi.js @@ -2,9 +2,10 @@ import http from './http' // 백엔드 /api/board 엔드포인트와 매핑 export const boardApi = { - list({ page = 1, size = 10, tag = '', keyword = '', searchType = '' } = {}) { + list({ category = '', page = 1, size = 10, tag = '', keyword = '', searchType = '' } = {}) { return http.get('/board/posts', { params: { + category: category || undefined, page, size, tag: tag || undefined, diff --git a/src/components/SignupModal.vue b/src/components/SignupModal.vue index 4bfe3eb..5971370 100644 --- a/src/components/SignupModal.vue +++ b/src/components/SignupModal.vue @@ -1,7 +1,8 @@ @@ -143,6 +181,17 @@ button.danger { padding: 0.4rem 0; border-bottom: 1px solid var(--color-border); } +.drag-handle { + cursor: grab; + user-select: none; + opacity: 0.5; + font-size: 1.1rem; + padding: 0 0.2rem; + touch-action: none; +} +.drag-handle:active { + cursor: grabbing; +} .tag-name { flex: 1; } diff --git a/src/views/account/AccountView.vue b/src/views/account/AccountView.vue index 672532f..0be2a7a 100644 --- a/src/views/account/AccountView.vue +++ b/src/views/account/AccountView.vue @@ -363,7 +363,7 @@ function todayStr() { function openCreate() { editId.value = null editingPending.value = false - Object.assign(form, { entryDate: todayStr(), type: 'EXPENSE', category: '', amount: null, memo: '', walletKind: '', walletId: '', toWalletKind: '', toWalletId: '', principal: null, interest: null, installmentMonths: '' }) + Object.assign(form, { entryDate: todayStr(), type: 'EXPENSE', category: '', amount: null, memo: '', walletKind: 'BANK', walletId: '', toWalletKind: '', toWalletId: '', principal: null, interest: null, installmentMonths: '' }) selectedTagIds.value = [] cancelAddCategory() formError.value = null @@ -378,7 +378,7 @@ function openEdit(e) { category: e.category || '', amount: e.amount, memo: e.memo || '', - walletKind: walletKindOf(e.walletId), + walletKind: e.walletId ? walletKindOf(e.walletId) : (e.type === 'TRANSFER' ? '' : 'CASH'), walletId: e.walletId || '', toWalletKind: walletKindOf(e.toWalletId), toWalletId: e.toWalletId || '', @@ -653,21 +653,27 @@ onMounted(async () => { - - - + + + + - +