mirror of
https://github.com/SECTL/SecScore.git
synced 2026-07-19 19:04:23 +08:00
fix: 看板加扣分模式兼容delta字段并优化主指标展示
This commit is contained in:
@@ -308,9 +308,9 @@ const toStudentCards = (rows: any[]): BoardStudentCardData[] => {
|
|||||||
if (!name) return
|
if (!name) return
|
||||||
|
|
||||||
const data = row as Record<string, unknown>
|
const data = row as Record<string, unknown>
|
||||||
const hasAddScoreField =
|
let hasAddScoreField =
|
||||||
"add_score" in data || "addScore" in data || "plus_score" in data || "plusScore" in data
|
"add_score" in data || "addScore" in data || "plus_score" in data || "plusScore" in data
|
||||||
const hasDeductScoreField =
|
let hasDeductScoreField =
|
||||||
"deduct_score" in data ||
|
"deduct_score" in data ||
|
||||||
"deductScore" in data ||
|
"deductScore" in data ||
|
||||||
"minus_score" in data ||
|
"minus_score" in data ||
|
||||||
@@ -319,23 +319,37 @@ const toStudentCards = (rows: any[]): BoardStudentCardData[] => {
|
|||||||
const addScoreRaw = data.add_score ?? data.addScore ?? data.plus_score ?? data.plusScore
|
const addScoreRaw = data.add_score ?? data.addScore ?? data.plus_score ?? data.plusScore
|
||||||
const deductScoreRaw =
|
const deductScoreRaw =
|
||||||
data.deduct_score ?? data.deductScore ?? data.minus_score ?? data.minusScore
|
data.deduct_score ?? data.deductScore ?? data.minus_score ?? data.minusScore
|
||||||
|
const delta = parseNumber(data.delta ?? data.score_delta ?? data.scoreDelta)
|
||||||
|
|
||||||
|
let addScore =
|
||||||
|
addScoreRaw === null || addScoreRaw === undefined
|
||||||
|
? hasAddScoreField
|
||||||
|
? 0
|
||||||
|
: undefined
|
||||||
|
: parseNumber(addScoreRaw)
|
||||||
|
let deductScore =
|
||||||
|
deductScoreRaw === null || deductScoreRaw === undefined
|
||||||
|
? hasDeductScoreField
|
||||||
|
? 0
|
||||||
|
: undefined
|
||||||
|
: parseNumber(deductScoreRaw)
|
||||||
|
|
||||||
|
if (!hasAddScoreField && !hasDeductScoreField && delta !== undefined) {
|
||||||
|
if (delta >= 0) {
|
||||||
|
hasAddScoreField = true
|
||||||
|
addScore = delta
|
||||||
|
} else {
|
||||||
|
hasDeductScoreField = true
|
||||||
|
deductScore = Math.abs(delta)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cards.push({
|
cards.push({
|
||||||
key: `${name}-${index}`,
|
key: `${name}-${index}`,
|
||||||
name,
|
name,
|
||||||
score: parseNumber(data.score),
|
score: parseNumber(data.score),
|
||||||
addScore:
|
addScore,
|
||||||
addScoreRaw === null || addScoreRaw === undefined
|
deductScore,
|
||||||
? hasAddScoreField
|
|
||||||
? 0
|
|
||||||
: undefined
|
|
||||||
: parseNumber(addScoreRaw),
|
|
||||||
deductScore:
|
|
||||||
deductScoreRaw === null || deductScoreRaw === undefined
|
|
||||||
? hasDeductScoreField
|
|
||||||
? 0
|
|
||||||
: undefined
|
|
||||||
: parseNumber(deductScoreRaw),
|
|
||||||
hasAddScoreField,
|
hasAddScoreField,
|
||||||
hasDeductScoreField,
|
hasDeductScoreField,
|
||||||
rewardPoints: parseNumber(data.reward_points ?? data.rewardPoints),
|
rewardPoints: parseNumber(data.reward_points ?? data.rewardPoints),
|
||||||
@@ -850,10 +864,14 @@ ORDER BY reward_points DESC, score DESC`,
|
|||||||
const useSplitScore = list.scoreDisplayMode === "split"
|
const useSplitScore = list.scoreDisplayMode === "split"
|
||||||
const hasSplitScore = Boolean(item.hasAddScoreField || item.hasDeductScoreField)
|
const hasSplitScore = Boolean(item.hasAddScoreField || item.hasDeductScoreField)
|
||||||
const primaryMetric = useSplitScore
|
const primaryMetric = useSplitScore
|
||||||
? item.addScore !== undefined
|
? item.addScore !== undefined && item.addScore !== 0
|
||||||
? { label: t("board.metrics.addScore"), value: item.addScore }
|
? { label: t("board.metrics.addScore"), value: item.addScore }
|
||||||
: item.deductScore !== undefined
|
: item.deductScore !== undefined && item.deductScore !== 0
|
||||||
? { label: t("board.metrics.deductScore"), value: item.deductScore }
|
? { label: t("board.metrics.deductScore"), value: item.deductScore }
|
||||||
|
: item.addScore !== undefined
|
||||||
|
? { label: t("board.metrics.addScore"), value: item.addScore }
|
||||||
|
: item.deductScore !== undefined
|
||||||
|
? { label: t("board.metrics.deductScore"), value: item.deductScore }
|
||||||
: item.score !== undefined
|
: item.score !== undefined
|
||||||
? { label: t("board.metrics.totalScore"), value: item.score }
|
? { label: t("board.metrics.totalScore"), value: item.score }
|
||||||
: item.rewardPoints !== undefined
|
: item.rewardPoints !== undefined
|
||||||
|
|||||||
Reference in New Issue
Block a user