Files
huachuang/docs/superpowers/plans/2026-08-17-sub-package-relation-batch.md
2026-08-18 18:44:13 +08:00

5.9 KiB
Raw Blame History

子卷包装关系批量新增 PC 原型实现计划

面向 AI 代理的工作者: 必需子技能:使用 superpowers:subagent-driven-development推荐或 superpowers:executing-plans 逐任务实现此计划。步骤使用复选框(- [ ])语法来跟踪进度。

目标: 创建一个符合现有 Vben Admin + Ant Design 风格、可在 PC 上完整演示批量新增子卷包装关系流程的单文件 HTML 原型。

架构: 使用一个自包含 HTML 文件承载页面结构、CSS 设计令牌与原生 JavaScript 状态管理。以行数组作为唯一数据源,集中实现渲染、木箱尺寸联动、复制/删除、校验和本地模拟提交,避免远程依赖与构建步骤。

技术栈: HTML5、CSS3、原生 JavaScript、Playwright 或可用浏览器工具进行交互验证。


文件结构

  • 创建:docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html——完整页面、弹窗、样式、模拟数据和交互逻辑。
  • 修改:docs/superpowers/plans/2026-08-17-sub-package-relation-batch.md——执行后勾选任务状态。

任务 1建立页面骨架与视觉体系

文件:

  • 创建:docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html

  • 步骤 1定义可验证的静态结构约束

确认 HTML 必须包含 #batchModal#editableBody#addRowBtn#clearBtn#cancelBtn#submitBtn,并包含 11 个业务字段对应的输入控件生成逻辑。

  • 步骤 2创建完整后台页面骨架

实现侧边栏、顶栏、面包屑、查询区、子卷包装关系列表和遮罩层,让弹窗处于真实页面上下文中。

  • 步骤 3实现 Ant Design 风格令牌

:root 中定义主色 #1677ff、边框 #d9d9d9、页面底色 #f5f5f5、正文色 #1f2329、圆角和阴影;实现按钮、输入框、表格、提示条、弹窗及键盘聚焦状态。

  • 步骤 4验证静态结构

运行:

rg -n 'batchModal|editableBody|addRowBtn|clearBtn|cancelBtn|submitBtn' docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html

预期:六个关键 ID 均至少出现一次。

任务 2实现批量录入核心交互

文件:

  • 修改:docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html

  • 步骤 1定义行数据与木箱类型

定义 rows 数组、递增行键和以下演示字典:

const boxTypes = {
  'BX-A': { length: 1200, width: 1000, high: 900 },
  'BX-B': { length: 1100, width: 900, high: 850 },
  'BX-C': { length: 800, width: 600, high: 600 },
};
  • 步骤 2实现表格渲染与字段绑定

每行渲染 package_box_snbox_weightquality_guaran_periodsale_order_namecustomer_namedate_of_fg_inboundcontainer_namebox_typebox_lengthbox_widthbox_high,其中尺寸字段只读。

  • 步骤 3实现木箱类型联动

监听 box_type 变化,将选中类型对应的长、宽、高写入当前行;清空类型时同步清空三个尺寸并重新渲染统计。

  • 步骤 4实现行级操作

实现新增、复制和删除。复制时保留公共数据并清空 package_box_sncontainer_name;删除到最后一行时用新空行替换。

  • 步骤 5实现批量清空

点击“清空全部”弹出确认层,确认后恢复 3 个空行,取消后保持原数据。

任务 3实现校验、提交与关闭流程

文件:

  • 修改:docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html

  • 步骤 1实现逐行必填校验

要求七个可编辑业务字段和 box_type 均有值,box_weight 必须大于 0错误记录为 { rowKey, field, message } 并映射到对应单元格。

  • 步骤 2实现重复值校验

使用两个 Map 检查 package_box_sncontainer_name,第二次出现及其首次出现位置都标红,并显示“与第 N 行重复”。

  • 步骤 3实现错误摘要与定位

提交失败时显示顶部红色摘要,更新错误数量,并聚焦首个无效控件;输入修正后清除当前字段错误。

  • 步骤 4实现本地模拟提交

校验通过后显示加载状态,短暂延迟后关闭弹窗、向背景列表追加记录,并显示“成功新增 N 条子卷包装关系”。

  • 步骤 5实现关闭保护与重新打开

有内容时点击取消、关闭或遮罩显示放弃确认;空表直接关闭。背景页“批量新增”按钮重新打开弹窗并恢复 3 行。

任务 4浏览器验证与视觉修正

文件:

  • 修改:docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html

  • 修改:docs/superpowers/plans/2026-08-17-sub-package-relation-batch.md

  • 步骤 1以目标视口打开原型

使用 1440 × 900 视口加载本地 HTML确认弹窗未超出视口表格只在内容区内部滚动底部按钮始终可见。

  • 步骤 2走通核心流程

依次操作新增行、选择 BX-B、确认尺寸为 1100 × 900 × 850、复制行、删除行、清空取消、空表提交校验、重复值校验和有效提交。

  • 步骤 3检查运行错误

确认控制台无 JavaScript 错误、无远程资源失败、所有按钮可点击、Tab 键焦点可见。

  • 步骤 4修正视觉问题

重点检查表头分组、冻结列、横向滚动、错误提示、背景遮罩、弹窗间距和 12 至 14px 的信息密度,修复裁切或重叠。

  • 步骤 5完成静态检查

运行:

rg -n 'package_box_sn|box_weight|quality_guaran_period|sale_order_name|customer_name|date_of_fg_inbound|container_name|box_type|box_length|box_width|box_high' docs/prototype_design/design/2026-08-17-sub-package-relation-batch-design.html

预期11 个字段名全部存在HTML 无远程 http://https:// 依赖。