diff --git a/.gitignore b/.gitignore index 96f653b..8475459 100644 --- a/.gitignore +++ b/.gitignore @@ -191,6 +191,9 @@ web/apps/web-ele/src/views/online-dev/* !web/apps/web-ele/src/views/online-dev/page-render/ !web/apps/web-ele/src/views/online-dev/page-render/** web/apps/web-ele/src/views/dashboard/ +!web/apps/web-ele/src/views/dashboard/ +web/apps/web-ele/src/views/dashboard/* +!web/apps/web-ele/src/views/dashboard/index.vue web/apps/web-ele/src/views/demos/ web/apps/web-ele/src/views/zq-smart-table/ web/apps/web-ele/src/api/online-dev/ diff --git a/backend-fastapi/ai_platform/nodes/builtin/__init__.py b/backend-fastapi/ai_platform/nodes/builtin/__init__.py index 7a91540..cecd57c 100644 --- a/backend-fastapi/ai_platform/nodes/builtin/__init__.py +++ b/backend-fastapi/ai_platform/nodes/builtin/__init__.py @@ -34,36 +34,14 @@ __all__ = [ # 循环节点 'LoopNode', # 表单节点 - 'FormBasicInfoNode', - 'FormDatabaseDesignNode', - 'FormDatabaseCreateNode', - 'FormUIDesignNode', - 'FormListDesignNode', - 'FormCreateNode', - 'FormPublishNode', # 应用节点 - 'AppCreateNode', - 'AppDesignNode', - 'AppSettingsNode', - 'AppUpdateNode', # 仪表盘节点 - 'DashboardBasicInfoNode', - 'DashboardDesignNode', - 'DashboardCreateNode', - 'DashboardPublishNode', # 系统总结节点 - 'SystemSummaryNode', # 子流程节点 'SubflowNode', # Text-to-SQL 节点 'TextToSqlNode', # 表单数据节点 - 'FormDataCreateNode', - 'FormDataReadNode', - 'FormDataUpdateNode', - 'FormDataDeleteNode', - 'FormDataListNode', - 'FormSchemaToLLMNode', # 知识库节点 'KnowledgeRetrievalNode', ] diff --git a/backend-fastapi/ai_platform/nodes/registry.py b/backend-fastapi/ai_platform/nodes/registry.py index 9bf824f..13f5f7b 100644 --- a/backend-fastapi/ai_platform/nodes/registry.py +++ b/backend-fastapi/ai_platform/nodes/registry.py @@ -122,13 +122,11 @@ def _load_builtin_nodes(): 'code_node', 'http_node', 'variable_node', - 'database_node', 'dialog_nodes', 'intent_node', 'loop_node', 'subflow_node', 'text_to_sql_node', - 'snowflake_cortex_node', 'knowledge_retrieval_node', ] diff --git a/backend-fastapi/core/menu/service.py b/backend-fastapi/core/menu/service.py index 829a4e8..ea90760 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 = "v6" +AI_AGENT_ADMIN_MENU_CACHE_VERSION = "v7" 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}:" @@ -25,6 +25,7 @@ AI_AGENT_ADMIN_MENU_NAMES = { "ControlCenter", "AIPlatform", "AIAgent", + "AIModelConfig", "AIWorkflow", "AIWorkflowRuns", "KnowledgeBase", @@ -51,10 +52,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 lightweight native dashboard.""" if menu.name == "ControlCenter": - menu.path = "/page-render/main_home" - menu.component = "online-dev/page-render/index" + menu.path = "/dashboard" + menu.component = "dashboard/index" menu.query = None diff --git a/web/apps/web-ele/src/components/ChatBox/types.ts b/web/apps/web-ele/src/components/ChatBox/types.ts index 32705b1..065e34d 100644 --- a/web/apps/web-ele/src/components/ChatBox/types.ts +++ b/web/apps/web-ele/src/components/ChatBox/types.ts @@ -99,7 +99,6 @@ export type DesignPreviewType = | 'knowledge_retrieval' | 'list_config' | 'llm_config' - | 'system_summary' | 'workflow_result'; // 设计预览配置 diff --git a/web/apps/web-ele/src/components/ai-chat-panel/types.ts b/web/apps/web-ele/src/components/ai-chat-panel/types.ts index 1dd5b19..37ccef5 100644 --- a/web/apps/web-ele/src/components/ai-chat-panel/types.ts +++ b/web/apps/web-ele/src/components/ai-chat-panel/types.ts @@ -57,19 +57,11 @@ export interface AgentInfo { /** 设计预览类型 */ export type DesignPreviewType = | 'agent_capability' - | 'app_design' - | 'app_settings' - | 'dashboard_basic_info' - | 'dashboard_design' - | 'dashboard_publish' | 'database_design' - | 'form_basic_info' - | 'form_ui_design' | 'knowledge_retrieval' | 'list_config' | 'llm_config' - | 'workflow_result' - | 'system_summary'; + | 'workflow_result'; /** 设计预览数据 */ export interface DesignPreviewData { diff --git a/web/apps/web-ele/src/locales/index.ts b/web/apps/web-ele/src/locales/index.ts index a15ddec..4e0005b 100644 --- a/web/apps/web-ele/src/locales/index.ts +++ b/web/apps/web-ele/src/locales/index.ts @@ -32,7 +32,6 @@ 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/menu.json', './langs/zh-CN/message.json', './langs/zh-CN/permission.json', diff --git a/web/apps/web-ele/src/preferences.ts b/web/apps/web-ele/src/preferences.ts index f85eb34..dcbd846 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: '/dashboard', 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 f7a185b..c0d4d06 100644 --- a/web/apps/web-ele/src/router/access.ts +++ b/web/apps/web-ele/src/router/access.ts @@ -16,6 +16,7 @@ const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue'); const lightMenuNames = new Set([ 'AIAgent', 'AIKnowledgeDetail', + 'AIModelConfig', 'AIPlatform', 'AIWorkflow', 'AIWorkflowRuns', @@ -82,8 +83,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 = '/dashboard'; + normalized.component = 'dashboard/index'; normalized.query = undefined; return normalized; } @@ -158,7 +159,7 @@ 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', + '../views/dashboard/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..ce88899 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 || '/dashboard'; // 确保路径包含子应用前缀 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 9ff0eb1..0781a2c 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,12 +1,27 @@ import type { RouteRecordRaw } from 'vue-router'; const routes: RouteRecordRaw[] = [ + { + meta: { hideInMenu: true }, + name: 'LegacyMainHomeRedirect', + path: '/page-render/main_home', + redirect: '/dashboard', + }, { meta: { hideInMenu: true }, name: 'AIKnowledgeLegacyRedirect', path: '/ai-platform/knowledge', redirect: '/ai-platform/knowledge-base', }, + { + meta: { + hideInMenu: true, + title: '模型配置', + }, + name: 'AIModelConfig', + path: '/ai-platform/model', + component: () => import('#/views/ai-platform/model/index.vue'), + }, { meta: { hideInMenu: true }, name: 'AIKnowledgeLegacyDetailRedirect', diff --git a/web/apps/web-ele/src/utils/legacy-home.ts b/web/apps/web-ele/src/utils/legacy-home.ts index 4d1f25a..469a4fa 100644 --- a/web/apps/web-ele/src/utils/legacy-home.ts +++ b/web/apps/web-ele/src/utils/legacy-home.ts @@ -1,6 +1,7 @@ import { preferences } from '@vben/preferences'; const LEGACY_HOME_PATTERNS = [ + /^\/page-render\/main_home$/, /^\/app\/[^/]+\/form-render\//, /^\/form-render\//, /^\/online-dev(?:\/|$)/, 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 9a6f41d..dc34703 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 @@ -112,7 +112,7 @@ 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', + '../../../dashboard/index.vue', ]), ) .filter((item) => !item.includes('/modules/')) @@ -120,7 +120,7 @@ const componentKeys: string[] = Object.keys( const path = v .replace('../../../_core/', '/_core/') .replace('../../../ai-platform/', '/ai-platform/') - .replace('../../../online-dev/', '/online-dev/'); + .replace('../../../dashboard/', '/dashboard/'); 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 d29cd7f..82ed1ff 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('/analytics'); +const appDefaultHomePath = ref('/dashboard'); 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', + '/dashboard', enablePreferences: overrides.app?.enablePreferences ?? true, }, footer: { @@ -233,7 +233,7 @@ async function loadConfig() { // 获取带子应用前缀的首页路径 function getDefaultHomePathWithPrefix(): string { - const path = appDefaultHomePath.value || '/analytics'; + const path = appDefaultHomePath.value || '/dashboard'; const appCode = appContextStore.appCode; // 如果是子应用模式且路径不包含子应用前缀,自动添加 if (appCode && !path.startsWith(`/app/${appCode}`)) { diff --git a/web/apps/web-ele/src/views/ai-platform/workflow/editor/components/VariableSelector.vue b/web/apps/web-ele/src/views/ai-platform/workflow/editor/components/VariableSelector.vue index b82ee63..cd0eff4 100644 --- a/web/apps/web-ele/src/views/ai-platform/workflow/editor/components/VariableSelector.vue +++ b/web/apps/web-ele/src/views/ai-platform/workflow/editor/components/VariableSelector.vue @@ -2,20 +2,15 @@ import { computed, ref } from 'vue'; import { - AppWindow, BookOpen, Bot, ChevronDown, ChevronRight, CircleHelp, - ClipboardCheck, Code, Combine, - Database, - FileText, Globe, HelpCircle, - LayoutDashboard, LayoutTemplate, ListChecks, MessageSquareText, @@ -38,6 +33,26 @@ const { nodes, edges } = useVueFlow(); const searchQuery = ref(''); const collapsedNodes = ref>(new Set()); +const lightWorkflowNodeTypes = new Set([ + 'start', + 'llm', + 'http', + 'code', + 'condition', + 'template', + 'parallel', + 'merge', + 'question', + 'choice', + 'message', + 'confirm', + 'intent', + 'loop', + 'subflow', + 'knowledge_retrieval', + 'end', +]); + // 定义不同节点的图标 const icons: any = { start: Play, @@ -57,21 +72,9 @@ const icons: any = { // 合并节点 merge: Combine, // 表单节点 - form_basic_info: FileText, - form_database_design: Database, - form_database_create: Database, // 应用节点 - app_create: AppWindow, - app_design: LayoutDashboard, - app_settings: LayoutDashboard, - app_update: LayoutDashboard, // 仪表盘节点 - dashboard_basic_info: LayoutDashboard, - dashboard_design: LayoutDashboard, - dashboard_create: LayoutDashboard, - dashboard_publish: LayoutDashboard, // 系统总结节点 - system_summary: ClipboardCheck, // 子流程节点 subflow: Play, // 知识库检索节点 @@ -125,98 +128,17 @@ const availableNodes = computed(() => { // 只保留上游节点 return nodes.value - .filter((n) => upstreamIds.has(n.id) && n.type !== 'end') + .filter( + (n) => + upstreamIds.has(n.id) && + lightWorkflowNodeTypes.has(n.type) && + n.type !== 'end', + ) .map((node) => { let variables: any[] = []; // 根据节点类型获取输出变量 schema switch (node.type) { - case 'app_create': { - variables = [ - { - key: 'app_id', - label: $t('ai-platform.workflow.editor.variableSelector.appId'), - }, - { - key: 'app_code', - label: $t('ai-platform.workflow.editor.variableSelector.appCode'), - }, - { - key: 'app_name', - label: $t('ai-platform.workflow.editor.variableSelector.appName'), - }, - { - key: 'success', - label: $t( - 'ai-platform.workflow.editor.variableSelector.createSuccess', - ), - }, - ]; - break; - } - case 'app_design': { - variables = [ - { - key: 'design_content', - label: $t( - 'ai-platform.workflow.editor.variableSelector.designContent', - ), - }, - { - key: 'design_title', - label: $t( - 'ai-platform.workflow.editor.variableSelector.designTitle', - ), - }, - { - key: 'confirmed', - label: $t( - 'ai-platform.workflow.editor.variableSelector.isConfirmed', - ), - }, - ]; - break; - } - case 'app_settings': { - variables = [ - { - key: 'settings', - label: $t( - 'ai-platform.workflow.editor.variableSelector.appSettings', - ), - }, - { - key: 'confirmed', - label: $t( - 'ai-platform.workflow.editor.variableSelector.isConfirmed', - ), - }, - ]; - break; - } - case 'app_update': { - variables = [ - { - key: 'update_success', - label: $t( - 'ai-platform.workflow.editor.variableSelector.updateSuccess', - ), - }, - { - key: 'config_id', - label: $t( - 'ai-platform.workflow.editor.variableSelector.configId', - ), - }, - { - key: 'update_message', - label: $t( - 'ai-platform.workflow.editor.variableSelector.updateMessage', - ), - }, - ]; - break; - } case 'choice': { const choiceVar = node.data.variable_name || 'user_choice'; variables = [ @@ -272,385 +194,6 @@ const availableNodes = computed(() => { ]; break; } - case 'dashboard_basic_info': { - variables = [ - { - key: 'dashboard_basic_info', - label: $t( - 'ai-platform.workflow.editor.variableSelector.dashboardBasicInfo', - ), - }, - { - key: 'dashboard_name', - label: $t( - 'ai-platform.workflow.editor.variableSelector.dashboardName', - ), - }, - { - key: 'dashboard_code', - label: $t( - 'ai-platform.workflow.editor.variableSelector.dashboardCode', - ), - }, - ]; - break; - } - case 'dashboard_create': { - variables = [ - { - key: 'dashboard_id', - label: $t( - 'ai-platform.workflow.editor.variableSelector.dashboardId', - ), - }, - { - key: 'dashboard_code', - label: $t( - 'ai-platform.workflow.editor.variableSelector.dashboardCode', - ), - }, - { - key: 'page_meta', - label: $t( - 'ai-platform.workflow.editor.variableSelector.pageMeta', - ), - }, - ]; - break; - } - case 'dashboard_design': { - variables = [ - { - key: 'page_config', - label: $t( - 'ai-platform.workflow.editor.variableSelector.pageConfig', - ), - }, - { - key: 'design_title', - label: $t( - 'ai-platform.workflow.editor.variableSelector.designTitle', - ), - }, - { - key: 'confirmed', - label: $t( - 'ai-platform.workflow.editor.variableSelector.isConfirmed', - ), - }, - ]; - break; - } - case 'dashboard_publish': { - variables = [ - { - key: 'menu_id', - label: $t('ai-platform.workflow.editor.variableSelector.menuId'), - }, - { - key: 'route_path', - label: $t( - 'ai-platform.workflow.editor.variableSelector.routePath', - ), - }, - { - key: 'publish_result', - label: $t( - 'ai-platform.workflow.editor.variableSelector.publishResult', - ), - }, - ]; - break; - } - case 'db_delete': { - const deleteOutputVar = node.data.output_variable || 'delete_result'; - variables = [ - { - key: deleteOutputVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.deleteResult', - ), - }, - { - key: `${deleteOutputVar}_count`, - label: $t( - 'ai-platform.workflow.editor.variableSelector.affectedRows', - ), - }, - ]; - break; - } - case 'db_insert': { - const insertOutputVar = node.data.output_variable || 'insert_result'; - variables = [ - { - key: insertOutputVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.insertResult', - ), - }, - { - key: `${insertOutputVar}_id`, - label: $t( - 'ai-platform.workflow.editor.variableSelector.insertId', - ), - }, - ]; - break; - } - case 'db_query': { - const queryOutputVar = node.data.output_variable || 'query_result'; - variables = [ - { - key: queryOutputVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.queryResult', - ), - }, - { - key: `${queryOutputVar}_count`, - label: $t( - 'ai-platform.workflow.editor.variableSelector.resultCount', - ), - }, - ]; - break; - } - case 'db_sql': { - const sqlOutputVar = node.data.output_variable || 'sql_result'; - variables = [ - { - key: sqlOutputVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.sqlResult', - ), - }, - { - key: `${sqlOutputVar}_count`, - label: $t( - 'ai-platform.workflow.editor.variableSelector.resultCount', - ), - }, - ]; - break; - } - case 'db_update': { - const updateOutputVar = node.data.output_variable || 'update_result'; - variables = [ - { - key: updateOutputVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.updateResult', - ), - }, - { - key: `${updateOutputVar}_count`, - label: $t( - 'ai-platform.workflow.editor.variableSelector.affectedRows', - ), - }, - ]; - break; - } - case 'form_basic_info': { - variables = [ - { - key: 'form_basic_info', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formBasicInfoObj', - ), - }, - { - key: 'form_name', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formName', - ), - }, - { - key: 'form_code', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formCode', - ), - }, - { - key: 'form_type', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formType', - ), - }, - { - key: 'form_description', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formDescription', - ), - }, - { - key: 'form_sort', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formSort', - ), - }, - ]; - break; - } - case 'form_create': { - variables = [ - { - key: 'form_id', - label: $t('ai-platform.workflow.editor.variableSelector.formId'), - }, - { - key: 'form_code', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formCode', - ), - }, - { - key: 'form_meta', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formMeta', - ), - }, - ]; - break; - } - case 'form_database_create': { - variables = [ - { - key: 'creation_result', - label: $t( - 'ai-platform.workflow.editor.variableSelector.creationResult', - ), - }, - { - key: 'all_tables_ready', - label: $t( - 'ai-platform.workflow.editor.variableSelector.allTablesReady', - ), - }, - { - key: 'created_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.createdCount', - ), - }, - { - key: 'error_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.errorCount', - ), - }, - { - key: 'schema_name', - label: $t( - 'ai-platform.workflow.editor.variableSelector.schemaName', - ), - }, - { - key: 'table_name', - label: $t( - 'ai-platform.workflow.editor.variableSelector.tableName', - ), - }, - ]; - break; - } - case 'form_database_design': { - variables = [ - { - key: 'database_design', - label: $t( - 'ai-platform.workflow.editor.variableSelector.dbDesignObj', - ), - }, - { - key: 'table_name', - label: $t( - 'ai-platform.workflow.editor.variableSelector.tableName', - ), - }, - { - key: 'field_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.fieldCount', - ), - }, - ]; - break; - } - case 'form_list_design': { - variables = [ - { - key: 'list_config', - label: $t( - 'ai-platform.workflow.editor.variableSelector.listConfig', - ), - }, - { - key: 'query_field_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.queryFieldCount', - ), - }, - { - key: 'column_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.columnCount', - ), - }, - ]; - break; - } - case 'form_publish': { - variables = [ - { - key: 'menu_id', - label: $t('ai-platform.workflow.editor.variableSelector.menuId'), - }, - { - key: 'route_path', - label: $t( - 'ai-platform.workflow.editor.variableSelector.routePath', - ), - }, - { - key: 'publish_result', - label: $t( - 'ai-platform.workflow.editor.variableSelector.publishResult', - ), - }, - ]; - break; - } - case 'form_ui_design': { - variables = [ - { - key: 'form_ui_design', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formUiDesign', - ), - }, - { - key: 'form_code', - label: $t( - 'ai-platform.workflow.editor.variableSelector.formCode', - ), - }, - { - key: 'field_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.fieldCount', - ), - }, - { - key: 'group_count', - label: $t( - 'ai-platform.workflow.editor.variableSelector.groupCount', - ), - }, - ]; - break; - } case 'http': { variables = [ { @@ -828,45 +371,6 @@ const availableNodes = computed(() => { ]; break; } - case 'snowflake_cortex_analyst': { - const analystResultVar = - node.data.output_variable || 'analyst_result'; - const analystSqlVar = node.data.sql_variable || 'analyst_sql'; - variables = [ - { - key: analystResultVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.queryResultData', - ), - }, - { - key: analystSqlVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.generatedSql', - ), - }, - { - key: `${analystResultVar}_raw`, - label: $t( - 'ai-platform.workflow.editor.variableSelector.rawResponse', - ), - }, - ]; - break; - } - // Snowflake Cortex 节点 - case 'snowflake_cortex_llm': { - const cortexLlmVar = node.data.output_variable || 'cortex_response'; - variables = [ - { - key: cortexLlmVar, - label: $t( - 'ai-platform.workflow.editor.variableSelector.cortexLlmResponse', - ), - }, - ]; - break; - } case 'start': { // 默认的系统变量 variables = [ @@ -957,33 +461,6 @@ const availableNodes = computed(() => { } break; } - case 'system_summary': { - variables = [ - { - key: 'summary', - label: $t( - 'ai-platform.workflow.editor.variableSelector.summaryData', - ), - }, - { - key: 'total_forms', - label: $t( - 'ai-platform.workflow.editor.variableSelector.totalForms', - ), - }, - { - key: 'has_app', - label: $t('ai-platform.workflow.editor.variableSelector.hasApp'), - }, - { - key: 'has_dashboard', - label: $t( - 'ai-platform.workflow.editor.variableSelector.hasDashboard', - ), - }, - ]; - break; - } case 'template': { const templateOutputVar = node.data.output_variable || 'template_result'; diff --git a/web/apps/web-ele/src/views/dashboard/index.vue b/web/apps/web-ele/src/views/dashboard/index.vue new file mode 100644 index 0000000..22b5578 --- /dev/null +++ b/web/apps/web-ele/src/views/dashboard/index.vue @@ -0,0 +1,802 @@ + + + + + diff --git a/web/package.json b/web/package.json index b0ddb80..7b62216 100644 --- a/web/package.json +++ b/web/package.json @@ -25,7 +25,8 @@ }, "type": "module", "scripts": { - "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 turbo build", + "build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 pnpm -F @vben/web-ele run build", + "build:all": "cross-env NODE_OPTIONS=--max-old-space-size=8192 turbo build", "build:analyze": "turbo build:analyze", "build:docker": "./scripts/deploy/build-local-docker-image.sh", "build:ele": "pnpm run build --filter=@vben/web-ele",