diff --git a/backend-fastapi/core/menu/service.py b/backend-fastapi/core/menu/service.py index 1a8e44a..3f0bff1 100644 --- a/backend-fastapi/core/menu/service.py +++ b/backend-fastapi/core/menu/service.py @@ -21,6 +21,7 @@ MENU_TREE_CACHE_KEY = "tree:ai_agent_admin" USER_ROUTE_CACHE_PREFIX = "user_route:ai_agent_admin:" AI_AGENT_ADMIN_MENU_NAMES = { + "ControlCenter", "AIPlatform", "AIAgent", "AIWorkflow", @@ -43,7 +44,18 @@ AI_AGENT_ADMIN_MENU_NAMES = { def _filter_ai_agent_admin_menus(menus: List[Menu]) -> List[Menu]: """Keep only the lightweight admin and AI modules for this product.""" - return [menu for menu in menus if menu.name in AI_AGENT_ADMIN_MENU_NAMES] + filtered = [menu for menu in menus if menu.name in AI_AGENT_ADMIN_MENU_NAMES] + for menu in filtered: + _normalize_ai_agent_admin_menu(menu) + return filtered + + +def _normalize_ai_agent_admin_menu(menu: Menu) -> None: + """Route legacy low-code home to a lightweight static dashboard.""" + if menu.name == "ControlCenter": + menu.path = "/control-center" + menu.component = "_core/control-center/index" + menu.query = None class MenuService(BaseService[Menu, MenuCreate, MenuUpdate]): diff --git a/web/apps/web-ele/src/router/access.ts b/web/apps/web-ele/src/router/access.ts index 72cb7f1..b8ba434 100644 --- a/web/apps/web-ele/src/router/access.ts +++ b/web/apps/web-ele/src/router/access.ts @@ -22,6 +22,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) { '../views/_core/announcement/index.vue', '../views/_core/announcement/list.vue', '../views/_core/authentication/**/*.vue', + '../views/_core/control-center/index.vue', '../views/_core/fallback/**/*.vue', '../views/_core/login-log/index.vue', '../views/_core/menu/index.vue', diff --git a/web/apps/web-ele/src/router/routes/index.ts b/web/apps/web-ele/src/router/routes/index.ts index af4f85c..908de7f 100644 --- a/web/apps/web-ele/src/router/routes/index.ts +++ b/web/apps/web-ele/src/router/routes/index.ts @@ -41,6 +41,7 @@ const componentKeys: string[] = Object.keys( '../../views/_core/announcement/index.vue', '../../views/_core/announcement/list.vue', '../../views/_core/authentication/**/*.vue', + '../../views/_core/control-center/index.vue', '../../views/_core/fallback/**/*.vue', '../../views/_core/login-log/index.vue', '../../views/_core/menu/index.vue', 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..da5eee6 --- /dev/null +++ b/web/apps/web-ele/src/views/_core/control-center/index.vue @@ -0,0 +1,734 @@ + + + + + + + + + + ZQ-AI Agent Admin + + 控制中心 + + {{ stats.agentTotal }} 个智能体、{{ stats.workflowTotal }} 条流程、{{ stats.runTotal }} 次执行记录已汇总。 + + + + + 刷新 + + + 创建智能体 + + + + + + + + + 智能体 + {{ stats.agentTotal }} + 已发布 {{ publishedAgents }} + + + + + + 流程 + {{ stats.workflowTotal }} + 已发布 {{ publishedWorkflows }} + + + + + + 知识库 + {{ stats.knowledgeTotal }} + {{ knowledgeBases.length }} 个最近维护 + + + + + + 执行记录 + {{ stats.runTotal }} + 成功 {{ successfulRuns }} / 失败 {{ failedRuns }} + + + + + + + + + AI 工作入口 + + 查看全部 + + + + + + + {{ entry.title }} + {{ entry.desc }} + + + + + + + + 基础后台 + + 用户权限 + + + + + + + {{ entry.title }} + + + + + + + + + + 智能体协作 + + 管理智能体 + + + + + + + + {{ agent.name }} + {{ agent.description || agent.code }} + + + {{ agent.status === 'published' ? '已发布' : '草稿' }} + + + + + + + + + + 最近执行 + + 执行历史 + + + + + + + + {{ run.workflow_name }} + + {{ run.total_steps }} 步 · {{ run.total_tokens }} tokens + + + + {{ run.status }} + + + + + + + + + + + + + 流程编排 + + 查看流程 + + + + + + + {{ workflow.name }} + {{ workflow.description || workflow.code }} + + {{ workflow.workflow_type }} + + + + + + + + + 知识资产 + + 查看知识库 + + + + + + + + {{ kb.name }} + + {{ kb.document_count }} 文档 · {{ kb.segment_count }} 分段 + + + + + + + + + + + + 基础后台状态正常,用户、角色、菜单和公告入口可用。 + + + + AI 协作资源已加载,智能体、流程和 Codex 入口可用。 + + + + 最近执行记录已同步,刷新后可查看最新运行状态。 + + + + + + + diff --git a/web/packages/@core/preferences/src/config.ts b/web/packages/@core/preferences/src/config.ts index 8e6240e..0551521 100644 --- a/web/packages/@core/preferences/src/config.ts +++ b/web/packages/@core/preferences/src/config.ts @@ -17,7 +17,7 @@ const defaultPreferences: Preferences = { contentPaddingTop: 0, defaultAvatar: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/avatar-v1.webp', - defaultHomePath: '/ai-platform/agent', + defaultHomePath: '/control-center', dynamicTitle: true, enableCheckUpdates: true, enablePreferences: true,
+ {{ stats.agentTotal }} 个智能体、{{ stats.workflowTotal }} 条流程、{{ stats.runTotal }} 次执行记录已汇总。 +