From f0bf6c09a24a55c35ffc3da78fd1c8779b46bc94 Mon Sep 17 00:00:00 2001 From: WuYongJie Date: Wed, 8 Apr 2026 13:54:51 +0800 Subject: [PATCH] fix asset-center material library sync and workflow verification --- docs/前端UI改动清单.md | 42 +- .../app/asset-center/AssetCenterClient.tsx | 50 +- .../AssetCenterClient.workflow.test.tsx | 19 +- .../MaterialLibraryClient.test.tsx | 227 ++++++++++ .../MaterialLibraryClient.tsx | 428 +++++++----------- .../src/lib/open-product/platform-api.ts | 2 +- 6 files changed, 440 insertions(+), 328 deletions(-) create mode 100644 furniture-3d-system/src/app/asset-center/material-library/MaterialLibraryClient.test.tsx diff --git a/docs/前端UI改动清单.md b/docs/前端UI改动清单.md index 504a462c..14700ac5 100644 --- a/docs/前端UI改动清单.md +++ b/docs/前端UI改动清单.md @@ -13,51 +13,11 @@ ## 当前未完成项 -### 待前端修正 (前端 UI Agent 负责) - -- [ ] **资产中心弹窗主按钮禁用态过浅** - 归属:`前端负责` - 说明:资产中心内一批浅色弹窗底部的主按钮,在不可提交或 loading 前后状态下,存在“底色发灰、文字发白、和浅色 footer 混在一起”的问题,主次层级不清晰。请统一修正 `filled` 主按钮在浅色主题下的默认态 / disabled 态 / loading 态对比度,不要只改单个弹窗。 - 涉及位置: - `资产族弹窗`:`创建` / `保存修改` - `规格款弹窗`:`创建规格款` / `保存修改` - `CAD 导入弹窗`:`开始导入` / `继续导入` - `新增/编辑连接角色弹窗`:`新增` / `保存` - `基础资料库` 页面弹窗:`创建基材` / `保存修改` / `创建分类` / `创建饰面` - -- [ ] **资产中心弹窗次级文字按钮在浅底上过淡** - 归属:`前端负责` - 说明:浅色弹窗 footer 内的 `plain` 次级按钮,现在默认文字和背景层级太接近,小字号时尤其不清楚。请统一检查并修正 `plain` 按钮在浅色弹窗中的默认态、hover 态、禁用态,让“取消 / 完成 / 新增连接角色”这类按钮肉眼一看就能分清。 - 涉及位置: - `资产族弹窗`:`取消` - `规格款弹窗`:`取消` - `CAD 导入弹窗`:`取消` / `完成` - `连接角色区域`:`新增连接角色` - `新增/编辑连接角色弹窗`:`取消` - `基础资料库` 页:`新建分类` - `基础资料库` 页面弹窗:`取消` - -- [ ] **资产中心列表内图标按钮默认态辨识度不足** - 归属:`前端负责` - 说明:列表和卡片内的编辑 / 删除图标按钮,默认态颜色过浅,未 hover 时像“没激活”或“不可点”,尤其在浅色卡片和浅色分组背景里不够清楚。请统一调整这类圆形图标按钮的默认态和 hover 态,不要只修某一个图标。 - 涉及位置: - `资产族 / 规格款列表`:铅笔编辑按钮 - `连接角色列表`:编辑 / 删除图标按钮 - `基础资料库` 页:基材 / 分类 / 饰面列表的编辑 / 删除图标按钮 - -- [ ] **同一弹窗内主次按钮层级需要统一规范** - 归属:`前端负责` - 说明:当前资产中心多个弹窗里,主按钮、次按钮、危险按钮的视觉层级不完全一致;有的主按钮太淡,有的删除按钮太抢,有的次按钮像禁用态。请按统一视觉标准整理这三类按钮在浅色主题弹窗 footer 内的层级关系,保证“主操作最清楚、次操作清楚但不抢、危险操作醒目但不刺眼”。这一项是规则统一,不是逐页补丁。 - -- [ ] **基础资料库页面需要做正式视觉收口** - 归属:`前端负责` - 说明:`基础资料库` 已经作为独立子页面接入主流程,但目前还是功能先行版。请按全局统一视觉,把这个页面的左侧说明区、右侧列表区、分类筛选 chips、列表空态和“返回资产中心 / 新建分类 / 新建饰面 / 新建基材”几组操作做成和主线一致的正式界面,不要回退为老式后台页。 - ### 待联调确认 (全栈 / 后端 Agent 负责) - [ ] **资产中心资产族新流程人工验收** 归属:`联调确认` - 说明:确认资产中心现在已改成“先建资产族,再在资产族内新建规格款 / 发起 CAD 导入;缺资料时跳转基础资料库补录”的结构,用户理解是否自然,弹窗开关、列表刷新、导入完成后的落点是否符合预期。 + 说明:确认资产中心现在已改成"先建资产族,再在资产族内新建规格款 / 发起 CAD 导入;缺资料时跳转基础资料库补录"的结构,用户理解是否自然,弹窗开关、列表刷新、导入完成后的落点是否符合预期。 - [ ] **资产族品类系列 + 中文连接角色维护人工验收** 归属:`联调确认` diff --git a/furniture-3d-system/src/app/asset-center/AssetCenterClient.tsx b/furniture-3d-system/src/app/asset-center/AssetCenterClient.tsx index 85709d7a..43253298 100644 --- a/furniture-3d-system/src/app/asset-center/AssetCenterClient.tsx +++ b/furniture-3d-system/src/app/asset-center/AssetCenterClient.tsx @@ -1350,7 +1350,7 @@ export default function AssetCenterClient({ @@ -1448,7 +1448,7 @@ export default function AssetCenterClient({ + {isImportableAssetType(family.type) ? ( - + CAD 导入 + ) : null} @@ -1553,19 +1545,14 @@ export default function AssetCenterClient({

基础资料库

- 统一维护基材、材质分类、饰面花色;补录完成后再回当前资产族继续操作。 + {substrates.length} 个基材 · {finishes.length} 个饰面花色

-
-

- {substrates.length} 个基材 · {finishes.length} 个饰面 -

-
- 打开资料页 - -
-
+ + 去基础资料库维护 + + {/* 下一步引导 */} @@ -1832,6 +1819,7 @@ export default function AssetCenterClient({ {cadImportForm.assetType === 'BOARD' ? ( + <>
openEditRoleEditor(definition)} - className="rounded-full p-1.5 text-apple-label-tertiary hover:bg-apple-bg-secondary hover:text-apple-label-primary transition" + className="rounded-full p-1.5 text-apple-label-secondary hover:bg-apple-bg-secondary hover:text-apple-label-primary transition" title={`编辑 ${definition.label}`} > @@ -2162,7 +2154,7 @@ export default function AssetCenterClient({ @@ -611,188 +569,150 @@ export default function MaterialLibraryClient({
{activeTab === 'substrate' ? ( -
-
-

基材列表

-

- 当前共 {filteredSubstrates.length} 条,删除后规格款会自动回落为未设置。 -

+ filteredSubstrates.length === 0 ? ( +
+ +

暂无基材

+

点击上方「新建基材」添加第一条记录

-
- {filteredSubstrates.length === 0 ? ( -
- 暂无匹配的基材 -
- ) : ( - filteredSubstrates.map((substrate) => ( -
-
-
-

- {substrate.name} -

- - {substrate.code} - -
-

- {substrate.description?.trim() || '未填写说明'} -

-
-
- {substrate.densityKgM3 ? `${substrate.densityKgM3} kg/m³` : '未填密度'} -
- - + ) : ( +
+ {filteredSubstrates.map((substrate) => ( +
+

+ {substrate.name} +

+
+ {substrate.code} + {substrate.densityKgM3 ? {substrate.densityKgM3} kg/m³ : null}
- )) - )} + + +
+ ))}
-
+ ) ) : ( <> -
-
-
-

材质分类筛选

-

- 先选分类再维护具体饰面;也可以查看全部。 -

-
-