fix: 修复智能薄壳分析全选功能ID重复导致的选择数量不匹配问题

- 重构零件数据合并逻辑,抽取addUniqueIdAndCategory函数遵循DRY原则
- 为每个零件生成唯一ID,保留原始ID作为originalId字段
- 解决不同类别零件ID重复导致Set去重的问题
- 现在全选功能能正确选择所有筛选类别的零件

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
sladro 2025-09-19 11:58:11 +08:00
parent c218beefe4
commit cf1c92bf0d

View File

@ -243,24 +243,28 @@ const analysisResults = computed(() => {
return props.analysisData.data
})
// ID
const addUniqueIdAndCategory = (parts, category, startId) => {
return parts.map((part, index) => ({
...part,
id: startId + index,
originalId: part.id,
deletion_recommendation: category
}))
}
//
const allParts = computed(() => {
if (!analysisResults.value) return []
const safeDeletions = analysisResults.value.safeDeletions.map(part => ({
...part,
deletion_recommendation: 'safe_delete'
}))
let currentId = 1
const safeDeletions = addUniqueIdAndCategory(analysisResults.value.safeDeletions, 'safe_delete', currentId)
currentId += safeDeletions.length
const suggestedDeletions = analysisResults.value.suggestedDeletions.map(part => ({
...part,
deletion_recommendation: 'recommended_delete'
}))
const suggestedDeletions = addUniqueIdAndCategory(analysisResults.value.suggestedDeletions, 'recommended_delete', currentId)
currentId += suggestedDeletions.length
const preserveList = analysisResults.value.preserveList.map(part => ({
...part,
deletion_recommendation: 'must_keep'
}))
const preserveList = addUniqueIdAndCategory(analysisResults.value.preserveList, 'must_keep', currentId)
return [...safeDeletions, ...suggestedDeletions, ...preserveList]
})