From cf1c92bf0dbc91f0cbf6fad1aa012e5269218d8f Mon Sep 17 00:00:00 2001 From: sladro Date: Fri, 19 Sep 2025 11:58:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E8=96=84=E5=A3=B3=E5=88=86=E6=9E=90=E5=85=A8=E9=80=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BDID=E9=87=8D=E5=A4=8D=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=95=B0=E9=87=8F=E4=B8=8D=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构零件数据合并逻辑,抽取addUniqueIdAndCategory函数遵循DRY原则 - 为每个零件生成唯一ID,保留原始ID作为originalId字段 - 解决不同类别零件ID重复导致Set去重的问题 - 现在全选功能能正确选择所有筛选类别的零件 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/components/pages/ShellAnalysisResult.vue | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/components/pages/ShellAnalysisResult.vue b/src/components/pages/ShellAnalysisResult.vue index b00210a..f257392 100644 --- a/src/components/pages/ShellAnalysisResult.vue +++ b/src/components/pages/ShellAnalysisResult.vue @@ -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] })