From daaaf6a457b843c9b0d45a8b40ea80ab4e4e028a Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 17 Aug 2026 16:08:53 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95=E6=9C=A8=E7=AE=B1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E9=80=89=E6=8B=A9=E5=BC=B9=E7=AA=97=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2026-08-17-box-type-select-modal-design.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/superpowers/specs/2026-08-17-box-type-select-modal-design.md diff --git a/docs/superpowers/specs/2026-08-17-box-type-select-modal-design.md b/docs/superpowers/specs/2026-08-17-box-type-select-modal-design.md new file mode 100644 index 00000000..1c44f6ec --- /dev/null +++ b/docs/superpowers/specs/2026-08-17-box-type-select-modal-design.md @@ -0,0 +1,32 @@ +# 木箱类型选择弹窗设计 + +## 目标 + +新增可供其他页面复用的木箱类型选择弹窗,调用方式与物料选择弹窗保持一致,并支持单选和多选。 + +## 组件位置 + +`nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/boxtype/components/BoxTypeSelectModal.vue` + +## 交互与接口 + +- 调用方通过 `useVbenModal` 连接组件。 +- 调用方使用 `setData({ multiple: false })` 打开单选,使用 `setData({ multiple: true })` 打开多选;未传时默认单选。 +- 单选使用 radio 列,多选使用 checkbox 列。 +- 确认时通过 `select` 事件返回 `LmsBoxTypeApi.BoxType[]`。 +- 未选择数据时提示“请至少选择一条木箱类型”,并保持弹窗打开。 +- 弹窗关闭时清空上一次选择,避免选择状态泄漏到下次打开。 + +## 查询与展示 + +- 复用 `getBoxTypePage` 分页接口。 +- 查询条件包括木箱类型、木箱描述。 +- 列表展示木箱类型、木箱描述、木箱长度、木箱宽度、木箱高度、是否一次捆扎、是否二次捆扎。 +- 布尔字段复用现有 `CellDict` 和 `INFRA_BOOLEAN_STRING` 字典展示。 +- 行主键使用木箱类型记录的 `id`。 + +## 范围 + +- 只新增通用选择弹窗组件,不替换现有木箱类型维护弹窗或其他页面的选择逻辑。 +- 不新增后端接口,不修改数据库。 +- 按项目约定,未明确要求时不新增或运行测试;交付前运行目标文件 ESLint 和静态 diff 检查。