diff --git a/src/modules/first-leg/views/FirstLegOrdersView.test.mjs b/src/modules/first-leg/views/FirstLegOrdersView.test.mjs
index 68d679a..372a813 100644
--- a/src/modules/first-leg/views/FirstLegOrdersView.test.mjs
+++ b/src/modules/first-leg/views/FirstLegOrdersView.test.mjs
@@ -352,6 +352,9 @@ test('distills order creation into the confirmed prototype sections with server
assert.match(source, /直接选择模板内的中文下拉项,不需要填写英文代码或内部编号/)
assert.match(source, /选择木制品时,模板会要求同步选择需要商检/)
assert.match(source, /下载 Excel 错误报告/)
+ assert.match(source, /\^excel-row-\(\\d\+\)\$[\s\S]*item\.index \+ 3/)
+ assert.match(source, /Excel 第 \{\{ batchImportExcelRow\(item\) \}\} 行/)
+ assert.doesNotMatch(source, /未填写行标识/)
assert.match(source, /batchImportError[\s\S]*requestId[\s\S]*traceId/)
assert.match(source, /添加行[\s\S]*删除所选行/)
assert.doesNotMatch(source, /货物明细导入模板\.xls/)
diff --git a/src/modules/first-leg/views/FirstLegOrdersView.vue b/src/modules/first-leg/views/FirstLegOrdersView.vue
index e4fb90d..a347563 100644
--- a/src/modules/first-leg/views/FirstLegOrdersView.vue
+++ b/src/modules/first-leg/views/FirstLegOrdersView.vue
@@ -1495,6 +1495,11 @@ function openBatchImport() {
batchImportOpen.value = true
}
+function batchImportExcelRow(item: { index: number; clientRowId: string }) {
+ const matched = /^excel-row-(\d+)$/.exec(item.clientRowId)
+ return matched ? Number(matched[1]) : item.index + 3
+}
+
function selectBatchImportFile(event: Event) {
const input = event.target as HTMLInputElement
const file = input.files?.[0]
@@ -2027,8 +2032,8 @@ async function searchOrders(model: QueryModel) {