From 87a01d70fb0f6e17542ba20f885457d04d629759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cls=5F=E5=AE=81=E6=B3=A2=E6=9C=AC=E6=9C=BA?= <908705107@qq.com> Date: Thu, 11 Jun 2026 08:51:32 +0800 Subject: [PATCH] Replace online dev home with control center --- web/apps/web-ele/src/preferences.ts | 2 +- web/apps/web-ele/src/router/access.ts | 6 +- web/apps/web-ele/src/router/guard.ts | 2 +- .../src/router/routes/modules/ai-platform.ts | 15 ++ .../src/views/_core/control-center/index.vue | 222 ++++++++++++++++++ .../views/_core/menu/modules/menu-form.vue | 5 +- .../ui-config/modules/app-settings-form.vue | 6 +- 7 files changed, 247 insertions(+), 11 deletions(-) create mode 100644 web/apps/web-ele/src/views/_core/control-center/index.vue diff --git a/web/apps/web-ele/src/preferences.ts b/web/apps/web-ele/src/preferences.ts index f85eb34..110ab8d 100644 --- a/web/apps/web-ele/src/preferences.ts +++ b/web/apps/web-ele/src/preferences.ts @@ -16,7 +16,7 @@ export const overridesPreferences = defineOverridesPreferences({ enablePreferences: false, accessMode: 'mixed', authPageLayout: 'panel-center', - defaultHomePath: '/page-render/main_home', + defaultHomePath: '/control-center', layout: 'header-sidebar-nav', }, shortcutKeys: { diff --git a/web/apps/web-ele/src/router/access.ts b/web/apps/web-ele/src/router/access.ts index 83fb253..a26e20b 100644 --- a/web/apps/web-ele/src/router/access.ts +++ b/web/apps/web-ele/src/router/access.ts @@ -79,8 +79,8 @@ function normalizeBackendRoute< if (route.name !== 'ControlCenter') return route; const normalized = { ...route }; - normalized.path = '/page-render/main_home'; - normalized.component = 'online-dev/page-render/index'; + normalized.path = '/control-center'; + normalized.component = '_core/control-center/index'; normalized.query = undefined; return normalized; } @@ -138,6 +138,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) { '../views/_core/announcement/index.vue', '../views/_core/announcement/list.vue', '../views/_core/authentication/login.vue', + '../views/_core/control-center/index.vue', '../views/_core/authentication/oauth-callback.vue', '../views/_core/fallback/**/*.vue', '../views/_core/file-preview/index.vue', @@ -155,7 +156,6 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) { '../views/ai-platform/workflow/editor/index.vue', '../views/ai-platform/workflow/index.vue', '../views/ai-platform/workflow-runs/index.vue', - '../views/online-dev/page-render/index.vue', ]); const layoutMap: ComponentRecordType = { diff --git a/web/apps/web-ele/src/router/guard.ts b/web/apps/web-ele/src/router/guard.ts index 34f2f17..4c943cf 100644 --- a/web/apps/web-ele/src/router/guard.ts +++ b/web/apps/web-ele/src/router/guard.ts @@ -191,7 +191,7 @@ function setupAccessGuard(router: Router) { if (to.path === subAppRootPath) { const defaultHome = - preferences.app.defaultHomePath || '/page-render/main_home'; + preferences.app.defaultHomePath || '/control-center'; // 确保路径包含子应用前缀 const subAppTargetPath = defaultHome.startsWith(subAppRootPath) ? defaultHome diff --git a/web/apps/web-ele/src/router/routes/modules/ai-platform.ts b/web/apps/web-ele/src/router/routes/modules/ai-platform.ts index 324f346..7e98bda 100644 --- a/web/apps/web-ele/src/router/routes/modules/ai-platform.ts +++ b/web/apps/web-ele/src/router/routes/modules/ai-platform.ts @@ -1,6 +1,21 @@ import type { RouteRecordRaw } from 'vue-router'; const routes: RouteRecordRaw[] = [ + { + meta: { + hideInMenu: true, + title: '控制中心', + }, + name: 'ControlCenterStatic', + path: '/control-center', + component: () => import('#/views/_core/control-center/index.vue'), + }, + { + meta: { hideInMenu: true }, + name: 'LegacyMainHomeRedirect', + path: '/page-render/main_home', + redirect: '/control-center', + }, { meta: { hideInMenu: true }, name: 'AIKnowledgeLegacyRedirect', diff --git a/web/apps/web-ele/src/views/_core/control-center/index.vue b/web/apps/web-ele/src/views/_core/control-center/index.vue new file mode 100644 index 0000000..7171534 --- /dev/null +++ b/web/apps/web-ele/src/views/_core/control-center/index.vue @@ -0,0 +1,222 @@ + + + diff --git a/web/apps/web-ele/src/views/_core/menu/modules/menu-form.vue b/web/apps/web-ele/src/views/_core/menu/modules/menu-form.vue index 8b167d2..780a2c8 100644 --- a/web/apps/web-ele/src/views/_core/menu/modules/menu-form.vue +++ b/web/apps/web-ele/src/views/_core/menu/modules/menu-form.vue @@ -99,6 +99,7 @@ const componentKeys: string[] = Object.keys( '../../../_core/announcement/list.vue', '../../../_core/authentication/login.vue', '../../../_core/authentication/oauth-callback.vue', + '../../../_core/control-center/index.vue', '../../../_core/fallback/**/*.vue', '../../../_core/menu/index.vue', '../../../_core/permission/index.vue', @@ -113,15 +114,13 @@ const componentKeys: string[] = Object.keys( '../../../ai-platform/workflow/editor/index.vue', '../../../ai-platform/workflow/index.vue', '../../../ai-platform/workflow-runs/index.vue', - '../../../online-dev/page-render/index.vue', ]), ) .filter((item) => !item.includes('/modules/')) .map((v) => { const path = v .replace('../../../_core/', '/_core/') - .replace('../../../ai-platform/', '/ai-platform/') - .replace('../../../online-dev/', '/online-dev/'); + .replace('../../../ai-platform/', '/ai-platform/'); return path.endsWith('.vue') ? path.slice(0, -4) : path; }); diff --git a/web/apps/web-ele/src/views/_core/ui-config/modules/app-settings-form.vue b/web/apps/web-ele/src/views/_core/ui-config/modules/app-settings-form.vue index 1486fdb..3935696 100644 --- a/web/apps/web-ele/src/views/_core/ui-config/modules/app-settings-form.vue +++ b/web/apps/web-ele/src/views/_core/ui-config/modules/app-settings-form.vue @@ -53,7 +53,7 @@ const appDynamicTitle = ref(true); const appWatermark = ref(false); const appWatermarkContent = ref(''); const appEnableCheckUpdates = ref(true); -const appDefaultHomePath = ref('/page-render/main_home'); +const appDefaultHomePath = ref('/control-center'); const appEnablePreferences = ref(true); const footerEnable = ref(true); @@ -106,7 +106,7 @@ function getDefaultConfig() { defaultHomePath: overrides.app?.defaultHomePath || preferences.app.defaultHomePath || - '/page-render/main_home', + '/control-center', enablePreferences: overrides.app?.enablePreferences ?? true, }, footer: { @@ -233,7 +233,7 @@ async function loadConfig() { // 获取带子应用前缀的首页路径 function getDefaultHomePathWithPrefix(): string { - const path = appDefaultHomePath.value || '/page-render/main_home'; + const path = appDefaultHomePath.value || '/control-center'; const appCode = appContextStore.appCode; // 如果是子应用模式且路径不包含子应用前缀,自动添加 if (appCode && !path.startsWith(`/app/${appCode}`)) {