fix
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-08-06 08:44:35 -06:00
parent d7b57074d3
commit 34aff29048
3 changed files with 12 additions and 30 deletions

View File

@@ -14,5 +14,7 @@ export function toProblemListItem(result: AdminProblem) {
has_ast_rules: result.has_ast_rules,
allow_flowchart: result.allow_flowchart,
show_flowchart: result.show_flowchart,
// 比赛题目列表接口不返回这个字段
top_reaction: result.top_reaction ?? null,
}
}

View File

@@ -1,7 +1,7 @@
<template>
<n-alert v-if="!userStore.isAuthed" type="error" title="请先登录" />
<div v-else>
<n-flex class="reactions">
<n-flex>
<n-tooltip
v-for="item in REACTIONS"
:key="item.key"
@@ -12,7 +12,7 @@
<n-button
:type="mine === item.key ? 'primary' : 'tertiary'"
:secondary="mine === item.key"
:disabled="!solved || locked || submitting"
:disabled="!solved || locked || !!submitting"
:loading="submitting === item.key"
@click="pick(item.key)"
>
@@ -20,15 +20,15 @@
<Icon :icon="item.icon" :width="20" />
</template>
{{ item.label }}
<span v-if="counts" class="count">{{ counts[item.key] }}</span>
<span v-if="counts">{{ counts[item.key] }}</span>
</n-button>
</template>
完成本题后可以评价
</n-tooltip>
</n-flex>
<div v-if="solved" class="hint">
<n-text v-if="solved">
{{ locked ? "已评价不能修改" : "选一个点了直接提交不能修改" }}
</div>
</n-text>
</div>
</template>
@@ -83,27 +83,3 @@ onMounted(() => {
if (userStore.isAuthed) load()
})
</script>
<style scoped>
/* 七个按钮一行放不下就换行,不做横向滚动免得按钮被藏起来 */
.reactions {
gap: 8px;
}
/* 锁定后选中的那颗仍要看得清,不然自己评过什么都糊成一片 */
.reactions :deep(.n-button.n-button--disabled) {
opacity: 0.6;
}
.reactions :deep(.n-button--primary-type.n-button--disabled) {
opacity: 1;
}
.count {
margin-left: 6px;
opacity: 0.7;
font-variant-numeric: tabular-nums;
}
.hint {
margin-top: 12px;
font-size: 13px;
opacity: 0.6;
}
</style>

View File

@@ -177,7 +177,11 @@ export interface Problem {
sql_display?: SQLDisplay | null
}
export type AdminProblem = Problem & AlterProblem
export type AdminProblem = Problem &
AlterProblem & {
// 后台题目列表接口附带的最高票评价,比赛题目列表不返回
top_reaction?: { type: ReactionKey; count: number } | null
}
interface AlterProblem {
test_case_id: string