From 472ec693281b91e2252bc5d8922570e7e8098205 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Wed, 4 Nov 2026 21:52:58 +0800 Subject: [PATCH] =?UTF-8?q?style(=E9=A2=98=E7=9B=AE=E9=A1=B5):=20=E9=A1=B6?= =?UTF-8?q?=E4=B8=8A=E4=B8=89=E5=B1=82=E6=9D=A1=E5=90=88=E6=88=90=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E3=80=81=E8=AF=BE=E5=A0=82=E5=92=8C=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E6=94=B9=E6=88=90=E5=B7=A6=E8=BE=B9=E7=AB=96=E6=A0=8F=EF=BC=9B?= =?UTF-8?q?=E9=A2=98=E9=9D=A2=E5=B0=8F=E6=A0=87=E9=A2=98=E5=92=8C=E4=BE=8B?= =?UTF-8?q?=E5=AD=90=E9=87=8D=E6=96=B0=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 课堂、比赛在电脑上挪到左栏最左一条竖栏,只写题号(题名鼠标停上去看),顶上从 148px 降到 104px, 页签行和编辑器工具栏对齐成一根线;专题条去掉蓝底、改成 40px 细横条 - 工具栏按钮只剩三种分量:实心提交、浅绿运行例子、其余不带框;统计/点评/我的提交改成图标 + 字 - 题面:题号题名难度状态一行;小标题改成线条图标 + 绿字 + 细线(语法要求、提示用黄色); 去掉空段落、老师写的大标题降成粗体;输入输出上下排;来源缩成底部一行灰字;SQL 去掉图例 - 例子改成「输入 → 输出」:「无」写成「不用输入」、行首空格画成点、长句折行缩进两格写全, 运行例子后序号上标 ✓ / ✗ Co-Authored-By: Claude Opus 5.5 --- .../src/oj/problem/components/ContextBar.vue | 244 +++++++- .../oj/problem/components/EditorToolbar.vue | 33 +- .../oj/problem/components/ProblemContent.vue | 568 ++++++------------ .../src/oj/problem/components/SampleList.vue | 312 ++++++++++ .../src/oj/problem/components/SectionHead.vue | 104 ++++ .../oj/problem/components/SimilarProblems.vue | 15 +- .../oj/problem/components/SqlProblemData.vue | 21 - apps/web/src/oj/problem/detail.vue | 60 +- apps/web/src/oj/problem/utils/statement.ts | 14 + ...2026-09-28-problem-page-redesign-design.md | 58 +- 10 files changed, 973 insertions(+), 456 deletions(-) create mode 100644 apps/web/src/oj/problem/components/SampleList.vue create mode 100644 apps/web/src/oj/problem/components/SectionHead.vue create mode 100644 apps/web/src/oj/problem/utils/statement.ts diff --git a/apps/web/src/oj/problem/components/ContextBar.vue b/apps/web/src/oj/problem/components/ContextBar.vue index 2e9e6e4..a122996 100644 --- a/apps/web/src/oj/problem/components/ContextBar.vue +++ b/apps/web/src/oj/problem/components/ContextBar.vue @@ -1,4 +1,5 @@ diff --git a/apps/web/src/oj/problem/components/SampleList.vue b/apps/web/src/oj/problem/components/SampleList.vue new file mode 100644 index 0000000..80a08cc --- /dev/null +++ b/apps/web/src/oj/problem/components/SampleList.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/apps/web/src/oj/problem/components/SectionHead.vue b/apps/web/src/oj/problem/components/SectionHead.vue new file mode 100644 index 0000000..0b2bc83 --- /dev/null +++ b/apps/web/src/oj/problem/components/SectionHead.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/apps/web/src/oj/problem/components/SimilarProblems.vue b/apps/web/src/oj/problem/components/SimilarProblems.vue index 5cf4a79..9f37087 100644 --- a/apps/web/src/oj/problem/components/SimilarProblems.vue +++ b/apps/web/src/oj/problem/components/SimilarProblems.vue @@ -19,11 +19,12 @@ import { useTone } from 'shared/composables/tone' import { problemTypes } from '../utils/problemType' import ProblemStatus from './ProblemStatus.vue' import ProblemTypeTag from './ProblemTypeTag.vue' +import SectionHead from './SectionHead.vue' /** * 相似题推荐。题面末尾(做对了、或者错了 3 次以上)和结果页签(不在课堂里的题做对之后) * 两处用:原来只在题面最底下,学生交完不会再滚回去看。什么时候出现由调用方的 v-if 决定。 - * `place` 只管标题的样子:题面里和「提示」「来源」一样带绿竖条,结果页签里和「还能挑战」对齐。 + * `place` 只管标题的样子:题面里用题面的小节标题(SectionHead),结果页签里和「还能挑战」对齐。 * * 每行第二行写和这道题共同的标签:不点开就知道练的是什么。行的写法照题目列表 * (灰题号、淡底难度、做对人数、类型标签、做过没对的红「−」)。整行可点,题目名 @@ -67,7 +68,8 @@ function difficultyStyle(row: SimilarRow) { diff --git a/apps/web/src/oj/problem/detail.vue b/apps/web/src/oj/problem/detail.vue index 7ee7cd3..1edc2a4 100644 --- a/apps/web/src/oj/problem/detail.vue +++ b/apps/web/src/oj/problem/detail.vue @@ -1,4 +1,5 @@