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

4.9 KiB
Raw Permalink Blame History

源数据上传紧凑文件列表设计

日期2026-07-10

1. 目标

优化数据处理创建页“源数据上传”区域中已选文件的呈现方式。当前每个文件 占用一张独立的大卡片;文件数量增多时,页面会被文件清单拉长,用户也难以 快速定位和删除某一文件。

本次改动将已上传文件改为每页最多 10 条的紧凑列表,并让上传入口随文件状态切换: 空状态使用大尺寸拖拽上传区,已有文件时切换为列表标题右侧的小型继续上传按钮。 这样能保持文件状态和逐项删除能力,让大量文件的查看与操作集中在一个稳定区域内。

2. 方案选择

评估过三种方式:

  1. 文件名标签流:占用最少,但长文件名、状态与删除操作会拥挤,不适合本页。
  2. 折叠摘要:页面最短,但需要额外展开才能操作,增加一步操作成本。
  3. 固定高度紧凑列表:每个文件是一行,状态和删除按钮始终可见;超过可见 行数后在列表内滚动。

采用第三种方案。它保留当前已有的逐项删除能力,同时解决页面高度随文件数 量线性增长的问题。

3. 布局与交互

空状态只显示现有的大尺寸拖拽上传区及格式提示,用于首次添加文件。

存在文件后,隐藏大尺寸拖拽上传区和其格式提示,在原位置显示文件列表:

  • 列表顶部左侧显示 已添加 N 个文件,其中 N 为当前文件数;右侧显示 小型 继续上传 按钮。
  • 继续上传 复用原上传控件的多文件选择、格式限制、非自动上传和文件变更事件, 只改变触发入口的尺寸与位置。
  • 每页最多显示 10 行;超过 10 个文件时,在列表底部显示分页器,不使用长列表 或内部滚动承载额外文件。
  • 新增文件后自动切换到最后一页,确保用户能立刻看到刚添加的文件;删除当前页 的最后一个文件后,自动回退到仍有文件的最后一页。
  • 单行高度约 48px使用细分隔线区分不再使用外框、左侧绿条和大尺寸图标。
  • 每行从左至右依次为:文件类型图标、文件名、大小与条目数、校验状态、删除。
  • 文件名占据可伸缩区域;空间不足时省略,保留原始 title 以便悬停查看全名。
  • 删除按钮沿用红色文字链接,点击后继续使用当前的移除事件;不新增确认弹窗 或批量删除,以免改变既有操作语义。
  • 校验状态沿用绿色图标和“校验通过”文案;后续若存在失败状态,可在同一位置 显示错误文案而不改变列表结构。

4. 视觉约束

  • 延续页面的靛蓝文件图标、绿色成功状态和红色危险操作色;继续上传按钮使用现有 主色的紧凑次级按钮样式。
  • 列表容器使用现有浅灰边框和 8px 圆角,背景保持白色;不新增大卡片层级。
  • 仅当文件数超过 10 个时显示分页器;分页器使用紧凑的上一页、页码、下一页布局, 不提供页大小选择或跳页输入,避免增加不必要的操作。
  • 在窄屏下,元信息可收缩,文件名仍保持最优先;删除按钮必须始终可见且可点按。

5. 组件边界与数据流

改动只在 TaskSetupStep 内完成:

  • 继续使用现有 uploadedFiles 属性和 remove-file 事件。
  • 不修改文件上传、格式限制、校验逻辑或父组件中的文件数据模型。
  • 新增的文件总数来自 uploadedFiles.length,每行信息继续来自现有文件元数据。

6. 可访问性

  • 删除按钮继续使用真实的 el-button,确保键盘可聚焦和激活。
  • 文件名省略时通过原生 title 暴露完整名称。
  • 校验状态同时保留图标和文字,不能只依靠颜色传达结果。
  • 滚动列表不截断键盘焦点;聚焦到不可见的删除按钮时,浏览器应能将对应行带入 可见区域。

7. 验收标准

  1. 尚未添加文件时,只显示大尺寸拖拽上传区与格式提示,不显示文件列表。
  2. 上传至少 1 个文件后,大尺寸上传区与格式提示不再显示;文件列表标题右侧显示 可继续选择多个文件的小型上传按钮。
  3. 上传 1 至 10 个文件时,所有文件在紧凑列表中直接可见,每行均可单独删除。
  4. 上传超过 10 个文件时,列表一次只渲染当前 10 条,分页器可切换其他文件页; 页面高度不随总文件数继续增长。
  5. 新增文件后自动显示最后一页;删除造成当前页没有文件时,自动回到有效页。
  6. 每一行均展示文件名、大小、可选条目数、校验状态和删除操作。
  7. 长文件名不会挤压删除按钮,且悬停时可获取完整名称。
  8. 处理类型切换、格式限制、首次上传、继续上传和删除事件的现有行为不变。
  9. 常用桌面宽度和窄屏下均无横向溢出,删除操作保持可访问。