import { createRouter, createWebHistory, createWebHashHistory, } from "vue-router"; let routes = [ { path: "/", // redirect: "/home", redirect: "/enforceHome", // redirect: "/login", name: "App", }, { path: "/:pathMatch(.*)*", name: "404", component: () => import("@/views/404"), }, ]; routes = $globalRouterModules(routes); // 加载模块路由 // vite base 保持 './',一份包可挂不同目录;这里只决定 Router 前缀 const getRouterBase = () => { const pathname = window.location.pathname; if (pathname === "/enforce" || pathname.startsWith("/enforce/")) { return "/enforce/"; } if (pathname === "/enterprise" || pathname.startsWith("/enterprise/")) { return "/enterprise/"; } return "/"; }; // 业务约定不可改:企业端 Hash(第三方),执法端 History(第三方) // 与上面 redirect 切换保持一致:/enforceHome=执法端,/home=企业端 const createAppHistory = () => { const base = getRouterBase(); const pathname = window.location.pathname; // 按 nginx 挂载路径区分 if (pathname === "/enterprise" || pathname.startsWith("/enterprise/")) { return createWebHashHistory(base); // 企业端 } if (pathname === "/enforce" || pathname.startsWith("/enforce/")) { return createWebHistory(base); // 执法端 } // 根路径部署:与当前 redirect 一致(现在是执法端) // 打企业端包时改 redirect 为 /home,并把下面改成 createWebHashHistory(base) return createWebHistory(base); }; const $globalRouter = createRouter({ // 企业端 // history: createWebHashHistory(), // 执法端 // history: createWebHistory(), history: createAppHistory(), routes, }); $globalExpandRouter($globalRouter, routes); // 添加路由扩展 $globalRouter.beforeEach((to, from, next) => { // let pattern3 = new RegExp("^[0-9]*$"); // if (null != to.query) { // for (let key in to.query) { // if (pattern3.test(to.query[key])) { // if (to.query[key].toString().lengeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeth > 9) { // console.log(to.query[key]) // to.query[key] = 0; // console.log(to.query[key]) // } // } else { // if (to.query[key].toString().length > 33) { // to.query[key] = ""; // } // } // } // } // // if (null != to.params) { // for (let key in to.params) { // if (pattern3.test(to.params[key])) { // if (to.params[key].toString().length > 9) { // to.params[key] = 0; // } // } else { // if (to.params[key].toString().length > 33) { // to.params[key] = ""; // } // } // } // } // if (to.path.includes('src')) { // // 可以重定向或者做其他处理 // next('/'); // 或者 next(from.path) 返回之前的路径 // } else { // next(); // 允许路由继续 // } next(); // 允许路由继续 }); export { $globalRouter };