From 29fc6f5b1981775be5d2f0f9f8e61fec2f550252 Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期一, 29 九月 2025 19:29:11 +0800
Subject: [PATCH] 删除所有test开头的测试文件
---
web/src/views/activity-player/rating.vue | 123 ++++++++++++++++++++++++++++++++++++----
1 files changed, 110 insertions(+), 13 deletions(-)
diff --git a/web/src/views/activity-player/rating.vue b/web/src/views/activity-player/rating.vue
index d21ea7b..6c30f39 100644
--- a/web/src/views/activity-player/rating.vue
+++ b/web/src/views/activity-player/rating.vue
@@ -8,7 +8,7 @@
<!-- 宸︿晶闈㈡澘锛氬鍛樹俊鎭拰鍙傝禌淇℃伅 -->
<div class="left-panel">
<!-- 瀛﹀憳淇℃伅鍗$墖 -->
- <PlayerInfoCard :player-info="detail.playerInfo" />
+ <PlayerInfoCard :player-info="detail.playerInfo" :region-info="detail.regionInfo" />
<!-- 鍙傝禌淇℃伅鍗$墖 -->
<div class="submission-card">
@@ -30,9 +30,13 @@
<!-- 鍙充晶闈㈡澘锛氳瘎鍒嗚〃鍗� -->
<div class="right-panel">
<RatingForm
- v-if="detail.ratingForm"
- :rating-form="detail.ratingForm"
+ v-if="ratingScheme"
+ :rating-form="ratingScheme"
:activity-player-id="detail.id"
+ :current-judge-name="currentJudgeInfo?.name"
+ :judge-ratings="judgeRatings"
+ :average-score="averageScore"
+ :existing-rating="currentJudgeRating"
@submit="handleRatingSubmit"
/>
<div v-else class="no-rating">
@@ -51,7 +55,14 @@
import { ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { ElMessage, ElSkeleton, ElEmpty } from 'element-plus'
-import { getActivityPlayerDetail, saveActivityPlayerRating } from '@/api/activityPlayer'
+import {
+ getActivityPlayerDetail,
+ saveActivityPlayerRating,
+ getJudgeRatingsForPlayer,
+ getCurrentJudgeRating,
+ getAverageScoreForPlayer,
+ getCurrentJudgeInfo
+} from '@/api/activityPlayer'
import PlayerInfoCard from '@/components/PlayerInfoCard.vue'
import SubmissionFiles from '@/components/SubmissionFiles.vue'
import RatingForm from '@/components/RatingForm.vue'
@@ -59,16 +70,97 @@
const route = useRoute()
const loading = ref(true)
const detail = ref(null)
+const ratingScheme = ref(null)
+const currentJudgeInfo = ref(null)
+const judgeRatings = ref([])
+const currentJudgeRating = ref(null)
+const averageScore = ref(0)
const loadDetail = async () => {
try {
loading.value = true
- const id = route.params.id
- const response = await getActivityPlayerDetail(id)
+ const response = await getActivityPlayerDetail(route.params.id)
+ console.log('API鍝嶅簲:', response)
+
+ // 妫�鏌ュ搷搴旀暟鎹粨鏋�
+ if (!response) {
+ throw new Error('API鍝嶅簲鏁版嵁涓虹┖')
+ }
+
+ if (!response.activityPlayerDetail) {
+ throw new Error('鏈壘鍒伴�夋墜璇︽儏鏁版嵁')
+ }
+
detail.value = response.activityPlayerDetail
+
+ // 浣跨敤浠庡悗绔幏鍙栫殑鐪熷疄璇勫垎妯℃澘鏁版嵁
+ if (detail.value.ratingForm) {
+ ratingScheme.value = {
+ schemeId: detail.value.ratingForm.schemeId,
+ schemeName: detail.value.ratingForm.schemeName,
+ items: detail.value.ratingForm.items || [],
+ totalMaxScore: detail.value.ratingForm.totalMaxScore || 0
+ }
+ console.log('浣跨敤鐪熷疄璇勫垎妯℃澘鏁版嵁:', ratingScheme.value)
+ } else {
+ console.warn('鏈壘鍒拌瘎鍒嗘ā鏉挎暟鎹紝浣跨敤榛樿妯℃澘')
+ // 濡傛灉娌℃湁璇勫垎妯℃澘鏁版嵁锛屼娇鐢ㄩ粯璁ゆā鏉�
+ ratingScheme.value = {
+ schemeId: "1",
+ schemeName: "榛樿璇勫垎鏍囧噯",
+ items: [
+ { id: "1", name: "缁煎悎璇勫垎", maxScore: 100, orderNo: 1 }
+ ],
+ totalMaxScore: 100
+ }
+ }
+
+ // 鑾峰彇褰撳墠璇勫淇℃伅
+ try {
+ const judgeInfoResponse = await getCurrentJudgeInfo()
+ console.log('璇勫淇℃伅鍝嶅簲:', judgeInfoResponse)
+ if (judgeInfoResponse && judgeInfoResponse.currentJudgeInfo) {
+ currentJudgeInfo.value = judgeInfoResponse.currentJudgeInfo
+ }
+ } catch (error) {
+ console.error('鑾峰彇璇勫淇℃伅澶辫触:', error)
+ }
+
+ // 鑾峰彇鎵�鏈夎瘎濮旇瘎鍒嗙姸鎬�
+ try {
+ const judgeRatingsResponse = await getJudgeRatingsForPlayer(route.params.id)
+ console.log('璇勫璇勫垎鐘舵�佸搷搴�:', judgeRatingsResponse)
+ if (judgeRatingsResponse && judgeRatingsResponse.judgeRatingsForPlayer) {
+ judgeRatings.value = judgeRatingsResponse.judgeRatingsForPlayer
+ }
+ } catch (error) {
+ console.error('鑾峰彇璇勫璇勫垎鐘舵�佸け璐�:', error)
+ }
+
+ // 鑾峰彇褰撳墠璇勫鐨勮瘎鍒�
+ try {
+ const currentRatingResponse = await getCurrentJudgeRating(route.params.id)
+ console.log('褰撳墠璇勫璇勫垎鍝嶅簲:', currentRatingResponse)
+ if (currentRatingResponse && currentRatingResponse.currentJudgeRating) {
+ currentJudgeRating.value = currentRatingResponse.currentJudgeRating
+ }
+ } catch (error) {
+ console.error('鑾峰彇褰撳墠璇勫璇勫垎澶辫触:', error)
+ }
+
+ // 鑾峰彇骞冲潎鍒�
+ try {
+ const averageScoreResponse = await getAverageScoreForPlayer(route.params.id)
+ console.log('骞冲潎鍒嗗搷搴�:', averageScoreResponse)
+ if (averageScoreResponse && averageScoreResponse.averageScoreForPlayer !== undefined) {
+ averageScore.value = averageScoreResponse.averageScoreForPlayer
+ }
+ } catch (error) {
+ console.error('鑾峰彇骞冲潎鍒嗗け璐�:', error)
+ }
} catch (error) {
- console.error('鍔犺浇鎶ュ悕璇︽儏澶辫触:', error)
- ElMessage.error('鍔犺浇鎶ュ悕璇︽儏澶辫触')
+ console.error('鍔犺浇璇︽儏澶辫触:', error)
+ ElMessage.error('鍔犺浇璇︽儏澶辫触')
} finally {
loading.value = false
}
@@ -78,13 +170,15 @@
try {
console.log('璇勫垎鎻愪氦:', ratingData)
- // 鏋勯�犳彁浜ゆ暟鎹�
+ // 鏋勯�犳彁浜ゆ暟鎹� - 灏� scores 瀵硅薄杞崲涓� ratings 鏁扮粍
+ const ratings = Object.entries(ratingData.scores || {}).map(([itemId, score]) => ({
+ itemId: parseInt(itemId),
+ score: score
+ }))
+
const input = {
activityPlayerId: detail.value.id,
- ratings: ratingData.ratings.map(item => ({
- itemId: item.itemId,
- score: item.score
- })),
+ ratings: ratings,
comment: ratingData.comment || ''
}
@@ -93,6 +187,9 @@
if (result.saveActivityPlayerRating) {
ElMessage.success('璇勫垎鎻愪氦鎴愬姛')
+
+ // 閲嶆柊鍔犺浇鏁版嵁浠ユ洿鏂拌瘎鍒嗙姸鎬�
+ await loadDetail()
} else {
ElMessage.error('璇勫垎鎻愪氦澶辫触')
}
--
Gitblit v1.8.0