From 48cc0b4fa6e9636b66b0386e4085a4988388fbac Mon Sep 17 00:00:00 2001 From: 18631081161 <2088094923@qq.com> Date: Tue, 31 Mar 2026 22:56:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E7=A0=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/views/order/OrderList.vue | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/admin/src/views/order/OrderList.vue b/admin/src/views/order/OrderList.vue index 4d0f86d9..01a3fcac 100644 --- a/admin/src/views/order/OrderList.vue +++ b/admin/src/views/order/OrderList.vue @@ -750,7 +750,7 @@ async function handleAddBarcode() { function downloadCsvTemplate() { const header = '\uFEFF条形码\n' - const example = 'ABC123456\nDEF789012\n' + const example = '001234\n001235\n' const blob = new Blob([header + example], { type: 'text/csv;charset=utf-8' }) const url = URL.createObjectURL(blob) const a = document.createElement('a') @@ -766,12 +766,15 @@ function handleCsvImport(file: File) { const raw = (e.target?.result as string) || '' const text = raw.replace(/^\uFEFF/, '') const lines = text.split(/\r?\n/).map(l => l.trim()).filter(Boolean) + if (lines.length <= 1) { + ElMessage.warning('CSV 中未找到有效的条形码(仅有表头)') + return + } + // 跳过第一行表头,从第二行开始解析 const barcodes: string[] = [] - for (let i = 0; i < lines.length; i++) { + for (let i = 1; i < lines.length; i++) { const val = lines[i].split(',')[0].trim() if (!val) continue - // 跳过表头行:第一行或包含中文/header关键字的行 - if (i === 0 && (/[\u4e00-\u9fa5]/.test(val) || /^barcode$/i.test(val))) continue barcodes.push(val) } if (barcodes.length === 0) { @@ -853,11 +856,14 @@ function handleEditCsvImport(file: File) { const raw = (e.target?.result as string) || '' const text = raw.replace(/^\uFEFF/, '') const lines = text.split(/\r?\n/).map(l => l.trim()).filter(Boolean) + if (lines.length <= 1) { + ElMessage.warning('CSV 中未找到有效的条形码(仅有表头)') + return + } const barcodes: string[] = [] - for (let i = 0; i < lines.length; i++) { + for (let i = 1; i < lines.length; i++) { const val = lines[i].split(',')[0].trim() if (!val) continue - if (i === 0 && (/[\u4e00-\u9fa5]/.test(val) || /^barcode$/i.test(val))) continue barcodes.push(val) } if (barcodes.length === 0) {