fix(仪表盘): 修复最近用量查询日期参数格式

问题:仪表盘“最近用量”调用 /usage 时传入完整 ISO 时间戳(含时分秒/时区),后端 start_date/end_date 仅接受 YYYY-MM-DD,导致请求参数校验失败,页面无法正常展示最近用量。

解决:
- loadRecentUsage 改为传入 YYYY-MM-DD(从 toISOString() 取日期部分),与后端参数格式约定保持一致
- 补充注释说明:后端会将 end_date 扩展到当日结束时间,以及 toISOString() 为 UTC 可能带来的统计口径差异
- 同步修正 usageAPI.getByDateRange 的参数注释,避免后续误用

验证:npm -C frontend run build
This commit is contained in:
yangjianbo 2025-12-27 23:08:38 +08:00
parent 530f6ad81c
commit 97ab649d16
2 changed files with 9 additions and 4 deletions

View File

@ -148,8 +148,8 @@ export async function getStatsByDateRange(
/**
* Get usage by date range
* @param startDate - Start date (ISO format)
* @param endDate - End date (ISO format)
* @param startDate - Start date (YYYY-MM-DD format)
* @param endDate - End date (YYYY-MM-DD format)
* @param apiKeyId - Optional API key ID filter
* @returns Usage logs within date range
*/

View File

@ -987,8 +987,13 @@ const loadChartData = async () => {
const loadRecentUsage = async () => {
loadingUsage.value = true
try {
const endDate = new Date().toISOString()
const startDate = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()
// /usage start_date/end_date YYYY-MM-DD backend usage handler
// end_date 23:59:59.999...
// toISOString() UTC /
// Intl.DateTimeFormat timeZone
const now = new Date()
const endDate = now.toISOString().split('T')[0]
const startDate = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0]
const usageResponse = await usageAPI.getByDateRange(startDate, endDate)
recentUsage.value = usageResponse.items.slice(0, 5)
} catch (error) {