Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
performance-score
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tools
performance-score
Commits
86bb159a
Commit
86bb159a
authored
Sep 24, 2025
by
Performance System
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
559a85c1
Pipeline
#3237
passed with stage
in 33 seconds
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
58 deletions
+57
-58
src/services/api.js
+19
-4
src/views/admin/AdminPanel.vue
+38
-54
No files found.
src/services/api.js
View file @
86bb159a
...
@@ -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
}
}
},
},
...
...
src/views/admin/AdminPanel.vue
View file @
86bb159a
<
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
}
}
/**
/**
* 加载可用的历史月份
* 加载可用的历史月份
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment