feat
This commit is contained in:
736
src/router/menu-data.ts
Normal file
736
src/router/menu-data.ts
Normal 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
|
||||
Reference in New Issue
Block a user