Skip to content

[代码评审 B8b] 前端离线工作台 — DAG 画布/节点编辑器/Flow 生命周期 #35

Description

@dododcdc

范围

目录 文件 行数
src/views/offline/ 34 文件 ~9,850
合计 34 文件 ~9,850

关键文件

DAG 画布:

  • FlowCanvas.tsx — ReactFlow 画布(节点拖拽、自动排版、连线校验)
  • FlowCanvasNode.tsx — 画布节点渲染(进度环、状态图标、错误标记)
  • dagUtils.ts — DAG 工具(自动布局、循环检测)
  • yamlValidation.ts — YAML Schema 校验

节点编辑器:

  • NodeEditorDialog.tsx — 节点编辑弹窗(全屏,任务类型选择、参数配置)
  • taskTypeRegistry.ts — 任务类型注册表(Kestra task types)
  • nodeEditorUtils.ts — 节点编辑器工具函数

Flow 生命周期:

  • OfflineWorkbench.tsx主文件(3,222 行):Flow 列表、创建/删除/重命名、执行触发、调度管理、右键菜单
  • ExecutionDetailPage.tsx — 执行详情页(Task 列表、日志、时间线)
  • SaveConflictDialog.tsx — 保存冲突弹窗(你的版本 vs 远程版本)

状态机与草稿:

  • flowCanvasState.ts / nodeSelectionState.ts — 画布/节点选中状态
  • pendingNodeEditorDraftState.ts / nodeEditorCloseDraftState.ts — 编辑器草稿
  • recoverySnapshotStore.ts — 崩溃恢复快照
  • draftExecution.ts — 执行草稿

关注点

  • OfflineWorkbench.tsx 是否过于臃肿(3,222 行需拆分)
  • ReactFlow 节点的增删改是否触发不必要的重渲染
  • 草稿/快照/恢复的状态机是否有死路径
  • YAML 生成是否正确映射所有 task type
  • 执行详情的轮询是否有泄漏
  • 多个 Zustand store 之间是否有数据不一致风险
  • Flow 删除/重命名后是否存在孤立的执行记录

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions