import {
  createRouter,
  createWebHistory,
  createWebHashHistory,
} from "vue-router";
import { constantRoute, errorRoute } from "./routes";
import { useUserStore } from "@/stores/modules/userStore";

const router = createRouter({
  history: createWebHashHistory(),
  routes: [...constantRoute, ...errorRoute],
  strict: false,
  scrollBehavior: () => ({ left: 0, top: 0 }), //滚动行为
});

/**
 * 前置路由守卫
 */
router.beforeEach((to: any, from: any, next: any) => {
  //动态设置标题
  const title: string = "后台管理系统";
  document.title = to.meta.name ? `${to.meta.name} - ${title}` : title;
  //todo 鉴权操作...
  const userStore = useUserStore();
  if (userStore.token) {
    if (to.path === "/login") {
      next({ path: "/home" });
    } else {
      next();
    }
  } else {
    if (to.path === "/login") {
      next();
    } else {
      next({ path: "/login", query: { redirect: to.path } });
    }
  }
  // if (userStore.userInfo?.tokenValue) {
  //   if (to.path === "/login") {
  //     next({ path: "/home" });
  //   } else {
  //     next();
  //   }
  // } else {
  //   if (to.path === "/login") {
  //     next();
  //   } else {
  //     next({ path: "/login", query: { redirect: to.path } });
  //   }
  // }
  //放行
  return next();
});

/**
 * 路由跳转错误
 */
router.onError((error: any) => {
  console.warn("路由错误", error.message);
});

/**
 * 后置路由守卫
 * */
router.afterEach((to: any, from: any) => {
  //...
});

export default router;
