From 99d3d99128a06d0273b08cbd265f4ff80f8ea520 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Fri, 9 Oct 2026 13:08:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E9=A2=98=E7=9B=AE=E5=88=97=E8=A1=A8):=20?= =?UTF-8?q?=E3=80=8C=E5=85=A8=E9=83=A8=E7=B1=BB=E5=9E=8B=E3=80=8D=E9=87=8C?= =?UTF-8?q?=200=20=E9=81=93=E7=9A=84=E7=B1=BB=E5=9E=8B=E8=BF=98=E8=83=BD?= =?UTF-8?q?=E7=82=B9=EF=BC=8C=E7=82=B9=E4=BA=86=E5=8F=AA=E5=BE=97=E5=88=B0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E7=A9=BA=E5=88=97=E8=A1=A8=E2=80=94=E2=80=94?= =?UTF-8?q?0=20=E9=81=93=E7=9A=84=E7=BD=AE=E7=81=B0=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 已经选中的那一项除外:选了「画流程图」再切到没有这类题的知识点,它仍显示为选中,好让人看出列表为什么空。 Co-Authored-By: Claude Opus 5.5 --- apps/web/src/oj/problem/list.vue | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/web/src/oj/problem/list.vue b/apps/web/src/oj/problem/list.vue index 92bca02..3c40c54 100644 --- a/apps/web/src/oj/problem/list.vue +++ b/apps/web/src/oj/problem/list.vue @@ -245,8 +245,18 @@ watch([showTypeMenu, () => showMobileFilters.value, countFilters], () => { if (showTypeMenu.value || showMobileFilters.value) refreshTypeCounts() }) +/** + * 当前条件下一道都没有的类型置灰:点了只会得到一个空列表。 + * 已经选中的那一项除外 —— 选了「画流程图」再切到一个没有这类题的知识点,它变成 0 道, + * 置灰的话看着像没选中,人也不知道列表为什么空了 + */ +function typeEmpty(kind: ProblemTypeFilter) { + return typeCounts.value[kind] === 0 && query.type !== kind +} + const mobileTypeOptions = computed(() => TYPES.map((kind) => ({ + disabled: typeEmpty(kind), label: typeCounts.value[kind] === undefined ? PROBLEM_TYPE_LABEL[kind] @@ -413,6 +423,8 @@ const gridColumns = computed(() => v-for="kind in TYPES" :key="kind" :class="{ on: query.type === kind }" + :disabled="typeEmpty(kind)" + :title="typeEmpty(kind) ? '这里没有这类题' : undefined" @click="pickType(kind)" > @@ -867,10 +879,16 @@ const gridColumns = computed(() => color: var(--menu-text); } -.type-menu button:hover { +.type-menu button:hover:not(:disabled) { background: var(--menu-hover); } +/* 没有这类题:整项淡下去(标签自己的颜色也一起),不能点 */ +.type-menu button:disabled { + cursor: not-allowed; + opacity: 0.45; +} + .type-menu button.on { background: var(--menu-on); }