123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import { getUserInfo } from "@lsq/base";
- import { createRouter, createWebHashHistory } from "vue-router";
- const router = createRouter({
- history: createWebHashHistory(import.meta.env.BASE_URL),
- routes: [
- {
- path: "/",
- name: "home",
- component: () => import("@/views/Home/index.vue"),
- meta: {
- hideTopNavBgColor: true,
- },
- },
- {
- path: "/home",
- name: "home2",
- component: () => import("@/views/Home2/index.vue"),
- meta: {
- showLogo: true,
- topNavBgColor: "rgba(248, 246, 242, 0.2)",
- },
- },
- {
- path: "/bookshelf",
- name: "bookshelf",
- component: () => import("@/views/Bookshelf/index.vue"),
- meta: {
- showLogo: true,
- needLogin: true,
- },
- },
- {
- path: "/stack",
- name: "stack",
- component: () => import("@/views/Stack/index.vue"),
- meta: {
- showLogo: true,
- },
- },
- {
- path: "/detail/:id/:type",
- name: "detail",
- component: () => import("@/views/Detail/index.vue"),
- meta: {},
- },
- ],
- });
- router.beforeEach((to, from, next) => {
- const userInfo = getUserInfo();
- if (to.name !== "detail") {
- // 除了 detail 页面,其他页面不需要暗黑模式
- localStorage.removeItem("vueuse-color-scheme");
- document.documentElement.className = "";
- }
- if (to.meta.needLogin && !userInfo) {
- next({
- name: "home",
- });
- return;
- }
- next();
- });
- export default router;
|