From fd7ca5d53fd834b0ed2efb85d34cdb5bcf9daa5b Mon Sep 17 00:00:00 2001
From: yeuimu <2197651308@qq.com>
Date: Fri, 28 Aug 2026 13:29:54 +0800
Subject: [PATCH] feat(admin): goods view family badges and sibling matching
---
apps/admin/src/views/goods/GoodsView.vue | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/apps/admin/src/views/goods/GoodsView.vue b/apps/admin/src/views/goods/GoodsView.vue
index f57c1c7..e832017 100644
--- a/apps/admin/src/views/goods/GoodsView.vue
+++ b/apps/admin/src/views/goods/GoodsView.vue
@@ -18,7 +18,7 @@ import { tagsApi } from '@/api/tags'
import { tagGroupsApi } from '@/api/tag-groups'
import { originGoodsApi } from '@/api/origin-goods'
import { syncApi } from '@/api/sync'
-import { sameOriginGroup } from '@/utils/origin-name'
+import { sameFamily } from '@/utils/family-match'
const mode = ref<'category' | 'country' | 'global'>('category')
const loading = ref(false)
@@ -275,6 +275,9 @@ function buildRightTree(tree: OriginGoodsTreeResponse) {
variantCount: og.variantCount ?? 0,
sizeRowCount: og.sizeRowCount ?? 0,
packageRowCount: og.packageRowCount ?? 0,
+ familyId: og.familyId ?? null,
+ familyCode: og.familyCode ?? null,
+ familyStale: og.familyStale ?? null,
}))
return {
id: 'rc-' + node.categoryId,
@@ -408,7 +411,7 @@ function openConfigModal(og: any, dropTarget: any) {
configSiblings.value = siblings
configPrimaryId.value = String(og.rawId)
configChecked.value = siblings
- .filter((s) => sameOriginGroup(ogNode?.goodName ?? og.goodName, s.goodName))
+ .filter((s) => sameFamily(ogNode ?? { goodName: og.goodName }, s))
.map((s) => String(s.rawId))
configForm.value = { countryId: '', cascaderCategory: [], categoryId: '', tagIds: [], positionId: '', goodImage: og.goodImage || '' }
if (dropTarget) {
@@ -1688,6 +1691,18 @@ onMounted(() => loadAll())