mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-12-15 20:26:36 +08:00
175 lines
5.6 KiB
TypeScript
175 lines
5.6 KiB
TypeScript
|
|
import { RouteRecordRaw } from 'vue-router';
|
|||
|
|
import Layout from '@/views/layout/index.vue'
|
|||
|
|
import RouterParent from '@/views/layout/routerView/parent.vue';
|
|||
|
|
|
|||
|
|
// 定义动态路由
|
|||
|
|
export const dynamicRoutes = [
|
|||
|
|
{
|
|||
|
|
path: '/',
|
|||
|
|
name: '/',
|
|||
|
|
component: Layout,
|
|||
|
|
redirect: '/home',
|
|||
|
|
meta: {
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
},
|
|||
|
|
children: [
|
|||
|
|
{
|
|||
|
|
path: '/home',
|
|||
|
|
name: 'home',
|
|||
|
|
component: () => import('@/views/home/index.vue'),
|
|||
|
|
meta: {
|
|||
|
|
title: '首页',
|
|||
|
|
// iframe链接
|
|||
|
|
link: '',
|
|||
|
|
// 是否在菜单栏显示,默认显示
|
|||
|
|
isHide: false,
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
// tag标签是否不可删除
|
|||
|
|
isAffix: true,
|
|||
|
|
// 是否为iframe
|
|||
|
|
isIframe: false,
|
|||
|
|
icon: 'el-icon-s-home',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/sys',
|
|||
|
|
name: 'Resource',
|
|||
|
|
redirect: '/sys/resources',
|
|||
|
|
meta: {
|
|||
|
|
title: '系统管理',
|
|||
|
|
// 资源code,用于校验用户是否拥有该资源权限
|
|||
|
|
code: 'sys',
|
|||
|
|
// isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-monitor',
|
|||
|
|
},
|
|||
|
|
children: [
|
|||
|
|
{
|
|||
|
|
path: 'sys/resources',
|
|||
|
|
name: 'ResourceList',
|
|||
|
|
component: () => import('@/views/system/resource'),
|
|||
|
|
meta: {
|
|||
|
|
title: '资源管理',
|
|||
|
|
code: 'resource:list',
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-menu',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: 'sys/roles',
|
|||
|
|
name: 'RoleList',
|
|||
|
|
component: () => import('@/views/system/role'),
|
|||
|
|
meta: {
|
|||
|
|
title: '角色管理',
|
|||
|
|
code: 'role:list',
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-menu',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: 'sys/accounts',
|
|||
|
|
name: 'ResourceList',
|
|||
|
|
component: () => import('@/views/system/account'),
|
|||
|
|
meta: {
|
|||
|
|
title: '账号管理',
|
|||
|
|
code: 'account:list',
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-menu',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/machine',
|
|||
|
|
name: 'Machine',
|
|||
|
|
redirect: '/machine/list',
|
|||
|
|
meta: {
|
|||
|
|
title: '机器管理',
|
|||
|
|
// 资源code,用于校验用户是否拥有该资源权限
|
|||
|
|
code: 'machine',
|
|||
|
|
// isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-monitor',
|
|||
|
|
},
|
|||
|
|
children: [
|
|||
|
|
{
|
|||
|
|
path: '/list',
|
|||
|
|
name: 'MachineList',
|
|||
|
|
component: () => import('@/views/ops/machine'),
|
|||
|
|
meta: {
|
|||
|
|
title: '机器列表',
|
|||
|
|
code: 'machine:list',
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-menu',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/personal',
|
|||
|
|
name: 'personal',
|
|||
|
|
component: () => import('@/views/personal/index.vue'),
|
|||
|
|
meta: {
|
|||
|
|
title: '个人中心',
|
|||
|
|
isKeepAlive: true,
|
|||
|
|
icon: 'el-icon-user',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/iframes',
|
|||
|
|
name: 'layoutIfameView',
|
|||
|
|
component: RouterParent,
|
|||
|
|
meta: {
|
|||
|
|
title: 'iframe',
|
|||
|
|
link: 'https://gitee.com/lyt-top/vue-next-admin',
|
|||
|
|
isIframe: true,
|
|||
|
|
icon: 'el-icon-menu',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
},
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 定义静态路由
|
|||
|
|
export const staticRoutes: Array<RouteRecordRaw> = [
|
|||
|
|
{
|
|||
|
|
path: '/login',
|
|||
|
|
name: 'login',
|
|||
|
|
component: () => import('@/views/login/index.vue'),
|
|||
|
|
meta: {
|
|||
|
|
title: '登陆',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/404',
|
|||
|
|
name: 'notFound',
|
|||
|
|
component: () => import('@/views/error/404.vue'),
|
|||
|
|
meta: {
|
|||
|
|
title: '找不到此页面',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/401',
|
|||
|
|
name: 'noPower',
|
|||
|
|
component: () => import('@/views/error/401.vue'),
|
|||
|
|
meta: {
|
|||
|
|
title: '没有权限',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
path: '/machine/terminal',
|
|||
|
|
name: 'machineTerminal',
|
|||
|
|
component: () => import('@/views/ops/machine/SshTerminalPage.vue'),
|
|||
|
|
meta: {
|
|||
|
|
// 将路径 'xxx?name=名字' 里的name字段值替换到title里
|
|||
|
|
title: '终端 | {name}',
|
|||
|
|
// 是否根据query对标题名进行参数替换,即最终显示为‘终端_机器名’
|
|||
|
|
titleRename: true,
|
|||
|
|
icon: 'iconfont icon-caidan',
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 定义404界面
|
|||
|
|
export const pathMatch = {
|
|||
|
|
path: '/:path(.*)*',
|
|||
|
|
redirect: '/404',
|
|||
|
|
};
|