Files
YG_FT/docs/superpowers/specs/2026-07-10-data-process-create-wizard-design.md
caoxiaozhu acdad260d7 docs: 添加设计文档与视觉走查记录
视觉走查记录、设计方案规格(specs)、实施计划(plans)及配套截图资产,覆盖路由过渡、页面表层级、数据处理向导、训练日志重设计等改进项。
2026-07-10 16:47:29 +08:00

9.8 KiB
Raw Permalink Blame History

数据处理创建流程四步向导设计

日期2026-07-10

1. 目标

重构 /data-process/create,把当前职责混杂、步骤数量会变化的流程,调整为四个语义稳定、页面内容相互独立的步骤。用户在任一时刻只处理当前任务,同时始终知道所处阶段、前后关系和唯一主操作。

本次设计沿用现有平台视觉语言:浅灰应用背景、单层白色页面画布、靛蓝主色、克制边框与阴影、固定四步进度导航和底部操作栏。不得出现页面白底中再次嵌套整页白色大卡片的双层白底。

2. 固定流程

顶部步骤数量始终为四个,不随结构化或非结构化类型变化:

  1. 创建任务:填写任务信息、上传源文件并选择处理类型。
  2. 数据预览:检查系统解析结果;非结构化数据进入切片预览,结构化数据进入记录预览。
  3. 开始生成:确认摘要、启动生成并查看进度或错误。
  4. 结果编辑与保存:检查并修改生成结果,通过校验后保存任务。

步骤状态只有 未开始当前已完成 三种。用户返回已完成步骤时保留已经填写或编辑的内容,不因切换处理类型而静默清空任务名称、描述和上传文件。

3. 第一步:创建任务

页面只显示创建任务所需内容:

  • 任务名称和可选描述。
  • 结构化数据、非结构化数据两种处理类型。
  • 单文件上传区、文件格式和大小约束。
  • 上传后的基础识别结果:文件名、大小、格式、记录数或文本长度、校验状态。

底部操作:取消保存草稿、唯一主操作 继续:数据预览

切换处理类型时仅更新后续预览和生成策略;如果已经产生预览结果,需要明确提示预览将重新计算,确认后才清除后续步骤数据。

4. 第二步:数据预览

4.1 页面职责

本页只负责核对源数据与系统预览结果的对应关系,并允许修改不合理的切片或记录内容。不得显示第一步的大量表单、第三步的生成进度或第四步的最终结果表格。

页面顶部仅保留一行来源摘要,例如:

finance_qa.jsonl · 非结构化数据 · 8,560 个切片

4.2 非结构化数据:源文件与切片对照

主体为同一白色画布中的左右分栏,使用竖向分隔线区分,不使用两个浮动大卡片:

  • 左侧约 58%:源文件阅读器

    • 只读展示完整源文件,支持滚动和行号。
    • 当前切片对应的原文使用浅靛蓝背景高亮,并在左边缘显示定位条。
    • 顶部提示当前定位,例如 已定位到切片 #002
    • 左侧原文始终保持源文件真实性,修改右侧切片不会直接改写源文件。
  • 右侧约 42%:切片内容

    • 上方为切片列表,支持按编号或内容搜索、仅查看已修改项。
    • 每个切片显示编号、来源行范围、Token 数和修改状态。
    • 下方为当前切片的可编辑正文、字符数、Token 数和自动保存状态。
    • 提供上一片、下一片和恢复原始内容。

4.3 对照定位交互

右侧切片是主选择源,左侧原文是定位反馈:

  1. 用户点击右侧切片。
  2. 系统读取该切片保存的原始来源范围 sourceStartsourceEnd
  3. 左侧阅读器自动滚动到目标范围,并将对应原文高亮。
  4. 右侧切片进入选中态,左右使用一致的浅靛蓝语义色建立对应关系。
  5. 用户切换上一片或下一片时执行相同的同步定位。

为了避免跳动,目标范围应滚动到阅读区中部;如果目标已完全可见,则只更新高亮,不重复滚动。

4.4 编辑与来源映射

  • 编辑切片正文只改变待生成内容,来源映射仍指向最初的原文范围。
  • 编辑后显示 已修改,草稿已自动保存,并允许恢复到系统初始切片内容。
  • 修改后的文本与原文不再完全一致时,左侧仍高亮原始来源,右侧显示 内容已调整,避免误解为源文件被改写。
  • 手动新增的切片没有原始来源,显示 手动新增,无源文件定位,左侧清除高亮但保留当前位置。
  • 删除切片需要二次确认;删除只影响本次处理,不修改源文件。
  • 找不到来源范围或范围越界时,右侧显示 无法定位原文,左侧不进行错误滚动,用户仍可编辑该切片。

4.5 结构化数据适配

第二步的整体布局和交互不变,但语义调整为记录对照:

  • 左侧展示源文件中的表格行或原始 JSON 记录。
  • 右侧展示系统解析后的单条记录及字段值。
  • 点击右侧记录,左侧定位并高亮对应源行或 JSON 范围。

这样可以保持四步流程稳定,同时避免对结构化数据使用不准确的“切片”文案。

底部操作:返回:创建任务保存草稿、唯一主操作 确认预览并继续

5. 第三步:开始生成

页面只显示:

  • 任务名称、数据类型、文件、预览条目数和修改条目数的只读摘要。
  • 唯一启动操作 开始生成
  • 启动后的进度、当前阶段、耗时和状态日志。
  • 失败时显示错误摘要与 重试;运行中提供 停止生成,停止前需要二次确认。

启动前不显示底部“下一步”与页面内“开始生成”两个竞争按钮。生成成功后,唯一主操作切换为 查看生成结果

6. 第四步:结果编辑与保存

结果不再使用一组原始 JSON 文本框堆叠展示,而采用结构化编辑列表:

  • 桌面端左侧为结果条目列表,支持搜索、错误筛选和已修改筛选。
  • 桌面端右侧为当前结果的字段编辑区;较窄窗口改为列表在上、编辑区在下。
  • 每条结果显示校验状态,错误定位到具体字段。
  • 支持上一条、下一条、恢复生成结果。
  • 保存前执行完整校验;有阻断错误时禁止保存并聚焦首个错误。

底部操作:返回:开始生成保存草稿、唯一主操作 保存任务

7. 状态与数据模型

向导需要维护统一草稿状态:

interface DataProcessDraft {
  task: TaskInfo
  sourceFile: SourceFileMeta
  processingType: 'structured' | 'unstructured'
  previewItems: PreviewItem[]
  selectedPreviewId: string | null
  generation: GenerationState
  results: ResultItem[]
  currentStep: 1 | 2 | 3 | 4
  dirty: boolean
}

interface PreviewItem {
  id: string
  originalContent: string
  editedContent: string
  sourceStart: number | null
  sourceEnd: number | null
  sourceStartLine: number | null
  sourceEndLine: number | null
  tokenCount: number
  status: 'original' | 'modified' | 'manual' | 'invalid'
}

源文件位置以字符偏移作为定位依据,行号用于展示。这样即使原文存在长行或不同换行符,也能稳定高亮准确范围。

8. 页面组件边界

  • DataProcessWizardShell:固定四步导航、页面标题和底部操作栏。
  • TaskSetupStep:任务信息、类型和文件上传。
  • PreviewStep:数据预览容器,按处理类型选择预览器。
  • SourceViewer:源文件渲染、滚动定位和范围高亮。
  • PreviewItemList:切片或记录列表、搜索与选择。
  • PreviewItemEditor:当前条目编辑、状态和恢复。
  • GenerationStep:启动、进度、失败与重试。
  • ResultReviewStep:生成结果列表、字段编辑和保存校验。

SourceViewer 不感知切片列表内部逻辑,只接收选中范围;PreviewItemList 不直接操纵滚动,只上报选中项。同步行为由 PreviewStep 统一协调。

9. 异常与离开保护

  • 上传失败、解析失败、预览生成失败分别提供明确原因和重试入口。
  • 预览数据加载时显示骨架或局部加载状态,不能让整个白色画布闪烁或短暂回退到列表页。
  • 刷新、返回列表或关闭页面前,如果存在未持久化修改,必须提示保存草稿或放弃更改。
  • 自动保存失败时保留本地编辑内容,并显示可重试状态。
  • 生成过程中禁止无提示切换处理类型或替换源文件。

10. 响应式与可访问性

  • 桌面端左右对照为默认布局,分栏宽度允许拖动但设置最小宽度。
  • 较窄窗口下改为上下布局:源文件在上,切片在下;选中切片后仍自动定位高亮。
  • 选中、高亮、修改和错误状态不能只依赖颜色,还需文字、图标或边缘标记。
  • 键盘支持上下切换切片、聚焦编辑器、保存草稿;滚动定位后不抢走编辑器焦点。

11. 验收标准

  1. 结构化和非结构化流程都始终显示四个固定步骤。
  2. 每一步只包含该阶段必要内容,页面中不存在跨步骤主操作竞争。
  3. 点击任一有来源映射的右侧切片后,左侧在一次交互内定位并高亮准确原文范围。
  4. 已完全可见的范围不会产生多余滚动;不可定位时有明确反馈且不破坏编辑。
  5. 修改切片不会改写左侧源文件,高亮仍指向原始来源。
  6. 返回前一步再进入时,选中项、编辑内容、滚动上下文和草稿状态可恢复。
  7. 生成开始前只存在一个明确启动操作;生成成功后才允许进入结果编辑。
  8. 最终结果保存前执行字段级校验,阻断错误可准确定位。
  9. 路由切换不出现列表页或灰色背景闪烁,白色页面画布保持连续。
  10. 页面在常用桌面宽度下无横向溢出,底部操作栏不遮挡主体内容。

12. 视觉参考

  • 当前流程截图:docs/superpowers/specs/assets/data-process-create-audit/01-create-task.png
  • 当前动态步骤截图:docs/superpowers/specs/assets/data-process-create-audit/02-unstructured-step-change.png
  • 最终左右对照修订稿:/Users/caoxiaozhu/.codex/generated_images/019f4981-cb06-79f0-b387-1d685e74ceea/exec-c72de596-4c50-405b-8987-43d122e02b86.png