| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import { createRouter, createWebHashHistory } from 'vue-router'
- import type { RouteRecordRaw } from 'vue-router'
- import type { App } from 'vue'
- import { Layout } from '@/utils/routerHelper'
- import { useI18n } from '@/hooks/web/useI18n'
- const { t } = useI18n()
- export const constantRouterMap: AppRouteRecordRaw[] = [
- {
- path: '/',
- component: Layout,
- redirect: '/version/version',
- name: 'Root',
- meta: {
- hidden: true
- }
- },
- {
- path: '/redirect',
- component: Layout,
- name: 'Redirect',
- children: [
- {
- path: '/redirect/:path(.*)',
- name: 'Redirect',
- component: () => import('@/views/Redirect/Redirect.vue'),
- meta: {}
- }
- ],
- meta: {
- hidden: true,
- noTagsView: true
- }
- },
- {
- path: '/login',
- component: () => import('@/views/Login/Login.vue'),
- name: 'Login',
- meta: {
- hidden: true,
- title: t('router.login'),
- noTagsView: true
- }
- },
- {
- path: '/404',
- component: () => import('@/views/Error/404.vue'),
- name: 'NoFind',
- meta: {
- hidden: true,
- title: '404',
- noTagsView: true
- }
- }
- ]
- export const asyncRouterMap: AppRouteRecordRaw[] = [
- {
- path: '/version',
- name: 'Version',
- component: Layout,
- redirect: '/version/version/version_server',
- meta: {
- title: t('router.version'),
- icon: 'vi-cib:telegram-plane',
- alwaysShow: true
- },
- children: [
- {
- path: 'version',
- name: 'VersionRoot',
- component: Layout, // 🔥 这里变成父级
- redirect: '/version/version/version_server',
- meta: {
- title: t('router.version_list'),
- alwaysShow: true
- },
- children: [
- {
- path: 'version_server',
- name: 'VersionServer',
- component: () => import('@/views/Version/VersionServer.vue'),
- meta: {
- title: t('router.version_server'),
- noCache: true
- }
- } /*,
- {
- path: 'version_client',
- name: 'VersionClient',
- component: () => import('@/views/Version/VersionClient.vue'),
- meta: {
- title: t('router.version_client'),
- noCache: true
- }
- }*/
- ]
- },
- {
- path: 'test',
- component: () => import('@/views/Version/Test.vue'),
- name: 'VersionTest',
- meta: {
- title: t('router.version_test'),
- noCache: true
- }
- }
- ]
- },
- {
- path: '/channel',
- name: 'Channel',
- component: Layout,
- redirect: '/channel/manage',
- meta: {
- title: t('router.channel'),
- icon: 'ep:share',
- alwaysShow: true
- },
- children: [
- {
- path: 'manage',
- name: 'ChannelManage',
- component: () => import('@/views/Channel/ChannelManage.vue'),
- meta: {
- title: t('router.channel_manage'),
- noCache: true
- }
- }
- ]
- }
- ]
- const router = createRouter({
- history: createWebHashHistory(),
- strict: true,
- routes: constantRouterMap as RouteRecordRaw[],
- scrollBehavior: () => ({ left: 0, top: 0 })
- })
- export const resetRouter = (): void => {
- const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root']
- router.getRoutes().forEach((route) => {
- const { name } = route
- if (name && !resetWhiteNameList.includes(name as string)) {
- router.hasRoute(name) && router.removeRoute(name)
- }
- })
- }
- export const setupRouter = (app: App<Element>) => {
- app.use(router)
- }
- export default router
|