feat: 初始化收支管理系统

This commit is contained in:
wangshuo
2026-08-30 14:36:22 +08:00
commit 733ed4bb86
79 changed files with 5808 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
// 收支记录相关 API 接口:交易记录的增删改查(分页)
import request from './request'
import axios from 'axios'
import { useUserStore } from '../store/user'
/** 分页获取交易记录列表,支持按类型、分类、支付方式、时间范围、计入统计多选筛选 */
export function getTransactionPage(params: {
page?: number
size?: number
types?: string[]
categoryIds?: number[]
paymentMethods?: string[]
startTime?: string
endTime?: string
includeInStats?: boolean
}) {
return request.get('/transaction/page', { params })
}
/** 创建新的交易记录 */
export function createTransaction(data: {
categoryId: number
type: string
amount: number
paymentMethod?: string
remark?: string
transactionTime: string
includeInStats?: boolean
}) {
return request.post('/transaction', data)
}
/** 更新指定交易记录 */
export function updateTransaction(id: number, data: {
categoryId: number
type: string
amount: number
paymentMethod?: string
remark?: string
transactionTime: string
includeInStats?: boolean
}) {
return request.put(`/transaction/${id}`, data)
}
/** 删除指定交易记录 */
export function deleteTransaction(id: number) {
return request.delete(`/transaction/${id}`)
}
/** 切换指定交易记录的"计入统计"标记 */
export function toggleTransactionStats(id: number, includeInStats: boolean) {
return request.put(`/transaction/${id}/stats`, { includeInStats })
}
/** 导出交易记录为 Excel 文件,支持按条件筛选 */
export function exportTransaction(params: {
types?: string[]
categoryIds?: number[]
paymentMethods?: string[]
startTime?: string
endTime?: string
includeInStats?: boolean
}) {
const userStore = useUserStore()
return axios.get('/api/transaction/export', {
params,
paramsSerializer: {
indexes: null,
},
responseType: 'blob',
headers: {
Authorization: `Bearer ${userStore.token}`,
},
})
}