diff --git a/src/pages/IDEContainer/index.tsx b/src/pages/IDEContainer/index.tsx
new file mode 100644
index 0000000..de586d5
--- /dev/null
+++ b/src/pages/IDEContainer/index.tsx
@@ -0,0 +1,11 @@
+import React from 'react';
+
+function IDEContainer() {
+ return (
+ <>
+
IDE Container
+ >
+ );
+}
+
+export default IDEContainer;
\ No newline at end of file
diff --git a/src/routes.ts b/src/routes.ts
index 5b9569c..532a06c 100644
--- a/src/routes.ts
+++ b/src/routes.ts
@@ -1,51 +1,12 @@
import auth, { AuthParams } from '@/utils/authentication';
import { useEffect, useMemo, useState } from 'react';
-import Instance from '@/pages/instance';
+import { moduleMap } from '@/routes/modules';
+import { IRoute } from '@/routes/types';
-export type IRoute = AuthParams & {
- name: string;
- key: string;
- // 当前页是否展示面包屑
- breadcrumb?: boolean;
- children?: IRoute[];
- // 当前路由是否渲染菜单项,为 true 的话不会在菜单中显示,但可通过路由地址访问。
- ignore?: boolean;
-};
+export type { IRoute } from '@/routes/types';
-export const routes: IRoute[] = [
- {
- name: 'menu.dashboard.workplace',
- key: 'dashboard/workplace'
- },
- {
- name: 'menu.scene',
- key: 'scene'
- },
- {
- name: 'menu.application',
- key: 'application'
- },
- {
- name: 'menu.instance',
- key: 'instance'
- },
- {
- name: 'menu.componentDevelopment',
- key: 'componentDevelopment'
- },
- {
- name: 'menu.componentLibrary',
- key: 'componentLibrary'
- },
- {
- name: 'menu.compositeCompLibrary',
- key: 'compositeCompLibrary'
- },
- {
- name: 'menu.componentMarket',
- key: 'componentMarket'
- }
-];
+// 根据模块生成路由
+export const routes: IRoute[] = Object.values(moduleMap);
export const getName = (path: string, routes) => {
return routes.find((item) => {
@@ -119,4 +80,4 @@ const useRoute = (userPermission): [IRoute[], string] => {
return [permissionRoute, defaultRoute];
};
-export default useRoute;
+export default useRoute;
\ No newline at end of file
diff --git a/src/routes/modules/application.ts b/src/routes/modules/application.ts
new file mode 100644
index 0000000..80003cc
--- /dev/null
+++ b/src/routes/modules/application.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const applicationModule: IRoute = {
+ name: 'menu.application',
+ key: 'application'
+};
\ No newline at end of file
diff --git a/src/routes/modules/componentDevelopment.ts b/src/routes/modules/componentDevelopment.ts
new file mode 100644
index 0000000..97a772c
--- /dev/null
+++ b/src/routes/modules/componentDevelopment.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const componentDevelopmentModule: IRoute = {
+ name: 'menu.componentDevelopment',
+ key: 'componentDevelopment'
+};
\ No newline at end of file
diff --git a/src/routes/modules/componentLibrary.ts b/src/routes/modules/componentLibrary.ts
new file mode 100644
index 0000000..1eabb36
--- /dev/null
+++ b/src/routes/modules/componentLibrary.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const componentLibraryModule: IRoute = {
+ name: 'menu.componentLibrary',
+ key: 'componentLibrary'
+};
\ No newline at end of file
diff --git a/src/routes/modules/componentMarket.ts b/src/routes/modules/componentMarket.ts
new file mode 100644
index 0000000..13954c8
--- /dev/null
+++ b/src/routes/modules/componentMarket.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const componentMarketModule: IRoute = {
+ name: 'menu.componentMarket',
+ key: 'componentMarket'
+};
\ No newline at end of file
diff --git a/src/routes/modules/compositeCompLibrary.ts b/src/routes/modules/compositeCompLibrary.ts
new file mode 100644
index 0000000..d6bcc01
--- /dev/null
+++ b/src/routes/modules/compositeCompLibrary.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const compositeCompLibraryModule: IRoute = {
+ name: 'menu.compositeCompLibrary',
+ key: 'compositeCompLibrary'
+};
\ No newline at end of file
diff --git a/src/routes/modules/dashboard.ts b/src/routes/modules/dashboard.ts
new file mode 100644
index 0000000..7cca8b9
--- /dev/null
+++ b/src/routes/modules/dashboard.ts
@@ -0,0 +1,12 @@
+import { IRoute } from '@/routes/types';
+
+export const dashboardModule: IRoute = {
+ name: 'menu.dashboard',
+ key: 'dashboard',
+ children: [
+ {
+ name: 'menu.dashboard.workplace',
+ key: 'dashboard/workplace'
+ }
+ ]
+};
\ No newline at end of file
diff --git a/src/routes/modules/index.ts b/src/routes/modules/index.ts
new file mode 100644
index 0000000..889539d
--- /dev/null
+++ b/src/routes/modules/index.ts
@@ -0,0 +1,30 @@
+import { dashboardModule } from './dashboard';
+import { sceneModule } from './scene';
+import { applicationModule } from './application';
+import { instanceModule } from './instance';
+import { componentDevelopmentModule } from './componentDevelopment';
+import { componentLibraryModule } from './componentLibrary';
+import { compositeCompLibraryModule } from './compositeCompLibrary';
+import { componentMarketModule } from './componentMarket';
+
+export {
+ dashboardModule,
+ sceneModule,
+ applicationModule,
+ instanceModule,
+ componentDevelopmentModule,
+ componentLibraryModule,
+ compositeCompLibraryModule,
+ componentMarketModule
+};
+
+export const moduleMap = {
+ dashboard: dashboardModule,
+ scene: sceneModule,
+ application: applicationModule,
+ instance: instanceModule,
+ componentDevelopment: componentDevelopmentModule,
+ componentLibrary: componentLibraryModule,
+ compositeCompLibrary: compositeCompLibraryModule,
+ componentMarket: componentMarketModule
+};
\ No newline at end of file
diff --git a/src/routes/modules/instance.ts b/src/routes/modules/instance.ts
new file mode 100644
index 0000000..2c4fffa
--- /dev/null
+++ b/src/routes/modules/instance.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const instanceModule: IRoute = {
+ name: 'menu.instance',
+ key: 'instance'
+};
\ No newline at end of file
diff --git a/src/routes/modules/scene.ts b/src/routes/modules/scene.ts
new file mode 100644
index 0000000..6241c50
--- /dev/null
+++ b/src/routes/modules/scene.ts
@@ -0,0 +1,6 @@
+import { IRoute } from '@/routes/types';
+
+export const sceneModule: IRoute = {
+ name: 'menu.scene',
+ key: 'scene'
+};
\ No newline at end of file
diff --git a/src/routes/types.ts b/src/routes/types.ts
new file mode 100644
index 0000000..421447b
--- /dev/null
+++ b/src/routes/types.ts
@@ -0,0 +1,11 @@
+import { AuthParams } from '@/utils/authentication';
+
+export type IRoute = AuthParams & {
+ name: string;
+ key: string;
+ // 当前页是否展示面包屑
+ breadcrumb?: boolean;
+ children?: IRoute[];
+ // 当前路由是否渲染菜单项,为 true 的话不会在菜单中显示,但可通过路由地址访问。
+ ignore?: boolean;
+};
\ No newline at end of file