perf: prune online-dev workflow editor entries
This commit is contained in:
@@ -16,7 +16,7 @@ import type {
|
|||||||
* - agent-debug: 智能体编辑器调试模式
|
* - agent-debug: 智能体编辑器调试模式
|
||||||
* - agent-chat: 智能体正式对话模式(支持历史、反馈)
|
* - agent-chat: 智能体正式对话模式(支持历史、反馈)
|
||||||
*/
|
*/
|
||||||
import { computed, defineAsyncComponent, onUnmounted, ref, watch } from 'vue';
|
import { computed, onUnmounted, ref, watch } from 'vue';
|
||||||
|
|
||||||
import { Settings2, X } from '@vben/icons';
|
import { Settings2, X } from '@vben/icons';
|
||||||
|
|
||||||
@@ -36,25 +36,6 @@ import { useChatApi } from './composables/useChatApi';
|
|||||||
import { useEventHandler } from './composables/useEventHandler';
|
import { useEventHandler } from './composables/useEventHandler';
|
||||||
import LiteDesignPreviewPanel from './LiteDesignPreviewPanel.vue';
|
import LiteDesignPreviewPanel from './LiteDesignPreviewPanel.vue';
|
||||||
|
|
||||||
const AppDesignPanel = defineAsyncComponent(() =>
|
|
||||||
import('#/components/form-editor/AppDesignPanel.vue'),
|
|
||||||
);
|
|
||||||
const AppSettingsPanel = defineAsyncComponent(() =>
|
|
||||||
import('#/components/form-editor/AppSettingsPanel.vue'),
|
|
||||||
);
|
|
||||||
const DashboardBasicInfoConfirmPanel = defineAsyncComponent(() =>
|
|
||||||
import('#/components/form-editor/DashboardBasicInfoConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
const DashboardDesignConfirmPanel = defineAsyncComponent(() =>
|
|
||||||
import('#/components/form-editor/DashboardDesignConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
const DashboardPublishConfirmPanel = defineAsyncComponent(() =>
|
|
||||||
import('#/components/form-editor/DashboardPublishConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
const SystemSummaryConfirmPanel = defineAsyncComponent(() =>
|
|
||||||
import('#/components/form-editor/SystemSummaryConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
|
|
||||||
// ==================== Props ====================
|
// ==================== Props ====================
|
||||||
const props = withDefaults(defineProps<AiChatPanelProps>(), {
|
const props = withDefaults(defineProps<AiChatPanelProps>(), {
|
||||||
mode: 'workflow',
|
mode: 'workflow',
|
||||||
@@ -1026,7 +1007,7 @@ onUnmounted(() => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 应用设计面板 -->
|
<!-- 应用设计面板 -->
|
||||||
<AppDesignPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showAppDesignPanel"
|
v-if="showAppDesignPanel"
|
||||||
:visible="showAppDesignPanel"
|
:visible="showAppDesignPanel"
|
||||||
:design="currentAppDesign as any"
|
:design="currentAppDesign as any"
|
||||||
@@ -1036,27 +1017,27 @@ onUnmounted(() => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 应用设置面板 -->
|
<!-- 应用设置面板 -->
|
||||||
<AppSettingsPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showAppSettingsPanel"
|
v-if="showAppSettingsPanel"
|
||||||
:visible="showAppSettingsPanel"
|
:visible="showAppSettingsPanel"
|
||||||
:settings="currentAppSettings as any"
|
:design="currentAppSettings as any"
|
||||||
@update:visible="showAppSettingsPanel = $event"
|
@update:visible="showAppSettingsPanel = $event"
|
||||||
@confirm="handleAppSettingsConfirm"
|
@confirm="handleAppSettingsConfirm"
|
||||||
@close="handleAppSettingsClose"
|
@close="handleAppSettingsClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 仪表盘基础信息面板 -->
|
<!-- 仪表盘基础信息面板 -->
|
||||||
<DashboardBasicInfoConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardBasicInfoPanel"
|
v-if="showDashboardBasicInfoPanel"
|
||||||
:visible="showDashboardBasicInfoPanel"
|
:visible="showDashboardBasicInfoPanel"
|
||||||
:basic-info="currentDashboardBasicInfo as any"
|
:design="currentDashboardBasicInfo as any"
|
||||||
@update:visible="showDashboardBasicInfoPanel = $event"
|
@update:visible="showDashboardBasicInfoPanel = $event"
|
||||||
@confirm="handleDashboardBasicInfoConfirm"
|
@confirm="handleDashboardBasicInfoConfirm"
|
||||||
@close="handleDashboardBasicInfoClose"
|
@close="handleDashboardBasicInfoClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 仪表盘设计面板 -->
|
<!-- 仪表盘设计面板 -->
|
||||||
<DashboardDesignConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardDesignPanel"
|
v-if="showDashboardDesignPanel"
|
||||||
:visible="showDashboardDesignPanel"
|
:visible="showDashboardDesignPanel"
|
||||||
:design="currentDashboardDesign as any"
|
:design="currentDashboardDesign as any"
|
||||||
@@ -1066,20 +1047,20 @@ onUnmounted(() => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 仪表盘发布面板 -->
|
<!-- 仪表盘发布面板 -->
|
||||||
<DashboardPublishConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardPublishPanel"
|
v-if="showDashboardPublishPanel"
|
||||||
:visible="showDashboardPublishPanel"
|
:visible="showDashboardPublishPanel"
|
||||||
:publish-data="currentDashboardPublish as any"
|
:design="currentDashboardPublish as any"
|
||||||
@update:visible="showDashboardPublishPanel = $event"
|
@update:visible="showDashboardPublishPanel = $event"
|
||||||
@confirm="handleDashboardPublishConfirm"
|
@confirm="handleDashboardPublishConfirm"
|
||||||
@close="handleDashboardPublishClose"
|
@close="handleDashboardPublishClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 系统总结面板 -->
|
<!-- 系统总结面板 -->
|
||||||
<SystemSummaryConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showSystemSummaryPanel"
|
v-if="showSystemSummaryPanel"
|
||||||
:visible="showSystemSummaryPanel"
|
:visible="showSystemSummaryPanel"
|
||||||
:data="currentSystemSummary as any"
|
:design="currentSystemSummary as any"
|
||||||
@update:visible="showSystemSummaryPanel = $event"
|
@update:visible="showSystemSummaryPanel = $event"
|
||||||
@confirm="handleSystemSummaryConfirm"
|
@confirm="handleSystemSummaryConfirm"
|
||||||
@close="handleSystemSummaryClose"
|
@close="handleSystemSummaryClose"
|
||||||
@@ -1097,7 +1078,7 @@ onUnmounted(() => {
|
|||||||
@close="handleDesignClose"
|
@close="handleDesignClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<AppDesignPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showAppDesignPanel"
|
v-if="showAppDesignPanel"
|
||||||
:visible="showAppDesignPanel"
|
:visible="showAppDesignPanel"
|
||||||
:design="currentAppDesign as any"
|
:design="currentAppDesign as any"
|
||||||
@@ -1106,25 +1087,25 @@ onUnmounted(() => {
|
|||||||
@close="handleAppDesignClose"
|
@close="handleAppDesignClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<AppSettingsPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showAppSettingsPanel"
|
v-if="showAppSettingsPanel"
|
||||||
:visible="showAppSettingsPanel"
|
:visible="showAppSettingsPanel"
|
||||||
:settings="currentAppSettings as any"
|
:design="currentAppSettings as any"
|
||||||
@update:visible="showAppSettingsPanel = $event"
|
@update:visible="showAppSettingsPanel = $event"
|
||||||
@confirm="handleAppSettingsConfirm"
|
@confirm="handleAppSettingsConfirm"
|
||||||
@close="handleAppSettingsClose"
|
@close="handleAppSettingsClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<DashboardBasicInfoConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardBasicInfoPanel"
|
v-if="showDashboardBasicInfoPanel"
|
||||||
:visible="showDashboardBasicInfoPanel"
|
:visible="showDashboardBasicInfoPanel"
|
||||||
:basic-info="currentDashboardBasicInfo as any"
|
:design="currentDashboardBasicInfo as any"
|
||||||
@update:visible="showDashboardBasicInfoPanel = $event"
|
@update:visible="showDashboardBasicInfoPanel = $event"
|
||||||
@confirm="handleDashboardBasicInfoConfirm"
|
@confirm="handleDashboardBasicInfoConfirm"
|
||||||
@close="handleDashboardBasicInfoClose"
|
@close="handleDashboardBasicInfoClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<DashboardDesignConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardDesignPanel"
|
v-if="showDashboardDesignPanel"
|
||||||
:visible="showDashboardDesignPanel"
|
:visible="showDashboardDesignPanel"
|
||||||
:design="currentDashboardDesign as any"
|
:design="currentDashboardDesign as any"
|
||||||
@@ -1133,19 +1114,19 @@ onUnmounted(() => {
|
|||||||
@close="handleDashboardDesignClose"
|
@close="handleDashboardDesignClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<DashboardPublishConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardPublishPanel"
|
v-if="showDashboardPublishPanel"
|
||||||
:visible="showDashboardPublishPanel"
|
:visible="showDashboardPublishPanel"
|
||||||
:publish-data="currentDashboardPublish as any"
|
:design="currentDashboardPublish as any"
|
||||||
@update:visible="showDashboardPublishPanel = $event"
|
@update:visible="showDashboardPublishPanel = $event"
|
||||||
@confirm="handleDashboardPublishConfirm"
|
@confirm="handleDashboardPublishConfirm"
|
||||||
@close="handleDashboardPublishClose"
|
@close="handleDashboardPublishClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<SystemSummaryConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showSystemSummaryPanel"
|
v-if="showSystemSummaryPanel"
|
||||||
:visible="showSystemSummaryPanel"
|
:visible="showSystemSummaryPanel"
|
||||||
:data="currentSystemSummary as any"
|
:design="currentSystemSummary as any"
|
||||||
@update:visible="showSystemSummaryPanel = $event"
|
@update:visible="showSystemSummaryPanel = $event"
|
||||||
@confirm="handleSystemSummaryConfirm"
|
@confirm="handleSystemSummaryConfirm"
|
||||||
@close="handleSystemSummaryClose"
|
@close="handleSystemSummaryClose"
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import type { ChatMessage } from '#/components/ChatBox/index';
|
|||||||
*/
|
*/
|
||||||
import {
|
import {
|
||||||
computed,
|
computed,
|
||||||
defineAsyncComponent,
|
|
||||||
nextTick,
|
nextTick,
|
||||||
onUnmounted,
|
onUnmounted,
|
||||||
ref,
|
ref,
|
||||||
@@ -34,9 +33,6 @@ import { ChatBox } from '#/components/ChatBox/index';
|
|||||||
|
|
||||||
import AiWorkingAnimation from '../../../../components/ai-loading/AiWorkingAnimation.vue';
|
import AiWorkingAnimation from '../../../../components/ai-loading/AiWorkingAnimation.vue';
|
||||||
|
|
||||||
const AppDesignPanel = defineAsyncComponent(
|
|
||||||
() => import('#/components/form-editor/AppDesignPanel.vue'),
|
|
||||||
);
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
/** Agent 详情(可选,用于显示名称和欢迎配置) */
|
/** Agent 详情(可选,用于显示名称和欢迎配置) */
|
||||||
agent?: Agent | null;
|
agent?: Agent | null;
|
||||||
@@ -503,7 +499,7 @@ function handleStreamEvent(
|
|||||||
if (configData?.type === 'design_preview') {
|
if (configData?.type === 'design_preview') {
|
||||||
const previewType = configData.preview_type;
|
const previewType = configData.preview_type;
|
||||||
|
|
||||||
// 应用设计方案使用 AppDesignPanel(富文本编辑器)
|
// 应用设计方案使用轻量预览面板
|
||||||
if (previewType === 'app_design') {
|
if (previewType === 'app_design') {
|
||||||
currentAppDesign.value = {
|
currentAppDesign.value = {
|
||||||
type: previewType,
|
type: previewType,
|
||||||
@@ -924,7 +920,7 @@ onUnmounted(() => {
|
|||||||
v-if="showAppDesignPanel && currentAppDesign"
|
v-if="showAppDesignPanel && currentAppDesign"
|
||||||
class="flex flex-1 flex-col overflow-hidden"
|
class="flex flex-1 flex-col overflow-hidden"
|
||||||
>
|
>
|
||||||
<AppDesignPanel
|
<LiteDesignPreviewPanel
|
||||||
:visible="showAppDesignPanel"
|
:visible="showAppDesignPanel"
|
||||||
:design="currentAppDesign as any"
|
:design="currentAppDesign as any"
|
||||||
@update:visible="showAppDesignPanel = $event"
|
@update:visible="showAppDesignPanel = $event"
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { WorkflowStreamEvent } from '#/api/ai-platform/ai-platform';
|
import type { WorkflowStreamEvent } from '#/api/ai-platform/ai-platform';
|
||||||
|
import type { DesignPreviewData } from '#/components/ai-chat-panel/types';
|
||||||
import type { ChatMessage, ReasoningStep } from '#/components/ChatBox/index';
|
import type { ChatMessage, ReasoningStep } from '#/components/ChatBox/index';
|
||||||
import type {
|
|
||||||
AppDesignData,
|
|
||||||
AppSettingsData,
|
|
||||||
DashboardBasicInfoData,
|
|
||||||
DashboardDesignData,
|
|
||||||
DashboardPublishData,
|
|
||||||
DesignData,
|
|
||||||
SystemSummaryData,
|
|
||||||
} from '#/components/form-editor';
|
|
||||||
|
|
||||||
import { computed, defineAsyncComponent, onUnmounted, ref, watch } from 'vue';
|
import { computed, onUnmounted, ref, watch } from 'vue';
|
||||||
|
|
||||||
import { Settings2, X } from '@vben/icons';
|
import { Settings2, X } from '@vben/icons';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
@@ -31,24 +23,14 @@ import {
|
|||||||
} from '#/api/ai-platform/ai-platform';
|
} from '#/api/ai-platform/ai-platform';
|
||||||
import LiteDesignPreviewPanel from '#/components/ai-chat-panel/LiteDesignPreviewPanel.vue';
|
import LiteDesignPreviewPanel from '#/components/ai-chat-panel/LiteDesignPreviewPanel.vue';
|
||||||
import { ChatBox } from '#/components/ChatBox/index';
|
import { ChatBox } from '#/components/ChatBox/index';
|
||||||
const AppDesignPanel = defineAsyncComponent(
|
|
||||||
() => import('#/components/form-editor/AppDesignPanel.vue'),
|
type DesignData = DesignPreviewData;
|
||||||
);
|
type AppDesignData = DesignPreviewData;
|
||||||
const AppSettingsPanel = defineAsyncComponent(
|
type AppSettingsData = DesignPreviewData;
|
||||||
() => import('#/components/form-editor/AppSettingsPanel.vue'),
|
type DashboardBasicInfoData = DesignPreviewData;
|
||||||
);
|
type DashboardDesignData = DesignPreviewData;
|
||||||
const DashboardBasicInfoConfirmPanel = defineAsyncComponent(
|
type DashboardPublishData = DesignPreviewData;
|
||||||
() => import('#/components/form-editor/DashboardBasicInfoConfirmPanel.vue'),
|
type SystemSummaryData = DesignPreviewData;
|
||||||
);
|
|
||||||
const DashboardDesignConfirmPanel = defineAsyncComponent(
|
|
||||||
() => import('#/components/form-editor/DashboardDesignConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
const DashboardPublishConfirmPanel = defineAsyncComponent(
|
|
||||||
() => import('#/components/form-editor/DashboardPublishConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
const SystemSummaryConfirmPanel = defineAsyncComponent(
|
|
||||||
() => import('#/components/form-editor/SystemSummaryConfirmPanel.vue'),
|
|
||||||
);
|
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
nodes: any[];
|
nodes: any[];
|
||||||
@@ -1269,7 +1251,7 @@ onUnmounted(() => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 应用设计面板 -->
|
<!-- 应用设计面板 -->
|
||||||
<AppDesignPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showAppDesignPanel"
|
v-if="showAppDesignPanel"
|
||||||
:visible="showAppDesignPanel"
|
:visible="showAppDesignPanel"
|
||||||
:design="currentAppDesign"
|
:design="currentAppDesign"
|
||||||
@@ -1279,27 +1261,27 @@ onUnmounted(() => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 应用设置面板 -->
|
<!-- 应用设置面板 -->
|
||||||
<AppSettingsPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showAppSettingsPanel"
|
v-if="showAppSettingsPanel"
|
||||||
:visible="showAppSettingsPanel"
|
:visible="showAppSettingsPanel"
|
||||||
:settings="currentAppSettings"
|
:design="currentAppSettings"
|
||||||
@update:visible="showAppSettingsPanel = $event"
|
@update:visible="showAppSettingsPanel = $event"
|
||||||
@confirm="handleAppSettingsConfirm"
|
@confirm="handleAppSettingsConfirm"
|
||||||
@close="handleAppSettingsClose"
|
@close="handleAppSettingsClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 仪表盘基础信息面板 -->
|
<!-- 仪表盘基础信息面板 -->
|
||||||
<DashboardBasicInfoConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardBasicInfoPanel"
|
v-if="showDashboardBasicInfoPanel"
|
||||||
:visible="showDashboardBasicInfoPanel"
|
:visible="showDashboardBasicInfoPanel"
|
||||||
:basic-info="currentDashboardBasicInfo"
|
:design="currentDashboardBasicInfo"
|
||||||
@update:visible="showDashboardBasicInfoPanel = $event"
|
@update:visible="showDashboardBasicInfoPanel = $event"
|
||||||
@confirm="handleDashboardBasicInfoConfirm"
|
@confirm="handleDashboardBasicInfoConfirm"
|
||||||
@close="handleDashboardBasicInfoClose"
|
@close="handleDashboardBasicInfoClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 仪表盘设计面板 -->
|
<!-- 仪表盘设计面板 -->
|
||||||
<DashboardDesignConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardDesignPanel"
|
v-if="showDashboardDesignPanel"
|
||||||
:visible="showDashboardDesignPanel"
|
:visible="showDashboardDesignPanel"
|
||||||
:design="currentDashboardDesign"
|
:design="currentDashboardDesign"
|
||||||
@@ -1309,20 +1291,20 @@ onUnmounted(() => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 仪表盘发布面板 -->
|
<!-- 仪表盘发布面板 -->
|
||||||
<DashboardPublishConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showDashboardPublishPanel"
|
v-if="showDashboardPublishPanel"
|
||||||
:visible="showDashboardPublishPanel"
|
:visible="showDashboardPublishPanel"
|
||||||
:publish-data="currentDashboardPublish"
|
:design="currentDashboardPublish"
|
||||||
@update:visible="showDashboardPublishPanel = $event"
|
@update:visible="showDashboardPublishPanel = $event"
|
||||||
@confirm="handleDashboardPublishConfirm"
|
@confirm="handleDashboardPublishConfirm"
|
||||||
@close="handleDashboardPublishClose"
|
@close="handleDashboardPublishClose"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 系统总结面板 -->
|
<!-- 系统总结面板 -->
|
||||||
<SystemSummaryConfirmPanel
|
<LiteDesignPreviewPanel
|
||||||
v-if="showSystemSummaryPanel"
|
v-if="showSystemSummaryPanel"
|
||||||
:visible="showSystemSummaryPanel"
|
:visible="showSystemSummaryPanel"
|
||||||
:data="currentSystemSummary"
|
:design="currentSystemSummary"
|
||||||
@update:visible="showSystemSummaryPanel = $event"
|
@update:visible="showSystemSummaryPanel = $event"
|
||||||
@confirm="handleSystemSummaryConfirm"
|
@confirm="handleSystemSummaryConfirm"
|
||||||
@close="handleSystemSummaryClose"
|
@close="handleSystemSummaryClose"
|
||||||
|
|||||||
@@ -54,53 +54,69 @@ const components: Record<string, any> = {
|
|||||||
),
|
),
|
||||||
// 循环节点
|
// 循环节点
|
||||||
loop: defineAsyncComponent(() => import('../panels/LoopPanel.vue')),
|
loop: defineAsyncComponent(() => import('../panels/LoopPanel.vue')),
|
||||||
// 表单节点
|
// 轻量版兼容旧工作流中的在线开发节点,不再加载原表单/应用/仪表盘配置面板
|
||||||
form_basic_info: defineAsyncComponent(
|
form_basic_info: defineAsyncComponent(
|
||||||
() => import('../panels/FormBasicInfoPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
form_database_design: defineAsyncComponent(
|
form_database_design: defineAsyncComponent(
|
||||||
() => import('../panels/FormDatabaseDesignPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
form_database_create: defineAsyncComponent(
|
form_database_create: defineAsyncComponent(
|
||||||
() => import('../panels/FormDatabaseCreatePanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
form_ui_design: defineAsyncComponent(
|
form_ui_design: defineAsyncComponent(
|
||||||
() => import('../panels/FormUIDesignPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
form_list_design: defineAsyncComponent(
|
form_list_design: defineAsyncComponent(
|
||||||
() => import('../panels/FormListDesignPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
form_create: defineAsyncComponent(
|
form_create: defineAsyncComponent(
|
||||||
() => import('../panels/FormCreatePanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
form_publish: defineAsyncComponent(
|
form_publish: defineAsyncComponent(
|
||||||
() => import('../panels/FormPublishPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
|
),
|
||||||
|
form_data_create: defineAsyncComponent(
|
||||||
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
|
),
|
||||||
|
form_data_read: defineAsyncComponent(
|
||||||
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
|
),
|
||||||
|
form_data_update: defineAsyncComponent(
|
||||||
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
|
),
|
||||||
|
form_data_delete: defineAsyncComponent(
|
||||||
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
|
),
|
||||||
|
form_data_list: defineAsyncComponent(
|
||||||
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
|
),
|
||||||
|
form_schema_to_llm: defineAsyncComponent(
|
||||||
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
// 应用节点
|
|
||||||
app_create: defineAsyncComponent(
|
app_create: defineAsyncComponent(
|
||||||
() => import('../panels/AppCreatePanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
app_design: defineAsyncComponent(
|
app_design: defineAsyncComponent(
|
||||||
() => import('../panels/AppDesignPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
app_settings: defineAsyncComponent(
|
app_settings: defineAsyncComponent(
|
||||||
() => import('../panels/AppSettingsPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
app_update: defineAsyncComponent(
|
app_update: defineAsyncComponent(
|
||||||
() => import('../panels/AppUpdatePanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
// 仪表盘节点
|
|
||||||
dashboard_basic_info: defineAsyncComponent(
|
dashboard_basic_info: defineAsyncComponent(
|
||||||
() => import('../panels/DashboardBasicInfoPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
dashboard_design: defineAsyncComponent(
|
dashboard_design: defineAsyncComponent(
|
||||||
() => import('../panels/DashboardDesignPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
dashboard_create: defineAsyncComponent(
|
dashboard_create: defineAsyncComponent(
|
||||||
() => import('../panels/DashboardCreatePanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
dashboard_publish: defineAsyncComponent(
|
dashboard_publish: defineAsyncComponent(
|
||||||
() => import('../panels/DashboardPublishPanel.vue'),
|
() => import('../panels/PrunedNodePanel.vue'),
|
||||||
),
|
),
|
||||||
// 系统总结节点
|
// 系统总结节点
|
||||||
system_summary: defineAsyncComponent(
|
system_summary: defineAsyncComponent(
|
||||||
@@ -108,25 +124,6 @@ const components: Record<string, any> = {
|
|||||||
),
|
),
|
||||||
// 子流程节点
|
// 子流程节点
|
||||||
subflow: defineAsyncComponent(() => import('../panels/SubflowPanel.vue')),
|
subflow: defineAsyncComponent(() => import('../panels/SubflowPanel.vue')),
|
||||||
// 表单数据节点
|
|
||||||
form_data_create: defineAsyncComponent(
|
|
||||||
() => import('../panels/FormDataPanel.vue'),
|
|
||||||
),
|
|
||||||
form_data_read: defineAsyncComponent(
|
|
||||||
() => import('../panels/FormDataPanel.vue'),
|
|
||||||
),
|
|
||||||
form_data_update: defineAsyncComponent(
|
|
||||||
() => import('../panels/FormDataPanel.vue'),
|
|
||||||
),
|
|
||||||
form_data_delete: defineAsyncComponent(
|
|
||||||
() => import('../panels/FormDataPanel.vue'),
|
|
||||||
),
|
|
||||||
form_data_list: defineAsyncComponent(
|
|
||||||
() => import('../panels/FormDataPanel.vue'),
|
|
||||||
),
|
|
||||||
form_schema_to_llm: defineAsyncComponent(
|
|
||||||
() => import('../panels/FormDataPanel.vue'),
|
|
||||||
),
|
|
||||||
// Text-to-SQL 节点
|
// Text-to-SQL 节点
|
||||||
text_to_sql: defineAsyncComponent(
|
text_to_sql: defineAsyncComponent(
|
||||||
() => import('../panels/TextToSqlPanel.vue'),
|
() => import('../panels/TextToSqlPanel.vue'),
|
||||||
|
|||||||
@@ -27,17 +27,13 @@ import {
|
|||||||
Database,
|
Database,
|
||||||
DatabaseBackup,
|
DatabaseBackup,
|
||||||
DatabaseZap,
|
DatabaseZap,
|
||||||
FilePlus,
|
|
||||||
FileText,
|
|
||||||
Fullscreen,
|
Fullscreen,
|
||||||
GitBranch,
|
GitBranch,
|
||||||
GitFork,
|
GitFork,
|
||||||
Globe,
|
Globe,
|
||||||
HelpCircle,
|
HelpCircle,
|
||||||
LayoutDashboard,
|
|
||||||
LayoutTemplate,
|
LayoutTemplate,
|
||||||
ListChecks,
|
ListChecks,
|
||||||
Map,
|
|
||||||
MessageSquareMore,
|
MessageSquareMore,
|
||||||
MessageSquareText,
|
MessageSquareText,
|
||||||
Minus,
|
Minus,
|
||||||
@@ -47,14 +43,10 @@ import {
|
|||||||
RefreshCw,
|
RefreshCw,
|
||||||
Save,
|
Save,
|
||||||
Search,
|
Search,
|
||||||
Send,
|
|
||||||
Settings,
|
|
||||||
Snowflake,
|
Snowflake,
|
||||||
Square,
|
Square,
|
||||||
TableProperties,
|
|
||||||
Trash2,
|
Trash2,
|
||||||
Undo2,
|
Undo2,
|
||||||
Upload,
|
|
||||||
Workflow,
|
Workflow,
|
||||||
} from '@vben/icons';
|
} from '@vben/icons';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
@@ -84,32 +76,16 @@ import ContextMenu from './components/ContextMenu.vue';
|
|||||||
import Panel from './components/Panel.vue';
|
import Panel from './components/Panel.vue';
|
||||||
import VersionHistoryPanel from './components/VersionHistoryPanel.vue';
|
import VersionHistoryPanel from './components/VersionHistoryPanel.vue';
|
||||||
import AddButtonEdge from './edges/AddButtonEdge.vue';
|
import AddButtonEdge from './edges/AddButtonEdge.vue';
|
||||||
import AppCreateNode from './nodes/AppCreateNode.vue';
|
|
||||||
import AppDesignNode from './nodes/AppDesignNode.vue';
|
|
||||||
import AppSettingsNode from './nodes/AppSettingsNode.vue';
|
|
||||||
import AppUpdateNode from './nodes/AppUpdateNode.vue';
|
|
||||||
import ChoiceNode from './nodes/ChoiceNode.vue';
|
import ChoiceNode from './nodes/ChoiceNode.vue';
|
||||||
import CodeNode from './nodes/CodeNode.vue';
|
import CodeNode from './nodes/CodeNode.vue';
|
||||||
import ConditionNode from './nodes/ConditionNode.vue';
|
import ConditionNode from './nodes/ConditionNode.vue';
|
||||||
import ConfirmNode from './nodes/ConfirmNode.vue';
|
import ConfirmNode from './nodes/ConfirmNode.vue';
|
||||||
import DashboardBasicInfoNode from './nodes/DashboardBasicInfoNode.vue';
|
|
||||||
import DashboardCreateNode from './nodes/DashboardCreateNode.vue';
|
|
||||||
import DashboardDesignNode from './nodes/DashboardDesignNode.vue';
|
|
||||||
import DashboardPublishNode from './nodes/DashboardPublishNode.vue';
|
|
||||||
import DbDeleteNode from './nodes/DbDeleteNode.vue';
|
import DbDeleteNode from './nodes/DbDeleteNode.vue';
|
||||||
import DbInsertNode from './nodes/DbInsertNode.vue';
|
import DbInsertNode from './nodes/DbInsertNode.vue';
|
||||||
import DbQueryNode from './nodes/DbQueryNode.vue';
|
import DbQueryNode from './nodes/DbQueryNode.vue';
|
||||||
import DbSqlNode from './nodes/DbSqlNode.vue';
|
import DbSqlNode from './nodes/DbSqlNode.vue';
|
||||||
import DbUpdateNode from './nodes/DbUpdateNode.vue';
|
import DbUpdateNode from './nodes/DbUpdateNode.vue';
|
||||||
import EndNode from './nodes/EndNode.vue';
|
import EndNode from './nodes/EndNode.vue';
|
||||||
import FormBasicInfoNode from './nodes/FormBasicInfoNode.vue';
|
|
||||||
import FormCreateNode from './nodes/FormCreateNode.vue';
|
|
||||||
import FormDatabaseCreateNode from './nodes/FormDatabaseCreateNode.vue';
|
|
||||||
import FormDatabaseDesignNode from './nodes/FormDatabaseDesignNode.vue';
|
|
||||||
import FormDataNode from './nodes/FormDataNode.vue';
|
|
||||||
import FormListDesignNode from './nodes/FormListDesignNode.vue';
|
|
||||||
import FormPublishNode from './nodes/FormPublishNode.vue';
|
|
||||||
import FormUIDesignNode from './nodes/FormUIDesignNode.vue';
|
|
||||||
import HttpNode from './nodes/HttpNode.vue';
|
import HttpNode from './nodes/HttpNode.vue';
|
||||||
import IntentNode from './nodes/IntentNode.vue';
|
import IntentNode from './nodes/IntentNode.vue';
|
||||||
import KnowledgeRetrievalNode from './nodes/KnowledgeRetrievalNode.vue';
|
import KnowledgeRetrievalNode from './nodes/KnowledgeRetrievalNode.vue';
|
||||||
@@ -118,6 +94,7 @@ import LoopNode from './nodes/LoopNode.vue';
|
|||||||
import MergeNode from './nodes/MergeNode.vue';
|
import MergeNode from './nodes/MergeNode.vue';
|
||||||
import MessageNode from './nodes/MessageNode.vue';
|
import MessageNode from './nodes/MessageNode.vue';
|
||||||
import ParallelNode from './nodes/ParallelNode.vue';
|
import ParallelNode from './nodes/ParallelNode.vue';
|
||||||
|
import PrunedNode from './nodes/PrunedNode.vue';
|
||||||
import QuestionNode from './nodes/QuestionNode.vue';
|
import QuestionNode from './nodes/QuestionNode.vue';
|
||||||
import SnowflakeCortexAnalystNode from './nodes/SnowflakeCortexAnalystNode.vue';
|
import SnowflakeCortexAnalystNode from './nodes/SnowflakeCortexAnalystNode.vue';
|
||||||
import SnowflakeCortexLLMNode from './nodes/SnowflakeCortexLLMNode.vue';
|
import SnowflakeCortexLLMNode from './nodes/SnowflakeCortexLLMNode.vue';
|
||||||
@@ -184,35 +161,33 @@ const nodeTypes = {
|
|||||||
snowflake_cortex_analyst: markRaw(SnowflakeCortexAnalystNode),
|
snowflake_cortex_analyst: markRaw(SnowflakeCortexAnalystNode),
|
||||||
// 循环节点
|
// 循环节点
|
||||||
loop: markRaw(LoopNode),
|
loop: markRaw(LoopNode),
|
||||||
// 表单节点
|
// 轻量版兼容旧工作流中的在线开发节点,不再加载原表单/应用/仪表盘组件
|
||||||
form_basic_info: markRaw(FormBasicInfoNode),
|
form_basic_info: markRaw(PrunedNode),
|
||||||
form_database_design: markRaw(FormDatabaseDesignNode),
|
form_database_design: markRaw(PrunedNode),
|
||||||
form_database_create: markRaw(FormDatabaseCreateNode),
|
form_database_create: markRaw(PrunedNode),
|
||||||
form_ui_design: markRaw(FormUIDesignNode),
|
form_ui_design: markRaw(PrunedNode),
|
||||||
form_list_design: markRaw(FormListDesignNode),
|
form_list_design: markRaw(PrunedNode),
|
||||||
form_create: markRaw(FormCreateNode),
|
form_create: markRaw(PrunedNode),
|
||||||
form_publish: markRaw(FormPublishNode),
|
form_publish: markRaw(PrunedNode),
|
||||||
// 应用管理节点
|
app_create: markRaw(PrunedNode),
|
||||||
app_create: markRaw(AppCreateNode),
|
app_design: markRaw(PrunedNode),
|
||||||
app_design: markRaw(AppDesignNode),
|
app_settings: markRaw(PrunedNode),
|
||||||
app_settings: markRaw(AppSettingsNode),
|
app_update: markRaw(PrunedNode),
|
||||||
app_update: markRaw(AppUpdateNode),
|
dashboard_basic_info: markRaw(PrunedNode),
|
||||||
// 仪表盘节点
|
dashboard_design: markRaw(PrunedNode),
|
||||||
dashboard_basic_info: markRaw(DashboardBasicInfoNode),
|
dashboard_create: markRaw(PrunedNode),
|
||||||
dashboard_design: markRaw(DashboardDesignNode),
|
dashboard_publish: markRaw(PrunedNode),
|
||||||
dashboard_create: markRaw(DashboardCreateNode),
|
|
||||||
dashboard_publish: markRaw(DashboardPublishNode),
|
|
||||||
// 系统总结节点
|
// 系统总结节点
|
||||||
system_summary: markRaw(SystemSummaryNode),
|
system_summary: markRaw(SystemSummaryNode),
|
||||||
// 子流程节点
|
// 子流程节点
|
||||||
subflow: markRaw(SubflowNode),
|
subflow: markRaw(SubflowNode),
|
||||||
// 表单数据节点
|
// 表单数据节点在轻量版中仅保留旧工作流渲染兼容
|
||||||
form_data_create: markRaw(FormDataNode),
|
form_data_create: markRaw(PrunedNode),
|
||||||
form_data_read: markRaw(FormDataNode),
|
form_data_read: markRaw(PrunedNode),
|
||||||
form_data_update: markRaw(FormDataNode),
|
form_data_update: markRaw(PrunedNode),
|
||||||
form_data_delete: markRaw(FormDataNode),
|
form_data_delete: markRaw(PrunedNode),
|
||||||
form_data_list: markRaw(FormDataNode),
|
form_data_list: markRaw(PrunedNode),
|
||||||
form_schema_to_llm: markRaw(FormDataNode),
|
form_schema_to_llm: markRaw(PrunedNode),
|
||||||
// Text-to-SQL 节点
|
// Text-to-SQL 节点
|
||||||
text_to_sql: markRaw(TextToSqlNode),
|
text_to_sql: markRaw(TextToSqlNode),
|
||||||
// 知识库节点
|
// 知识库节点
|
||||||
@@ -390,94 +365,6 @@ const nodeCategories = computed(() => [
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: $t('ai-platform.workflow.editor.categories.formDesign'),
|
|
||||||
nodes: [
|
|
||||||
{
|
|
||||||
type: 'form_basic_info',
|
|
||||||
label: getNodeLabel('form_basic_info'),
|
|
||||||
icon: 'FileText',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_database_design',
|
|
||||||
label: getNodeLabel('form_database_design'),
|
|
||||||
icon: 'Database',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_database_create',
|
|
||||||
label: getNodeLabel('form_database_create'),
|
|
||||||
icon: 'DatabaseZap',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_ui_design',
|
|
||||||
label: getNodeLabel('form_ui_design'),
|
|
||||||
icon: 'LayoutTemplate',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_list_design',
|
|
||||||
label: getNodeLabel('form_list_design'),
|
|
||||||
icon: 'TableProperties',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_create',
|
|
||||||
label: getNodeLabel('form_create'),
|
|
||||||
icon: 'FilePlus',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_publish',
|
|
||||||
label: getNodeLabel('form_publish'),
|
|
||||||
icon: 'Send',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: $t('ai-platform.workflow.editor.categories.formData'),
|
|
||||||
nodes: [
|
|
||||||
{
|
|
||||||
type: 'form_data_create',
|
|
||||||
label: getNodeLabel('form_data_create'),
|
|
||||||
icon: 'FilePlus',
|
|
||||||
color: 'green',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_data_read',
|
|
||||||
label: getNodeLabel('form_data_read'),
|
|
||||||
icon: 'FileText',
|
|
||||||
color: 'blue',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_data_update',
|
|
||||||
label: getNodeLabel('form_data_update'),
|
|
||||||
icon: 'FileText',
|
|
||||||
color: 'orange',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_data_delete',
|
|
||||||
label: getNodeLabel('form_data_delete'),
|
|
||||||
icon: 'Trash2',
|
|
||||||
color: 'red',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_data_list',
|
|
||||||
label: getNodeLabel('form_data_list'),
|
|
||||||
icon: 'Search',
|
|
||||||
color: 'blue',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'form_schema_to_llm',
|
|
||||||
label: getNodeLabel('form_schema_to_llm'),
|
|
||||||
icon: 'Code',
|
|
||||||
color: 'purple',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: $t('ai-platform.workflow.editor.categories.dialog'),
|
name: $t('ai-platform.workflow.editor.categories.dialog'),
|
||||||
nodes: [
|
nodes: [
|
||||||
@@ -587,6 +474,12 @@ const nodeCategories = computed(() => [
|
|||||||
icon: 'Workflow',
|
icon: 'Workflow',
|
||||||
color: 'purple',
|
color: 'purple',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'system_summary',
|
||||||
|
label: getNodeLabel('system_summary'),
|
||||||
|
icon: 'ClipboardCheck',
|
||||||
|
color: 'purple',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'end',
|
type: 'end',
|
||||||
label: getNodeLabel('end'),
|
label: getNodeLabel('end'),
|
||||||
@@ -612,72 +505,6 @@ const nodeCategories = computed(() => [
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: $t('ai-platform.workflow.editor.categories.appManage'),
|
|
||||||
nodes: [
|
|
||||||
{
|
|
||||||
type: 'app_create',
|
|
||||||
label: getNodeLabel('app_create'),
|
|
||||||
icon: 'LayoutTemplate',
|
|
||||||
color: 'indigo',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'app_design',
|
|
||||||
label: getNodeLabel('app_design'),
|
|
||||||
icon: 'LayoutDashboard',
|
|
||||||
color: 'indigo',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'app_settings',
|
|
||||||
label: getNodeLabel('app_settings'),
|
|
||||||
icon: 'Settings',
|
|
||||||
color: 'indigo',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'app_update',
|
|
||||||
label: getNodeLabel('app_update'),
|
|
||||||
icon: 'Save',
|
|
||||||
color: 'indigo',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: $t('ai-platform.workflow.editor.categories.dashboard'),
|
|
||||||
icon: 'LayoutDashboard',
|
|
||||||
color: 'cyan',
|
|
||||||
nodes: [
|
|
||||||
{
|
|
||||||
type: 'dashboard_basic_info',
|
|
||||||
label: getNodeLabel('dashboard_basic_info'),
|
|
||||||
icon: 'FileText',
|
|
||||||
color: 'cyan',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'dashboard_design',
|
|
||||||
label: getNodeLabel('dashboard_design'),
|
|
||||||
icon: 'LayoutDashboard',
|
|
||||||
color: 'cyan',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'dashboard_create',
|
|
||||||
label: getNodeLabel('dashboard_create'),
|
|
||||||
icon: 'FilePlus',
|
|
||||||
color: 'cyan',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'dashboard_publish',
|
|
||||||
label: getNodeLabel('dashboard_publish'),
|
|
||||||
icon: 'Upload',
|
|
||||||
color: 'cyan',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'system_summary',
|
|
||||||
label: getNodeLabel('system_summary'),
|
|
||||||
icon: 'ClipboardCheck',
|
|
||||||
color: 'cyan',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: $t('ai-platform.workflow.editor.categories.knowledge'),
|
name: $t('ai-platform.workflow.editor.categories.knowledge'),
|
||||||
nodes: [
|
nodes: [
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { EyeOff } from '@vben/icons';
|
||||||
|
|
||||||
|
import BaseNode from './BaseNode.vue';
|
||||||
|
|
||||||
|
defineProps<{
|
||||||
|
data: any;
|
||||||
|
id: string;
|
||||||
|
selected?: boolean;
|
||||||
|
type: string;
|
||||||
|
}>();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<BaseNode
|
||||||
|
:node-id="id"
|
||||||
|
:selected="selected"
|
||||||
|
:label="data.label || type"
|
||||||
|
:node-type="type"
|
||||||
|
>
|
||||||
|
<template #icon><EyeOff class="size-5" /></template>
|
||||||
|
<template #desc>轻量版已隐藏该在线开发节点</template>
|
||||||
|
</BaseNode>
|
||||||
|
</template>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { computed } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
data?: Record<string, any>;
|
||||||
|
nodeType?: string;
|
||||||
|
}>();
|
||||||
|
|
||||||
|
const configJson = computed(() =>
|
||||||
|
JSON.stringify(props.data || {}, null, 2),
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="space-y-3">
|
||||||
|
<div class="text-muted-foreground text-sm">
|
||||||
|
该节点属于在线开发能力,当前轻量版只保留历史查看和运行兼容。
|
||||||
|
</div>
|
||||||
|
<pre
|
||||||
|
class="bg-muted/50 border-border max-h-[480px] overflow-auto rounded border p-3 text-xs leading-relaxed"
|
||||||
|
>{{ configJson }}</pre>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
@@ -1,32 +1,16 @@
|
|||||||
import { markRaw } from 'vue';
|
import { markRaw } from 'vue';
|
||||||
|
|
||||||
import AddButtonEdge from '../editor/edges/AddButtonEdge.vue';
|
import AddButtonEdge from '../editor/edges/AddButtonEdge.vue';
|
||||||
import AppCreateNode from '../editor/nodes/AppCreateNode.vue';
|
|
||||||
import AppDesignNode from '../editor/nodes/AppDesignNode.vue';
|
|
||||||
import AppSettingsNode from '../editor/nodes/AppSettingsNode.vue';
|
|
||||||
import AppUpdateNode from '../editor/nodes/AppUpdateNode.vue';
|
|
||||||
import ChoiceNode from '../editor/nodes/ChoiceNode.vue';
|
import ChoiceNode from '../editor/nodes/ChoiceNode.vue';
|
||||||
import CodeNode from '../editor/nodes/CodeNode.vue';
|
import CodeNode from '../editor/nodes/CodeNode.vue';
|
||||||
import ConditionNode from '../editor/nodes/ConditionNode.vue';
|
import ConditionNode from '../editor/nodes/ConditionNode.vue';
|
||||||
import ConfirmNode from '../editor/nodes/ConfirmNode.vue';
|
import ConfirmNode from '../editor/nodes/ConfirmNode.vue';
|
||||||
import DashboardBasicInfoNode from '../editor/nodes/DashboardBasicInfoNode.vue';
|
|
||||||
import DashboardCreateNode from '../editor/nodes/DashboardCreateNode.vue';
|
|
||||||
import DashboardDesignNode from '../editor/nodes/DashboardDesignNode.vue';
|
|
||||||
import DashboardPublishNode from '../editor/nodes/DashboardPublishNode.vue';
|
|
||||||
import DbDeleteNode from '../editor/nodes/DbDeleteNode.vue';
|
import DbDeleteNode from '../editor/nodes/DbDeleteNode.vue';
|
||||||
import DbInsertNode from '../editor/nodes/DbInsertNode.vue';
|
import DbInsertNode from '../editor/nodes/DbInsertNode.vue';
|
||||||
import DbQueryNode from '../editor/nodes/DbQueryNode.vue';
|
import DbQueryNode from '../editor/nodes/DbQueryNode.vue';
|
||||||
import DbSqlNode from '../editor/nodes/DbSqlNode.vue';
|
import DbSqlNode from '../editor/nodes/DbSqlNode.vue';
|
||||||
import DbUpdateNode from '../editor/nodes/DbUpdateNode.vue';
|
import DbUpdateNode from '../editor/nodes/DbUpdateNode.vue';
|
||||||
import EndNode from '../editor/nodes/EndNode.vue';
|
import EndNode from '../editor/nodes/EndNode.vue';
|
||||||
import FormBasicInfoNode from '../editor/nodes/FormBasicInfoNode.vue';
|
|
||||||
import FormCreateNode from '../editor/nodes/FormCreateNode.vue';
|
|
||||||
import FormDatabaseCreateNode from '../editor/nodes/FormDatabaseCreateNode.vue';
|
|
||||||
import FormDatabaseDesignNode from '../editor/nodes/FormDatabaseDesignNode.vue';
|
|
||||||
import FormDataNode from '../editor/nodes/FormDataNode.vue';
|
|
||||||
import FormListDesignNode from '../editor/nodes/FormListDesignNode.vue';
|
|
||||||
import FormPublishNode from '../editor/nodes/FormPublishNode.vue';
|
|
||||||
import FormUIDesignNode from '../editor/nodes/FormUIDesignNode.vue';
|
|
||||||
import HttpNode from '../editor/nodes/HttpNode.vue';
|
import HttpNode from '../editor/nodes/HttpNode.vue';
|
||||||
import IntentNode from '../editor/nodes/IntentNode.vue';
|
import IntentNode from '../editor/nodes/IntentNode.vue';
|
||||||
import KnowledgeRetrievalNode from '../editor/nodes/KnowledgeRetrievalNode.vue';
|
import KnowledgeRetrievalNode from '../editor/nodes/KnowledgeRetrievalNode.vue';
|
||||||
@@ -35,6 +19,7 @@ import LoopNode from '../editor/nodes/LoopNode.vue';
|
|||||||
import MergeNode from '../editor/nodes/MergeNode.vue';
|
import MergeNode from '../editor/nodes/MergeNode.vue';
|
||||||
import MessageNode from '../editor/nodes/MessageNode.vue';
|
import MessageNode from '../editor/nodes/MessageNode.vue';
|
||||||
import ParallelNode from '../editor/nodes/ParallelNode.vue';
|
import ParallelNode from '../editor/nodes/ParallelNode.vue';
|
||||||
|
import PrunedNode from '../editor/nodes/PrunedNode.vue';
|
||||||
import QuestionNode from '../editor/nodes/QuestionNode.vue';
|
import QuestionNode from '../editor/nodes/QuestionNode.vue';
|
||||||
import SnowflakeCortexAnalystNode from '../editor/nodes/SnowflakeCortexAnalystNode.vue';
|
import SnowflakeCortexAnalystNode from '../editor/nodes/SnowflakeCortexAnalystNode.vue';
|
||||||
import SnowflakeCortexLLMNode from '../editor/nodes/SnowflakeCortexLLMNode.vue';
|
import SnowflakeCortexLLMNode from '../editor/nodes/SnowflakeCortexLLMNode.vue';
|
||||||
@@ -67,29 +52,29 @@ export const workflowNodeTypes = {
|
|||||||
snowflake_cortex_llm: markRaw(SnowflakeCortexLLMNode),
|
snowflake_cortex_llm: markRaw(SnowflakeCortexLLMNode),
|
||||||
snowflake_cortex_analyst: markRaw(SnowflakeCortexAnalystNode),
|
snowflake_cortex_analyst: markRaw(SnowflakeCortexAnalystNode),
|
||||||
loop: markRaw(LoopNode),
|
loop: markRaw(LoopNode),
|
||||||
form_basic_info: markRaw(FormBasicInfoNode),
|
form_basic_info: markRaw(PrunedNode),
|
||||||
form_database_design: markRaw(FormDatabaseDesignNode),
|
form_database_design: markRaw(PrunedNode),
|
||||||
form_database_create: markRaw(FormDatabaseCreateNode),
|
form_database_create: markRaw(PrunedNode),
|
||||||
form_ui_design: markRaw(FormUIDesignNode),
|
form_ui_design: markRaw(PrunedNode),
|
||||||
form_list_design: markRaw(FormListDesignNode),
|
form_list_design: markRaw(PrunedNode),
|
||||||
form_create: markRaw(FormCreateNode),
|
form_create: markRaw(PrunedNode),
|
||||||
form_publish: markRaw(FormPublishNode),
|
form_publish: markRaw(PrunedNode),
|
||||||
app_create: markRaw(AppCreateNode),
|
app_create: markRaw(PrunedNode),
|
||||||
app_design: markRaw(AppDesignNode),
|
app_design: markRaw(PrunedNode),
|
||||||
app_settings: markRaw(AppSettingsNode),
|
app_settings: markRaw(PrunedNode),
|
||||||
app_update: markRaw(AppUpdateNode),
|
app_update: markRaw(PrunedNode),
|
||||||
dashboard_basic_info: markRaw(DashboardBasicInfoNode),
|
dashboard_basic_info: markRaw(PrunedNode),
|
||||||
dashboard_design: markRaw(DashboardDesignNode),
|
dashboard_design: markRaw(PrunedNode),
|
||||||
dashboard_create: markRaw(DashboardCreateNode),
|
dashboard_create: markRaw(PrunedNode),
|
||||||
dashboard_publish: markRaw(DashboardPublishNode),
|
dashboard_publish: markRaw(PrunedNode),
|
||||||
system_summary: markRaw(SystemSummaryNode),
|
system_summary: markRaw(SystemSummaryNode),
|
||||||
subflow: markRaw(SubflowNode),
|
subflow: markRaw(SubflowNode),
|
||||||
form_data_create: markRaw(FormDataNode),
|
form_data_create: markRaw(PrunedNode),
|
||||||
form_data_read: markRaw(FormDataNode),
|
form_data_read: markRaw(PrunedNode),
|
||||||
form_data_update: markRaw(FormDataNode),
|
form_data_update: markRaw(PrunedNode),
|
||||||
form_data_delete: markRaw(FormDataNode),
|
form_data_delete: markRaw(PrunedNode),
|
||||||
form_data_list: markRaw(FormDataNode),
|
form_data_list: markRaw(PrunedNode),
|
||||||
form_schema_to_llm: markRaw(FormDataNode),
|
form_schema_to_llm: markRaw(PrunedNode),
|
||||||
text_to_sql: markRaw(TextToSqlNode),
|
text_to_sql: markRaw(TextToSqlNode),
|
||||||
knowledge_retrieval: markRaw(KnowledgeRetrievalNode),
|
knowledge_retrieval: markRaw(KnowledgeRetrievalNode),
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user