From 995dd98ddb44c0aafece58515dd20c3cd9ea74e5 Mon Sep 17 00:00:00 2001
From: yuetsh <517252939@qq.com>
Date: Tue, 13 Jun 2023 12:11:16 +0800
Subject: [PATCH] fix routes.
---
src/main.ts | 4 +-
src/routes.ts | 161 ++++++++++++++++++------------------
src/shared/layout/admin.vue | 17 ++--
3 files changed, 91 insertions(+), 91 deletions(-)
diff --git a/src/main.ts b/src/main.ts
index f906f63..07de5ce 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -4,14 +4,14 @@ import { createPinia } from "pinia"
import storage from "utils/storage"
import { STORAGE_KEY } from "utils/constants"
-import { routes } from "./routes"
+import { ojs, admins } from "./routes"
import App from "./App.vue"
import { toggleLogin } from "./shared/composables/modal"
const router = createRouter({
history: createWebHistory(),
- routes: [routes],
+ routes: [ojs, admins],
})
router.beforeEach((to, from, next) => {
diff --git a/src/routes.ts b/src/routes.ts
index 4dfa05f..e6cd87b 100644
--- a/src/routes.ts
+++ b/src/routes.ts
@@ -1,7 +1,7 @@
import { RouteRecordRaw } from "vue-router"
import { loadChart } from "./shared/composables/chart"
-export const routes: RouteRecordRaw = {
+export const ojs: RouteRecordRaw = {
path: "/",
component: () => import("~/shared/layout/default.vue"),
children: [
@@ -89,86 +89,87 @@ export const routes: RouteRecordRaw = {
component: () => import("learn/index.vue"),
name: "learn",
},
+ ],
+}
+
+export const admins: RouteRecordRaw = {
+ path: "/admin",
+ component: () => import("~/shared/layout/admin.vue"),
+ children: [
{
- path: "/admin",
- component: () => import("~/shared/layout/admin.vue"),
- children: [
- {
- path: "",
- name: "admin home",
- component: () => import("~/admin/setting/home.vue"),
- },
- {
- path: "config",
- name: "admin config",
- component: () => import("admin/setting/config.vue"),
- },
- {
- path: "announcement",
- name: "admin announcement",
- component: () => import("admin/setting/announcement.vue"),
- },
- {
- path: "user/list",
- name: "admin user list",
- component: () => import("admin/user/list.vue"),
- },
- {
- path: "user/generate",
- name: "admin user generate",
- component: () => import("~/admin/user/generate.vue"),
- },
- {
- path: "problem/list",
- name: "admin problem list",
- component: () => import("admin/problem/list.vue"),
- },
- {
- path: "problem/create",
- name: "admin problem create",
- component: () => import("admin/problem/detail.vue"),
- },
- {
- path: "problem/edit/:problemID",
- name: "admin problem edit",
- component: () => import("admin/problem/detail.vue"),
- props: true,
- },
- {
- path: "contest/list",
- name: "admin contest list",
- component: () => import("admin/contest/list.vue"),
- },
- {
- path: "contest/create",
- name: "admin contest create",
- component: () => import("admin/contest/detail.vue"),
- },
- {
- path: "contest/edit/:contestID",
- name: "admin contest edit",
- component: () => import("admin/contest/detail.vue"),
- props: true,
- },
- {
- path: "contest/:contestID/problem/list",
- name: "admin contest problem list",
- component: () => import("admin/problem/list.vue"),
- props: true,
- },
- {
- path: "contest/:contestID/problem/create",
- name: "admin contest problem create",
- component: () => import("admin/problem/detail.vue"),
- props: true,
- },
- {
- path: "contest/:contestID/problem/edit/:problemID",
- name: "admin contest problem edit",
- component: () => import("admin/problem/detail.vue"),
- props: true,
- },
- ],
+ path: "",
+ name: "admin home",
+ component: () => import("~/admin/setting/home.vue"),
+ },
+ {
+ path: "config",
+ name: "admin config",
+ component: () => import("admin/setting/config.vue"),
+ },
+ {
+ path: "announcement",
+ name: "admin announcement",
+ component: () => import("admin/setting/announcement.vue"),
+ },
+ {
+ path: "user/list",
+ name: "admin user list",
+ component: () => import("admin/user/list.vue"),
+ },
+ {
+ path: "user/generate",
+ name: "admin user generate",
+ component: () => import("~/admin/user/generate.vue"),
+ },
+ {
+ path: "problem/list",
+ name: "admin problem list",
+ component: () => import("admin/problem/list.vue"),
+ },
+ {
+ path: "problem/create",
+ name: "admin problem create",
+ component: () => import("admin/problem/detail.vue"),
+ },
+ {
+ path: "problem/edit/:problemID",
+ name: "admin problem edit",
+ component: () => import("admin/problem/detail.vue"),
+ props: true,
+ },
+ {
+ path: "contest/list",
+ name: "admin contest list",
+ component: () => import("admin/contest/list.vue"),
+ },
+ {
+ path: "contest/create",
+ name: "admin contest create",
+ component: () => import("admin/contest/detail.vue"),
+ },
+ {
+ path: "contest/edit/:contestID",
+ name: "admin contest edit",
+ component: () => import("admin/contest/detail.vue"),
+ props: true,
+ },
+ {
+ path: "contest/:contestID/problem/list",
+ name: "admin contest problem list",
+ component: () => import("admin/problem/list.vue"),
+ props: true,
+ },
+ {
+ path: "contest/:contestID/problem/create",
+ name: "admin contest problem create",
+ component: () => import("admin/problem/detail.vue"),
+ props: true,
+ },
+ {
+ path: "contest/:contestID/problem/edit/:problemID",
+ name: "admin contest problem edit",
+ component: () => import("admin/problem/detail.vue"),
+ props: true,
},
],
}
diff --git a/src/shared/layout/admin.vue b/src/shared/layout/admin.vue
index 410a3c9..89e56a4 100644
--- a/src/shared/layout/admin.vue
+++ b/src/shared/layout/admin.vue
@@ -8,6 +8,10 @@ const route = useRoute()
const router = useRouter()
const userStore = useUserStore()
const options: MenuOption[] = [
+ {
+ label: () => h(RouterLink, { to: "/" }, { default: () => "返回 OJ" }),
+ key: "return to OJ",
+ },
{
label: () => h(RouterLink, { to: "/admin" }, { default: () => "首页" }),
key: "admin home",
@@ -101,19 +105,14 @@ onMounted(async () => {
-
-
+
+
-
+
-
+