mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 17:36:08 +08:00
core: contest: 显示首A者
This commit is contained in:
1 parent
74cd467bfa
commit
f6f714756b
5 files changed
+21
-5
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "2.29.15",
|
||||
"version": "2.29.16",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "dist/loader.js",
|
||||
"typings": "dist/loader.d.ts",
|
||||
|
||||
@@ -294,6 +294,7 @@ export interface ScoreboardNode {
|
||||
value: string;
|
||||
raw?: any;
|
||||
score?: number;
|
||||
style?: string;
|
||||
}
|
||||
export type ScoreboardRow = ScoreboardNode[] & { raw?: any };
|
||||
|
||||
|
||||
@@ -179,6 +179,17 @@ const oi: ContestRule = {
|
||||
}
|
||||
}
|
||||
const psdict = {};
|
||||
const first = {};
|
||||
for (const pid of tdoc.pids) first[pid] = new ObjectID().generationTime;
|
||||
for (const [, tsdoc] of rankedTsdocs) {
|
||||
const tsddict = {};
|
||||
for (const item of tsdoc.journal || []) tsddict[item.pid] = item;
|
||||
for (const pid of tdoc.pids) {
|
||||
if (tsddict[pid]?.accept && tsddict[pid].rid.generationTime < first[pid]) {
|
||||
first[pid] = tsddict[pid].rid.generationTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||
if (isDone(tdoc)) {
|
||||
const psdocs = await Promise.all(
|
||||
@@ -227,11 +238,15 @@ const oi: ContestRule = {
|
||||
],
|
||||
});
|
||||
} else {
|
||||
row.push({
|
||||
const node: ScoreboardNode = {
|
||||
type: 'record',
|
||||
value: tsddict[pid]?.score ?? '-',
|
||||
raw: tsddict[pid]?.rid || null,
|
||||
});
|
||||
};
|
||||
if (tsddict[pid]?.accept && tsddict[pid]?.rid.generationTime === first[pid]) {
|
||||
node.style = 'background-color: rgb(217, 240, 199);';
|
||||
}
|
||||
row.push(node);
|
||||
}
|
||||
}
|
||||
rows.push(row);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hydrooj/ui-default",
|
||||
"version": "4.12.8",
|
||||
"version": "4.12.9",
|
||||
"author": "undefined <i@undefined.moe>",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "hydro.js",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
{%- for row in rows -%}{% if loop.index0 > 0 %}
|
||||
<tr>
|
||||
{%- for column in row -%}
|
||||
<td class="col--{{ rows[0][loop.index0]['type'] }}">
|
||||
<td class="col--{{ rows[0][loop.index0]['type'] }}"{% if column.style %} style="{{ column.style }}"{% endif %}>
|
||||
{% if column.type == 'user' %}
|
||||
{{ user.render_inline(udict[column.raw], badge=false) }}
|
||||
{% elif column.type == 'record' and column.raw %}
|
||||
|
||||
Reference in new issue
Block a user