update
Some checks failed
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled

This commit is contained in:
2026-06-29 07:52:17 -06:00
parent 1d285c8694
commit a4bd4fcd13
12 changed files with 29 additions and 29 deletions

View File

@@ -871,7 +871,7 @@ const radarChartOptions = {
class="stat-avg-ac" class="stat-avg-ac"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:chart" width="20" /> <Icon icon="streamline-ultimate-color:analytics-pie-2" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>
@@ -883,7 +883,7 @@ const radarChartOptions = {
class="stat-median-ac" class="stat-median-ac"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:target" width="20" /> <Icon icon="streamline-ultimate-color:cursor-target-1" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>
@@ -895,7 +895,7 @@ const radarChartOptions = {
class="stat-total-submission" class="stat-total-submission"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:paper" width="20" /> <Icon icon="streamline-ultimate-color:common-file-text" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>

View File

@@ -55,7 +55,7 @@ const passwordFormVisible = computed(
</n-tag> </n-tag>
<Icon <Icon
v-if="contestStore.isPrivate" v-if="contestStore.isPrivate"
icon="streamline-emojis:locked-with-key" icon="streamline-ultimate-color:shield-lock"
:height="30" :height="30"
></Icon> ></Icon>
<h2 class="contestTitle">{{ contestStore.contest.title }}</h2> <h2 class="contestTitle">{{ contestStore.contest.title }}</h2>

View File

@@ -10,7 +10,7 @@ const router = useRouter()
const contestStore = useContestStore() const contestStore = useContestStore()
const problemsColumns: DataTableColumn<ProblemFiltered>[] = [ const problemsColumns: DataTableColumn<ProblemFiltered>[] = [
{ {
title: renderTableTitle("状态", "streamline-emojis:musical-note"), title: renderTableTitle("状态", "streamline-ultimate-color:music-note-1"),
key: "status", key: "status",
width: 100, width: 100,
render: (row) => h(ProblemStatus, { status: row.status }), render: (row) => h(ProblemStatus, { status: row.status }),

View File

@@ -75,7 +75,7 @@ const columns = ref<DataTableColumn<ContestRank>[]>([
{ {
title: renderTableTitle( title: renderTableTitle(
"正确数/总提交", "正确数/总提交",
"streamline-emojis:artist-palette", "streamline-ultimate-color:color-palette",
), ),
key: "submission", key: "submission",
width: 140, width: 140,

View File

@@ -259,7 +259,7 @@ function type(status: ProblemStatus) {
</n-flex> </n-flex>
<p class="title" :style="style"> <p class="title" :style="style">
<n-flex align="center"> <n-flex align="center">
<Icon icon="streamline-emojis:scroll"></Icon> <Icon icon="streamline-ultimate-color:checklist"></Icon>
描述 描述
</n-flex> </n-flex>
</p> </p>
@@ -271,7 +271,7 @@ function type(status: ProblemStatus) {
<p class="title" :style="style"> <p class="title" :style="style">
<n-flex align="center"> <n-flex align="center">
<Icon icon="streamline-emojis:e-mail-1"></Icon> <Icon icon="streamline-ultimate-color:envelope-back-front"></Icon>
输入 输入
</n-flex> </n-flex>
</p> </p>
@@ -283,7 +283,7 @@ function type(status: ProblemStatus) {
<p class="title" :style="style"> <p class="title" :style="style">
<n-flex align="center"> <n-flex align="center">
<Icon icon="streamline-emojis:postbox"></Icon> <Icon icon="streamline-ultimate-color:mailbox-post"></Icon>
输出 输出
</n-flex> </n-flex>
</p> </p>
@@ -311,7 +311,7 @@ function type(status: ProblemStatus) {
<div v-if="astRulesForDisplay.length > 0"> <div v-if="astRulesForDisplay.length > 0">
<p class="title" :style="style"> <p class="title" :style="style">
<n-flex align="center"> <n-flex align="center">
<Icon icon="streamline-emojis:ballot-box-with-check"></Icon> <Icon icon="streamline-ultimate-color:check-button"></Icon>
要求 要求
</n-flex> </n-flex>
</p> </p>
@@ -382,7 +382,7 @@ function type(status: ProblemStatus) {
<div v-if="problem.source"> <div v-if="problem.source">
<p class="title" :style="style"> <p class="title" :style="style">
<n-flex align="center"> <n-flex align="center">
<Icon icon="streamline-emojis:open-book"></Icon> <Icon icon="streamline-ultimate-color:book-open-bookmark"></Icon>
来源 来源
</n-flex> </n-flex>
</p> </p>
@@ -398,7 +398,7 @@ function type(status: ProblemStatus) {
<n-divider /> <n-divider />
<p class="title" :style="style"> <p class="title" :style="style">
<n-flex align="center"> <n-flex align="center">
<Icon icon="streamline-emojis:thumbs-up-1"></Icon> <Icon icon="streamline-ultimate-color:like"></Icon>
相似题目推荐 相似题目推荐
</n-flex> </n-flex>
</p> </p>

View File

@@ -49,7 +49,7 @@ const data = computed(() => {
const numbers = computed(() => { const numbers = computed(() => {
return [ return [
{ {
icon: "streamline-emojis:scroll", icon: "streamline-ultimate-color:checklist",
title: problem.value?.submission_number ?? 0, title: problem.value?.submission_number ?? 0,
content: "总提交", content: "总提交",
int: true, int: true,

View File

@@ -79,7 +79,7 @@ const columns: DataTableColumn<Submission>[] = [
{ {
title: renderTableTitle( title: renderTableTitle(
"语言", "语言",
"streamline-emojis:globe-showing-europe-africa", "streamline-ultimate-color:earth-pin-2",
), ),
key: "language", key: "language",
width: 100, width: 100,

View File

@@ -160,12 +160,12 @@ const baseColumns: DataTableColumn<ProblemFiltered>[] = [
render: (row) => h(ProblemStatus, { status: row.status }), render: (row) => h(ProblemStatus, { status: row.status }),
}, },
{ {
title: renderTableTitle("编号", "streamline-emojis:game-dice"), title: renderTableTitle("编号", "streamline-ultimate-color:board-game-dice-1"),
key: "_id", key: "_id",
width: 100, width: 100,
}, },
{ {
title: renderTableTitle("题目", "streamline-emojis:watermelon-2"), title: renderTableTitle("题目", "streamline-ultimate-color:fruit-watermelon"),
key: "title", key: "title",
minWidth: 200, minWidth: 200,
render: (row) => h(ProblemListTitle, { problem: row }), render: (row) => h(ProblemListTitle, { problem: row }),
@@ -178,7 +178,7 @@ const baseColumns: DataTableColumn<ProblemFiltered>[] = [
h(NTag, { type: getTagColor(row.difficulty) }, () => row.difficulty), h(NTag, { type: getTagColor(row.difficulty) }, () => row.difficulty),
}, },
{ {
title: renderTableTitle("标签", "streamline-emojis:paperclip"), title: renderTableTitle("标签", "streamline-ultimate-color:attachment"),
key: "tags", key: "tags",
width: 260, width: 260,
render: (row) => render: (row) =>
@@ -190,7 +190,7 @@ const baseColumns: DataTableColumn<ProblemFiltered>[] = [
width: 130, width: 130,
}, },
{ {
title: renderTableTitle("提交数", "streamline-emojis:writing-hand-2"), title: renderTableTitle("提交数", "streamline-ultimate-color:paper-write"),
key: "submission", key: "submission",
align: "center", align: "center",
width: 100, width: 100,

View File

@@ -221,13 +221,13 @@ const columns: DataTableColumn<Rank>[] = [
align: "center", align: "center",
}, },
{ {
title: renderTableTitle("提交数", "streamline-emojis:rocket"), title: renderTableTitle("提交数", "streamline-ultimate-color:space-rocket-earth"),
key: "submission_number", key: "submission_number",
width: 120, width: 120,
align: "center", align: "center",
}, },
{ {
title: renderTableTitle("正确率", "streamline-emojis:wrapped-gift-1"), title: renderTableTitle("正确率", "streamline-ultimate-color:gift-box-1"),
key: "rate", key: "rate",
width: 120, width: 120,
align: "center", align: "center",
@@ -606,7 +606,7 @@ watch(
class="stat-avg-ac" class="stat-avg-ac"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:chart" width="20" /> <Icon icon="streamline-ultimate-color:analytics-pie-2" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>
@@ -618,7 +618,7 @@ watch(
class="stat-median-ac" class="stat-median-ac"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:target" width="20" /> <Icon icon="streamline-ultimate-color:cursor-target-1" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>
@@ -630,7 +630,7 @@ watch(
class="stat-total-submission" class="stat-total-submission"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:paper" width="20" /> <Icon icon="streamline-ultimate-color:common-file-text" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>

View File

@@ -269,7 +269,7 @@ const columns = computed(() => {
{ {
title: renderTableTitle( title: renderTableTitle(
"语言", "语言",
"streamline-emojis:globe-showing-europe-africa", "streamline-ultimate-color:earth-pin-2",
), ),
key: "language", key: "language",
minWidth: 120, minWidth: 120,
@@ -347,7 +347,7 @@ const flowchartColumns = computed(() => {
), ),
}, },
{ {
title: renderTableTitle("评分", "streamline-emojis:bar-chart"), title: renderTableTitle("评分", "streamline-ultimate-color:analytics-bars-3d"),
key: "ai_score", key: "ai_score",
render: (row) => h(Grade, { score: row.ai_score, grade: row.ai_grade }), render: (row) => h(Grade, { score: row.ai_score, grade: row.ai_grade }),
}, },

View File

@@ -10,7 +10,7 @@ defineProps<{ contest: Contest }>()
<Icon <Icon
v-if="contest.contest_type === ContestType.private" v-if="contest.contest_type === ContestType.private"
:height="24" :height="24"
icon="streamline-emojis:locked-with-key" icon="streamline-ultimate-color:shield-lock"
></Icon> ></Icon>
<span>{{ contest.title }}</span> <span>{{ contest.title }}</span>
</n-flex> </n-flex>

View File

@@ -179,7 +179,7 @@ const options: Array<DropdownOption | DropdownDividerOption> = [
{ {
label: "我的主页", label: "我的主页",
key: "home", key: "home",
icon: renderIcon("streamline-emojis:newspaper"), icon: renderIcon("streamline-ultimate-color:newspaper-fold"),
props: { props: {
onClick: () => router.push("/user"), onClick: () => router.push("/user"),
}, },
@@ -196,7 +196,7 @@ const options: Array<DropdownOption | DropdownDividerOption> = [
{ {
label: "我的提交", label: "我的提交",
key: "status", key: "status",
icon: renderIcon("streamline-emojis:bar-chart"), icon: renderIcon("streamline-ultimate-color:analytics-bars-3d"),
props: { props: {
onClick: () => router.push("/submission?myself=1"), onClick: () => router.push("/submission?myself=1"),
}, },
@@ -221,7 +221,7 @@ const options: Array<DropdownOption | DropdownDividerOption> = [
{ {
label: "退出", label: "退出",
key: "logout", key: "logout",
icon: renderIcon("streamline-emojis:hot-beverage-2"), icon: renderIcon("streamline-ultimate-color:coffee-cold"),
props: { onClick: handleLogout }, props: { onClick: handleLogout },
}, },
] ]