Files
inkreach-official-website/plans/feature/product-family-config-integration-feature.md
T

14 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 产品族 × 商品配置页完整融入 实施计划
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans. Steps use checkbox (`- [ ]`) syntax.
**Goal:** 「商品配置」页深度接入族:右树按族分组、配置勾选兄弟=挂族(双写兼容)、编辑表单可查看/切换族。
**Tasks:**
1. **后端**`UpdateGoodDto.familyId?: number | null``update()` 校验族存在后写入;`GOOD_INCLUDE.originGood``family` select 并透出到 `GoodDetailDto``family: { familyId, familyCode, familyName } | null`)。测试:update 改族/清族/非法族 404。
2. **右树按族分组**`buildRightTree.mapCat` 内按 `og.familyId` 分桶:族节点(`isFamily: true`label=`编码 · 族名 (n)`+ 未入族桶;og 节点 `parentId` 指向族节点(`collectSiblings` 语义随之升级为同族);非 OG 节点模板分支渲染族节点。过滤/展开/计数逻辑不改(遍历式,天然兼容)。
3. **配置弹窗挂族**`handleConfigSubmit` 在 createGood 前:主链接有族 → `updateMembers(add: 勾选兄弟)`;无族且有勾选 → `POST /product-families`(族名=主链接名 3 段截断, `originGoodIds=[主+勾选]`);**保留 mergedOriginGoodIds 双写**(公开读路径兼容观察期)。
4. **编辑表单族显示/切换**:编辑弹窗显示 `所属族`familyCode/familyName),可搜索切换(远程搜索族列表),保存时 `updateGood({ familyId })`
5. 验证:api 全量 + admin vitest + vue-tsc/build + 冒烟;文档更新(structs/product-center);合并 develop。