From 90ce1ab0f5d0d358c83109fe46a25b78adc70ec1 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Thu, 15 Oct 2026 11:55:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=89=8B=E6=9C=BA):=20=E7=82=B9=E5=BC=80?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E3=80=81=E7=8F=AD=E7=BA=A7=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E3=80=81=E8=87=AA=E5=AD=A6=E7=9B=AE=E5=BD=95=E8=BF=99=E7=B1=BB?= =?UTF-8?q?=E6=95=B4=E5=B1=8F=E7=9A=84=E4=B8=9C=E8=A5=BF=EF=BC=8C=E6=8C=89?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=9B=B4=E6=8E=A5=E9=80=80=E5=87=BA=E4=BA=86?= =?UTF-8?q?=E6=95=B4=E9=A1=B5=EF=BC=8C=E7=8E=B0=E5=9C=A8=E6=98=AF=E5=85=88?= =?UTF-8?q?=E5=85=B3=E6=8E=89=E5=AE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 提交列表:手机上点开一条,地址带上 ?id=,返回键就是关详情回到列表;刷新、转发链接 也还停在这一条;上一条 / 下一条、翻页、滚动位置都在;详情里点「只看他」先关详情再筛选 - 看板讲错误、排名班级详情、自学目录、题目页底部抽屉:手机上按返回只关它(useBackClose); 在自学目录里选一课,返回是回到上一课,不多一站 - 分页列表(提交、题目、比赛、后台几个列表)用浏览器后退翻回前一页时会多压一条历史, 前进的记录被冲掉、返回要多按一次 —— 电脑上也是,一起修了 Co-Authored-By: Claude Opus 5.5 --- .../oj/classroom/components/ExplainModal.vue | 3 + apps/web/src/oj/learn/index.vue | 3 + .../oj/problem/components/ProblemDrawer.vue | 3 + .../oj/rank/components/ClassDetailDrawer.vue | 3 + apps/web/src/oj/submission/list.vue | 97 +++++++++++++++++-- apps/web/src/shared/composables/backClose.ts | 65 +++++++++++++ apps/web/src/shared/composables/pagination.ts | 41 +++++++- 7 files changed, 200 insertions(+), 15 deletions(-) create mode 100644 apps/web/src/shared/composables/backClose.ts diff --git a/apps/web/src/oj/classroom/components/ExplainModal.vue b/apps/web/src/oj/classroom/components/ExplainModal.vue index e3aaf74..9abdd31 100644 --- a/apps/web/src/oj/classroom/components/ExplainModal.vue +++ b/apps/web/src/oj/classroom/components/ExplainModal.vue @@ -14,6 +14,7 @@ import { onKeyStroke } from "@vueuse/core" import { useThemeVars } from "naive-ui" import SubmissionView from "oj/submission/components/SubmissionView.vue" import UserName from "shared/components/UserName.vue" +import { useBackClose } from "shared/composables/backClose" import { useBreakpoints } from "shared/composables/breakpoints" import type { ClassBoardProblem } from "utils/types" import ProblemBrief from "./ProblemBrief.vue" @@ -38,6 +39,8 @@ const index = defineModel("index", { required: true }) const theme = useThemeVars() const { isMobile } = useBreakpoints() +// 手机上是整屏的:按返回键关掉它回到看板,不是退出看板 +useBackClose(show, isMobile) /** * 颜色走内联的 CSS 变量,不用