|
|
|
@ -581,11 +581,11 @@ export default { |
|
|
|
isRowSelectable(row) { |
|
|
|
isRowSelectable(row) { |
|
|
|
// 确保 materialName 是非空字符串,materialId 是非空值(字符串或数字) |
|
|
|
// 确保 materialName 是非空字符串,materialId 是非空值(字符串或数字) |
|
|
|
return ( |
|
|
|
return ( |
|
|
|
(row.materialName && |
|
|
|
row.materialName && |
|
|
|
row.materialName.trim() !== "" && |
|
|
|
row.materialName.trim() !== "" && |
|
|
|
row.materialId != null && |
|
|
|
row.materialId != null && |
|
|
|
row.materialId !== "") || |
|
|
|
row.materialId !== "" && |
|
|
|
rowinventory < row.num |
|
|
|
row.inventory > 0 |
|
|
|
); |
|
|
|
); |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 监听嵌套表格的勾选事件 |
|
|
|
// 监听嵌套表格的勾选事件 |
|
|
|
@ -857,13 +857,24 @@ export default { |
|
|
|
let hasError = false; |
|
|
|
let hasError = false; |
|
|
|
|
|
|
|
|
|
|
|
for (const group of this.groupTableData) { |
|
|
|
for (const group of this.groupTableData) { |
|
|
|
const key = group.materialId || group.materialCode || group.id; |
|
|
|
if ( |
|
|
|
if (!key) continue; |
|
|
|
!group.twoInventoryVOList || |
|
|
|
|
|
|
|
group.twoInventoryVOList.length === 0 |
|
|
|
|
|
|
|
) { |
|
|
|
|
|
|
|
this.$message.error( |
|
|
|
|
|
|
|
`分组【${ |
|
|
|
|
|
|
|
group.materialName || group.materialCode |
|
|
|
|
|
|
|
}】下无可出库物资` |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
hasError = true; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 获取该分组下用户勾选的子项 |
|
|
|
// 从 group.twoInventoryVOList 中筛选 _selected 为 true 的项 |
|
|
|
const selectedItems = this.selectedGroupMap[key] || []; |
|
|
|
const selectedItems = group.twoInventoryVOList.filter( |
|
|
|
|
|
|
|
(item) => item._selected |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 如果没有勾选任何子项,跳过(或可视为错误,根据业务) |
|
|
|
|
|
|
|
if (selectedItems.length === 0) { |
|
|
|
if (selectedItems.length === 0) { |
|
|
|
this.$message.error( |
|
|
|
this.$message.error( |
|
|
|
`分组【${ |
|
|
|
`分组【${ |
|
|
|
@ -874,7 +885,6 @@ export default { |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 计算勾选项的 num 总和 |
|
|
|
|
|
|
|
const totalSelectedNum = selectedItems.reduce((sum, item) => { |
|
|
|
const totalSelectedNum = selectedItems.reduce((sum, item) => { |
|
|
|
return sum + (Number(item.num) || 0); |
|
|
|
return sum + (Number(item.num) || 0); |
|
|
|
}, 0); |
|
|
|
}, 0); |
|
|
|
@ -891,7 +901,6 @@ export default { |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (hasError) { |
|
|
|
if (hasError) { |
|
|
|
return; // 阻止提交 |
|
|
|
return; // 阻止提交 |
|
|
|
} |
|
|
|
} |
|
|
|
|