|
@@ -89,15 +89,23 @@ const handleResult = async () => {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-// 处理“分”字
|
|
|
|
|
|
+// 处理“分”字和扣分项
|
|
const extractScores = (data) => {
|
|
const extractScores = (data) => {
|
|
- return Object.values(data).map((item) => {
|
|
|
|
- // 确保 score 是一个字符串,并且去除可能的 "分" 字
|
|
|
|
|
|
+ return Object.entries(data).map(([key, item]) => {
|
|
|
|
+ if (!item || item.score === undefined) return 0;
|
|
|
|
+
|
|
|
|
+ // 确保 score 是字符串并去掉“分”
|
|
let scoreStr = String(item.score).replace("分", "");
|
|
let scoreStr = String(item.score).replace("分", "");
|
|
|
|
+ let score = parseInt(scoreStr, 10);
|
|
|
|
+
|
|
|
|
+ if (isNaN(score)) return 0;
|
|
|
|
+
|
|
|
|
+ // 如果是 penalty_points 且分数为正,强制转成负数
|
|
|
|
+ if (key === "penalty_points" && score > 0) {
|
|
|
|
+ score = -score;
|
|
|
|
+ }
|
|
|
|
|
|
- // 将 score 转换为整数,如果转换失败则返回 0
|
|
|
|
- const score = parseInt(scoreStr, 10);
|
|
|
|
- return isNaN(score) ? 0 : score;
|
|
|
|
|
|
+ return score;
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
|