import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router"; import { checkVersion } from "@/services/version"; import NProgress from "nprogress"; import "nprogress/nprogress.css"; import { generateRoutes } from "@/utils/generateRoutes"; import { useUserInfo } from "@/composables/useUserInfo"; import request from "@/utils/request"; const routes = generateRoutes(); const router = createRouter({ history: createWebHistory(), routes, }); NProgress.configure({ showSpinner: false }); const { getUserInfo } = useUserInfo(); router.beforeEach(async (to, from, next) => { NProgress.start(); document.title = (to.meta.title as string) || "Vue App"; // 检查版本更新 // if (process.env.NODE_ENV === "production") { // try { // let result = await checkVersion(); // console.log(result); // const { version } = await checkVersion(); // console.log(version); // if (version) { // const storedVersion = sessionStorage.getItem("app_version"); // if (version !== storedVersion) { // sessionStorage.setItem("app_version", version); // if (to.path !== "/login") { // window.location.reload(); // } // } // } // } catch (error) { // console.error("Version check failed:", error); // } // } const token = sessionStorage.getItem("token"); // 登录页面判断 if (to.path === "/login") { if (token) { next("/"); return; } } else { if (!token && to.path !== "/register") { next("/login"); return; } } next(); // 获取用户信息 if (token) { await getUserInfo(); } if (process.env.NODE_ENV === "production") { request.get('/business/businessConfig/queryConfigByCode?code=appVersion').then(res => { if (res.code == 200) { if (res?.result?.appVersion !== sessionStorage.getItem('appVersion')) { sessionStorage.setItem('appVersion', res?.result?.appVersion) if(to.path !== '/login') { window.location.reload() } } } }) } }); router.afterEach(() => { NProgress.done(); }); export default router;