import { createRouter, createWebHistory } from "vue-router"; const MainLayout = () => import("@/views/MainLayout.vue"); const Dashboard = () => import("@/modules/01_dashboard/views/Dashboard.vue"); const TestPage = () => import("@/modules/01_dashboard/views/test.vue"); const loginMain = () => import("@/views/login.vue"); import ModuleTransfer from "@/modules/02_transfer/router"; import ModuleRetire from "@/modules/03_retire/router"; import ModuleCheckin from "@/modules/04_checkin/router"; import ModuleLeave from "@/modules/05_leave/router"; import ModuEvaluate from "@/modules/06_evaluate/router"; import ModuAppealComplain from "@/modules/07_appealComplain/router"; import ModuleSupport from "@/modules/00_support/router"; import ModuleKPI from "@/modules/08_KPI/router"; import ModuleScholarship from "@/modules/09_scholarship/router"; import ModuleRegistry from "@/modules/10_registry/router"; import ModuleProbation from "@/modules/11_probation/router"; import ModuleOrganization from "@/modules/12_organization/router"; import ModulePortfolio from "@/modules/13_portfolio/router"; // TODO: ใช้หรือไม่? import keycloak, { kcLogout } from "@/plugins/keycloak"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "home", component: MainLayout, children: [ { path: "/", name: "dashboard", component: Dashboard, meta: { Auth: true, Key: [7], }, }, { path: "/test", name: "test", component: TestPage, meta: { Auth: true, Key: [7], }, }, ...ModuleTransfer, ...ModuleRetire, ...ModuleCheckin, ...ModuleLeave, ...ModuEvaluate, ...ModuAppealComplain, ...ModuleSupport, ...ModuleKPI, ...ModuleScholarship, ...ModuleRegistry, ...ModuleProbation, ...ModuleOrganization, ...ModulePortfolio, ], }, { path: "/login", name: "loginMain", component: loginMain, meta: { Auth: false, Key: [7], }, }, ], }); // authen with keycloak client router.beforeEach((to, from, next) => { if (keycloak.authenticated === undefined && to.meta.Auth) { kcLogout(); } else { next(); } next(); }); export default router;