소스 검색

重构路由配置 按模块来写

chauncey 10 달 전
부모
커밋
c72e7dd33c

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 20 - 0
src/assets/svg/emergency-framework.svg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 20 - 0
src/assets/svg/emergency-supplies.svg


+ 1 - 843
src/router/full-routes.ts

@@ -7,8 +7,8 @@
 import { AppRouteRecordRaw } from './types';
 import { getTreeItem } from '@/utils';
 import { cloneDeep } from 'lodash-es';
-import { RouteRecordRaw } from 'vue-router';
 import { PageEnum } from '@/enums/pageEnum';
+import { disasterPreventionRoute, emergencyManagementRoute, platformRoutes } from './routers';
 
 type RouteRecordString = Omit<AppRouteRecordRaw, 'component'> & { component?: string };
 
@@ -32,852 +32,10 @@ export const HOME_PAGE: RouteRecordString = {
   },
 };
 
-/** 灾害防范的路由 */
-export const disasterPreventionRoute = {
-  children: [
-    {
-      component: '/disaster/overview/PageOverview',
-      id: 1025,
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'OverviewIcon',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '总览',
-      },
-      name: 'disaster-prevention-overview',
-      parentId: 1022,
-      path: 'overview',
-      redirect: '',
-    },
-    {
-      // component: '/disaster/monitor/PageMonitor',
-      component: '/disaster/monitor/splitScreenRetrieval/SplitScreenRetrieval',
-      id: 1026,
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'RiskPointMonitoringIcon',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '重点区域监测',
-      },
-      name: 'risk-point-monitoring',
-      parentId: 1022,
-      path: 'risk-point-monitoring',
-      redirect: '',
-    },
-    {
-      children: [
-        {
-          component: '/disaster/disaster-warning/PageWarningInfo',
-          id: 1035,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-warning',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '预警信息',
-          },
-          name: 'disaster-warning-warning-info',
-          parentId: 1027,
-          path: 'warning-info',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-warning/PageDefenseNotice',
-          id: 1037,
-          meta: {
-            activeMenu: null,
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '防御通知',
-          },
-          name: 'disaster-warning-defense-notice',
-          parentId: 1027,
-          path: 'defense-notice',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-warning/PageDefenseNoticeItem',
-          id: 1038,
-          meta: {
-            activeMenu: null,
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '防御通知详情',
-          },
-          name: 'defense-notice-item',
-          parentId: 1027,
-          path: 'defense-notice-item',
-          redirect: '',
-        },
-      ],
-      component: '',
-      id: 1027,
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'DisasterWarningIcon',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '灾害预警',
-      },
-      name: 'disaster-warning',
-      parentId: 1022,
-      path: 'disaster-warning',
-      redirect: '',
-    },
-    {
-      children: [
-        {
-          component: '/disaster/disaster-precaution/PageTaskManagement',
-          id: 1029,
-          meta: {
-            activeMenu: null,
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '任务管理',
-          },
-          name: 'disaster-precaution-task-management',
-          parentId: 1028,
-          path: 'task-management',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-precaution/PageTaskItem',
-          id: 1033,
-          meta: {
-            activeMenu: null,
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: true,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '任务列表详情',
-          },
-          name: 'disaster-precaution-task-item',
-          parentId: 1028,
-          path: 'task-item',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-precaution/PageTaskExecution',
-          id: 1030,
-          meta: {
-            activeMenu: null,
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '任务执行',
-          },
-          name: 'disaster-precaution-task-execution',
-          parentId: 1028,
-          path: 'task-execution',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-precaution/PageTaskExecutionDetail',
-          id: 1034,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-precaution/task-execution',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '任务执行详情',
-          },
-          name: 'disaster-precaution-task-execution-detail',
-          parentId: 1028,
-          path: 'task-execution-detail/:id',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-precaution/PageTaskTemplate',
-          id: 1031,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-precaution/task-execution',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '任务模板',
-          },
-          name: 'disaster-precaution-task-template',
-          parentId: 1028,
-          path: 'task-template',
-          redirect: '',
-        },
-        {
-          component: '/todo/todo',
-          id: 1032,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-precaution/task-template',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '任务模板详情',
-          },
-          name: 'disaster-precaution-template-detail',
-          parentId: 1028,
-          path: 'template-detail/:id',
-          redirect: '',
-        },
-      ],
-      component: '',
-      id: 1028,
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'DisasterPrecaution',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '预防检查',
-      },
-      name: 'disaster-precaution',
-      parentId: 1022,
-      path: 'disaster-precaution',
-      redirect: '',
-    },
-    {
-      children: [
-        {
-          component: '/disaster/disaster-control/PageDisposalManagement',
-          id: 1038,
-          meta: {
-            activeMenu: '',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '处置管理',
-          },
-          name: 'disaster-control-disposal-management',
-          parentId: 1027,
-          path: 'disposal-management',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageDisposalManagementTaskItem',
-          id: 1041,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-control/disposal-management',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '处置管理详情(任务项)',
-          },
-          name: 'disaster-control-disposal-management-task-item',
-          parentId: 1027,
-          path: 'disposal-management-task-item',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageDisposalManagementItem',
-          id: 1042,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-control/disposal-management',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '处置管理详情(列表项)',
-          },
-          name: 'disaster-control-disposal-management-item',
-          parentId: 1027,
-          path: 'disposal-management-item/:id',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageLossReport',
-          id: 1039,
-          meta: {
-            activeMenu: '',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '损失上报',
-          },
-          name: 'disaster-control-loss-report',
-          parentId: 1027,
-          path: 'loss-report',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageLossReportItem',
-          id: 1043,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-control/loss-report',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '损失记录明细',
-          },
-          name: 'disaster-control-loss-report-item',
-          parentId: 1027,
-          path: 'loss-report-item/:id',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageDisposalRectification',
-          id: 1040,
-          meta: {
-            activeMenu: '',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '处置整改',
-          },
-          name: 'disaster-control-disposal-rectification',
-          parentId: 1027,
-          path: 'disposal-rectification',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageDisposalRectificationItem',
-          id: 1044,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-control/disposal-rectification',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '整改处理',
-          },
-          name: 'disaster-control-disposal-rectification-item',
-          parentId: 1027,
-          path: 'disposal-rectification-item/:id',
-          redirect: '',
-        },
-        {
-          component: '/disaster/disaster-control/PageViewDisposalRectification',
-          id: 1045,
-          meta: {
-            activeMenu: '/disaster-prevention/disaster-control/disposal-rectification',
-            alwaysShow: false,
-            frameSrc: '',
-            hidden: false,
-            icon: '',
-            isFrame: 0,
-            isRoot: false,
-            noCache: false,
-            query: '',
-            title: '整改处理明细',
-          },
-          name: 'disaster-control-disposal-rectification-item-detail',
-          parentId: 1027,
-          path: 'disposal-rectification-item-detail/:id',
-          redirect: '',
-        },
-      ],
-      component: '',
-      id: 1032,
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'DisasterControlIcon',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '灾害处置',
-      },
-      name: 'disaster-control',
-      parentId: 1022,
-      path: 'disaster-control',
-      redirect: '',
-    },
-  ],
-  component: 'MENU_LAYOUT',
-  id: 1022,
-  meta: {
-    activeMenu: null,
-    alwaysShow: false,
-    frameSrc: '',
-    hidden: false,
-    icon: 'CameraOutlined',
-    isFrame: 0,
-    isRoot: false,
-    noCache: false,
-    query: '',
-    title: '灾害防范',
-  },
-  name: 'DisasterPrevention',
-  parentId: -1,
-  path: '/disaster-prevention',
-  redirect: '',
-};
-
-/** 应急管理 */
-export const emergencyManagementRoute = {
-  id: 2000,
-  parentId: -1,
-  name: 'EmergencyManagement',
-  path: '/emergency-management',
-  component: 'MENU_LAYOUT',
-  redirect: '',
-  meta: {
-    activeMenu: null,
-    alwaysShow: false,
-    frameSrc: '',
-    hidden: false,
-    icon: 'CameraOutlined',
-    isFrame: 0,
-    isRoot: false,
-    noCache: false,
-    query: '',
-    title: '应急管理',
-  },
-  children: [
-    {
-      id: 2001,
-      parentId: 2000,
-      name: 'emergency-management-overview',
-      path: 'overview',
-      component: '/emergency/overview/PageOverview',
-      redirect: '',
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'OverviewIcon',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '总览',
-      },
-    },
-    {
-      id: 2002,
-      parentId: 2000,
-      name: 'emergency-management-organization',
-      path: 'organization',
-      component: '/emergency/organization/PageOrganization',
-      redirect: '',
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: 'OverviewIcon',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '应急架构体系',
-      },
-    },
-    {
-      id: 2003,
-      parentId: 2000,
-      name: 'command-center',
-      path: 'command-center',
-      component: '/emergency/command-center/PageCommandCenter',
-      redirect: '',
-      meta: {
-        activeMenu: null,
-        alwaysShow: false,
-        frameSrc: '',
-        hidden: false,
-        icon: '',
-        isFrame: 0,
-        isRoot: false,
-        noCache: false,
-        query: '',
-        title: '应急指挥中心',
-      },
-    },
-  ],
-};
-
-/** 平台管理 */
-export const platformRoutes = {
-  path: '/platform',
-  name: 'Platform',
-  component: 'MENU_LAYOUT',
-  meta: {
-    icon: '',
-    title: '平台管理',
-  },
-  redirect: '',
-  children: [
-    {
-      path: 'user',
-      name: 'User',
-      meta: {
-        icon: 'UserOutlined',
-        title: '用户管理',
-      },
-      children: [
-        {
-          // 组织管理
-          path: 'department',
-          name: 'UserDepartment',
-          component: '/auth/dept/dept',
-          meta: {
-            icon: '',
-            title: '组织管理',
-          },
-        },
-        {
-          // 角色管理
-          path: 'role',
-          name: 'UserRole',
-          component: '/system/role/role',
-          meta: {
-            icon: '',
-            title: '角色管理',
-          },
-        },
-        {
-          // 账号管理
-          path: 'account',
-          name: 'UserAccount',
-          component: '/system/user/user',
-          meta: {
-            icon: '',
-            title: '账号管理',
-          },
-        },
-        {
-          // 账号管理
-          path: 'person',
-          name: 'Person',
-          component: '/todo/todo',
-          meta: {
-            icon: '',
-            title: '人员分组',
-          },
-        },
-      ],
-    },
-    {
-      // 菜单管理
-      path: 'menu',
-      name: 'SystemMenu',
-      component: '/system/menu/menu',
-      meta: {
-        icon: 'UserOutlined',
-        title: '菜单管理',
-      },
-    },
-    {
-      // 权限管理
-      path: 'permission',
-      name: 'SystemPermission',
-      component: '/system/permission/PagePermission',
-      meta: {
-        icon: 'UserOutlined',
-        title: '权限管理',
-      },
-    },
-    {
-      path: 'dictionary',
-      name: 'SystemDictionary',
-      component: '/system/dictionary/dictionary',
-      meta: {
-        icon: 'UserOutlined',
-        title: '字典管理',
-      },
-    },
-  ],
-};
-
-export const exceptionRouters =
-  /**
-   * 异常页面
-   */
-  {
-    path: '/exception',
-    name: 'Exception',
-    component: 'LAYOUT',
-    redirect: '/exception/403',
-    meta: {
-      icon: 'ExclamationCircleOutlined',
-      title: '异常页面',
-      ignoreAuth: true,
-    },
-    children: [
-      {
-        // 403,
-        path: '403',
-        name: 'Exception403',
-        component: '/exception/403',
-        meta: {
-          icon: '',
-          title: '403',
-        },
-      },
-
-      {
-        path: '500',
-        name: 'Exception500',
-        component: '/exception/500',
-        meta: {
-          icon: '',
-          title: '500',
-        },
-      },
-      {
-        path: 'stay-tune',
-        name: 'StayTune',
-        component: '/exception/stay-tune',
-        meta: {
-          icon: '',
-          title: '敬请期待',
-        },
-      },
-    ],
-  };
-
 export const fullRoutes: AppRouteRecordRaw[] = [
   disasterPreventionRoute,
   emergencyManagementRoute,
-
-  // userRoutes,
-
-  // systemRoutes,
   platformRoutes,
-
-  /**
-   * 消息管理
-   */
-  {
-    path: '/message',
-    name: 'Message',
-    component: 'LAYOUT',
-    meta: {
-      icon: 'SendOutlined',
-      title: '消息管理',
-    },
-    children: [
-      {
-        // 报表推送
-        path: 'report',
-        name: 'MessageReport',
-        component: '/message/reportmessage/ReportMessage',
-        meta: {
-          icon: '',
-          title: '报表推送',
-        },
-      },
-      {
-        // 报表推送配置。二级页面,菜单不可见!!!
-        path: 'report-config',
-        name: 'MessageReportConfig',
-        component: '/message/reportmessage/ReportOperation',
-        meta: {
-          icon: '',
-          title: '报表推送配置',
-          activeMenu: 'MessageReport',
-        },
-      },
-      {
-        // 报警推送
-        path: 'alarm',
-        name: 'MessageAlarm',
-        component: '/message/alarmMessages/alarmMessages',
-        meta: {
-          icon: '',
-          title: '报警推送',
-        },
-      },
-      {
-        // 报警推送配置 。二级页面,菜单不可见!!!
-        path: 'alarm-config',
-        name: 'MessageAlarmConfig',
-        component: '/message/alarm-config/AlarmConfig',
-        meta: {
-          icon: '',
-          title: '报警推送配置',
-          activeMenu: 'MessageAlarm',
-        },
-      },
-      {
-        // 系统通知
-        path: 'sys-notification',
-        name: 'MessageSysNotification',
-        component: '/message/systemNotifications/systemNotifications',
-        meta: {
-          icon: '',
-          title: '系统通知',
-        },
-      },
-      {
-        // 系统通知配置。二级页面,菜单不可见!!!
-        path: 'sys-notification-config',
-        name: 'MessageSysNotificationConfig',
-        component: '/message/sysnotion-config/SysnotionConfig',
-        meta: {
-          icon: '',
-          title: '系统通知配置',
-          activeMenu: 'MessageSysNotification',
-        },
-      },
-      {
-        // 人员分组
-        path: 'personnel-group',
-        name: 'MessagePersonnelGroup',
-        component: '/message/persongroup/UserGroup',
-        meta: {
-          icon: '',
-          title: '人员分组',
-        },
-      },
-      {
-        // 问题处理通知
-        path: 'question-notification',
-        name: 'MessageQuestionNotification',
-        component: '/message/question-notifications/QuestionNotifications',
-        meta: {
-          icon: '',
-          title: '问题处理通知',
-        },
-      },
-    ],
-  },
-
-  /**
-   * 数据管理
-   */
-  {
-    path: '/data',
-    name: 'Data',
-    component: 'LAYOUT',
-    meta: {
-      icon: 'LineChartOutlined',
-      title: '数据管理',
-    },
-    children: [
-      {
-        // 平台统计
-        path: 'platform',
-        name: 'DataPlatform',
-        component: '/datamanager/platformdata/PlatformData',
-        meta: {
-          icon: '',
-          title: '平台统计',
-        },
-      },
-      {
-        // 历史视频 (视频回看)
-        path: 'playback',
-        name: 'DataPlayback',
-        component: '/datamanager/playback/Playback',
-        meta: {
-          icon: '',
-          title: '历史视频',
-        },
-      },
-      {
-        // 违规问题
-        path: 'violation',
-        name: 'DataViolation',
-        component: '/datamanager/alertformdata/AlertformData',
-        meta: {
-          icon: '',
-          title: '违规问题',
-        },
-      },
-    ],
-  },
 ] as const;
 
 /**

+ 2 - 4
src/router/index.ts

@@ -1,13 +1,11 @@
 import { App } from 'vue';
 import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
 import { RedirectRoute } from '@/router/base';
-import { PageEnum } from '@/enums/pageEnum';
 import { createRouterGuards } from './router-guards';
-import { exceptionRouters, HOME_PAGE, platformRoutes, RootRoute } from './full-routes';
+import { exceptionRouters } from './routers';
+import { HOME_PAGE, RootRoute } from './full-routes';
 import { asyncImportRoute, routerGenerator } from './generator-routers';
 
-// const modules: any = import.meta.glob('./modules/**/*.ts', { eager: true });
-
 const routeModuleList: RouteRecordRaw[] = [];
 
 // Object.keys(modules).forEach((key) => {

+ 2 - 0
src/router/router-icons.ts

@@ -66,4 +66,6 @@ export const constantRouterIcon = {
   MenuManageIcon: renderSvg('menu-manage'),
   PermissionManageIcon: renderSvg('permission-manage'),
   DictManageIcon: renderSvg('dict-manage'),
+  EmergencyFrameworkIcon: renderSvg('emergency-framework'),
+  EmergencySuppliesIcon: renderSvg('emergency-supplies'),
 };

+ 472 - 0
src/router/routers/disaster.ts

@@ -0,0 +1,472 @@
+/** 灾害防范的路由 */
+const disasterPreventionRoute = {
+  children: [
+    {
+      component: '/disaster/overview/PageOverview',
+      id: 1025,
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'OverviewIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '总览',
+      },
+      name: 'disaster-prevention-overview',
+      parentId: 1022,
+      path: 'overview',
+      redirect: '',
+    },
+    {
+      // component: '/disaster/monitor/PageMonitor',
+      component: '/disaster/monitor/splitScreenRetrieval/SplitScreenRetrieval',
+      id: 1026,
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'RiskPointMonitoringIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '重点区域监测',
+      },
+      name: 'risk-point-monitoring',
+      parentId: 1022,
+      path: 'risk-point-monitoring',
+      redirect: '',
+    },
+    {
+      children: [
+        {
+          component: '/disaster/disaster-warning/PageWarningInfo',
+          id: 1035,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-warning',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '预警信息',
+          },
+          name: 'disaster-warning-warning-info',
+          parentId: 1027,
+          path: 'warning-info',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-warning/PageDefenseNotice',
+          id: 1037,
+          meta: {
+            activeMenu: null,
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '防御通知',
+          },
+          name: 'disaster-warning-defense-notice',
+          parentId: 1027,
+          path: 'defense-notice',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-warning/PageDefenseNoticeItem',
+          id: 1038,
+          meta: {
+            activeMenu: null,
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '防御通知详情',
+          },
+          name: 'defense-notice-item',
+          parentId: 1027,
+          path: 'defense-notice-item',
+          redirect: '',
+        },
+      ],
+      component: '',
+      id: 1027,
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'DisasterWarningIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '灾害预警',
+      },
+      name: 'disaster-warning',
+      parentId: 1022,
+      path: 'disaster-warning',
+      redirect: '',
+    },
+    {
+      children: [
+        {
+          component: '/disaster/disaster-precaution/PageTaskManagement',
+          id: 1029,
+          meta: {
+            activeMenu: null,
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '任务管理',
+          },
+          name: 'disaster-precaution-task-management',
+          parentId: 1028,
+          path: 'task-management',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-precaution/PageTaskItem',
+          id: 1033,
+          meta: {
+            activeMenu: null,
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: true,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '任务列表详情',
+          },
+          name: 'disaster-precaution-task-item',
+          parentId: 1028,
+          path: 'task-item',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-precaution/PageTaskExecution',
+          id: 1030,
+          meta: {
+            activeMenu: null,
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '任务执行',
+          },
+          name: 'disaster-precaution-task-execution',
+          parentId: 1028,
+          path: 'task-execution',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-precaution/PageTaskExecutionDetail',
+          id: 1034,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-precaution/task-execution',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '任务执行详情',
+          },
+          name: 'disaster-precaution-task-execution-detail',
+          parentId: 1028,
+          path: 'task-execution-detail/:id',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-precaution/PageTaskTemplate',
+          id: 1031,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-precaution/task-execution',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '任务模板',
+          },
+          name: 'disaster-precaution-task-template',
+          parentId: 1028,
+          path: 'task-template',
+          redirect: '',
+        },
+        {
+          component: '/todo/todo',
+          id: 1032,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-precaution/task-template',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '任务模板详情',
+          },
+          name: 'disaster-precaution-template-detail',
+          parentId: 1028,
+          path: 'template-detail/:id',
+          redirect: '',
+        },
+      ],
+      component: '',
+      id: 1028,
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'DisasterPrecaution',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '预防检查',
+      },
+      name: 'disaster-precaution',
+      parentId: 1022,
+      path: 'disaster-precaution',
+      redirect: '',
+    },
+    {
+      children: [
+        {
+          component: '/disaster/disaster-control/PageDisposalManagement',
+          id: 1038,
+          meta: {
+            activeMenu: '',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '处置管理',
+          },
+          name: 'disaster-control-disposal-management',
+          parentId: 1027,
+          path: 'disposal-management',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageDisposalManagementTaskItem',
+          id: 1041,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-control/disposal-management',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '处置管理详情(任务项)',
+          },
+          name: 'disaster-control-disposal-management-task-item',
+          parentId: 1027,
+          path: 'disposal-management-task-item',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageDisposalManagementItem',
+          id: 1042,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-control/disposal-management',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '处置管理详情(列表项)',
+          },
+          name: 'disaster-control-disposal-management-item',
+          parentId: 1027,
+          path: 'disposal-management-item/:id',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageLossReport',
+          id: 1039,
+          meta: {
+            activeMenu: '',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '损失上报',
+          },
+          name: 'disaster-control-loss-report',
+          parentId: 1027,
+          path: 'loss-report',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageLossReportItem',
+          id: 1043,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-control/loss-report',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '损失记录明细',
+          },
+          name: 'disaster-control-loss-report-item',
+          parentId: 1027,
+          path: 'loss-report-item/:id',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageDisposalRectification',
+          id: 1040,
+          meta: {
+            activeMenu: '',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '处置整改',
+          },
+          name: 'disaster-control-disposal-rectification',
+          parentId: 1027,
+          path: 'disposal-rectification',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageDisposalRectificationItem',
+          id: 1044,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-control/disposal-rectification',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '整改处理',
+          },
+          name: 'disaster-control-disposal-rectification-item',
+          parentId: 1027,
+          path: 'disposal-rectification-item/:id',
+          redirect: '',
+        },
+        {
+          component: '/disaster/disaster-control/PageViewDisposalRectification',
+          id: 1045,
+          meta: {
+            activeMenu: '/disaster-prevention/disaster-control/disposal-rectification',
+            alwaysShow: false,
+            frameSrc: '',
+            hidden: false,
+            icon: '',
+            isFrame: 0,
+            isRoot: false,
+            noCache: false,
+            query: '',
+            title: '整改处理明细',
+          },
+          name: 'disaster-control-disposal-rectification-item-detail',
+          parentId: 1027,
+          path: 'disposal-rectification-item-detail/:id',
+          redirect: '',
+        },
+      ],
+      component: '',
+      id: 1032,
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'DisasterControlIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '灾害处置',
+      },
+      name: 'disaster-control',
+      parentId: 1022,
+      path: 'disaster-control',
+      redirect: '',
+    },
+  ],
+  component: 'MENU_LAYOUT',
+  id: 1022,
+  meta: {
+    activeMenu: null,
+    alwaysShow: false,
+    frameSrc: '',
+    hidden: false,
+    icon: 'CameraOutlined',
+    isFrame: 0,
+    isRoot: false,
+    noCache: false,
+    query: '',
+    title: '灾害防范',
+  },
+  name: 'DisasterPrevention',
+  parentId: -1,
+  path: '/disaster-prevention',
+  redirect: '',
+};
+
+export default disasterPreventionRoute;

+ 105 - 0
src/router/routers/emergency.ts

@@ -0,0 +1,105 @@
+/** 应急管理 */
+const emergencyManagementRoute = {
+  id: 2000,
+  parentId: -1,
+  name: 'EmergencyManagement',
+  path: '/emergency-management',
+  component: 'MENU_LAYOUT',
+  redirect: '',
+  meta: {
+    activeMenu: null,
+    alwaysShow: false,
+    frameSrc: '',
+    hidden: false,
+    icon: 'CameraOutlined',
+    isFrame: 0,
+    isRoot: false,
+    noCache: false,
+    query: '',
+    title: '应急管理',
+  },
+  children: [
+    {
+      id: 2001,
+      parentId: 2000,
+      name: 'emergency-management-overview',
+      path: 'overview',
+      component: '/emergency/overview/PageOverview',
+      redirect: '',
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'OverviewIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '总览',
+      },
+    },
+    {
+      id: 2002,
+      parentId: 2000,
+      name: 'emergency-management-organization',
+      path: 'organization',
+      component: '/emergency/organization/PageOrganization',
+      redirect: '',
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'EmergencyFrameworkIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '应急架构体系',
+      },
+    },
+    {
+      id: 2003,
+      parentId: 2000,
+      name: 'command-center',
+      path: 'command-center',
+      component: '/emergency/command-center/PageCommandCenter',
+      redirect: '',
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: '',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '应急指挥中心',
+      },
+    },
+    {
+      id: 2004,
+      parentId: 2000,
+      name: 'emergency-supplies',
+      path: 'emergency-supplies',
+      component: '/emergency/emergency-supplies/PageEmergencyList',
+      redirect: '',
+      meta: {
+        activeMenu: null,
+        alwaysShow: false,
+        frameSrc: '',
+        hidden: false,
+        icon: 'EmergencySuppliesIcon',
+        isFrame: 0,
+        isRoot: false,
+        noCache: false,
+        query: '',
+        title: '应急物资',
+      },
+    },
+  ],
+};
+
+export default emergencyManagementRoute;

+ 46 - 0
src/router/routers/exception.ts

@@ -0,0 +1,46 @@
+/**
+ * 异常页面
+ */
+const exceptionRouters = {
+  path: '/exception',
+  name: 'Exception',
+  component: 'LAYOUT',
+  redirect: '/exception/403',
+  meta: {
+    icon: 'ExclamationCircleOutlined',
+    title: '异常页面',
+    ignoreAuth: true,
+  },
+  children: [
+    {
+      // 403,
+      path: '403',
+      name: 'Exception403',
+      component: '/exception/403',
+      meta: {
+        icon: '',
+        title: '403',
+      },
+    },
+    {
+      path: '500',
+      name: 'Exception500',
+      component: '/exception/500',
+      meta: {
+        icon: '',
+        title: '500',
+      },
+    },
+    {
+      path: 'stay-tune',
+      name: 'StayTune',
+      component: '/exception/stay-tune',
+      meta: {
+        icon: '',
+        title: '敬请期待',
+      },
+    },
+  ],
+};
+
+export default exceptionRouters;

+ 6 - 0
src/router/routers/index.ts

@@ -0,0 +1,6 @@
+import platformRoutes from './platform';
+import disasterPreventionRoute from './disaster';
+import emergencyManagementRoute from './emergency';
+import exceptionRouters from './exception';
+
+export { platformRoutes, disasterPreventionRoute, emergencyManagementRoute, exceptionRouters };

+ 94 - 0
src/router/routers/platform.ts

@@ -0,0 +1,94 @@
+/** 平台管理 */
+const platformRoutes = {
+  path: '/platform',
+  name: 'Platform',
+  component: 'MENU_LAYOUT',
+  meta: {
+    icon: '',
+    title: '平台管理',
+  },
+  redirect: '',
+  children: [
+    {
+      path: 'user',
+      name: 'User',
+      meta: {
+        icon: 'UserOutlined',
+        title: '用户管理',
+      },
+      children: [
+        {
+          // 组织管理
+          path: 'department',
+          name: 'UserDepartment',
+          component: '/auth/dept/dept',
+          meta: {
+            icon: '',
+            title: '组织管理',
+          },
+        },
+        {
+          // 角色管理
+          path: 'role',
+          name: 'UserRole',
+          component: '/system/role/role',
+          meta: {
+            icon: '',
+            title: '角色管理',
+          },
+        },
+        {
+          // 账号管理
+          path: 'account',
+          name: 'UserAccount',
+          component: '/system/user/user',
+          meta: {
+            icon: '',
+            title: '账号管理',
+          },
+        },
+        {
+          // 账号管理
+          path: 'person',
+          name: 'Person',
+          component: '/todo/todo',
+          meta: {
+            icon: '',
+            title: '人员分组',
+          },
+        },
+      ],
+    },
+    {
+      // 菜单管理
+      path: 'menu',
+      name: 'SystemMenu',
+      component: '/system/menu/menu',
+      meta: {
+        icon: 'UserOutlined',
+        title: '菜单管理',
+      },
+    },
+    {
+      // 权限管理
+      path: 'permission',
+      name: 'SystemPermission',
+      component: '/system/permission/PagePermission',
+      meta: {
+        icon: 'UserOutlined',
+        title: '权限管理',
+      },
+    },
+    {
+      path: 'dictionary',
+      name: 'SystemDictionary',
+      component: '/system/dictionary/dictionary',
+      meta: {
+        icon: 'UserOutlined',
+        title: '字典管理',
+      },
+    },
+  ],
+};
+
+export default platformRoutes;

+ 14 - 0
src/views/emergency/emergency-supplies/PageEmergencyList.vue

@@ -0,0 +1,14 @@
+<template>
+  <div class="safety-platform-container">
+    <div class="safety-platform-container__header">
+      <div class="breadcrumb-title">物资清单</div>
+    </div>
+    <div class="safety-platform-container__main"></div>
+  </div>
+</template>
+
+<script setup lang="ts"></script>
+
+<style scoped lang="scss">
+  @use '@/styles/page-details-layout.scss' as *;
+</style>