diff --git a/apps/admin/src/views/goods/GoodsView.vue b/apps/admin/src/views/goods/GoodsView.vue
index 84f8ffa..9ecf796 100644
--- a/apps/admin/src/views/goods/GoodsView.vue
+++ b/apps/admin/src/views/goods/GoodsView.vue
@@ -172,6 +172,7 @@ function goodToNode(g: Good): any {
originGoodPrice: g.originGood?.goodPrice || null,
sdsGoodId: g.originGood?.sdsGoodId || null,
isCustom: g.originGood?.isCustom === true,
+ mergedCount: 1 + (g.mergedOriginGoods?.length ?? 0),
originDelisted: g.originGood?.source === 'SDS' && !activeOriginGoodIds.value.has(String(g.originGoodId)),
}
}
@@ -1629,6 +1630,7 @@ onMounted(() => loadAll())
{{ data.goodName }}
+ ×{{ data.mergedCount }}
@@ -2307,10 +2309,21 @@ onMounted(() => loadAll())
}
.good-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.good-row { display: flex; align-items: center; gap: 4px; min-width: 0; }
-.good-name-col { flex: 1; min-width: 0; overflow: hidden; }
.good-name {
- display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
+ display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
font-size: 13px; line-height: 1.4; cursor: pointer;
+ max-width: calc(100% - 40px);
+}
+.good-name-col { flex: 1; min-width: 0; overflow: hidden; }
+.gv-merged-badge {
+ margin-left: 4px;
+ padding: 0 5px;
+ border-radius: 8px;
+ background: var(--el-color-primary-light-8);
+ color: var(--el-color-primary);
+ font-size: 11px;
+ vertical-align: middle;
+ flex-shrink: 0;
}
.good-actions {
display: flex; gap: 2px; flex-shrink: 0;