|
@@ -49,7 +49,12 @@
|
|
|
<el-table-column width="60" label="选择">
|
|
|
<template #default="{ row }">
|
|
|
<el-checkbox
|
|
|
- :model-value="selectedRows.some((item) => item.materialCode === row.materialCode)"
|
|
|
+ :model-value="selectedRows.some(item =>
|
|
|
+ item.factoryId === row.factoryId &&
|
|
|
+ item.costCenterId === row.costCenterId &&
|
|
|
+ item.storageLocationId === row.storageLocationId &&
|
|
|
+ item.materialCode === row.materialCode
|
|
|
+ )"
|
|
|
@click.stop="toggleRow(row)"
|
|
|
class="no-label-radio"
|
|
|
/>
|
|
@@ -301,7 +306,22 @@ const handleInput = (value, obj) => {
|
|
|
|
|
|
// 多选 切换行选中状态
|
|
|
const toggleRow = (row) => {
|
|
|
- const index = selectedRows.value.findIndex((item) => item.materialCode === row.materialCode)
|
|
|
+ /* const index = selectedRows.value.findIndex((item) => item.materialCode === row.materialCode)
|
|
|
+ if (index > -1) {
|
|
|
+ selectedRows.value.splice(index, 1) // 取消选中
|
|
|
+ } else {
|
|
|
+ selectedRows.value.push(row) // 选中
|
|
|
+ } */
|
|
|
+ // 创建复合唯一标识
|
|
|
+ const getRowUniqueKey = (row) => {
|
|
|
+ return `${row.factoryId}_${row.costCenterId}_${row.storageLocationId}_${row.materialCode}`
|
|
|
+ }
|
|
|
+
|
|
|
+ const currentKey = getRowUniqueKey(row)
|
|
|
+ const index = selectedRows.value.findIndex(item =>
|
|
|
+ getRowUniqueKey(item) === currentKey
|
|
|
+ )
|
|
|
+
|
|
|
if (index > -1) {
|
|
|
selectedRows.value.splice(index, 1) // 取消选中
|
|
|
} else {
|