This commit is contained in:
SunCheng
2026-02-10 17:49:19 +08:00
parent 3e18283e52
commit d052ae5197
104 changed files with 10369 additions and 3000 deletions

View File

@@ -63,32 +63,38 @@ request.interceptors.response.use(
const { status, data } = error.response
let message = '请求失败'
switch (status) {
case 400:
message = data?.message || '请求参数错误'
break
case 401: {
message = '未授权,请重新登录'
// 清除登录状态并跳转到登录页
const authStore = useAuthStore()
authStore.logout()
router.push({
name: 'login',
query: { redirect: router.currentRoute.value.fullPath }
})
break
// 优先从后端返回的 BaseResponse 中提取 message
if (data && data.message) {
message = data.message
} else {
// 如果后端没有返回 message使用默认提示
switch (status) {
case 400:
message = '请求参数错误'
break
case 401: {
message = '未授权,请重新登录'
// 清除登录状态并跳转到登录页
const authStore = useAuthStore()
authStore.logout()
router.push({
name: 'login',
query: { redirect: router.currentRoute.value.fullPath }
})
break
}
case 403:
message = '拒绝访问'
break
case 404:
message = '请求的资源不存在'
break
case 500:
message = '服务器内部错误'
break
default:
message = `请求失败 (${status})`
}
case 403:
message = '拒绝访问'
break
case 404:
message = '请求的资源不存在'
break
case 500:
message = '服务器内部错误'
break
default:
message = data?.message || `请求失败 (${status})`
}
showToast(message)

View File

@@ -2,14 +2,38 @@ import request from './request'
/**
* 统计相关 API
* 注:统计接口定义在 TransactionRecordController 中
* 注:统计接口定义在 TransactionStatisticsController 中
*/
// ===== 新统一接口(推荐使用) =====
/**
* 获取月度统计数据
* 按日期范围获取每日统计(新统一接口)
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @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 - 总收入
@@ -18,19 +42,19 @@ import request from './request'
* @returns {Object} data.incomeCount - 收入笔数
* @returns {Object} data.totalCount - 总笔数
*/
export const getMonthlyStatistics = (params) => {
export const getSummaryByRange = (params) => {
return request({
url: '/TransactionStatistics/GetMonthlyStatistics',
url: '/TransactionStatistics/GetSummaryByRange',
method: 'get',
params
})
}
/**
* 获取分类统计数据
* 按日期范围获取分类统计(新统一接口)
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @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 - 分类统计列表
@@ -39,30 +63,9 @@ export const getMonthlyStatistics = (params) => {
* @returns {number} data[].percent - 百分比
* @returns {number} data[].count - 交易笔数
*/
export const getCategoryStatistics = (params) => {
export const getCategoryStatisticsByRange = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatistics',
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 getCategoryStatisticsByDateRange = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatisticsByDateRange',
url: '/TransactionStatistics/GetCategoryStatisticsByRange',
method: 'get',
params
})
@@ -89,16 +92,65 @@ export const getTrendStatistics = (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}>}
* @returns {Array} data - 每日统计列表
* @returns {string} data[].date - 日期
* @returns {number} data[].count - 交易笔数
* @returns {number} data[].amount - 交易金额
*/
export const getDailyStatistics = (params) => {
return request({
@@ -110,13 +162,11 @@ export const getDailyStatistics = (params) => {
/**
* 获取累积余额统计数据(用于余额卡片)
* @deprecated 请使用 getDailyStatisticsByRange 并在前端计算累积余额
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 每日累积余额列表
* @returns {string} data[].date - 日期
* @returns {number} data[].cumulativeBalance - 累积余额
*/
export const getBalanceStatistics = (params) => {
return request({
@@ -128,14 +178,11 @@ export const getBalanceStatistics = (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}>}
* @returns {Array} data - 每日统计列表
* @returns {string} data[].date - 日期
* @returns {number} data[].count - 交易笔数
* @returns {number} data[].amount - 交易金额
*/
export const getWeeklyStatistics = (params) => {
return request({
@@ -147,16 +194,11 @@ export const getWeeklyStatistics = (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}>}
* @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 getRangeStatistics = (params) => {
return request({