update
Deploy / deploy (push) Canceled after 0s

This commit is contained in:
xuyue committed 2026-09-27 19:36:28 +08:00
1 parent 23844ae301
commit d25b5dbe6d
268 files changed
+3684 -8861

No files matched your search

+10 -41
View File
@@ -1,11 +1,7 @@
<script setup lang="ts">
import { errorMessage } from "utils/api"
import { NButton, NTag } from "naive-ui"
import {
CLASS_NAME_MAX_DIGITS,
CLASS_NAME_MIN_DIGITS,
CLASS_NAME_RE,
} from "utils/constants"
import { CLASS_NAME_MAX_DIGITS, CLASS_NAME_MIN_DIGITS, CLASS_NAME_RE } from "utils/constants"
import { parseTime } from "utils/functions"
import type { OrphanTestCase, Server, WebsiteConfig } from "utils/types"
import { useConfigStore } from "shared/store/config"
@@ -41,11 +37,7 @@ const testcaseColumns: DataTableColumn<OrphanTestCase>[] = [
title: "选项",
key: "delete",
render: (row) =>
h(
NButton,
{ size: "small", onClick: () => deleteTestcase(row.id) },
() => "删除",
),
h(NButton, { size: "small", onClick: () => deleteTestcase(row.id) }, () => "删除"),
},
]
@@ -111,9 +103,7 @@ const serverColumns: DataTableColumn<Server>[] = [
const testcases = ref<OrphanTestCase[]>([])
const token = ref("")
const servers = ref<Server[]>([])
const abnormalServers = computed(() =>
servers.value.filter((item) => item.status === "abnormal"),
)
const abnormalServers = computed(() => servers.value.filter((item) => item.status === "abnormal"))
const websiteConfig = reactive<WebsiteConfig>({
websiteBaseUrl: "",
@@ -152,9 +142,7 @@ function renderClassTag(tag: string | { label: string }, index: number) {
opacity: dragFrom.value === index ? 0.4 : 1,
},
onClose: () => {
websiteConfig.classList = websiteConfig.classList.filter(
(_, i) => i !== index,
)
websiteConfig.classList = websiteConfig.classList.filter((_, i) => i !== index)
},
onDragstart: (e: DragEvent) => {
dragFrom.value = index
@@ -248,9 +236,7 @@ async function delJudgeServer(hostname: string) {
}
async function deleteAbnormalServers() {
const dels = abnormalServers.value.map((item) =>
deleteJudgeServer(item.hostname),
)
const dels = abnormalServers.value.map((item) => deleteJudgeServer(item.hostname))
await Promise.all(dels)
message.success("删除成功")
getJudgeServerData()
@@ -268,9 +254,7 @@ onMounted(() => {
<template #header>
<n-flex align="center">
网站设置
<n-button type="primary" size="small" @click="saveWebsiteConfig">
保存
</n-button>
<n-button type="primary" size="small" @click="saveWebsiteConfig"> 保存 </n-button>
</n-flex>
</template>
<n-form inline label-placement="left">
@@ -287,10 +271,7 @@ onMounted(() => {
<n-form label-placement="left">
<n-form-item label="班级列表">
<n-flex vertical size="small">
<n-dynamic-tags
v-model:value="websiteConfig.classList"
:render-tag="renderClassTag"
/>
<n-dynamic-tags v-model:value="websiteConfig.classList" :render-tag="renderClassTag" />
<n-text depth="3" style="font-size: 12px">
填 {{ CLASS_NAME_MIN_DIGITS }}~{{ CLASS_NAME_MAX_DIGITS }}
位数字,如 251、2510,要和用户名里 ks 后面那段一致;
@@ -331,28 +312,16 @@ onMounted(() => {
<div class="box">
接口凭证 <n-tag size="small">{{ token }}</n-tag>
</div>
<n-data-table
:single-line="false"
striped
:columns="serverColumns"
:data="servers"
/>
<n-data-table :single-line="false" striped :columns="serverColumns" :data="servers" />
</n-card>
<n-card class="box" v-if="testcases.length">
<template #header>
<n-flex align="center">
无效的测试用例
<n-button size="small" type="warning" @click="() => deleteTestcase()">
全部删除
</n-button>
<n-button size="small" type="warning" @click="() => deleteTestcase()"> 全部删除 </n-button>
</n-flex>
</template>
<n-data-table
striped
class="table"
:columns="testcaseColumns"
:data="testcases"
/>
<n-data-table striped class="table" :columns="testcaseColumns" :data="testcases" />
</n-card>
</template>
+3 -12
View File
@@ -160,14 +160,10 @@ watch(showModal, (v) => {
<n-gradient-text type="info"> 总用户数:{{ userCount }} </n-gradient-text>
</h2>
<h2>
<n-gradient-text type="error">
今日提交:{{ submissionCount }}
</n-gradient-text>
<n-gradient-text type="error"> 今日提交:{{ submissionCount }} </n-gradient-text>
</h2>
<h2>
<n-gradient-text type="warning">
近期比赛:{{ contestCount }}
</n-gradient-text>
<n-gradient-text type="warning"> 近期比赛:{{ contestCount }} </n-gradient-text>
</h2>
<h2>
<!-- 判题机数量后端一直在下发,这里以前没显示 —— 判题机全掉线的时候,
@@ -199,12 +195,7 @@ watch(showModal, (v) => {
/>
</n-flex>
<n-data-table v-if="data.length" striped :data="data" :columns="columns" />
<n-modal
preset="card"
title="猜猜看幸运儿是谁?"
v-model:show="showModal"
style="width: 400px"
>
<n-modal preset="card" title="猜猜看幸运儿是谁?" v-model:show="showModal" style="width: 400px">
<n-flex vertical justify="center" align="center">
<n-h1 :key="pulseKey" class="lucky pulse">{{ luckyGuy }}</n-h1>
<n-button block :disabled="isRolling" @click="getRandom">