diff --git a/src/views/home/components/ChatList.vue b/src/views/home/components/ChatList.vue index 1ff1f55..e4efa3e 100644 --- a/src/views/home/components/ChatList.vue +++ b/src/views/home/components/ChatList.vue @@ -21,6 +21,7 @@ :form-error="msg.formError" :progress="msg.formProgress" @submit="emit('form-submit', msg, $event)" + @retry="emit('form-retry', msg, $event)" @re-edit="emit('form-re-edit', msg)" @cancel="emit('form-cancel', msg)" /> @@ -100,6 +101,7 @@ import { Delete, DocumentCopy, RefreshRight } from '@element-plus/icons-vue'; import 'highlight.js/styles/github-dark.css'; import { renderMarkdown } from '../utils/markdown'; import type { WorkflowOutput } from '../utils/flowDsl'; +import type { WorkflowNodeProgress } from '../utils/wsMessage'; import WorkflowFormCard from './WorkflowFormCard.vue'; import WorkflowOutputCard from './WorkflowOutputCard.vue'; @@ -120,8 +122,8 @@ interface ChatMessage { form?: any; formStatus?: 'editing' | 'running' | 'done' | 'failed'; formError?: string; - // 工作流执行节点进度(后端 node_start/node_complete 事件推进,运行中显示) - formProgress?: { current: number; total: number; nodeName: string }; + // 工作流执行节点进度(node_start/node_complete 事件驱动的节点步骤列表,渲染执行过程区) + formProgress?: WorkflowNodeProgress; // 工作流执行产出文件列表(挂在 workflow 结果消息上,渲染产出卡片) outputs?: WorkflowOutput[]; } @@ -131,6 +133,7 @@ interface Emits { (e: 'regenerate', msg: ChatMessage): void; (e: 'delete', msg: ChatMessage): void; (e: 'form-submit', msg: ChatMessage, payload: any): void; + (e: 'form-retry', msg: ChatMessage, payload: any): void; (e: 'form-re-edit', msg: ChatMessage): void; (e: 'form-cancel', msg: ChatMessage): void; (e: 'output-preview', msg: ChatMessage, output: WorkflowOutput): void; diff --git a/src/views/home/components/MainContent.vue b/src/views/home/components/MainContent.vue index 4bc8137..32420fb 100644 --- a/src/views/home/components/MainContent.vue +++ b/src/views/home/components/MainContent.vue @@ -13,6 +13,7 @@ @regenerate="emit('regenerate', $event)" @delete="emit('delete', $event)" @form-submit="(msg: any, payload: any) => emit('form-submit', msg, payload)" + @form-retry="(msg: any, payload: any) => emit('form-retry', msg, payload)" @form-re-edit="(msg: any) => emit('form-re-edit', msg)" @form-cancel="(msg: any) => emit('form-cancel', msg)" @output-preview="(msg: any, output: any) => emit('output-preview', msg, output)" @@ -71,6 +72,7 @@ interface Emits { (e: 'workflow-select', id: string, isTemplate?: boolean): void; (e: 'delete', msg: any): void; (e: 'form-submit', msg: any, payload: any): void; + (e: 'form-retry', msg: any, payload: any): void; (e: 'form-re-edit', msg: any): void; (e: 'form-cancel', msg: any): void; (e: 'output-preview', msg: any, output: any): void; diff --git a/src/views/home/components/WorkflowFormCard.vue b/src/views/home/components/WorkflowFormCard.vue index e70ded8..6425c28 100644 --- a/src/views/home/components/WorkflowFormCard.vue +++ b/src/views/home/components/WorkflowFormCard.vue @@ -1,12 +1,37 @@