From e128f94ec7a75681efdabf8ca83b476e9db805f4 Mon Sep 17 00:00:00 2001 From: htfc786 <2721672639@qq.com> Date: Thu, 10 Aug 2023 22:32:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8DlevelKey=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E6=97=B6=E6=98=BE=E7=A4=BAlevel1=E7=9A=84?= =?UTF-8?q?=E9=A2=98=E7=9B=AEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/levels/index.ts | 3 ++- src/levels/level.d.ts | 3 ++- src/levels/noLevel.ts | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/levels/noLevel.ts diff --git a/src/levels/index.ts b/src/levels/index.ts index 0f90168..c8c54c9 100644 --- a/src/levels/index.ts +++ b/src/levels/index.ts @@ -1,5 +1,6 @@ import mainLevels from "./mainLevels"; import customLevels from "./customLevels"; +import noLevel from "./noLevel"; /** * 全部关卡 @@ -14,7 +15,7 @@ export const getLevelByKey = (levelKey: string) => { return ( allLevels.find((level) => { return level.key === levelKey; - }) || allLevels[0] + }) || noLevel ); }; diff --git a/src/levels/level.d.ts b/src/levels/level.d.ts index 879f8bd..0bbccad 100644 --- a/src/levels/level.d.ts +++ b/src/levels/level.d.ts @@ -17,5 +17,6 @@ interface LevelType { // 答案 SQL answer: string; // 类型(主线或自定义) - type: "main" | "custom"; + // nolevel 无关卡404页面 + type: "main" | "custom" | "nolevel"; } diff --git a/src/levels/noLevel.ts b/src/levels/noLevel.ts new file mode 100644 index 0000000..b6d936a --- /dev/null +++ b/src/levels/noLevel.ts @@ -0,0 +1,11 @@ +export default { + key: "nolevel", + title: "404,没有找到当前关卡", + initSQL: "", + content: + "# 404,没有找到当前关卡\n抱歉,没有找到当前关卡,请您去`关卡`页面看看吧!", + defaultSQL: "", + answer: "", + hint: "无此关卡", + type: "nolevel", +} as LevelType; From c4afca9b5a393585b6aa56f639354afb645b8019 Mon Sep 17 00:00:00 2001 From: htfc786 <2721672639@qq.com> Date: Thu, 24 Aug 2023 21:46:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add=20404=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/configs/routes.ts | 5 +++++ src/levels/index.ts | 3 +-- src/levels/level.d.ts | 3 +-- src/levels/noLevel.ts | 11 ----------- src/pages/404Page.vue | 27 +++++++++++++++++++++++++++ src/pages/IndexPage.vue | 13 ++++++++++++- 6 files changed, 46 insertions(+), 16 deletions(-) delete mode 100644 src/levels/noLevel.ts create mode 100644 src/pages/404Page.vue diff --git a/src/configs/routes.ts b/src/configs/routes.ts index f6e04f5..cf5d56e 100644 --- a/src/configs/routes.ts +++ b/src/configs/routes.ts @@ -2,6 +2,7 @@ import { RouteRecordRaw } from "vue-router"; import IndexPage from "../pages/IndexPage.vue"; import LevelsPage from "../pages/LevelsPage.vue"; import PlaygroundPage from "../pages/PlaygroundPage.vue"; +import Page404 from "../pages/404Page.vue"; /** * 路由列表 @@ -26,4 +27,8 @@ export default [ path: "/playground", component: PlaygroundPage, }, + { + path: "/404", + component: Page404, + }, ] as RouteRecordRaw[]; diff --git a/src/levels/index.ts b/src/levels/index.ts index c8c54c9..e1f8af1 100644 --- a/src/levels/index.ts +++ b/src/levels/index.ts @@ -1,6 +1,5 @@ import mainLevels from "./mainLevels"; import customLevels from "./customLevels"; -import noLevel from "./noLevel"; /** * 全部关卡 @@ -15,7 +14,7 @@ export const getLevelByKey = (levelKey: string) => { return ( allLevels.find((level) => { return level.key === levelKey; - }) || noLevel + }) || null ); }; diff --git a/src/levels/level.d.ts b/src/levels/level.d.ts index 0bbccad..879f8bd 100644 --- a/src/levels/level.d.ts +++ b/src/levels/level.d.ts @@ -17,6 +17,5 @@ interface LevelType { // 答案 SQL answer: string; // 类型(主线或自定义) - // nolevel 无关卡404页面 - type: "main" | "custom" | "nolevel"; + type: "main" | "custom"; } diff --git a/src/levels/noLevel.ts b/src/levels/noLevel.ts deleted file mode 100644 index b6d936a..0000000 --- a/src/levels/noLevel.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default { - key: "nolevel", - title: "404,没有找到当前关卡", - initSQL: "", - content: - "# 404,没有找到当前关卡\n抱歉,没有找到当前关卡,请您去`关卡`页面看看吧!", - defaultSQL: "", - answer: "", - hint: "无此关卡", - type: "nolevel", -} as LevelType; diff --git a/src/pages/404Page.vue b/src/pages/404Page.vue new file mode 100644 index 0000000..dbc6776 --- /dev/null +++ b/src/pages/404Page.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue index f764614..e8eb385 100644 --- a/src/pages/IndexPage.vue +++ b/src/pages/IndexPage.vue @@ -54,15 +54,26 @@ import { QueryExecResult } from "sql.js"; import { allLevels, getLevelByKey } from "../levels"; import { checkResult } from "../core/result"; import CodeEditor from "../components/CodeEditor.vue"; +import { useRouter } from "vue-router"; interface IndexPageProps { levelKey?: string; } +const router = useRouter(); + const props = defineProps(); const level = computed(() => { if (props.levelKey) { - return getLevelByKey(props.levelKey); + const level = getLevelByKey(props.levelKey); + if (level) { + return level; + } + // 跳转到404页面 + router.push({ + path: "/404", + }); + return allLevels[0]; // 防止报错 } return allLevels[0]; });