This commit is contained in:
ygx
2026-03-07 20:11:25 +08:00
parent 8fab91c5c7
commit f7bbb5ee46
74 changed files with 6540 additions and 2636 deletions

736
src/router/menu-data.ts Normal file
View File

@@ -0,0 +1,736 @@
import { DEFAULT_LAYOUT } from './routes/base'
import type { AppRouteRecordRaw } from './routes/types'
// 本地菜单数据 - 接口未准备好时使用
export const localMenuData: AppRouteRecordRaw[] = [{
path: '/dashboard',
name: 'dashboard',
component: DEFAULT_LAYOUT,
meta: {
locale: '仪表盘',
requiresAuth: true,
icon: 'icon-dashboard',
order: 0,
},
children: [
{
path: 'workplace',
name: 'Workplace',
component: () => import('@/views/dashboard/workplace/index.vue'),
meta: {
locale: 'menu.dashboard.workplace',
requiresAuth: true,
roles: ['*'],
},
},
/** simple */
{
path: 'monitor',
name: 'Monitor',
component: () => import('@/views/dashboard/monitor/index.vue'),
meta: {
locale: 'menu.dashboard.monitor',
requiresAuth: true,
roles: ['admin'],
},
},
/** simple end */
],
},
{
path: '/overview',
name: 'Overview',
component: DEFAULT_LAYOUT,
meta: {
locale: '系统概况',
requiresAuth: true,
icon: 'icon-home',
order: 1,
hideChildrenInMenu: true,
},
children: [
{
path: '',
name: 'OverviewIndex',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '系统概况',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/visual',
name: 'VisualDashboard',
component: DEFAULT_LAYOUT,
meta: {
locale: '可视化大屏管理',
requiresAuth: true,
icon: 'icon-apps',
order: 2,
},
children: [
{
path: 'component',
name: 'VisualComponent',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '大屏管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'view-publish',
name: 'ViewPublish',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '已发布大屏列表',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/dc',
name: 'DataCenter',
component: DEFAULT_LAYOUT,
meta: {
locale: '服务器及PC管理',
requiresAuth: true,
icon: 'icon-storage',
order: 3,
},
children: [
{
path: 'pc',
name: 'OfficePC',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '办公PC管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'server',
name: 'ServerManagement',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '服务器管理',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/dc/cluster',
name: 'ClusterCollection',
component: DEFAULT_LAYOUT,
meta: {
locale: '集群采集控制中心',
requiresAuth: true,
icon: 'icon-settings',
order: 4,
},
children: [
{
path: 'database',
name: 'DatabaseCollection',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '数据库采集管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'middleware',
name: 'MiddlewareCollection',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '中间件采集管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'network',
name: 'NetworkDeviceCollection',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '网络设备采集管理',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/monitor',
name: 'Monitor',
component: DEFAULT_LAYOUT,
meta: {
locale: '综合监控',
requiresAuth: true,
icon: 'icon-desktop',
order: 5,
},
children: [
{
path: 'log',
name: 'LogMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '日志监控',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'virtualization',
name: 'VirtualizationMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '虚拟化监控',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'storage',
name: 'StorageMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '存储设备监控',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'network',
name: 'NetworkMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '网络设备监控',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'power',
name: 'PowerMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '电力/UPS/空调/温湿度',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'url',
name: 'URLMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: 'URL监控',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'guard',
name: 'GuardMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '消防/门禁/漏水/有害气体',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'security',
name: 'SecurityMonitor',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '安全设备监控',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/netarch',
name: 'NetworkArchitecture',
component: DEFAULT_LAYOUT,
meta: {
locale: '网络架构管理',
requiresAuth: true,
icon: 'icon-nav',
order: 6,
},
children: [
{
path: 'auto-topo',
name: 'AutoTopo',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '自动感知拓扑图',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'topo-group',
name: 'TopoGroup',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '拓扑管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'traffic',
name: 'TrafficAnalysis',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '流量分析管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'ip',
name: 'IPAddress',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: 'IP地址管理',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/alert',
name: 'Alert',
component: DEFAULT_LAYOUT,
meta: {
locale: '告警管理',
requiresAuth: true,
icon: 'icon-bulb',
order: 7,
},
children: [
{
path: 'setting',
name: 'AlertSetting',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '告警策略管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'tackle',
name: 'AlertTackle',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '告警受理处理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'history',
name: 'AlertHistory',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '告警历史',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'template',
name: 'AlertTemplate',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '告警模版',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'notice',
name: 'AlertNotice',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '告警通知设置',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'level',
name: 'AlertLevel',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '告警级别管理',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/feedback',
name: 'Feedback',
component: DEFAULT_LAYOUT,
meta: {
locale: '工单管理',
requiresAuth: true,
icon: 'icon-list',
order: 8,
},
children: [
{
path: 'all',
name: 'AllTickets',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '所有工单',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'undo',
name: 'PendingTickets',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '我的工单',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/datacenter',
name: 'DataCenterManagement',
component: DEFAULT_LAYOUT,
meta: {
locale: '数据中心管理',
requiresAuth: true,
icon: 'icon-drive-file',
order: 9,
},
children: [
{
path: 'rack',
name: 'RackManagement',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '机柜管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'house',
name: 'DataCenterHouse',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '数据中心',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'floor',
name: 'FloorManagement',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '楼层管理',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/assets',
name: 'Assets',
component: DEFAULT_LAYOUT,
meta: {
locale: '资产管理',
requiresAuth: true,
icon: 'icon-apps',
order: 10,
},
children: [
{
path: 'classify',
name: 'AssetClassify',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '设备分类管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'device',
name: 'AssetDevice',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '设备管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'supplier',
name: 'AssetSupplier',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '供应商管理',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/kb',
name: 'KnowledgeBase',
component: DEFAULT_LAYOUT,
meta: {
locale: '知识库管理',
requiresAuth: true,
icon: 'icon-file',
order: 11,
},
children: [
{
path: 'items',
name: 'KnowledgeItems',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '知识管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'tags',
name: 'KnowledgeTags',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '标签管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'review',
name: 'KnowledgeReview',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '我的审核',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'favorite',
name: 'KnowledgeFavorite',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '我的收藏',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'recycle',
name: 'KnowledgeRecycle',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '回收站',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/report',
name: 'Report',
component: DEFAULT_LAYOUT,
meta: {
locale: '报告管理',
requiresAuth: true,
icon: 'icon-nav',
order: 12,
},
children: [
{
path: 'host',
name: 'ServerReport',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '服务器报告',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'fault',
name: 'FaultReport',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '故障报告',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'device',
name: 'DeviceReport',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '网络设备报告',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'traffic',
name: 'TrafficReport',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '流量统计报告',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'history',
name: 'HistoryReport',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '历史报告',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'statistics',
name: 'StatisticsReport',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '统计报告',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/system-settings',
name: 'SystemSettings',
component: DEFAULT_LAYOUT,
meta: {
locale: '系统设置',
requiresAuth: true,
icon: 'icon-settings',
order: 13,
},
children: [
{
path: 'system-monitoring',
name: 'SystemMonitoring',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '系统监控',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'system-logs',
name: 'SystemLogs',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '系统日志',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'account-management',
name: 'AccountManagement',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '用户管理',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'menu-management',
name: 'MenuManagement',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '菜单设置',
requiresAuth: true,
roles: ['*'],
},
},
{
path: 'license-center',
name: 'LicenseCenter',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '许可授权中心',
requiresAuth: true,
roles: ['*'],
},
},
],
},
{
path: '/help',
name: 'HelpCenter',
component: DEFAULT_LAYOUT,
meta: {
locale: '帮助中心',
requiresAuth: true,
icon: 'icon-bulb',
order: 14,
hideChildrenInMenu: true,
},
children: [
{
path: '',
name: 'HelpCenterIndex',
component: () => import('@/views/redirect/index.vue'),
meta: {
locale: '帮助中心',
requiresAuth: true,
roles: ['*'],
},
},
],
},
]
export default localMenuData