From abdd431b1fcb4646c662986c30648199e618688b Mon Sep 17 00:00:00 2001 From: JSR Date: Fri, 20 Mar 2026 18:53:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E7=BD=91=E6=A0=BC=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E5=AF=B9=E9=BD=90=E4=B8=BB=E9=A1=B5=E6=AD=A3=E6=96=B9?= =?UTF-8?q?=E5=BD=A2=E7=BD=91=E6=A0=BC=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BoardManager.tsx | 274 ++++++++++++++++++++++---------- 1 file changed, 188 insertions(+), 86 deletions(-) diff --git a/src/components/BoardManager.tsx b/src/components/BoardManager.tsx index f505822..9bdc732 100644 --- a/src/components/BoardManager.tsx +++ b/src/components/BoardManager.tsx @@ -667,7 +667,7 @@ ORDER BY reward_points DESC, score DESC`, display: "grid", gridTemplateColumns: list.viewMode === "grid" - ? "repeat(auto-fill, minmax(180px, 1fr))" + ? "repeat(auto-fill, minmax(102px, 1fr))" : list.viewMode === "list" ? "1fr" : "repeat(auto-fill, minmax(220px, 1fr))", @@ -678,111 +678,213 @@ ORDER BY reward_points DESC, score DESC`, const avatarColor = getAvatarColor(item.name) const avatarText = getAvatarText(item.name) const rankBadge = index === 0 ? "🥇" : index === 1 ? "🥈" : index === 2 ? "🥉" : null + const gridPrimaryValue = + item.score !== undefined + ? item.score + : item.rewardPoints !== undefined + ? item.rewardPoints + : item.weekChange !== undefined + ? item.weekChange + : item.weekDeducted !== undefined + ? -item.weekDeducted + : item.answeredCount + + const gridPrimaryLabel = + item.score !== undefined + ? t("board.metrics.totalScore") + : item.rewardPoints !== undefined + ? t("board.metrics.rewardPoints") + : item.weekChange !== undefined + ? t("board.metrics.weekChange") + : item.weekDeducted !== undefined + ? t("board.metrics.weekDeducted") + : item.answeredCount !== undefined + ? t("board.metrics.todayAnswered") + : null + return ( - - {rankBadge && ( -
- {rankBadge} -
- )} -
-
- {avatarText} -
-
+ {rankBadge && (
- {item.name} + {rankBadge}
+ )} + {list.viewMode === "grid" ? (
- {item.score !== undefined && ( - = 0 ? "success" : "error"} style={{ margin: 0 }}> - {t("board.metrics.totalScore")}: {item.score > 0 ? `+${item.score}` : item.score} - - )} - {item.rewardPoints !== undefined && ( - - {t("board.metrics.rewardPoints")}: {item.rewardPoints} - - )} - {item.weekChange !== undefined && ( - = 0 ? "success" : "error"} style={{ margin: 0 }}> - {t("board.metrics.weekChange")}: {item.weekChange > 0 ? `+${item.weekChange}` : item.weekChange} - - )} - {item.weekDeducted !== undefined && ( - - {t("board.metrics.weekDeducted")}: {item.weekDeducted} - - )} - {item.answeredCount !== undefined && ( - - {t("board.metrics.todayAnswered")}: {item.answeredCount} - - )} +
1 ? "14px" : "18px", + boxShadow: `0 4px 10px ${avatarColor}40`, + flexShrink: 0, + }} + > + {avatarText} +
+
+
+ {item.name} +
+ {gridPrimaryValue !== undefined && gridPrimaryLabel && ( + = 0 ? "success" : "error"} + style={{ fontWeight: "bold", marginInlineEnd: 0 }} + > + {gridPrimaryLabel}:{gridPrimaryValue > 0 ? `+${gridPrimaryValue}` : gridPrimaryValue} + + )} +
-
-
-
+ ) : ( +
+
+ {avatarText} +
+
+
+ {item.name} +
+
+ {item.score !== undefined && ( + = 0 ? "success" : "error"} style={{ margin: 0 }}> + {t("board.metrics.totalScore")}: {item.score > 0 ? `+${item.score}` : item.score} + + )} + {item.rewardPoints !== undefined && ( + + {t("board.metrics.rewardPoints")}: {item.rewardPoints} + + )} + {item.weekChange !== undefined && ( + = 0 ? "success" : "error"} style={{ margin: 0 }}> + {t("board.metrics.weekChange")}: {item.weekChange > 0 ? `+${item.weekChange}` : item.weekChange} + + )} + {item.weekDeducted !== undefined && ( + + {t("board.metrics.weekDeducted")}: {item.weekDeducted} + + )} + {item.answeredCount !== undefined && ( + + {t("board.metrics.todayAnswered")}: {item.answeredCount} + + )} +
+
+
+ )} + + ) })}