From 1aa31334b125843144882910538bb6bc4e44e4d9 Mon Sep 17 00:00:00 2001 From: yueli Date: Thu, 10 Sep 2026 11:32:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(scrap):=20=E6=8A=A5=E5=BA=9F=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E9=A1=B5=E6=90=9C=E7=B4=A2/=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E8=A7=A3=E8=80=A6=EF=BC=8C=E5=AE=A1=E6=89=B9=E4=BA=BA=E5=B8=B8?= =?UTF-8?q?=E9=A9=BB=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 一、搜索丢失已选(核心 bug) 主表格 :data="stockList" 同时充当搜索结果与选择容器。Element Plus 的 setData 在 reserveSelection 为假时走 clearSelection(),进而 emit selection-change([]),故每次重新搜索都会清空选中态、「已选 N 条」归零。 (源码路径:table/src/store/index.mjs:34-52 → store/watcher.mjs:145-152) 改为「购物车 + 选择弹窗」结构,对齐出库选单页: · 主表格数据源改为 cart(已选清单),删除复选列,改「移除」按钮; · 新增「选择库存物品」弹窗,搜索框移入其中; · 表格 row-key + :reserve-selection="true",跨搜索/翻页保留勾选; · 点行勾选、改数量自动勾选、数字框 @click.stop 防冒泡反转勾选; · 服务端搜索(350ms 防抖)+ 分页 20/50/100/200; · uniqueKey 取 source_table_id(三表主键各自独立,必须带表名前缀)。 二、审批人字段不显示 原为 v-if="approvalVisible",仅库管代建或命中需审批物料时才渲染。 因全库仅 1 个物料标记 is_approval_required,该条件几乎从不成立。 现改为常驻,并用 el-form rules 声明 approver_id / remark 双必填; 打开弹窗即调用 checkScrapApproval 预检并展示提示文案。 三、顺带修复 库位列此前恒为空:三张库存表 to_dict 只输出 warehouse_loc,而模板绑定 warehouse_location。已在 loadStockList 中归一化。 SFC 编译与 vue-tsc 通过,无新增类型错误。 --- .../src/views/operation/scrap/apply/index.vue | 504 ++++++++++++++---- 1 file changed, 392 insertions(+), 112 deletions(-) diff --git a/inventory-web/src/views/operation/scrap/apply/index.vue b/inventory-web/src/views/operation/scrap/apply/index.vue index eca669e..f39c0b4 100644 --- a/inventory-web/src/views/operation/scrap/apply/index.vue +++ b/inventory-web/src/views/operation/scrap/apply/index.vue @@ -3,44 +3,180 @@ - - + + + + + - + - + + + - + - + + + + + + + -
- 已选 {{ selected.length }} 条 - 提交报废申请 +
+ 共 {{ cart.length }} 种物品, + 合计报废 {{ totalScrapCount }}
+ + +
+ + + 提示:点击表格行可勾选;修改数量会自动勾选 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ @@ -62,15 +198,16 @@ - - + + +
{{ approvalText }}
- +
- - + +
@@ -83,46 +220,188 @@