style(格式化): 改成单引号、一行最长 160,全仓重新格式化
Deploy / deploy (push) Canceled after 0s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-26 13:52:24 +08:00
1 parent 530e1a3d5d
commit 195069450f
480 files changed
+15507 -24650

No files matched your search

@@ -1,12 +1,12 @@
<script setup lang="ts">
import { Icon } from "@iconify/vue"
import { useThemeVars } from "naive-ui"
import { useTone } from "shared/composables/tone"
import UserName from "shared/components/UserName.vue"
import { attemptTone, cachedSubmission } from "oj/statistics/attempts"
import { JUDGE_STATUS, LANGUAGE_FORMAT_VALUE } from "utils/constants"
import { parseTime } from "utils/functions"
import type { ClassBoardCell, ClassBoardProblem, Submission } from "utils/types"
import { Icon } from '@iconify/vue'
import { useThemeVars } from 'naive-ui'
import { useTone } from 'shared/composables/tone'
import UserName from 'shared/components/UserName.vue'
import { attemptTone, cachedSubmission } from 'oj/statistics/attempts'
import { JUDGE_STATUS, LANGUAGE_FORMAT_VALUE } from 'utils/constants'
import { parseTime } from 'utils/functions'
import type { ClassBoardCell, ClassBoardProblem, Submission } from 'utils/types'
/**
* 点开一个做对了的格子:他这道题今天交的每一次,一格一次、从早到晚,下面是停着的那一次的代码
@@ -28,30 +28,26 @@ defineEmits<{ close: [] }>()
const tone = useTone()
const theme = useThemeVars()
const picked = ref(
props.cell.acceptedTry
? Math.max(props.cell.acceptedTry - 2, 0)
: Math.max(props.cell.trail.length - 1, 0),
)
const picked = ref(props.cell.acceptedTry ? Math.max(props.cell.acceptedTry - 2, 0) : Math.max(props.cell.trail.length - 1, 0))
const item = computed(() => props.cell.trail[picked.value] ?? props.cell.trail.at(-1))
const code = reactive<Record<string, Submission | "loading" | "failed">>({})
const code = reactive<Record<string, Submission | 'loading' | 'failed'>>({})
watch(
() => item.value?.id,
async (id) => {
if (!id || (code[id] && code[id] !== "failed")) return
code[id] = "loading"
if (!id || (code[id] && code[id] !== 'failed')) return
code[id] = 'loading'
try {
code[id] = await cachedSubmission(id)
} catch {
code[id] = "failed"
code[id] = 'failed'
}
},
{ immediate: true },
)
const shown = computed(() => {
const value = item.value && code[item.value.id]
return typeof value === "object" ? value : null
return typeof value === 'object' ? value : null
})
const squares = computed(() =>
@@ -98,17 +94,9 @@ const squares = computed(() =>
<b :style="{ color: tone(attemptTone(item.result)).color }">
{{ JUDGE_STATUS[item.result]?.name }}
</b>
<span class="muted"
>{{ parseTime(item.createTime, "HH:mm") }} · 第 {{ picked + 1 }} 次</span
>
<span class="muted">{{ parseTime(item.createTime, 'HH:mm') }} · 第 {{ picked + 1 }} 次</span>
</div>
<n-code
v-if="shown"
class="code-body"
:code="shown.code"
:language="LANGUAGE_FORMAT_VALUE[shown.language]"
show-line-numbers
/>
<n-code v-if="shown" class="code-body" :code="shown.code" :language="LANGUAGE_FORMAT_VALUE[shown.language]" show-line-numbers />
<span v-else-if="code[item.id] === 'failed'" class="muted">代码没拉下来,点下面打开看</span>
<span v-else class="muted">代码加载中…</span>
</div>
@@ -177,14 +165,14 @@ const squares = computed(() =>
.square.on {
box-shadow:
0 0 0 2px v-bind("theme.cardColor"),
0 0 0 4px v-bind("theme.textColor1");
0 0 0 2px v-bind('theme.cardColor'),
0 0 0 4px v-bind('theme.textColor1');
}
.summary {
white-space: nowrap;
font-variant-numeric: tabular-nums;
color: v-bind("theme.textColor2");
color: v-bind('theme.textColor2');
}
.code {
@@ -193,7 +181,7 @@ const squares = computed(() =>
gap: 6px;
padding: 10px 12px;
border-radius: 6px;
background: v-bind("theme.actionColor");
background: v-bind('theme.actionColor');
}
.code-head {
@@ -214,7 +202,7 @@ const squares = computed(() =>
}
.links a {
color: v-bind("theme.primaryColor");
color: v-bind('theme.primaryColor');
text-decoration: none;
}
@@ -223,6 +211,6 @@ const squares = computed(() =>
}
.muted {
color: v-bind("theme.textColor3");
color: v-bind('theme.textColor3');
}
</style>