fix(outbound): 「补发给谁」改为必选,并按原申请人精确预填
· 预填顺序改为:① 原出库明细记录的 applicant_id(创建出库时从审批单带出, 主键无歧义)→ ② 历史单据该字段为 NULL 时,退而按原领用人姓名**唯一命中** 预填;重名一律留空。 · 「补发给谁」改为**必选**:提交前校验,未选即拦下并提示。 不再有「留空则挂当前操作人」的兜底 —— 那会把别人的需求记到库管名下。 · 文案同步:明确写「必须选择:补发是原申请人的需求,不能挂到办理退回的库管名下」。
This commit is contained in:
@ -296,18 +296,19 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="补发给谁" v-if="returnDialog.form.need_reissue">
|
<el-form-item label="补发给谁" v-if="returnDialog.form.need_reissue" required>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="returnDialog.form.reissue_applicant_id"
|
v-model="returnDialog.form.reissue_applicant_id"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
placeholder="默认取原领用人;找不到时留空"
|
placeholder="请选择补发给谁"
|
||||||
style="width: 260px"
|
style="width: 260px"
|
||||||
>
|
>
|
||||||
<el-option v-for="u in reissueUsers" :key="u.id" :label="u.name" :value="u.id" />
|
<el-option v-for="u in reissueUsers" :key="u.id" :label="u.name" :value="u.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<div style="color:#909399; font-size:12px; margin-top:4px;">
|
<div style="color:#909399; font-size:12px; margin-top:4px;">
|
||||||
补发单会挂在此人名下,出现在他的「我的申请」里。<strong>留空</strong>则挂当前操作人。
|
补发单会挂在此人名下,出现在他的「我的申请」里。<br>
|
||||||
|
<strong>必须选择</strong>:补发是原申请人的需求,不能挂到办理退回的库管名下。
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -566,15 +567,23 @@ const loadReissueUsers = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 勾选补发时:默认补发量 = 本次退回量,并尝试按**原领用人**预选「补发给谁」
|
// 勾选补发时:默认补发量 = 本次退回量,并预选「补发给谁」
|
||||||
const handleNeedReissueChange = async (val: boolean) => {
|
const handleNeedReissueChange = async (val: boolean) => {
|
||||||
if (!val) return
|
if (!val) return
|
||||||
returnDialog.form.reissue_qty = normalizeQty(returnDialog.form.return_qty) || 1
|
returnDialog.form.reissue_qty = normalizeQty(returnDialog.form.return_qty) || 1
|
||||||
await loadReissueUsers()
|
await loadReissueUsers()
|
||||||
if (returnDialog.form.reissue_applicant_id) return
|
if (returnDialog.form.reissue_applicant_id) return
|
||||||
// 按姓名唯一命中才预填;重名一律留空让现场自己选 —— 与借用人回填同口径,
|
|
||||||
// 宁可多一步,也不猜错人(补发单会挂到错的人名下)。
|
const row = returnDialog.row || {}
|
||||||
const want = String(returnDialog.row?.consumer_name || '').split('/')[0].trim()
|
// ① 优先用原出库明细记录的申请人(创建出库时从审批单带出,主键无歧义)
|
||||||
|
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
|
if (!want) return
|
||||||
const hits = reissueUsers.value.filter(
|
const hits = reissueUsers.value.filter(
|
||||||
(u) => String(u.name || '').split('/')[0].trim() === want,
|
(u) => String(u.name || '').split('/')[0].trim() === want,
|
||||||
@ -638,6 +647,11 @@ const submitReturn = async () => {
|
|||||||
ElMessage.warning(`补发数量不能超过本次退回数量 ${qty}`)
|
ElMessage.warning(`补发数量不能超过本次退回数量 ${qty}`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 申请人必须明确指定:补发是原申请人的需求,不能默认挂到办理退回的库管名下
|
||||||
|
if (!returnDialog.form.reissue_applicant_id) {
|
||||||
|
ElMessage.warning('请选择「补发给谁」')
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
returnDialog.submitting = true
|
returnDialog.submitting = true
|
||||||
|
|||||||
Reference in New Issue
Block a user