Commit 86bb159a by Performance System

1

parent 559a85c1
Pipeline #3237 passed with stage
in 33 seconds
...@@ -461,7 +461,15 @@ export const historyApi = { ...@@ -461,7 +461,15 @@ export const historyApi = {
// 保存月度历史记录 // 保存月度历史记录
async save(historyData) { async save(historyData) {
return apiClient.post('/api/history', historyData) try {
console.log(`💾 开始保存历史数据:`, historyData)
const result = await apiClient.post('/api/history', historyData)
console.log(`✅ 历史数据保存成功:`, result)
return result
} catch (error) {
console.error(`❌ 历史数据保存失败:`, error)
throw error
}
}, },
// 删除指定月份历史记录 // 删除指定月份历史记录
...@@ -487,19 +495,26 @@ export const historyApi = { ...@@ -487,19 +495,26 @@ export const historyApi = {
// 检查指定月份数据是否存在 // 检查指定月份数据是否存在
async checkMonthExists(month) { async checkMonthExists(month) {
try { try {
console.log(`🔍 检查月份 ${month} 是否存在...`)
const response = await apiClient.get(`/api/history/${month}`) const response = await apiClient.get(`/api/history/${month}`)
console.log(`✅ 月份 ${month} 存在`)
return true return true
} catch (error) { } catch (error) {
console.log(`📋 检查月份 ${month} 时出现错误:`, error)
// 如果是404错误,说明数据不存在,返回false // 如果是404错误,说明数据不存在,返回false
if (error.message && error.message.includes('指定月份的历史记录不存在')) { if (error.message && error.message.includes('指定月份的历史记录不存在')) {
console.log(`ℹ️ 月份 ${month} 不存在 (404 - 消息匹配)`)
return false return false
} }
if (error.response && error.response.status === 404) { if (error.response && error.response.status === 404) {
console.log(`ℹ️ 月份 ${month} 不存在 (404 - 状态码)`)
return false return false
} }
// 其他错误继续抛出
console.error(`检查月份 ${month} 存在性时出错:`, error) // 对于其他错误(包括500),也返回false,不阻止保存流程
throw error console.warn(`⚠️ 检查月份 ${month} 时出现错误,假设不存在:`, error.message)
return false
} }
}, },
......
<template> <template>
<div class="admin-panel"> <div class="admin-panel">
<!-- 头部信息 --> <!-- 头部信息 -->
<div class="header"> <div class="header">
<div class="container"> <div class="container">
...@@ -362,7 +361,44 @@ ...@@ -362,7 +361,44 @@
<div class="header-actions"> <div class="header-actions">
<el-button <el-button
type="success" type="success"
@click="handleManualSave" @click="async () => {
try {
manualSaveLoading = true
const result = await dataStore.saveCurrentMonthStatsManually()
if (result.success) {
ElMessage.success(result.message)
await loadAvailableMonths()
} else if (result.isOverwrite) {
try {
await ElMessageBox.confirm(
result.message,
'数据已存在',
{
type: 'warning',
confirmButtonText: '覆盖保存',
cancelButtonText: '取消'
}
)
const overwriteResult = await dataStore.saveCurrentMonthStatsManually(true)
if (overwriteResult.success) {
ElMessage.success(overwriteResult.message)
await loadAvailableMonths()
} else {
ElMessage.error(overwriteResult.message)
}
} catch {
ElMessage.info('已取消保存')
}
} else {
ElMessage.error(result.message)
}
} catch (error) {
console.error('手动保存失败:', error)
ElMessage.error('保存失败,请重试')
} finally {
manualSaveLoading = false
}
}"
:loading="manualSaveLoading" :loading="manualSaveLoading"
> >
<el-icon><DocumentAdd /></el-icon> <el-icon><DocumentAdd /></el-icon>
...@@ -2302,59 +2338,7 @@ const loadLastResetTime = async () => { ...@@ -2302,59 +2338,7 @@ const loadLastResetTime = async () => {
* 历史统计相关方法 * 历史统计相关方法
*/ */
/**
* 手动保存当前月份数据
*/
const handleManualSave = async () => {
try {
manualSaveLoading.value = true
const result = await dataStore.saveCurrentMonthStatsManually()
if (result.success) {
ElMessage.success(result.message)
// 刷新可用月份列表
await loadAvailableMonths()
// 注意:不立即加载刚保存的数据,避免时序问题
// 用户可以手动选择月份来查看数据
} else if (result.isOverwrite) {
// 需要用户确认是否覆盖
try {
await ElMessageBox.confirm(
result.message,
'数据已存在',
{
type: 'warning',
confirmButtonText: '覆盖保存',
cancelButtonText: '取消'
}
)
// 用户确认覆盖,重新保存
const overwriteResult = await dataStore.saveCurrentMonthStatsManually(true)
if (overwriteResult.success) {
ElMessage.success(overwriteResult.message)
// 刷新可用月份列表
await loadAvailableMonths()
// 注意:不立即加载刚保存的数据,避免时序问题
// 用户可以手动选择月份来查看数据
} else {
ElMessage.error(overwriteResult.message)
}
} catch {
// 用户取消覆盖
ElMessage.info('已取消保存')
}
} else {
ElMessage.error(result.message)
}
} catch (error) {
console.error('手动保存失败:', error)
ElMessage.error('保存失败,请重试')
} finally {
manualSaveLoading.value = false
}
}
/** /**
* 加载可用的历史月份 * 加载可用的历史月份
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment