From 70dd257392f125e1e5f098a6490b6ef97c20ead3 Mon Sep 17 00:00:00 2001 From: yueli Date: Fri, 18 Sep 2026 14:31:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(purchase):=20=E9=87=87=E8=B4=AD=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E5=BC=B9=E7=AA=97=E6=94=AF=E6=8C=81=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=BB=BA=E5=8D=95=E4=B8=8E=E5=95=86=E5=AE=B6=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 批量建单: openCreateDialog 新增 batchItems 分支 —— 待采购清单勾选多个物料时, 明细表一次性铺成 N 行,实现一单多品的合并采购。单条与批量共用 fillRowFromPrefill 做字段映射,不各写一份。 商家链接一键跳转: 输入框加后置按钮,点击在新标签页打开,方便采购员比对价格。 ★ 链接先过 safeHref 白名单(只放行 http/https)—— 该字段由用户自由填写, 直接交给 window.open 会让 javascript: 之类的伪协议被当成代码执行。 非法时按钮置灰,不做静默失败。 交接方式: 单行与批量统一走 localStorage(query 里只传一次性 key,取完即删), 不经过 URL。原因:material_base.purchase_link 是 text,实测已有 516 字符的 真实外链,走 URL 会撞上长度上限并被静默截断。曾经单行走 query 时被迫引入 一个「链接多长就不带」的硬编码阈值,导致同一物料单行跳转带链接、批量跳转 不带 —— 现在两条路径统一,无长度上限。 --- inventory-web/src/views/purchase/index.vue | 143 +++++++++++++++++++-- 1 file changed, 130 insertions(+), 13 deletions(-) diff --git a/inventory-web/src/views/purchase/index.vue b/inventory-web/src/views/purchase/index.vue index 01a616b..b90b6d8 100644 --- a/inventory-web/src/views/purchase/index.vue +++ b/inventory-web/src/views/purchase/index.vue @@ -252,9 +252,19 @@ - + @@ -458,7 +468,7 @@