From 07567d2f760de6974005979af6b08980881dcf5a Mon Sep 17 00:00:00 2001 From: yueli Date: Thu, 17 Sep 2026 12:07:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(outbound):=20=E3=80=8C=E8=A1=A5=E5=8F=91?= =?UTF-8?q?=E7=BB=99=E8=B0=81=E3=80=8D=E6=94=B9=E4=B8=BA=E5=BF=85=E9=80=89?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E6=8C=89=E5=8E=9F=E7=94=B3=E8=AF=B7=E4=BA=BA?= =?UTF-8?q?=E7=B2=BE=E7=A1=AE=E9=A2=84=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit · 预填顺序改为:① 原出库明细记录的 applicant_id(创建出库时从审批单带出, 主键无歧义)→ ② 历史单据该字段为 NULL 时,退而按原领用人姓名**唯一命中** 预填;重名一律留空。 · 「补发给谁」改为**必选**:提交前校验,未选即拦下并提示。 不再有「留空则挂当前操作人」的兜底 —— 那会把别人的需求记到库管名下。 · 文案同步:明确写「必须选择:补发是原申请人的需求,不能挂到办理退回的库管名下」。 --- inventory-web/src/views/outbound/index.vue | 28 ++++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/inventory-web/src/views/outbound/index.vue b/inventory-web/src/views/outbound/index.vue index cf20a93..0a94c51 100644 --- a/inventory-web/src/views/outbound/index.vue +++ b/inventory-web/src/views/outbound/index.vue @@ -296,18 +296,19 @@ /> - +
- 补发单会挂在此人名下,出现在他的「我的申请」里。留空则挂当前操作人。 + 补发单会挂在此人名下,出现在他的「我的申请」里。
+ 必须选择:补发是原申请人的需求,不能挂到办理退回的库管名下。
@@ -566,15 +567,23 @@ const loadReissueUsers = async () => { } } -// 勾选补发时:默认补发量 = 本次退回量,并尝试按**原领用人**预选「补发给谁」 +// 勾选补发时:默认补发量 = 本次退回量,并预选「补发给谁」 const handleNeedReissueChange = async (val: boolean) => { if (!val) return returnDialog.form.reissue_qty = normalizeQty(returnDialog.form.return_qty) || 1 await loadReissueUsers() if (returnDialog.form.reissue_applicant_id) return - // 按姓名唯一命中才预填;重名一律留空让现场自己选 —— 与借用人回填同口径, - // 宁可多一步,也不猜错人(补发单会挂到错的人名下)。 - const want = String(returnDialog.row?.consumer_name || '').split('/')[0].trim() + + const row = returnDialog.row || {} + // ① 优先用原出库明细记录的申请人(创建出库时从审批单带出,主键无歧义) + if (row.applicant_id && reissueUsers.value.some((u) => u.id === row.applicant_id)) { + returnDialog.form.reissue_applicant_id = row.applicant_id + return + } + // ② 历史单据该字段为 NULL(无从回填):退而按原领用人姓名**唯一命中**才预填。 + // 重名一律留空让现场选 —— 与借用人回填同口径,宁可多一步也不猜错人 + // (补发单会挂到错的人名下,而那是别人的「我的申请」)。 + const want = String(row.consumer_name || '').split('/')[0].trim() if (!want) return const hits = reissueUsers.value.filter( (u) => String(u.name || '').split('/')[0].trim() === want, @@ -638,6 +647,11 @@ const submitReturn = async () => { ElMessage.warning(`补发数量不能超过本次退回数量 ${qty}`) return } + // 申请人必须明确指定:补发是原申请人的需求,不能默认挂到办理退回的库管名下 + if (!returnDialog.form.reissue_applicant_id) { + ElMessage.warning('请选择「补发给谁」') + return + } } returnDialog.submitting = true