fix(outbound): 修复选单列表移除按钮排序后索引错位导致删错行

- 表格绑定 sortedSelectedItems(按库位排序),但移除按钮用 $index 操作原始 selectedItems
- 排序后索引与原始数组不一致,导致删除错误的行
- 改为按 uniqueKey 精确定位删除
This commit is contained in:
yueli
2026-08-13 17:17:54 +08:00
parent 7e4524ae42
commit 57a6ab38d1

View File

@ -105,8 +105,8 @@
</el-table-column>
<el-table-column label="操作" width="80" align="center" fixed="right">
<template #default="{ $index }">
<el-button v-if="!isBulkMode && userStore.hasPermission('outbound_selection:operation')" type="danger" link @click="removeRow($index)">移除</el-button>
<template #default="{ row }">
<el-button v-if="!isBulkMode && userStore.hasPermission('outbound_selection:operation')" type="danger" link @click="removeRow(row)">移除</el-button>
</template>
</el-table-column>
</el-table>
@ -884,8 +884,12 @@ const batchRemove = () => {
}).catch(() => {})
}
const removeRow = (index: number) => {
selectedItems.value.splice(index, 1)
const removeRow = (row: any) => {
// ★ 按 uniqueKey 精确定位删除,避免排序后索引错位导致删错
const idx = selectedItems.value.findIndex(item => item.uniqueKey === row.uniqueKey)
if (idx > -1) {
selectedItems.value.splice(idx, 1)
}
}
const handlePreview = () => {