yeuimu
|
5a7a2841de
|
merge: feature/public-family-id-dev into develop (local only, not pushed)
|
2026-08-28 18:43:33 +08:00 |
|
yeuimu
|
8a052773cd
|
feat(public): family-first contract — goodId=familyId, strict 5-dim price matrix
公开契约族化(前端只需知道款号/族):
- GET /public/goods 一族一条(goodId=族ID,price=族起价,分页作用于分组后);
无族商品(自定义)不进任何公开端点(列表/首页/分类树/标签统计)
- GET /public/goods/:goodId 仅认族 ID;公共字段取代表 Good,变体=全体成员并集,
尺码表/包装规格=族物化并集;旧 SDS 链接 ID 寻址 404
- priceMatrix 严格五维:尺码×颜色×印花数量×工艺×物流;维度来源改为链接级
标签(人工接管按人工标签),弃用原始 craftLabel;CUSTOM 成员尊重显式标签
- 名称派生补裸「单面/双面」写法(直喷双面→双面印花+直喷,18 条存量链接修复)
- family_price_overrides 加 print_count 列(五键唯一),PUT/DELETE/校验五键化
- admin 编辑弹窗矩阵消费适配(SKU 列直读 printCount,成员格子三维匹配,
改价 payload 带 printCount)
- 存量 339 族已全量重算;api 162/162、admin 22/22、双端构建绿
|
2026-08-28 18:43:30 +08:00 |
|
yeuimu
|
e5ec022834
|
merge: fix/swagger-csp-dev into develop (local only, not pushed)
|
2026-08-28 17:50:39 +08:00 |
|
yeuimu
|
e018f16d0b
|
fix(api): drop helmet CSP upgrade-insecure-requests so Swagger UI loads over plain http
|
2026-08-28 17:50:39 +08:00 |
|
yeuimu
|
b055aedd3e
|
merge: fix/swagger-proxy-dev into develop (local only, not pushed)
|
2026-08-28 17:43:41 +08:00 |
|
yeuimu
|
1ef82c4c14
|
fix(admin): proxy /api/docs without prefix strip so Swagger UI works through vite dev server
|
2026-08-28 17:43:41 +08:00 |
|
yeuimu
|
f07e843130
|
fix(admin): move family union tabs to the bottom of edit dialog
|
2026-08-28 17:37:58 +08:00 |
|
yeuimu
|
6054cb556a
|
docs: family union tabs and searchable merge list
|
2026-08-28 17:27:53 +08:00 |
|
yeuimu
|
d4515631b1
|
merge: feat/family-detail-tabs-dev into develop (local only, not pushed)
|
2026-08-28 17:26:41 +08:00 |
|
yeuimu
|
c7e6c35fbf
|
feat(admin): family-level size/package/SKU union tabs in edit dialog; searchable merge-sibling list in config dialog
|
2026-08-28 17:26:41 +08:00 |
|
yeuimu
|
6d9305b878
|
merge: fix/config-dialog-siblings-dev into develop (local only, not pushed)
|
2026-08-28 17:11:36 +08:00 |
|
yeuimu
|
7c85f7fe9f
|
fix(admin): config dialog lists all same-category sibling links (incl. configured); drop merge tip text
|
2026-08-28 17:11:36 +08:00 |
|
yeuimu
|
f280b1daf5
|
docs: reflect simplified member price table
|
2026-08-28 17:03:12 +08:00 |
|
yeuimu
|
d67858c69b
|
merge: fix/session-restore-and-price-table-dev into develop (local only, not pushed)
|
2026-08-28 17:02:26 +08:00 |
|
yeuimu
|
c2d50c9fa3
|
fix(admin): restore session via /auth/me in router guard (refresh no longer logs out); simplify member price table (no title/source/action columns)
|
2026-08-28 17:02:25 +08:00 |
|
yeuimu
|
9863346c6d
|
merge: fix/goods-view-feedback-dev into develop (local only, not pushed)
|
2026-08-28 16:55:08 +08:00 |
|
yeuimu
|
f28f51155f
|
feat(goods): per-member detail tabs in edit dialog; revert right-tree to raw names; split configured/family badges; add GET /origin-goods/:id
|
2026-08-28 16:55:07 +08:00 |
|
yeuimu
|
753b554413
|
merge: feature/goods-dialog-split-dev into develop (local only, not pushed)
|
2026-08-28 16:40:48 +08:00 |
|
yeuimu
|
10197c47a8
|
refactor(admin): split GoodsView into dialog components; fix(GoodsView): raw member names, no primary badges, member price grid; feat(tag): 光板 maps to 不打印
|
2026-08-28 16:40:48 +08:00 |
|
yeuimu
|
34d84a7a7c
|
merge: feature/link-tags-and-sku-dims-dev into develop (local only, not pushed)
|
2026-08-28 16:00:52 +08:00 |
|
yeuimu
|
6f22a6fd1f
|
feat(admin): expandable family members with per-link tag config + SKU pricing dims columns
|
2026-08-28 16:00:46 +08:00 |
|
yeuimu
|
08201f18a4
|
feat(product-family): link-level tags (origin_good_tags) with manual override + member detail enrichment
|
2026-08-28 16:00:46 +08:00 |
|
yeuimu
|
37b52c5ebb
|
merge: feature/family-link-tags-ui-dev into develop (local only, not pushed)
|
2026-08-28 15:33:17 +08:00 |
|
yeuimu
|
1128167aef
|
feat(admin): family-aware goods view - auto tags readonly, clean link names, config badges, locate highlight
|
2026-08-28 15:33:11 +08:00 |
|
yeuimu
|
ee336968a0
|
feat(product-family): derive tags per link name (印花数量/工艺/物流 rules)
|
2026-08-28 15:33:11 +08:00 |
|
yeuimu
|
f5a3b8c840
|
merge: bring in public media/variant dedup from origin/develop (local only)
|
2026-08-28 15:15:17 +08:00 |
|
yeuimu
|
6395d9e6ab
|
feat(product-family): family-derived tags replace manual logistics/craft tagging
|
2026-08-28 14:57:26 +08:00 |
|
yeuimu
|
eedfbb344e
|
feat(product-family): auto-derive logistics/craft tags from family members
|
2026-08-28 14:57:25 +08:00 |
|
yeuimu
|
a13931c84c
|
revert(admin): keep original admin layout with family replacing primary/secondary sources
|
2026-08-28 14:35:34 +08:00 |
|
yeuimu
|
353e51e871
|
revert(admin): restore original layout, replace primary/secondary source UI with family members
|
2026-08-28 14:35:34 +08:00 |
|
yeuimu
|
7b17fff86f
|
fix(admin): fail loudly when dev port 5173 is occupied
|
2026-08-28 14:21:37 +08:00 |
|
yeuimu
|
f919577ddd
|
feat(product-family): goods view family integration, family-based public variant union
|
2026-08-28 14:14:59 +08:00 |
|
yeuimu
|
4eadb67c36
|
feat(product-family): replace legacy good merge with family mechanism in config view and public detail
|
2026-08-28 14:14:58 +08:00 |
|
yeuimu
|
14c53504f0
|
feat(product-family): public detail family block and good family derivation
|
2026-08-28 13:40:19 +08:00 |
|
yeuimu
|
6418aa7302
|
feat(api): public good detail family block behind gray-release flag
|
2026-08-28 13:40:19 +08:00 |
|
yeuimu
|
b4b9fbbe60
|
feat(api): good family_id column with backfill
|
2026-08-28 13:34:42 +08:00 |
|
yeuimu
|
ba3c6d2d4f
|
feat(admin): product family management tab, price override matrix and family grouping
|
2026-08-28 13:30:38 +08:00 |
|
yeuimu
|
d70a03f6fa
|
docs: admin product family references
|
2026-08-28 13:30:37 +08:00 |
|
yeuimu
|
fd7ca5d53f
|
feat(admin): goods view family badges and sibling matching
|
2026-08-28 13:29:54 +08:00 |
|
yeuimu
|
07f3134f79
|
feat(admin): product family management tab
|
2026-08-28 13:28:37 +08:00 |
|
yeuimu
|
dcd2b235b9
|
feat(admin): family match util
|
2026-08-28 13:25:31 +08:00 |
|
yeuimu
|
c492469d70
|
feat(admin): product families api client and types
|
2026-08-28 13:25:10 +08:00 |
|
yeuimu
|
8fad8de73e
|
docs(agents): add lessons for db drift resolution and shared-db test isolation
|
2026-08-28 12:53:10 +08:00 |
|
yeuimu
|
e49eebcedd
|
fix(product-family): tolerant auto-group member attach
|
2026-08-28 12:52:22 +08:00 |
|
yeuimu
|
ab450c350e
|
fix(api): tolerant member attach in auto-group under concurrent cleanup
|
2026-08-28 12:52:22 +08:00 |
|
yeuimu
|
f7c4252a91
|
feat(product-family): merge SPU family layer phase-1 backend
|
2026-08-28 12:50:49 +08:00 |
|
yeuimu
|
502b7eba6e
|
docs: update references for product families; fix controller import and test isolation
|
2026-08-28 12:50:42 +08:00 |
|
yeuimu
|
c8531bfe08
|
feat(api): category-based family grouping, tree family info and custom goods family attribution
|
2026-08-28 12:43:58 +08:00 |
|
yeuimu
|
d63f1a6f35
|
feat(api): product families backfill script
|
2026-08-28 12:36:39 +08:00 |
|
yeuimu
|
d20a933e34
|
feat(api): sync hooks for parsing, auto-attach and family recompute
|
2026-08-28 12:33:33 +08:00 |
|