From 1f43de4cccddd6ce9fbf648b04bae4d8fe5d6439 Mon Sep 17 00:00:00 2001 From: yueli Date: Fri, 17 Jul 2026 17:02:25 +0800 Subject: [PATCH] =?UTF-8?q?debug:=20buy.vue=20validateUnique=20=E5=8A=A0?= =?UTF-8?q?=E8=AF=A6=E7=BB=86=E6=97=A5=E5=BF=97=E2=80=94=E2=80=94=E6=89=93?= =?UTF-8?q?=E5=8D=B0=20form.id/row.id/value=20=E6=AF=94=E5=AF=B9=E8=BF=87?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inventory-web/src/views/stock/inbound/buy.vue | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/inventory-web/src/views/stock/inbound/buy.vue b/inventory-web/src/views/stock/inbound/buy.vue index d5d4fac..a188c0c 100644 --- a/inventory-web/src/views/stock/inbound/buy.vue +++ b/inventory-web/src/views/stock/inbound/buy.vue @@ -1294,10 +1294,20 @@ const updateInspectionRules = () => { const validateUnique = (rule: any, value: string, callback: any) => { if (!value) return callback() const currentId = form.id != null ? Number(form.id) : null + console.log('[validateUnique] rule.field=', rule.field, 'value=', value, 'form.id=', form.id, 'currentId=', currentId, 'dialogStatus=', dialogStatus.value) const isDuplicate = tableData.value.some((row: any) => { - if (dialogStatus.value === 'update' && currentId != null && Number(row.id) === currentId) return false - if (rule.field === 'serial_number' && row.serial_number === value) return true - if (rule.field === 'batch_number' && row.batch_number === value && row.base_id === form.base_id) return true + const rowId = Number(row.id) + const isSelf = dialogStatus.value === 'update' && currentId != null && rowId === currentId + if (rule.field === 'serial_number' && row.serial_number === value) { + if (isSelf) { console.log('[validateUnique] 跳过自身 SN, row.id=', row.id, 'rowId=', rowId); return false } + console.log('[validateUnique] SN匹配! row.id=', row.id, 'row.serial_number=', row.serial_number, 'value=', value) + return true + } + if (rule.field === 'batch_number' && row.batch_number === value && row.base_id === form.base_id) { + if (isSelf) { console.log('[validateUnique] 跳过自身 批号, row.id=', row.id); return false } + console.log('[validateUnique] 批号匹配! row.id=', row.id) + return true + } return false }) if (isDuplicate) callback(new Error('当前列表页存在相同编号(后端将进行全局校验)'))