Commit Graph
482 Commits
Author SHA1 Message Date
2910410219andClaude f7b3531392 首页工作流:输出字段中文展示 + 引用面板滚动修复
- valueSource 契约统一为 { nodeId, field },替换 modelParamUtils 中 fieldName 旧用法
- 数组模板压缩时记录 __originIndex,叶子字段扁平清单按后端原始索引产出 enumValues
- 模型节点输出项保存时用 responseMapping 中文填充 value,引用展示显示中文
- http 节点输出字段识别 JsonEditor 包裹结构,修正真实数据路径并提取中文 label
- 引用上级节点输出面板超高时内部滚动,避免超出视口被截掉

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 17:07:21 +08:00
2910410219andClaude c8f457dada 首页历史工作流会话解除工作流锁定,回显预选上次执行工作流可自由切换
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 13:38:04 +08:00
2910410219andClaude 0421adb6ac 首页 round_start 记录 id 实时绑定 + 用户消息重生成修复
- wsMessage 新增 RoundStart 事件与 getRecordId 解析(兼容数字/字符串)
- 普通对话:round_start 首帧把 recordId 绑定到本轮用户消息与 AI 气泡,实时即可删除/重生成
- 工作流:round_start 把 recordId 绑定到表单卡片与结果消息(共享同一记录)
- 修复用户消息重新生成时气泡消失(runChat 不补用户消息,重生成时先重新追加)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-18 18:04:21 +08:00
2910410219 c962cdd830 首页工作流产出链路去 execution/get 依赖,空结果兜底与删除接口契约对齐
- 实时执行产出只信 flow_complete 事件 resultFileUrls,删除 getExecutionDetail 兜底
- 历史回显产出改用 session/get 记录自带 resultFileUrl,不再调 execution/get
- 普通对话空回复:提示「未收到回复内容,请重试」并支持重新生成
- 工作流实时/历史无产出文件:明确提示「本次未生成产出文件」
- deleteSessionV2 对齐后端契约:/ai-agent/session/delete 传 sessionId
2026-08-18 17:04:41 +08:00
2910410219 13a2aeee9f 首页工作流会话重构与产出内嵌:后端 UUID 认领 + 产出对话内直接预览
会话机制:
- 建连不传本地会话号,由后端生成 UUID 并经首帧 ack 认领(claimSessionId 就地迁移全部状态)
- 删除执行完成后轮询会话列表替换本地条目的双路径逻辑,统一认领后刷新
- 清理 virtual_ 特判,收敛为 hasBackendSessionId 单一语义判断

产出展示:
- flow_complete 事件自带 resultFileUrls 直接构建产出卡片(buildOutputsFromUrls)
- 完成文案改为「 执行完成」,产出以消息形式展示在对话里
- 产出媒体(图片/视频/音频)常驻内嵌预览,图片点击放大,text/file 保持文件行
- ChatList 自动续载增加次数上限,防止 hasMore 恒真时无限加载循环
2026-08-17 17:59:24 +08:00
2910410219andClaude bb15c053e6 首页工作流表单卡片化闭环:执行进度、输入禁用与取消入口
- socket 节点事件推进表单卡片执行进度,失败详情展示详细原因
- 工作流执行时禁用输入框,取消入口移到卡片 footer,卡片定格可重试
- 工作流 ModelRequestParams 按详情原样透传后端
- 会话内产出文件卡片展示(预览/下载/删除),移除顶部结果卡片区

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-15 21:36:33 +08:00
2910410219andClaude dc20a6a829 首页工作流表单对话卡片化,历史回显走消息流
选中工作流即以表单卡片推送进入对话消息流,卡片内填写并提交执行,
移除整页表单区。历史 workflow 会话回显为带值表单卡片 + 结果消息,
不再跳整页表单页;回显数据源改用 session/get 记录(requestParams
即完整 flowContent,含 __start__ 值快照),失败判断以 errorMsg 为准。

- 新增 WorkflowFormCard.vue 表单卡片组件(迁移原整页表单渲染/校验逻辑)
- ChatList 渲染 form 类型消息,透传 form-submit
- MainContent 精简为两态(对话页/占位页)
- SessionResults workflow 结果精简摘要,状态以 errorMsg 为准

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-15 20:03:39 +08:00
2910410219 b8d29e31df 非子流程节点表单展示补 valueSource,修复子流程生成次数回显
- http/form/其它 presetOption 节点勾选表单展示的字段保存时补 valueSource={nodeId:开始节点id, fieldName},与子流程契约统一
- model 节点勾选字段按 path 补 valueSource,回显时清除指向开始节点的引用防误删
- 修复 sub_flow 节点 outputConfig 为空时参数面板(含生成次数)无法回显:回显逻辑改为节点库有 presetOption 定义即构建参数,值从开始节点运行表单反查
2026-08-15 19:23:11 +08:00
2910410219 41655fa825 sub_flow 节点引入工作流修复与首页执行工作流重构
- 引入工作流列表字段兼容 flowName,选择弹窗卡片正常展示数据
- 生成次数 maxConcurrency 同步保存到 sub_flow 节点,回显兜底恢复
- valueSource 按后端契约统一 {nodeId, fieldName},表单展示/引用正确保存与回显
- 首页执行工作流 DSL 字段路径改为 .enumValues[i],支持引用上游输出与上传文件名
2026-08-15 18:49:56 +08:00
2910410219 3b71f144c4 修复模型管理v2对话模型回显与异步弹窗崩溃问题
- 修复 chatModel 开关回显:字段大小写与后端对齐(chatModel)
- 修复异步模型 asyncTaskMapping 内字段为 null 时编辑弹窗崩溃
- lastFrame 提交仅限视频模型,避免占位符误提交
- 切换返回类型时清空 responseBodyMapping 残留
- 列表页访问类型列改为供应商列(后端不再返回 PrivateModel)
- ModelManageItem 类型与后端返回字段对齐(modelSupplier/chatModel/minDuration 等)
2026-08-15 10:43:40 +08:00
2910410219 c4c2625714 重构socket单会话单链接,先握手 2026-08-14 22:22:29 +08:00
2910410219 7e7a3cbf2d 会话删除修复 2026-08-14 21:57:00 +08:00
2910410219 a65b898680 修改会话的bug和回显以及滚动加载 2026-08-14 21:41:32 +08:00
2910410219 315d05c3ea 会话相关 2026-08-14 19:57:46 +08:00
2910410219 362cb4332f 主题和样式以及动画过渡的首页修改 2026-08-14 15:35:03 +08:00
2910410219 4ec05b507a 首页对话相关 2026-08-14 11:25:13 +08:00
2910410219 c088894546 websocket相关 2026-08-13 20:03:14 +08:00
2910410219 8e7948cff5 首页调试工作流管理 2026-08-13 18:02:35 +08:00
2910410219 2ae59c9252 工作流管理相关 2026-08-13 09:36:46 +08:00
2910410219 0e6381d2b3 1. 上游节点输出引用(核心功能)
- 新增 upstreamNodes computed:遍历当前选中节点的前驱链路,仅 model / http / form 三类节点被识别为有输出的节点
  - 新增 getNodeOutputFields,按节点类型提取可引用字段:
    - form → formConfig 的字段
    - http → response schema 的叶子字段
    - model → modelResponseBodyMapping(模型返回参数)的 key
    - 开始节点 → runFormFields(运行表单字段),从而让下游节点能引用"用户填的运行表单"作为输出

  2. 开始节点运行表单字段聚合
  - syncRunFormFields + 深监听:开始节点 formConfig 变化时自动聚合字段,存为 runFormFields,作为开始节点自身可被下游引用的输出

  3. 模型返回参数
  - handleModelConfirm 用 stripReadonlyFields 清理 requestBodyMapping 冗余字段,同时保存 modelResponseBodyMapping 供下游引用
  - 保存时 collectExposedFields 提取对外暴露字段存 modelFormFields

  4. 提示词 / 反向提示词
  - 保存 prompt、negativePrompt、runFormFields 到节点 DSL

  5. 其他
  - nodeTypes 用 markRaw 包裹 FlowNode,修复 Vue 警告
  - buildNodeFormConfigFromDsl 的 responseType 匹配改为兼容 key/value 两种取值
2026-08-12 17:26:58 +08:00
2910410219 4e1cd284e9 修改节点连接点左右样式和色彩 2026-08-10 15:02:10 +08:00
2910410219 5ac546a466 Merge branch 'feature/workflow' of http://116.204.74.41:3000/red-future/admin-ui into feature/workflow 2026-08-10 14:05:49 +08:00
2910410219 4796750305 工作流管理相关调整模型列表接口调整 2026-08-10 14:05:46 +08:00
admin 20990db7d6 gitea,gitea-runner写入docker-compose 2026-08-06 09:40:33 +08:00
2910410219 cb8effc769 工作流管理相关 2026-08-06 09:31:34 +08:00
2910410219 a951f864f4 Merge branch 'feature/workflow' of http://116.204.74.41:3000/red-future/admin-ui into feature/workflow 2026-08-04 14:29:00 +08:00
2910410219 448620ed8a 针对工作流管理进行组件抽离和与内容创作进行安全隔离 2026-08-04 14:28:57 +08:00
admin 9fc80a6c98 gitea,gitea-runner写入docker-compose 2026-08-03 17:24:08 +08:00
2910410219andClaude e1d369b205 feat(login): 隐藏手机号登录与扫码登录
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-31 11:40:28 +08:00
2910410219andClaude a8106f6c4c feat(workflow): 节点配置支持 keyValue 与 schemaJson 字段类型
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-31 11:40:28 +08:00
2910410219andClaude 7de6f00cff feat(json-schema-editor): 数组字段支持枚举值配置,移除循环生成与容器联动
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-31 11:40:28 +08:00
2910410219 4dc2c38820 修复schema的遗留bug 2026-07-27 15:33:28 +08:00
2910410219 ace80efd63 模型类型修复 2026-07-23 17:57:28 +08:00
2910410219 be51ac40e0 修复模型管理v2前后端类型定义不一致 2026-07-23 17:17:30 +08:00
2910410219 adea3a90ec 取消工作空间查看更多功能,默认查所有 2026-07-22 15:15:08 +08:00
2910410219 cac2dd019c 优化模型管理的添加表单,完善数据源 2026-07-18 16:50:16 +08:00
2910410219andClaude 3099f65109 fix: tokenMapping 初始加载时被 responseType 的 watch 误清
openDialog 中 responseType 赋值后触发了 watcher 异步清除
tokenMapping,导致已加载的 tokenMapping 值被清空。
通过 _skipTokenClear 标志跳过初始加载时的清除逻辑。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 15:11:36 +08:00
2910410219andClaude bf1e9fa89a feat: Token映射配置增强 + 模型详情API + 编辑器布局优化
1. Token 映射下拉:
   - 新增 flattenWrappedFields 函数递归提取 { type, attrs } 结构中的叶子字段
   - 下拉选项显示 路径 — 标签 格式,选中值存完整路径
   - 同步/流式从响应映射取,异步从回调响应映射取

2. 模型详情 API:
   - 新增 getModelManage 详情接口 (/model/manage/getModelManage)
   - openDialog 改为 async,编辑时调详情接口获取完整数据
   - 修复 res.data.modelManage 取值路径

3. JSON 编辑器布局:
   - 弹窗宽度 1000px → 1200px
   - 配置侧栏 320px → 380px
   - config-summary 改用 flex:1 防止滚动条截断文本

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 14:45:53 +08:00
2910410219 51b5008951 chore: update dev env 2026-07-17 11:09:08 +08:00
2910410219andClaude fd287a0d92 fix(json-schema-editor): getNodeJsonPath 路径修复 - 包装对象父节点增加 .attrs. 前缀
根节点直子之外的 { type, attrs } 包装对象,其子字段路径中缺少 .attrs. 段。
通过给包装节点添加 _isWrapped 标记,让路径生成逻辑正确插入 .attrs. 前缀。

例如 messages.attrs[0].content 改为 messages.attrs[0].attrs.content

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 11:08:57 +08:00
2910410219 fa9ada2334 fix(json-schema-editor): 根节点输出时去除 { type, attrs } 包装
最外层根 object 不应该套 { type, attrs } 包装,
应直接输出子字段组成的原始对象。

- nodeToValue 中增加根节点判断:node === rootNode.value 时直接返回 rawValue
- 非根节点保持原有 { type, attrs/value, ...config } 格式不变
2026-07-16 17:32:20 +08:00
2910410219 76be2dc85c feat(json-schema-editor): JSON编辑器新增 isContainer 容器字段联动隐藏配置
将旧的分级 upLevel/remove 联动规则改为基于完整路径的平铺结构。

新增特性:
- 标量字段(string/number/boolean)配置面板中增加"容器字段"开关
- 开关打开后展示"联动隐藏"下拉菜单,列出当前字段同级及以上所有可选字段
- 下拉展示格式:"字段key — 完整路径"(如 type — messages.attrs[0].content.attrs[0].type)
- 选中后以 { key: path } 格式输出,渲染器按路径直接定位隐藏字段

核心改动:
- index.vue: 新增 getAvailableFields / getNodeJsonPath 替代旧的分级遍历逻辑
  - getAvailableFields: 从当前字段向上遍历,跳过数组层级,根级只含容器自身
  - getNodeJsonPath: inAttrs 状态机生成完整路径(messages.attrs[0].content.attrs[0].type)
  - linkRules 类型从 Array<{ upLevel, remove[] }> 改为 Array<Record<string, string>>
  - formToConfig / hasAnyConfig 同步更新
- FieldConfigDialog.vue: 重构联动隐藏UI,单 el-select multiple 替代分级 checkbox
- JsonNode.vue: 类型同步 + 摘要显示容器触发器及规则数

数据格式示例:
  "isContainer": true,
  "linkRules": [
    { "type": "messages.attrs[0].content.attrs[0].type" }
  ]
2026-07-16 17:26:30 +08:00
2910410219 5742608b97 feat: JSON编辑器增强 - Token映射下拉、字段选项key:value、序列化始终包装type
1. 模型配置弹窗: Token映射三个字段由输入框改为下拉菜单
   - 同步/流式从响应映射取key, 异步从回调响应映射取key
   - 切换返回类型时清空Token映射, 无映射配置时禁用并提示
2. JSON编辑器序列化: 所有节点始终输出{type, value/attrs}格式
   - 容器(object/array)始终{type, attrs}, 标量始终{type, value}
3. 字段配置增强:
   - 对象类型新增"循环生成"开关
   - 下拉控件选项列表改为key:value双输入框
4. 类型注释更新
2026-07-15 16:33:58 +08:00
2910410219 a6eaf57898 v2模型管理相关 2026-07-14 16:30:26 +08:00
2910410219 f179a5b755 新版模型v2相关 2026-07-14 11:03:46 +08:00
2910410219 ea3945d70f 工作空间默认一次拿10个结果 2026-07-08 16:45:40 +08:00
2910410219 0a4c281997 修复工作空间结果日期重复问题 2026-07-08 16:42:40 +08:00
2910410219 57c0e4281a Merge branch 'feature/workflow' of http://116.204.74.41:3000/red-future/admin-ui into feature/workflow 2026-07-08 14:08:41 +08:00
2910410219 5b6b52a18b 文件预览调整 2026-07-08 14:08:39 +08:00
admin 2412e9abea ng代理minio支持websocket 2026-07-08 13:06:19 +08:00