diff --git a/inventory-web/src/views/stock/inbound/product.vue b/inventory-web/src/views/stock/inbound/product.vue index 4866fb5..611106c 100644 --- a/inventory-web/src/views/stock/inbound/product.vue +++ b/inventory-web/src/views/stock/inbound/product.vue @@ -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('扫码入库信息已自动填充,请核对后补充库位/数量等') } diff --git a/inventory-web/src/views/stock/inbound/semi.vue b/inventory-web/src/views/stock/inbound/semi.vue index 6594c9c..7d418d7 100644 --- a/inventory-web/src/views/stock/inbound/semi.vue +++ b/inventory-web/src/views/stock/inbound/semi.vue @@ -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('扫码入库信息已自动填充,请核对后补充库位/数量等') }