diff --git a/src/pages/general-judge/general-judge.vue b/src/pages/general-judge/general-judge.vue
index 6ba8140..bd65bae 100644
--- a/src/pages/general-judge/general-judge.vue
+++ b/src/pages/general-judge/general-judge.vue
@@ -57,7 +57,7 @@
@@ -67,9 +67,41 @@
主裁判分:
- {{ result.chiefJudgeScore || result.totalScore }}
+ {{ result.chiefJudgeScore || result.finalScore }}
- 待确认
+ 待确认
+
+
+
+
+
+
+
+
+ 已确认成绩
+ ({{ confirmedResults.length }})
+
+
+
+ 暂无已确认成绩
+
+
+
+
+
+ {{ result.playerName }}
+ {{ result.teamName }}
+
+
+
+ 最终得分:
+ {{ result.finalScore }}
+
+ 已确认
@@ -86,7 +118,7 @@
主裁判分:
- {{ currentResult.chiefJudgeScore || currentResult.totalScore }}
+ {{ currentResult.chiefJudgeScore || currentResult.finalScore }}
确认分数:
@@ -128,6 +160,7 @@ export default {
venues: [],
selectedVenueId: null,
pendingResults: [],
+ confirmedResults: [],
loading: false,
showDialog: false,
currentResult: {},
@@ -141,7 +174,7 @@ export default {
this.matchName = app.globalData.matchName || ""
this.matchId = app.globalData.matchId
this.loadVenues()
- this.loadPendingResults()
+ this.loadAllResults()
},
methods: {
async loadVenues() {
@@ -161,10 +194,11 @@ export default {
console.error("加载场地失败:", e)
}
},
- async loadPendingResults() {
+ async loadAllResults() {
this.loading = true
try {
- const res = await uni.request({
+ // 加载待确认成绩
+ const pendingRes = await uni.request({
url: config.apiBaseURL + "/mini/general/pending",
method: "GET",
data: { competitionId: this.matchId },
@@ -172,22 +206,39 @@ export default {
"Authorization": uni.getStorageSync("token")
}
})
- if (res[1].data.success) {
- let results = res[1].data.data || []
+ if (pendingRes[1].data.success) {
+ let results = pendingRes[1].data.data || []
if (this.selectedVenueId) {
results = results.filter(r => r.venueId === this.selectedVenueId)
}
this.pendingResults = results
}
+
+ // 加载已确认成绩
+ const confirmedRes = await uni.request({
+ url: config.apiBaseURL + "/mini/general/confirmed",
+ method: "GET",
+ data: { competitionId: this.matchId },
+ header: {
+ "Authorization": uni.getStorageSync("token")
+ }
+ })
+ if (confirmedRes[1].data.success) {
+ let results = confirmedRes[1].data.data || []
+ if (this.selectedVenueId) {
+ results = results.filter(r => r.venueId === this.selectedVenueId)
+ }
+ this.confirmedResults = results
+ }
} catch (e) {
- console.error("加载待确认成绩失败:", e)
+ console.error("加载成绩失败:", e)
} finally {
this.loading = false
}
},
selectVenue(venueId) {
this.selectedVenueId = venueId
- this.loadPendingResults()
+ this.loadAllResults()
},
showConfirmDialog(result) {
this.currentResult = result
@@ -221,7 +272,7 @@ export default {
if (res[1].data.success) {
uni.showToast({ title: "确认成功", icon: "success" })
this.closeDialog()
- this.loadPendingResults()
+ this.loadAllResults()
} else {
uni.showToast({ title: res[1].data.msg || "确认失败", icon: "none" })
}
@@ -250,6 +301,7 @@ export default {
.container {
min-height: 100vh;
background-color: #F5F5F5;
+ padding-bottom: 40rpx;
}
.nav-bar {
@@ -345,7 +397,7 @@ export default {
.loading, .empty {
text-align: center;
- padding: 60rpx;
+ padding: 40rpx;
color: #999;
font-size: 28rpx;
}
@@ -363,7 +415,14 @@ export default {
padding: 24rpx;
background: #FAFAFA;
border-radius: 12rpx;
- border-left: 6rpx solid #8B4513;
+}
+
+.result-item.pending {
+ border-left: 6rpx solid #FF9800;
+}
+
+.result-item.confirmed {
+ border-left: 6rpx solid #4CAF50;
}
.player-name {
@@ -390,16 +449,27 @@ export default {
.chief-score .value {
font-size: 36rpx;
font-weight: 600;
- color: #8B4513;
+ color: #FF9800;
margin-left: 10rpx;
}
+.chief-score .value.confirmed {
+ color: #4CAF50;
+}
+
.status-tag {
font-size: 24rpx;
- color: #FF9800;
margin-top: 8rpx;
}
+.status-tag.pending {
+ color: #FF9800;
+}
+
+.status-tag.confirmed {
+ color: #4CAF50;
+}
+
.dialog-mask {
position: fixed;
top: 0;