fix: 扫码入库序列号映射优先 external_serial + 半成品自动切换 SN/Batch
- form.serial_number = external_serial || serial_number(优先真实自定义序列号) - 半成品:扫码后按有无序列号自动切换 SN/Batch 模式,并解除历史锁定 - 修复 onMaterialSelected 未 await checkHistoryAndSetMode 的竞态
This commit is contained in:
@ -1409,7 +1409,8 @@ const handleScannerConfirm = (result: string) => {
|
||||
const handleTrackScanFill = async (data: { track: any; material: any }) => {
|
||||
const { track, material } = data
|
||||
await onMaterialSelected(material)
|
||||
form.serial_number = track.serial_number
|
||||
// 优先使用真实自定义序列号(external_serial),回退到 16 位系统身份证
|
||||
form.serial_number = track.external_serial || track.serial_number || ''
|
||||
if (track.order_no) form.order_id = track.order_no
|
||||
ElMessage.success('扫码入库信息已自动填充,请核对后补充库位/数量等')
|
||||
}
|
||||
|
||||
@ -1110,7 +1110,7 @@ const onMaterialSelected = async (item: any) => {
|
||||
form.bom_code = ''
|
||||
form.bom_version = ''
|
||||
bomOptions.value = []
|
||||
checkHistoryAndSetMode(item.id)
|
||||
await checkHistoryAndSetMode(item.id)
|
||||
|
||||
try {
|
||||
const res = await request.get('/v1/inbound/semi/last-location', { params: { base_id: item.id } })
|
||||
@ -1502,7 +1502,15 @@ const handleScannerConfirm = (result: string) => {
|
||||
const handleTrackScanFill = async (data: { track: any; material: any }) => {
|
||||
const { track, material } = data
|
||||
await onMaterialSelected(material)
|
||||
form.serial_number = track.serial_number
|
||||
// 优先使用真实自定义序列号(external_serial),回退到 16 位系统身份证
|
||||
form.serial_number = track.external_serial || track.serial_number || ''
|
||||
// 自动切换入库模式:有真实序列号 → 强制 SN;否则 → Batch
|
||||
if (form.serial_number) {
|
||||
entryMode.value = 'serial'
|
||||
modeLocked.value = false // 扫码为明确序列号输入,解除历史锁定
|
||||
} else {
|
||||
entryMode.value = 'batch'
|
||||
}
|
||||
ElMessage.success('扫码入库信息已自动填充,请核对后补充库位/数量等')
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user