diff --git a/src/pages/score-list/score-list.vue b/src/pages/score-list/score-list.vue
index 0d16e16..5f7c29c 100644
--- a/src/pages/score-list/score-list.vue
+++ b/src/pages/score-list/score-list.vue
@@ -23,9 +23,9 @@
刷新
-
-
-
+
+
+
-
+
@@ -193,7 +193,6 @@ export default {
},
async onShow() {
- // 从评分详情页返回时刷新数据
if (!this.isFirstLoad) {
if (config.debug) {
console.log('页面显示,刷新数据')
@@ -232,34 +231,23 @@ export default {
},
formatScore(score) {
- // 处理 null、undefined、-1 等无效值
if (score === null || score === undefined || score === -1 || score === '-1') {
return '--'
}
- // 如果是字符串类型的数字,直接返回
if (typeof score === 'string' && !isNaN(parseFloat(score))) {
return score
}
- // 如果是数字类型,保留3位小数
if (typeof score === 'number') {
return score.toFixed(3)
}
return score
},
- /**
- * 计算选手总分
- * 规则:所有裁判评分完成后,去掉一个最高分和一个最低分,取剩余分数的平均值
- * @param {Object} player - 选手对象
- * @returns {Number|null} 计算后的总分,如果未完成评分返回 null
- */
calculateTotalScore(player) {
- // 检查是否有裁判评分数据
if (!player.judgeScores || !Array.isArray(player.judgeScores)) {
return null
}
- // 检查是否所有裁判都已评分
const totalJudges = player.totalJudges || 0
const scoredCount = player.judgeScores.length
@@ -267,34 +255,22 @@ export default {
return null
}
- // 提取所有分数
const scores = player.judgeScores.map(j => parseFloat(j.score)).filter(s => !isNaN(s))
if (scores.length < 3) {
- // 少于3个评分无法去掉最高最低,直接取平均
if (scores.length === 0) return null
const sum = scores.reduce((a, b) => a + b, 0)
return sum / scores.length
}
- // 排序
scores.sort((a, b) => a - b)
-
- // 去掉最高分和最低分
const trimmedScores = scores.slice(1, -1)
-
- // 计算平均分
const sum = trimmedScores.reduce((a, b) => a + b, 0)
const average = sum / trimmedScores.length
return average
},
- /**
- * 检查选手是否所有裁判都已评分
- * @param {Object} player - 选手对象
- * @returns {Boolean}
- */
isAllJudgesScored(player) {
if (!player.judgeScores || !Array.isArray(player.judgeScores)) {
return false
@@ -303,11 +279,6 @@ export default {
return totalJudges > 0 && player.judgeScores.length >= totalJudges
},
- /**
- * 获取选手的显示总分
- * @param {Object} player - 选手对象
- * @returns {String} 格式化后的总分或 '--'
- */
getDisplayTotalScore(player) {
const score = this.calculateTotalScore(player)
if (score === null) {
@@ -316,11 +287,6 @@ export default {
return score.toFixed(3)
},
- /**
- * 获取裁判评分进度
- * @param {Object} player - 选手对象
- * @returns {String} 进度字符串,如 "3/6"
- */
getJudgeProgress(player) {
const scored = player.judgeScores ? player.judgeScores.length : 0
const total = player.totalJudges || '?'
@@ -521,28 +487,30 @@ export default {
color: #4A90D9;
}
-.project-row {
- display: flex;
- flex-direction: column;
+/* ==================== 项目筛选 - 横向滑动 ==================== */
+.project-scroll {
+ width: 100%;
+ white-space: nowrap;
}
-.project-grid {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
+.project-row {
+ display: inline-flex;
+ flex-direction: row;
gap: 16rpx;
+ padding: 4rpx 0;
}
.project-chip {
- padding: 20rpx 12rpx;
+ display: inline-block;
+ padding: 20rpx 32rpx;
border: 2rpx solid #1B7C5E;
border-radius: 8rpx;
font-size: 26rpx;
color: #1B7C5E;
background-color: #FFFFFF;
text-align: center;
- overflow: hidden;
- text-overflow: ellipsis;
white-space: nowrap;
+ flex-shrink: 0;
}
.project-chip.active {