Initial certificate system

This commit is contained in:
nelso
2026-06-06 19:32:24 +08:00
commit ce4ed6213b
105 changed files with 9133 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import { createRouter, createWebHistory } from "vue-router";
import AdminCertificates from "../views/AdminCertificates.vue";
import AdminHome from "../views/AdminHome.vue";
import AdminImports from "../views/AdminImports.vue";
import AdminLogin from "../views/AdminLogin.vue";
import AdminLogs from "../views/AdminLogs.vue";
import AdminLearners from "../views/AdminLearners.vue";
import AdminProjects from "../views/AdminProjects.vue";
import AdminShell from "../views/AdminShell.vue";
import CertificateQuery from "../views/CertificateQuery.vue";
import CertificateView from "../views/CertificateView.vue";
import VerifyView from "../views/VerifyView.vue";
export const router = createRouter({
history: createWebHistory(),
routes: [
{ path: "/", redirect: "/query" },
{ path: "/admin/login", component: AdminLogin },
{
path: "/admin",
component: AdminShell,
children: [
{ path: "", component: AdminHome },
{ path: "projects", component: AdminProjects },
{ path: "learners", component: AdminLearners },
{ path: "certificates", component: AdminCertificates },
{ path: "imports", component: AdminImports },
{ path: "logs", component: AdminLogs }
]
},
{ path: "/query", component: CertificateQuery },
{ path: "/cert/:token", component: CertificateView },
{ path: "/verify/:token", component: VerifyView }
]
});
router.beforeEach((to) => {
if (to.path.startsWith("/admin") && to.path !== "/admin/login" && !localStorage.getItem("admin_token")) {
return "/admin/login";
}
});