From 86b44bad1040e6499f1797754568fbd73a99c83b 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: Fri, 12 Jun 2026 11:37:29 +0800 Subject: [PATCH] chore: trim nonessential admin routes --- backend-fastapi/core/menu/service.py | 11 +++--- .../web-ele/src/adapter/component/index.ts | 14 -------- web/apps/web-ele/src/locales/index.ts | 10 ------ web/apps/web-ele/src/preferences.ts | 2 +- web/apps/web-ele/src/router/access.ts | 14 ++------ web/apps/web-ele/src/router/guard.ts | 2 +- web/apps/web-ele/src/router/light-menu.ts | 35 ++++--------------- .../src/router/routes/modules/ai-platform.ts | 2 +- .../views/_core/menu/modules/menu-form.vue | 2 -- web/apps/web-ele/src/views/_core/user/data.ts | 16 --------- 10 files changed, 15 insertions(+), 93 deletions(-) diff --git a/backend-fastapi/core/menu/service.py b/backend-fastapi/core/menu/service.py index 7e84a3e..bc174ac 100644 --- a/backend-fastapi/core/menu/service.py +++ b/backend-fastapi/core/menu/service.py @@ -17,7 +17,7 @@ from core.menu.schema import MenuCreate, MenuUpdate menu_cache = CacheManager(prefix="menu:") # 缓存key -AI_AGENT_ADMIN_MENU_CACHE_VERSION = "v9" +AI_AGENT_ADMIN_MENU_CACHE_VERSION = "v10" MENU_TREE_CACHE_KEY = f"tree:ai_agent_admin:{AI_AGENT_ADMIN_MENU_CACHE_VERSION}" USER_ROUTE_CACHE_PREFIX = f"user_route:ai_agent_admin:{AI_AGENT_ADMIN_MENU_CACHE_VERSION}:" @@ -29,14 +29,11 @@ AI_AGENT_ADMIN_MENU_NAMES = { "AIWorkflow", "AIWorkflowRuns", "KnowledgeBase", - "Codex", "SystemManagement", "SystemPermission", "UserManagement", "SystemMenu", "SystemRole", - "Message", - "MessageList", "AnnouncementList", "AnnouncementManage", } @@ -51,10 +48,10 @@ def _filter_ai_agent_admin_menus(menus: List[Menu]) -> List[Menu]: def _normalize_ai_agent_admin_menu(menu: Menu) -> None: - """Route the retained control center to the original rendered dashboard.""" + """Route the retained control center to the AI agent workspace.""" if menu.name == "ControlCenter": - menu.path = "/page-render/main_home" - menu.component = "online-dev/page-render/index" + menu.path = "/ai-platform/agent" + menu.component = "ai-platform/agent/index" menu.query = None diff --git a/web/apps/web-ele/src/adapter/component/index.ts b/web/apps/web-ele/src/adapter/component/index.ts index 1146431..e274034 100644 --- a/web/apps/web-ele/src/adapter/component/index.ts +++ b/web/apps/web-ele/src/adapter/component/index.ts @@ -100,11 +100,6 @@ const RoleSelector = defineAsyncComponent(() => (res) => res.default, ), ); -const DeptSelector = defineAsyncComponent(() => - import('#/components/zq-form/dept-selector/dept-selector.vue').then( - (res) => res.default, - ), -); const FileSelector = defineAsyncComponent(() => import('#/components/zq-form/file-selector/file-selector.vue').then( (res) => res.default, @@ -120,11 +115,6 @@ const UserSelector = defineAsyncComponent(() => (res) => res.default, ), ); -const PostSelector = defineAsyncComponent(() => - import('#/components/zq-form/post-selector/post-selector.vue').then( - (res) => res.default, - ), -); const ZqIconPicker = defineAsyncComponent(() => import('#/components/zq-form/zq-icon-picker/zq-icon-picker.vue').then( (res) => res.default, @@ -176,14 +166,12 @@ export type ComponentType = | 'CheckboxGroup' | 'CodeEditor' | 'DatePicker' - | 'DeptSelector' | 'Divider' | 'FileSelector' | 'IconPicker' | 'ImageSelector' | 'Input' | 'InputNumber' - | 'PostSelector' | 'RadioGroup' | 'RoleSelector' | 'Select' @@ -261,7 +249,6 @@ function initComponentAdapter() { PrimaryButton: (props, { attrs, slots }) => { return h(ElButton, { ...props, attrs, type: 'primary' }, slots); }, - DeptSelector: withDefaultPlaceholder(DeptSelector, 'select'), RoleSelector: withDefaultPlaceholder(RoleSelector, 'select'), Divider: ElDivider, FileSelector: withDefaultPlaceholder(FileSelector, 'select'), @@ -274,7 +261,6 @@ function initComponentAdapter() { type: 'textarea', }), InputNumber: withDefaultPlaceholder(ElInputNumber, 'input'), - PostSelector: withDefaultPlaceholder(PostSelector, 'select'), RadioGroup: (props, { attrs, slots }) => { let defaultSlot; if (Reflect.has(slots, 'default')) { diff --git a/web/apps/web-ele/src/locales/index.ts b/web/apps/web-ele/src/locales/index.ts index 94592ce..99738c4 100644 --- a/web/apps/web-ele/src/locales/index.ts +++ b/web/apps/web-ele/src/locales/index.ts @@ -32,20 +32,10 @@ const baseModules = import.meta.glob([ const businessModules = import.meta.glob([ './langs/zh-CN/ai-platform.json', './langs/zh-CN/announcement.json', - './langs/zh-CN/dashboard-design.json', - './langs/zh-CN/dept.json', - './langs/zh-CN/dict.json', - './langs/zh-CN/file-manager.json', - './langs/zh-CN/loginLog.json', './langs/zh-CN/menu.json', - './langs/zh-CN/message.json', './langs/zh-CN/permission.json', - './langs/zh-CN/post.json', './langs/zh-CN/role.json', - './langs/zh-CN/server-monitor.json', './langs/zh-CN/system.json', - './langs/zh-CN/system-config.json', - './langs/zh-CN/ui-config.json', './langs/zh-CN/user.json', ]); diff --git a/web/apps/web-ele/src/preferences.ts b/web/apps/web-ele/src/preferences.ts index 5aed56b..abb2b8c 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: true, accessMode: 'mixed', authPageLayout: 'panel-center', - defaultHomePath: '/page-render/main_home', + defaultHomePath: '/ai-platform/agent', layout: 'header-sidebar-nav', preferencesButtonPosition: 'header', }, diff --git a/web/apps/web-ele/src/router/access.ts b/web/apps/web-ele/src/router/access.ts index 38dbc69..0c836d3 100644 --- a/web/apps/web-ele/src/router/access.ts +++ b/web/apps/web-ele/src/router/access.ts @@ -59,8 +59,8 @@ function normalizeBackendRoute< if (route.name !== 'ControlCenter') return route; const normalized = { ...route }; - normalized.path = '/page-render/main_home'; - normalized.component = '_core/page-render/index'; + normalized.path = '/ai-platform/agent'; + normalized.component = 'ai-platform/agent/index'; normalized.query = undefined; return normalized; } @@ -129,21 +129,11 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) { '../views/_core/account-settings/index.vue', '../views/_core/authentication/login.vue', '../views/_core/authentication/oauth-callback.vue', - '../views/_core/dept/index.vue', - '../views/_core/dict/index.vue', '../views/_core/fallback/**/*.vue', - '../views/_core/file-manager/index.vue', '../views/_core/file-preview/index.vue', - '../views/_core/login-log/index.vue', '../views/_core/menu/index.vue', - '../views/_core/message/index.vue', - '../views/_core/page-render/index.vue', '../views/_core/permission/index.vue', - '../views/_core/post/index.vue', '../views/_core/role/index.vue', - '../views/_core/server-monitor/index.vue', - '../views/_core/system-config/index.vue', - '../views/_core/ui-config/index.vue', '../views/_core/user/index.vue', '../views/ai-platform/agent/editor/index.vue', '../views/ai-platform/agent/index.vue', diff --git a/web/apps/web-ele/src/router/guard.ts b/web/apps/web-ele/src/router/guard.ts index 0a2aa2e..63861b9 100644 --- a/web/apps/web-ele/src/router/guard.ts +++ b/web/apps/web-ele/src/router/guard.ts @@ -204,7 +204,7 @@ function setupAccessGuard(router: Router) { if (to.path === subAppRootPath) { const defaultHome = - preferences.app.defaultHomePath || '/page-render/main_home'; + preferences.app.defaultHomePath || '/ai-platform/agent'; // 确保路径包含子应用前缀 const subAppTargetPath = defaultHome.startsWith(subAppRootPath) ? defaultHome diff --git a/web/apps/web-ele/src/router/light-menu.ts b/web/apps/web-ele/src/router/light-menu.ts index a0e6f7e..c7f57f8 100644 --- a/web/apps/web-ele/src/router/light-menu.ts +++ b/web/apps/web-ele/src/router/light-menu.ts @@ -8,25 +8,12 @@ export const LIGHT_MENU_NAMES = new Set([ 'AccountSettings', 'AnnouncementList', 'AnnouncementManage', - 'Codex', 'ControlCenter', - 'FileManager', 'KnowledgeBase', - 'LoginLog', - 'Message', - 'MessageList', - 'ServerMonitor', - 'SystemConfigManager', - 'SystemDept', - 'SystemDict', - 'SystemFileManager', - 'SystemLoginLog', 'SystemManagement', 'SystemMenu', - 'SystemPost', 'SystemPermission', 'SystemRole', - 'UIConfigManager', 'UserManagement', 'userSettings', ]); @@ -35,25 +22,15 @@ const LIGHT_ROUTE_PATH_PREFIXES = [ '/account-settings', '/ai-platform/agent', '/ai-platform/knowledge', + '/ai-platform/knowledge-base', '/ai-platform/model', '/ai-platform/workflow', '/ai-platform/workflow-runs', - '/announcement', - '/codex', - '/dept', - '/dict', - '/file-manager', - '/login-log', - '/menu', - '/message', - '/page-render/main_home', - '/permission', - '/post', - '/role', - '/server-monitor', - '/system-config', - '/ui-config', - '/user', + '/message/announcement', + '/system/menu', + '/system/new-permission', + '/system/role', + '/system/user', ]; export function isLightMenuName(name?: string) { 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 e2b6250..eabad73 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 @@ -5,7 +5,7 @@ const routes: RouteRecordRaw[] = [ meta: { hideInMenu: true }, name: 'ControlCenterLegacyRedirect', path: '/control-center', - redirect: '/page-render/main_home', + redirect: '/ai-platform/agent', }, { meta: { hideInMenu: true }, 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 440ac70..dc980c6 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 @@ -102,8 +102,6 @@ const componentKeys = [ '/_core/fallback/forbidden', '/_core/fallback/not-found', '/_core/menu/index', - '/_core/message/index', - '/_core/page-render/index', '/_core/permission/index', '/_core/role/index', '/_core/user/index', diff --git a/web/apps/web-ele/src/views/_core/user/data.ts b/web/apps/web-ele/src/views/_core/user/data.ts index 29357df..7aa27e8 100644 --- a/web/apps/web-ele/src/views/_core/user/data.ts +++ b/web/apps/web-ele/src/views/_core/user/data.ts @@ -191,14 +191,6 @@ export function getFormSchema(): VbenFormSchema[] { fieldName: 'bio', label: $t('user.bio'), }, - { - component: 'DeptSelector', - componentProps: { - placeholder: $t('user.selectDept'), - }, - fieldName: 'dept_id', - label: $t('user.dept'), - }, { component: 'UserSelector', componentProps: { @@ -207,14 +199,6 @@ export function getFormSchema(): VbenFormSchema[] { fieldName: 'manager_id', label: $t('user.manager'), }, - { - component: 'PostSelector', - componentProps: { - placeholder: $t('user.selectPost'), - }, - fieldName: 'post_id', - label: $t('user.post'), - }, { component: 'RoleSelector', componentProps: {