| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import {createRouter, createWebHistory, RouteRecordRaw} from 'vue-router';
- import {
- HOME_NAME,
- HOME_PATH,
- LOGIN_NAME,
- LOGIN_PATH,
- MAIN_NAME,
- MAIN_PATH,
- MENU_NAME,
- MENU_PATH,
- REGISTER_NAME,
- REGISTER_PATH,
- ROLE_NAME,
- ROLE_PATH,
- USER_NAME,
- USER_PATH,
- } from './name';
- import Home from '@pages/home/index.vue';
- import Login from '@pages/login/index.vue';
- import {storeToRefs, useUserStore} from '@stores';
- const childrenRoures: RouteRecordRaw[] = [
- {
- path: MAIN_PATH,
- name: MAIN_NAME,
- component: () => import('@pages/main/index.vue'),
- },
- {
- path: MENU_PATH,
- name: MENU_NAME,
- component: () => import('@pages/menu'),
- },
- {
- path: ROLE_PATH,
- name: ROLE_NAME,
- component: () => import('@pages/role'),
- },
- {
- path: USER_PATH,
- name: USER_NAME,
- component: () => import('@pages/user'),
- },
- ];
- const routes: RouteRecordRaw[] = [
- {
- path: HOME_PATH,
- component: Home,
- name: HOME_NAME,
- redirect: MAIN_PATH,
- children: childrenRoures,
- },
- {path: LOGIN_PATH, component: Login, name: LOGIN_NAME},
- {
- path: REGISTER_PATH,
- name: REGISTER_NAME,
- component: () => import('@pages/register/index.vue'),
- },
- {path: '/:pathMatch(.*)*', name: 'NOT_FOUND_PATH', component: () => import('@pages/not-found/index.vue')},
- ];
- export const router = createRouter({
- history: createWebHistory(),
- routes,
- });
- router.beforeEach(function(to) {
- const {name} = to;
- if (name) {
- const userStore = useUserStore();
- const {user} = storeToRefs(userStore);
- if (!user.value.token) {
- // 判断是否登录
- const matchList = [LOGIN_NAME, REGISTER_NAME];
- if (!matchList.includes(name as symbol)) return LOGIN_PATH;
- }
- }
- });
- export * from './name';
|