mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17:38:19 +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",
|
"name": "hydrooj",
|
||||||
"version": "2.29.15",
|
"version": "2.29.16",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "dist/loader.js",
|
"main": "dist/loader.js",
|
||||||
"typings": "dist/loader.d.ts",
|
"typings": "dist/loader.d.ts",
|
||||||
|
|||||||
@@ -294,6 +294,7 @@ export interface ScoreboardNode {
|
|||||||
value: string;
|
value: string;
|
||||||
raw?: any;
|
raw?: any;
|
||||||
score?: number;
|
score?: number;
|
||||||
|
style?: string;
|
||||||
}
|
}
|
||||||
export type ScoreboardRow = ScoreboardNode[] & { raw?: any };
|
export type ScoreboardRow = ScoreboardNode[] & { raw?: any };
|
||||||
|
|
||||||
|
|||||||
@@ -179,6 +179,17 @@ const oi: ContestRule = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const psdict = {};
|
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
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
if (isDone(tdoc)) {
|
if (isDone(tdoc)) {
|
||||||
const psdocs = await Promise.all(
|
const psdocs = await Promise.all(
|
||||||
@@ -227,11 +238,15 @@ const oi: ContestRule = {
|
|||||||
],
|
],
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
row.push({
|
const node: ScoreboardNode = {
|
||||||
type: 'record',
|
type: 'record',
|
||||||
value: tsddict[pid]?.score ?? '-',
|
value: tsddict[pid]?.score ?? '-',
|
||||||
raw: tsddict[pid]?.rid || null,
|
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);
|
rows.push(row);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.12.8",
|
"version": "4.12.9",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "hydro.js",
|
"main": "hydro.js",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
{%- for row in rows -%}{% if loop.index0 > 0 %}
|
{%- for row in rows -%}{% if loop.index0 > 0 %}
|
||||||
<tr>
|
<tr>
|
||||||
{%- for column in row -%}
|
{%- 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' %}
|
{% if column.type == 'user' %}
|
||||||
{{ user.render_inline(udict[column.raw], badge=false) }}
|
{{ user.render_inline(udict[column.raw], badge=false) }}
|
||||||
{% elif column.type == 'record' and column.raw %}
|
{% elif column.type == 'record' and column.raw %}
|
||||||
|
|||||||
Reference in new issue
Block a user