Files
EmailBill/Web/src/api/statistics.js
SunCheng a7954f55ad feat: remove V1 calendar/budget/stats modules
- 删除 V1 前端页面 (CalendarView, BudgetView, statisticsV1)
- 移除 V1 路由配置 (/calendar, /budget, /)
- 清理路由守卫中的 V1 版本切换逻辑
- 移除设置页面中的版本切换功能
- 更新底部导航和登录重定向到 V2 路由
- 移除 App.vue 中 V1 页面的缓存配置
- 删除后端 TransactionRecordController.GetDailyStatisticsAsync (Obsolete)
- 删除 TransactionStatisticsController.GetBalanceStatisticsAsync
- 保留 V2 仍在使用的共享 API (GetUncoveredCategories, GetArchiveSummary, GetDailyStatistics)
- 保留 V2 使用的全局事件监听机制
- 所有测试通过 (210/210)

Breaking Change: V1 API 端点和路由将不可用
2026-02-14 00:01:44 +08:00

194 lines
6.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import request from './request'
/**
* 统计相关 API
* 注:统计接口定义在 TransactionStatisticsController 中
*/
// ===== 新统一接口(推荐使用) =====
/**
* 按日期范围获取每日统计(新统一接口)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期(包含)格式: YYYY-MM-DD
* @param {string} params.endDate - 结束日期(不包含)格式: YYYY-MM-DD
* @param {string} [params.savingClassify] - 储蓄分类(可选,不传则使用系统配置)
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 每日统计列表
* @returns {number} data[].day - 日期(天)
* @returns {number} data[].count - 交易笔数
* @returns {number} data[].expense - 支出金额
* @returns {number} data[].income - 收入金额
* @returns {number} data[].saving - 储蓄金额
*/
export const getDailyStatisticsByRange = (params) => {
return request({
url: '/TransactionStatistics/GetDailyStatisticsByRange',
method: 'get',
params
})
}
/**
* 按日期范围获取汇总统计(新统一接口)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期(包含)格式: YYYY-MM-DD
* @param {string} params.endDate - 结束日期(不包含)格式: YYYY-MM-DD
* @returns {Promise<{success: boolean, data: Object}>}
* @returns {Object} data.totalExpense - 总支出
* @returns {Object} data.totalIncome - 总收入
* @returns {Object} data.balance - 结余
* @returns {Object} data.expenseCount - 支出笔数
* @returns {Object} data.incomeCount - 收入笔数
* @returns {Object} data.totalCount - 总笔数
*/
export const getSummaryByRange = (params) => {
return request({
url: '/TransactionStatistics/GetSummaryByRange',
method: 'get',
params
})
}
/**
* 按日期范围获取分类统计(新统一接口)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期(包含)格式: YYYY-MM-DD
* @param {string} params.endDate - 结束日期(不包含)格式: YYYY-MM-DD
* @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 分类统计列表
* @returns {string} data[].classify - 分类名称
* @returns {number} data[].amount - 金额
* @returns {number} data[].percent - 百分比
* @returns {number} data[].count - 交易笔数
*/
export const getCategoryStatisticsByRange = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatisticsByRange',
method: 'get',
params
})
}
/**
* 获取趋势统计数据
* @param {Object} params - 查询参数
* @param {number} params.startYear - 开始年份
* @param {number} params.startMonth - 开始月份
* @param {number} [params.monthCount=6] - 月份数量默认6个月
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 趋势统计列表
* @returns {number} data[].year - 年份
* @returns {number} data[].month - 月份
* @returns {number} data[].expense - 支出金额
* @returns {number} data[].income - 收入金额
*/
export const getTrendStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetTrendStatistics',
method: 'get',
params
})
}
// ===== 旧接口(保留用于向后兼容,建议迁移到新接口) =====
/**
* 获取月度统计数据
* @deprecated 请使用 getSummaryByRange
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @returns {Promise<{success: boolean, data: Object}>}
*/
export const getMonthlyStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetMonthlyStatistics',
method: 'get',
params
})
}
/**
* 获取分类统计数据
* @deprecated 请使用 getCategoryStatisticsByRange
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getCategoryStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatistics',
method: 'get',
params
})
}
/**
* 按日期范围获取分类统计数据
* @deprecated 请使用 getCategoryStatisticsByRangeDateTime 参数版本)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期 (格式: YYYY-MM-DD)
* @param {string} params.endDate - 结束日期 (格式: YYYY-MM-DD)
* @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getCategoryStatisticsByDateRange = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatisticsByDateRange',
method: 'get',
params
})
}
/**
* 获取指定月份每天的消费统计
* @deprecated 请使用 getDailyStatisticsByRange
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getDailyStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetDailyStatistics',
method: 'get',
params
})
}
/**
* 获取指定周范围的每天的消费统计
* @deprecated 请使用 getDailyStatisticsByRange
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期 (yyyy-MM-dd)
* @param {string} params.endDate - 结束日期 (yyyy-MM-dd)
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getWeeklyStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetWeeklyStatistics',
method: 'get',
params
})
}
/**
* 获取指定日期范围的统计汇总数据
* @deprecated 请使用 getSummaryByRange
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期 (yyyy-MM-dd)
* @param {string} params.endDate - 结束日期 (yyyy-MM-dd)
* @returns {Promise<{success: boolean, data: Object}>}
*/
export const getRangeStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetRangeStatistics',
method: 'get',
params
})
}