Interface Lab
返回知识库
Interaction Responsive Motion

批量操作预览与 Diff

批量操作需要先建立选择范围、动作对象、影响数量、失败分支和撤销/审计路径,危险批量修改必须在提交前展示 diff。

设计原则

批量操作提升效率,也会放大错误。界面必须把当前选择、动作范围、不可处理项、危险后果、异步进度和完成后恢复路径全部显性化。

大理论

批量操作不是在表格上加几个按钮。它改变了用户的心理模型:用户从处理单个对象变成处理一个临时集合。这个集合可能来自当前页、当前筛选、全部结果、跨页选择或导入列表。若选择范围和动作影响不清楚,删除、权限修改、归档、导出、邀请、标签更新这类操作都会造成大面积误伤。

小知识点

  1. 选择范围必须可读:已选 12 项、当前页 50 项、全部筛选结果 3,420 项,三者不能混淆。
  2. 进入 batch mode 后行内单项操作应降权或禁用,避免用户同时处于单项和批量两种模式。
  3. 提交前预览 diff:将变更哪些字段、从什么变成什么、哪些项会失败或被跳过、是否通知相关人。
  4. 危险批量操作需要二次确认、原因字段、权限检查和审计记录;可逆操作优先提供 undo。
  5. 长任务显示 queued/running/partial success/failed/completed,并保留后台继续和结果下载路径。
  6. 移动端批量选择不应依赖 hover checkbox;需要明确 selection bar、底部 action sheet 或列表选择模式。

设计判断

如果用户在点击最终提交前能准确复述影响范围、风险、失败项和恢复方式,批量操作是安全的;如果按钮只写 Delete selected,它还没有完成设计。

实现建议

建立 batch action contract:selectionSource、selectionCount、selectionScope、eligibleCount、ineligibleItems、actionVerb、targetField、beforeValue、afterValue、riskLevel、requiresReason、notifyUsers、asyncJobId、undoWindow、auditId。前端流程采用 select -> batch bar -> preview diff -> confirm -> progress -> result summary;失败摘要包含可下载明细和重试入口。

反例/风险

全选只选择当前页却文案像全部结果、批量删除没有预览、不可处理项直到失败后才出现、提交后页面立刻清空无进度、partial success 没有明细、toast 代替结果页、移动端无法取消选择。

案例分析

Carbon Data Table 的 batch actions 指出选择行后在表格顶部出现批量操作栏,并在批量模式禁用行内操作;Carbon 的样式规范还区分不同密度下 batch action bar 的高度;GitHub 审计日志导出文档强调导出可基于过滤结果;这些模式共同说明批量动作要把选择范围、当前模式和结果证据绑定在一起。

来源链接

Carbon Data Table usage: https://carbondesignsystem.com/components/data-table/usage/ Carbon Data Table style: https://carbondesignsystem.com/components/data-table/style/ Carbon Common Actions: https://carbondesignsystem.com/patterns/common-actions/ GitHub audit log export: https://docs.github.com/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization GOV.UK notification banner: https://design-system.service.gov.uk/components/notification-banner/

Agent 指令

生成批量操作前必须定义 selectionScope、eligible/ineligible、preview diff、危险确认、异步进度、partial success 和 undo/audit 路径;禁止只加一个批量按钮。