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}`)) {