diff --git a/web/src/components/shared/ConfirmDialog.vue b/web/src/components/shared/ConfirmDialog.vue new file mode 100644 index 0000000..897a646 --- /dev/null +++ b/web/src/components/shared/ConfirmDialog.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/web/src/services/reimbursements.js b/web/src/services/reimbursements.js new file mode 100644 index 0000000..c293d9e --- /dev/null +++ b/web/src/services/reimbursements.js @@ -0,0 +1,29 @@ +import { apiRequest } from './api.js' + +export function fetchExpenseClaims() { + return apiRequest('/reimbursements/claims') +} + +export function fetchExpenseClaimDetail(claimId) { + return apiRequest(`/reimbursements/claims/${encodeURIComponent(String(claimId || '').trim())}`) +} + +export function updateExpenseClaimItem(claimId, itemId, payload) { + return apiRequest(`/reimbursements/claims/${encodeURIComponent(String(claimId || '').trim())}/items/${encodeURIComponent(String(itemId || '').trim())}`, { + method: 'PATCH', + body: JSON.stringify(payload) + }) +} + +export function submitExpenseClaim(claimId) { + return apiRequest(`/reimbursements/claims/${encodeURIComponent(String(claimId || '').trim())}/submit`, { + method: 'POST', + body: JSON.stringify({}) + }) +} + +export function deleteExpenseClaim(claimId) { + return apiRequest(`/reimbursements/claims/${encodeURIComponent(String(claimId || '').trim())}`, { + method: 'DELETE' + }) +}