From cb6792cb299bd84606ace44cd5e63686e8b44ddd Mon Sep 17 00:00:00 2001 From: 2910410219 <2910410219@qq.com> Date: Fri, 21 Aug 2026 17:07:40 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=EF=BC=9A=E8=A1=A8=E5=8D=95=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=94=B6=E8=B5=B7=E5=8F=AF=E5=B1=95=E5=BC=80=E3=80=81=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=89=A7=E8=A1=8C=E8=BF=87=E7=A8=8B=E5=8F=AF=E8=A7=86?= =?UTF-8?q?=E5=8C=96=EF=BC=88=E4=BB=BF=E8=B1=86=E5=8C=85=EF=BC=89=E3=80=81?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E6=94=AF=E6=8C=81=E9=87=8D=E6=96=B0=E6=89=A7?= =?UTF-8?q?=E8=A1=8C/=E9=87=8D=E6=96=B0=E7=BC=96=E8=BE=91=E3=80=81?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 提交后表单卡片默认收起(仅显示工作流标题),头部加明确展开/收起按钮 - node_start/node_complete 事件驱动节点步骤流,执行过程区仿豆包竖向展示 - 失败卡片拆分「重新执行」(复用已填值直接重跑)与「重新编辑」两按钮 - 失败消息只显示「❌ 执行失败」,错误详情由卡片 footer 展示,避免双处重复 Co-Authored-By: Claude --- src/views/home/components/ChatList.vue | 7 +- src/views/home/components/MainContent.vue | 2 + .../home/components/WorkflowFormCard.vue | 213 ++++++++++++++++-- src/views/home/index.vue | 70 +++++- src/views/home/utils/wsMessage.ts | 39 ++++ 5 files changed, 298 insertions(+), 33 deletions(-) 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 @@