发布财务当前页批量读取店铺密码 #16

Merged
WuYongJie merged 8 commits from codex/xuxiake-mainline into main 2026-09-08 17:21:33 +08:00
Collaborator

将共享开发主线中的财务当前页批量密码读取接口发布到生产主线。树级差异已核对为 7 个任务文件,不包含共享主线历史中的其他重复改动。

验证:服务、HTTP 路由和代理边界 3 个 Jest 套件共 41 项通过;npm run type-check 通过;定向 ESLint 无错误。

无 Prisma 迁移。发布后验证 PM2、3001 端口、公网健康和新批量路由协议;不读取真实密码。

将共享开发主线中的财务当前页批量密码读取接口发布到生产主线。树级差异已核对为 7 个任务文件,不包含共享主线历史中的其他重复改动。 验证:服务、HTTP 路由和代理边界 3 个 Jest 套件共 41 项通过;npm run type-check 通过;定向 ESLint 无错误。 无 Prisma 迁移。发布后验证 PM2、3001 端口、公网健康和新批量路由协议;不读取真实密码。
xuxiake added 8 commits 2026-04-30 10:56:28 +08:00
WuYongJie added 1 commit 2026-04-30 12:10:54 +08:00
WuYongJie added 1 commit 2026-04-30 16:46:54 +08:00
WuYongJie added 1 commit 2026-05-05 16:00:49 +08:00
WuYongJie added 1 commit 2026-05-05 19:05:21 +08:00
WuYongJie added 1 commit 2026-05-06 12:10:23 +08:00
WuYongJie added 1 commit 2026-05-06 12:35:38 +08:00
WuYongJie added 1 commit 2026-05-06 17:48:19 +08:00
WuYongJie added 2 commits 2026-05-07 12:10:32 +08:00
WuYongJie added 1 commit 2026-05-07 14:08:40 +08:00
WuYongJie added 1 commit 2026-05-07 14:12:50 +08:00
WuYongJie added 1 commit 2026-05-07 14:47:30 +08:00
WuYongJie added 1 commit 2026-05-07 16:22:49 +08:00
WuYongJie added 1 commit 2026-05-07 16:58:35 +08:00
WuYongJie added 1 commit 2026-05-07 17:19:19 +08:00
WuYongJie added 1 commit 2026-05-07 18:45:53 +08:00
WuYongJie added 1 commit 2026-05-07 19:05:50 +08:00
WuYongJie added 1 commit 2026-05-08 09:05:00 +08:00
WuYongJie added 2 commits 2026-05-08 11:18:15 +08:00
WuYongJie added 1 commit 2026-05-08 13:14:56 +08:00
WuYongJie added 1 commit 2026-05-08 18:28:24 +08:00
WuYongJie added 1 commit 2026-05-09 09:52:55 +08:00
WuYongJie added 1 commit 2026-05-09 12:55:13 +08:00
WuYongJie added 1 commit 2026-05-09 13:57:24 +08:00
WuYongJie added 1 commit 2026-05-09 15:47:08 +08:00
WuYongJie added 1 commit 2026-05-09 18:08:30 +08:00
WuYongJie added 2 commits 2026-05-11 11:22:10 +08:00
WuYongJie added 1 commit 2026-05-11 16:37:56 +08:00
WuYongJie added 1 commit 2026-05-11 17:36:39 +08:00
WuYongJie added 1 commit 2026-05-11 18:22:20 +08:00
WuYongJie added 1 commit 2026-05-11 19:43:27 +08:00
WuYongJie added 1 commit 2026-05-11 20:09:08 +08:00
WuYongJie added 10 commits 2026-05-12 11:18:39 +08:00
WuYongJie added 1 commit 2026-05-12 11:25:39 +08:00
WuYongJie added 1 commit 2026-05-12 14:04:33 +08:00
WuYongJie added 1 commit 2026-05-12 15:10:09 +08:00
WuYongJie added 1 commit 2026-05-12 17:05:47 +08:00
WuYongJie added 1 commit 2026-05-13 09:18:00 +08:00
WuYongJie added 1 commit 2026-05-13 09:50:29 +08:00
WuYongJie added 7 commits 2026-05-13 19:11:06 +08:00
WuYongJie added 4 commits 2026-05-14 11:22:56 +08:00
WuYongJie added 1 commit 2026-05-14 12:04:34 +08:00
WuYongJie added 1 commit 2026-05-14 17:20:26 +08:00
WuYongJie added 3 commits 2026-05-14 19:16:42 +08:00
WuYongJie added 1 commit 2026-05-18 09:19:00 +08:00
WuYongJie added 1 commit 2026-05-18 12:40:52 +08:00
WuYongJie added 1 commit 2026-05-18 15:33:33 +08:00
WuYongJie added 4 commits 2026-05-18 17:08:22 +08:00
WuYongJie added 1 commit 2026-05-18 17:40:23 +08:00
WuYongJie added 1 commit 2026-05-18 18:57:37 +08:00
WuYongJie added 3 commits 2026-05-18 19:37:29 +08:00
# Conflicts:
#	furniture-3d-system/src/app/intake/IntakeClient.tsx
#	furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.test.tsx
WuYongJie added 1 commit 2026-05-18 19:42:12 +08:00
WuYongJie added 1 commit 2026-05-18 19:55:26 +08:00
WuYongJie added 1 commit 2026-05-18 19:59:03 +08:00
WuYongJie added 2 commits 2026-05-18 20:06:28 +08:00
WuYongJie added 2 commits 2026-05-18 20:09:01 +08:00
WuYongJie added 1 commit 2026-05-18 20:14:47 +08:00
WuYongJie added 1 commit 2026-05-18 20:21:28 +08:00
WuYongJie added 1 commit 2026-05-19 08:58:13 +08:00
WuYongJie added 1 commit 2026-05-19 09:11:11 +08:00
WuYongJie added 1 commit 2026-05-19 11:33:12 +08:00
WuYongJie added 1 commit 2026-05-19 12:08:25 +08:00
WuYongJie added 1 commit 2026-05-19 12:15:18 +08:00
WuYongJie added 1 commit 2026-05-19 13:10:07 +08:00
WuYongJie added 1 commit 2026-05-19 14:08:17 +08:00
WuYongJie added 1 commit 2026-05-19 18:30:23 +08:00
WuYongJie added 1 commit 2026-05-19 19:09:33 +08:00
WuYongJie added 1 commit 2026-05-19 19:23:29 +08:00
WuYongJie added 1 commit 2026-05-19 19:34:44 +08:00
WuYongJie added 3 commits 2026-05-19 20:22:09 +08:00
WuYongJie added 1 commit 2026-05-20 09:28:02 +08:00
WuYongJie added 2 commits 2026-05-20 11:57:48 +08:00
WuYongJie added 1 commit 2026-05-20 12:03:25 +08:00
WuYongJie added 2 commits 2026-05-20 12:56:48 +08:00
WuYongJie added 1 commit 2026-05-20 14:18:04 +08:00
WuYongJie added 2 commits 2026-05-20 15:22:02 +08:00
WuYongJie added 1 commit 2026-05-20 16:13:30 +08:00
WuYongJie added 1 commit 2026-05-20 17:16:43 +08:00
WuYongJie added 1 commit 2026-05-20 19:10:06 +08:00
WuYongJie added 1 commit 2026-05-21 13:25:27 +08:00
WuYongJie added 2 commits 2026-05-21 16:21:01 +08:00
WuYongJie added 2 commits 2026-05-21 18:55:46 +08:00
WuYongJie added 1 commit 2026-05-22 12:54:10 +08:00
WuYongJie added 1 commit 2026-05-22 14:09:28 +08:00
WuYongJie added 1 commit 2026-05-22 18:02:07 +08:00
WuYongJie added 2 commits 2026-05-22 18:51:11 +08:00
WuYongJie added 2 commits 2026-05-22 19:53:40 +08:00
WuYongJie added 1 commit 2026-05-23 11:17:34 +08:00
WuYongJie added 1 commit 2026-05-23 13:24:06 +08:00
WuYongJie added 1 commit 2026-05-23 14:22:08 +08:00
WuYongJie added 1 commit 2026-05-23 14:26:56 +08:00
WuYongJie added 1 commit 2026-05-23 14:42:56 +08:00
WuYongJie added 1 commit 2026-05-23 16:33:44 +08:00
WuYongJie added 1 commit 2026-05-23 16:39:19 +08:00
WuYongJie added 1 commit 2026-05-23 17:03:19 +08:00
WuYongJie added 2 commits 2026-05-24 19:41:12 +08:00
WuYongJie added 1 commit 2026-05-24 20:18:34 +08:00
WuYongJie added 1 commit 2026-05-24 20:49:28 +08:00
WuYongJie added 1 commit 2026-05-24 21:21:40 +08:00
WuYongJie added 1 commit 2026-05-25 09:58:32 +08:00
WuYongJie added 1 commit 2026-05-25 16:58:30 +08:00
WuYongJie added 1 commit 2026-05-26 10:36:54 +08:00
WuYongJie added 1 commit 2026-05-26 13:54:24 +08:00
WuYongJie added 1 commit 2026-05-26 16:31:01 +08:00
WuYongJie added 1 commit 2026-05-26 17:19:25 +08:00
WuYongJie added 1 commit 2026-05-26 18:41:15 +08:00
WuYongJie added 2 commits 2026-05-27 08:43:36 +08:00
WuYongJie added 1 commit 2026-05-27 09:27:58 +08:00
WuYongJie added 1 commit 2026-05-27 10:55:05 +08:00
WuYongJie added 1 commit 2026-05-27 15:45:12 +08:00
WuYongJie added 1 commit 2026-05-28 08:54:46 +08:00
WuYongJie added 1 commit 2026-05-28 10:44:23 +08:00
WuYongJie added 1 commit 2026-05-28 11:02:50 +08:00
WuYongJie added 1 commit 2026-05-28 11:12:26 +08:00
WuYongJie added 5 commits 2026-05-28 13:51:46 +08:00
WuYongJie added 3 commits 2026-05-28 18:00:20 +08:00
WuYongJie added 4 commits 2026-05-29 13:02:27 +08:00
WuYongJie added 1 commit 2026-05-29 13:51:08 +08:00
WuYongJie added 1 commit 2026-05-29 17:54:07 +08:00
WuYongJie added 1 commit 2026-05-29 18:09:38 +08:00
WuYongJie added 1 commit 2026-05-29 18:17:16 +08:00
WuYongJie added 1 commit 2026-05-29 18:34:11 +08:00
WuYongJie added 1 commit 2026-05-29 18:35:50 +08:00
WuYongJie added 1 commit 2026-06-01 13:54:39 +08:00
WuYongJie added 16 commits 2026-06-02 16:17:10 +08:00
feat(draft-groups): 草稿组页面优化与预估成本修复

- 保存品类按钮移到品类同一行,加宽按钮
- 删除草稿组加 try/catch 错误处理
- 预估成本:costPrice 为 null 时回退到 estimatedCostPrice
  - OpenProductAssetVariant 类型加 estimatedCostPrice
  - toOpenProductVariants 映射加 estimatedCostPrice
  - buildSlotSnapshot/buildHardwareSnapshot 用 costPrice ?? estimatedCostPrice
  - BOM 聚合用 costPrice ?? estimatedCostPrice
- 颜色统一为白曜石设计令牌(--obs-shell-color/heading-color/muted/surface-bg/border)
- 状态标签颜色改用固定色值,降低饱和度
- 板材/组件/五金件列表每行可点击,弹出只读 Modal 展示完整信息
- 组件详情弹窗增加规格款 ID、资产族 ID、基材 ID、饰面 ID、连接位、3D 模型 URL
@
refactor(asset-center): 拆分 AssetCenterClient 大文件(4775→3733 行)

提取 7 个独立模块:
- asset-center-types.ts(210 行):类型定义、常量、CSS 类名
- asset-center-utils.ts(615 行):纯工具函数(UV 编辑、键盘快捷键、预览节点变换、状态标签、相似性、CAD 导入、系列筛选)
- VariantEditModal.tsx(235 行):规格款编辑弹窗
- FamilyEditModal.tsx(261 行):资产族编辑弹窗
- ReviewRejectModal.tsx(55 行):驳回弹窗
- RoleEditorModal.tsx(47 行):连接角色编辑弹窗

主组件减少 1042 行,功能完全不变。
@
refactor(asset-center): 提取 CAD 导入弹窗为独立组件

- CadImportModal.tsx(306 行):CAD 导入弹窗独立组件
- AssetCenterClient.tsx 3733→3506 行
@
refactor(asset-center): 提取资产族列表为独立组件

- FamilyListPanel.tsx(332 行):资产族+规格款列表渲染
- AssetCenterClient.tsx 3506→3268 行
@
refactor(asset-center): 提取预览右键菜单子菜单为独立组件

- PreviewSubmenus.tsx(252 行):基材选择子菜单 + UV 渲染参数子菜单
- AssetCenterClient.tsx 3268→3085 行
@
# Conflicts:
#	furniture-3d-system/src/app/draft-groups/DraftGroupsClient.tsx
WuYongJie added 2 commits 2026-06-02 20:58:50 +08:00
WuYongJie added 1 commit 2026-06-02 21:44:55 +08:00
WuYongJie added 1 commit 2026-06-02 21:54:30 +08:00
WuYongJie added 1 commit 2026-06-02 22:04:09 +08:00
WuYongJie added 1 commit 2026-06-02 22:28:38 +08:00
WuYongJie added 1 commit 2026-06-03 10:32:31 +08:00
WuYongJie added 1 commit 2026-06-03 10:46:22 +08:00
WuYongJie added 1 commit 2026-06-03 13:11:29 +08:00
WuYongJie added 6 commits 2026-06-03 16:10:39 +08:00
WuYongJie added 1 commit 2026-06-03 16:36:50 +08:00
WuYongJie added 1 commit 2026-06-03 16:53:58 +08:00
WuYongJie added 1 commit 2026-06-03 17:13:59 +08:00
WuYongJie added 2 commits 2026-06-03 18:09:38 +08:00
WuYongJie added 2 commits 2026-06-03 21:42:25 +08:00
WuYongJie added 1 commit 2026-06-03 21:55:26 +08:00
WuYongJie added 1 commit 2026-06-03 22:10:25 +08:00
WuYongJie added 1 commit 2026-06-04 09:07:06 +08:00
WuYongJie added 1 commit 2026-06-04 10:04:00 +08:00
WuYongJie added 1 commit 2026-06-04 10:09:59 +08:00
WuYongJie added 1 commit 2026-06-04 12:17:17 +08:00
WuYongJie added 1 commit 2026-06-04 13:40:19 +08:00
WuYongJie added 1 commit 2026-06-04 14:04:31 +08:00
WuYongJie added 1 commit 2026-06-04 14:22:11 +08:00
WuYongJie added 1 commit 2026-06-04 14:29:05 +08:00
WuYongJie added 1 commit 2026-06-04 14:55:59 +08:00
WuYongJie added 1 commit 2026-06-04 15:15:46 +08:00
WuYongJie added 1 commit 2026-06-04 15:33:24 +08:00
WuYongJie added 1 commit 2026-06-05 10:31:40 +08:00
WuYongJie added 1 commit 2026-06-05 11:59:40 +08:00
WuYongJie added 2 commits 2026-06-05 12:08:32 +08:00
WuYongJie added 1 commit 2026-06-05 12:18:54 +08:00
WuYongJie added 1 commit 2026-06-05 12:29:24 +08:00
WuYongJie added 25 commits 2026-06-05 13:35:21 +08:00
WuYongJie added 1 commit 2026-06-05 14:58:54 +08:00
WuYongJie added 1 commit 2026-06-05 15:16:39 +08:00
WuYongJie added 1 commit 2026-06-05 15:33:30 +08:00
WuYongJie added 1 commit 2026-06-05 15:49:35 +08:00
WuYongJie added 5 commits 2026-06-05 18:02:33 +08:00
WuYongJie added 1 commit 2026-06-05 18:10:27 +08:00
WuYongJie added 1 commit 2026-06-05 18:31:07 +08:00
WuYongJie added 1 commit 2026-06-05 18:36:50 +08:00
WuYongJie added 1 commit 2026-06-06 09:09:52 +08:00
WuYongJie added 1 commit 2026-06-06 09:12:37 +08:00
This reverts commit d3093aead7fae7726c3102236fbd40b4df11d8f9.
WuYongJie added 2 commits 2026-06-06 09:21:57 +08:00
WuYongJie added 1 commit 2026-06-06 09:46:36 +08:00
WuYongJie added 1 commit 2026-06-06 09:55:40 +08:00
WuYongJie added 1 commit 2026-06-06 10:20:37 +08:00
WuYongJie added 2 commits 2026-06-06 14:25:22 +08:00
WuYongJie added 1 commit 2026-06-06 18:07:24 +08:00
WuYongJie added 1 commit 2026-06-06 22:10:19 +08:00
WuYongJie added 1 commit 2026-06-08 10:09:17 +08:00
WuYongJie added 2 commits 2026-06-08 11:39:28 +08:00
WuYongJie added 1 commit 2026-06-08 12:03:56 +08:00
WuYongJie added 1 commit 2026-06-08 12:33:39 +08:00
WuYongJie added 12 commits 2026-06-08 15:54:03 +08:00
WuYongJie added 2 commits 2026-06-08 17:59:12 +08:00
WuYongJie added 15 commits 2026-06-08 18:21:17 +08:00
WuYongJie added 1 commit 2026-06-09 10:29:26 +08:00
WuYongJie added 2 commits 2026-06-09 11:40:28 +08:00
WuYongJie added 1 commit 2026-06-09 12:35:13 +08:00
WuYongJie added 1 commit 2026-06-09 13:05:28 +08:00
WuYongJie added 2 commits 2026-06-09 16:08:54 +08:00
WuYongJie added 1 commit 2026-06-09 17:00:23 +08:00
WuYongJie added 1 commit 2026-06-09 17:10:34 +08:00
WuYongJie added 1 commit 2026-06-09 17:33:22 +08:00
WuYongJie added 1 commit 2026-06-09 17:50:03 +08:00
WuYongJie added 1 commit 2026-06-09 18:09:59 +08:00
WuYongJie added 1 commit 2026-06-09 19:40:08 +08:00
WuYongJie added 1 commit 2026-06-09 20:09:04 +08:00
WuYongJie added 1 commit 2026-06-10 09:04:35 +08:00
WuYongJie added 1 commit 2026-06-10 13:15:37 +08:00
WuYongJie added 1 commit 2026-06-10 14:11:33 +08:00
WuYongJie added 1 commit 2026-06-10 18:49:25 +08:00
WuYongJie added 1 commit 2026-06-10 19:35:56 +08:00
WuYongJie added 1 commit 2026-06-10 22:51:42 +08:00
- Add useMediaQuery hook for breakpoint detection (1024px)
- Add MobileTabBar component for mobile bottom navigation
- Add MobileInspectorDrawer component with 3-position drag
- Update globals.css with responsive variables and touch targets
- Update AppShell/AppTopNav for mobile layout switching
- Update HomeClient, AssetCenter, AssistedAssembly, DraftGroups for responsive layout
- Update Button/Input/Modal/Select with 44px minimum touch targets
WuYongJie added 1 commit 2026-06-10 23:10:45 +08:00
WuYongJie added 1 commit 2026-06-11 01:05:41 +08:00
WuYongJie added 1 commit 2026-06-11 01:42:44 +08:00
WuYongJie added 1 commit 2026-06-11 09:40:38 +08:00
WuYongJie added 1 commit 2026-06-11 11:56:52 +08:00
WuYongJie added 1 commit 2026-06-11 12:43:41 +08:00
WuYongJie added 75 commits 2026-06-11 13:20:56 +08:00
# Conflicts:
#	furniture-3d-system/src/app/intake/AccessoryLibraryPanel.tsx
#	furniture-3d-system/src/app/intake/IntakeClient.test.tsx
#	furniture-3d-system/src/app/intake/IntakeClient.tsx
#	furniture-3d-system/src/app/intake/SpuRuleLibraryWorkspace.test.tsx
#	furniture-3d-system/src/app/intake/SpuRuleLibraryWorkspace.tsx
#	furniture-3d-system/src/app/intake/bom-library/AccessoryLibraryLogic.tsx
#	furniture-3d-system/src/app/intake/bom-library/AccessoryLibraryPanel.tsx
#	furniture-3d-system/src/app/intake/bom-library/BomLibraryDomain.tsx
#	furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.tsx
#	furniture-3d-system/src/app/intake/non-integrated/nonIntegratedApi.ts
#	furniture-3d-system/src/app/intake/non-integrated/nonIntegratedAssetServer.ts
#	furniture-3d-system/src/app/intake/product-development/ProductDevelopmentDomain.tsx
#	furniture-3d-system/src/app/intake/product-development/SpuRuleLibraryWorkspace.test.tsx
#	furniture-3d-system/src/app/intake/product-development/SpuRuleLibraryWorkspace.tsx
#	furniture-3d-system/src/app/intake/product-development/spu-rule-library/SpuRuleLibraryWorkspace.test.tsx
#	furniture-3d-system/src/app/intake/product-development/spu-rule-library/SpuRuleLibraryWorkspace.tsx
#	furniture-3d-system/src/app/intake/product-development/spu-rule-library/spuRuleLibraryLogic.test.ts
#	furniture-3d-system/src/app/intake/product-development/spuRuleLibraryLogic.test.ts
#	furniture-3d-system/src/app/intake/product-patent/ProductPatentDomain.tsx
#	furniture-3d-system/src/app/intake/raw-material-library/RawMaterialLibraryDomain.tsx
#	furniture-3d-system/src/app/intake/raw-material-library/RawMaterialLibraryPanel.tsx
#	furniture-3d-system/src/app/intake/reference-estimator/ReferenceEstimatorDomain.tsx
#	furniture-3d-system/src/app/intake/spuRuleLibraryLogic.test.ts
WuYongJie added 1 commit 2026-06-11 13:38:27 +08:00
WuYongJie added 2 commits 2026-06-11 14:16:22 +08:00
WuYongJie added 1 commit 2026-06-11 16:56:58 +08:00
WuYongJie added 2 commits 2026-06-11 20:45:11 +08:00
WuYongJie added 1 commit 2026-06-11 22:58:14 +08:00
- header/metrics/feedback 区域移动端缩减 padding
- metrics 区域移动端支持横向滚动
- 移除移动端大圆角卡片边框(平铺全宽)
- 侧边栏移动端撑满全宽(有 mainContent 时)
- 右侧面板移动端隐藏(后续可通过抽屉/切换展开)
- 使用 max-lg:! 优先级覆盖父组件的 !important 样式
WuYongJie added 1 commit 2026-06-12 12:40:26 +08:00
WuYongJie added 1 commit 2026-06-12 13:25:14 +08:00
WuYongJie added 7 commits 2026-06-12 16:43:57 +08:00
- 移除 section 的 border/shadow/rounded-[2rem](No-Line Rule)
- 侧边栏和右面板移除 border,改用表面层级色差分离
- 背景改用 surface-container-low 色调
- 移除 metrics 芯片的边框
- IntakeMainLayout 移动端隐藏右面板
- section 改为透明布局容器,背景用 page background
- 侧边栏/主内容/右面板各自独立:rounded-xl + shadow
- 面板间用 gap-3 间距,不再依赖边框分隔
- metrics 芯片移除边框,改用白色卡片 + 微阴影
- 标题使用 Manrope 字体(font-family-display)
- 配色使用 CSS 变量,对齐 Stitch surface 层级
- MobileTabBar: bg-80% opacity + backdrop-blur-24px + 微阴影
- 移除 TabBar 大圆角激活 pill,改为纯文字+图标
- section 单列模式移动端 rounded-none(全宽无边)
- mainContent 模式左侧栏移动端 rounded-none
- AppShell 移动端顶栏改为 Stitch TopAppBar(80% glass + 24px blur)
- globals.css 新增 Stitch 原子类库
- MobileTabBar 对齐 Stitch BottomNavBar
- 全部 max-lg 断点,桌面端零影响
- HomeClient.workspace.tsx: 925行 → 738行,移动端布局拆为 mobile/HomeMobileView.tsx (445行独立文件)
- IntakeWorkspaceTabBar.tsx: 109行 → 77行,移动端Tab拆为 IntakeWorkspaceTabBarMobile.tsx (56行独立文件)
- 原文件仅保留一行条件引用 <HomeMobileView /> / <IntakeWorkspaceTabBarMobile />
- 桌面端代码零改动
新增独立移动端视图文件(遵循用户要求:不堆砌在原臃肿文件中):
- asset-center/mobile/AssetCenterMobileView.tsx (274行) — 系列选择 + Tab + 搜索 + 卡片列表
- assisted-assembly/mobile/AssistedAssemblyMobileView.tsx (148行) — 系列列表 + 工作区提示
- draft-groups/mobile/DraftGroupsMobileView.tsx (173行) — 搜索 + 统计 + 草稿列表

原文件改动最小化(仅 +3 行导入 + 15 行条件分支):
- AssetCenterClient.tsx (7690行) → 添加 useBreakpoint + <AssetCenterMobileView />
- AssistedAssemblyClient.tsx (1580行) → 添加 useBreakpoint + <AssistedAssemblyMobileView />
- DraftGroupsFormalClient.tsx (4943行) → 添加 useBreakpoint + <DraftGroupsMobileView />

全局 Stitch 基础设施(已提交):
- globals.css: stitch-card 圆角修正 2px→12px,新增 20+ 原子类
- AppShell: 移动端背景 #F8F9FA
- MobileTabBar: 精确 Stitch BottomNavBar
- PlatformSplitLayout: 移动端 #F8F9FA 背景
- IntakeWorkspaceShell: 移动端紧凑间距
- StitchMobileLayout: 可复用布局组件

所有改动仅 max-lg 断点生效,桌面端零影响
- external-image-generate: 新增 additionalReferenceImages 字段支持多文件上传
- assisted-assembly-ai-render: 自动提取 assetSnapshot 中的材质贴图
- 按 materialConfig.id 去重聚合,最多 6 种材质
- 构建材质映射描述追加到 prompt,告诉 AI 每张贴图对应哪个部位
- 支持 FormData 混合模式(文件 + URL)和 curl 降级
WuYongJie added 1 commit 2026-06-12 17:17:48 +08:00
WuYongJie added 2 commits 2026-06-12 17:30:58 +08:00
WuYongJie added 1 commit 2026-06-12 18:40:32 +08:00
- 所有 workspace 表格 thead 添加 sticky top-0 z-10,滚动时表头固定
- 外层容器 overflow-hidden 改为 overflow-auto,配合滚动生效
- 基础信息 SKU 表格合并双层 div 为单层,添加 max-h-[60vh] 高度约束
- BOM 表格同步添加 sticky thead
WuYongJie added 3 commits 2026-06-13 16:35:25 +08:00
WuYongJie added 2 commits 2026-06-13 16:45:06 +08:00
WuYongJie added 2 commits 2026-06-13 16:53:16 +08:00
WuYongJie added 2 commits 2026-06-13 18:04:50 +08:00
WuYongJie added 1 commit 2026-06-13 18:34:35 +08:00
WuYongJie added 2 commits 2026-06-15 08:42:35 +08:00
WuYongJie added 2 commits 2026-06-15 10:38:41 +08:00
WuYongJie added 3 commits 2026-06-15 11:15:43 +08:00
# Conflicts:
#	furniture-3d-system/src/app/assisted-assembly/mobile/AssistedAssemblyMobileView.tsx
#	furniture-3d-system/src/app/mobile/HomeMobileView.tsx
#	furniture-3d-system/src/server/services/asset-center.service.ts
WuYongJie added 1 commit 2026-06-15 11:54:31 +08:00
WuYongJie added 1 commit 2026-06-15 12:10:54 +08:00
WuYongJie added 1 commit 2026-06-15 14:59:11 +08:00
WuYongJie added 1 commit 2026-06-15 15:30:51 +08:00
WuYongJie added 1 commit 2026-06-15 15:51:19 +08:00
WuYongJie added 1 commit 2026-06-15 16:28:39 +08:00
WuYongJie added 2 commits 2026-06-15 16:57:44 +08:00
WuYongJie added 1 commit 2026-06-15 17:05:48 +08:00
WuYongJie added 1 commit 2026-06-15 17:20:34 +08:00
WuYongJie added 1 commit 2026-06-15 17:27:08 +08:00
WuYongJie added 1 commit 2026-06-15 17:36:13 +08:00
WuYongJie added 1 commit 2026-06-15 17:52:56 +08:00
WuYongJie added 1 commit 2026-06-15 19:19:21 +08:00
WuYongJie added 7 commits 2026-06-15 19:58:18 +08:00
WuYongJie added 1 commit 2026-06-15 20:19:44 +08:00
WuYongJie added 1 commit 2026-06-15 20:51:34 +08:00
WuYongJie added 1 commit 2026-06-15 21:19:47 +08:00
WuYongJie added 1 commit 2026-06-16 09:31:55 +08:00
WuYongJie added 1 commit 2026-06-16 09:55:35 +08:00
WuYongJie added 1 commit 2026-06-16 10:11:11 +08:00
WuYongJie added 1 commit 2026-06-16 10:21:41 +08:00
WuYongJie added 2 commits 2026-06-16 10:47:31 +08:00
WuYongJie added 1 commit 2026-06-16 11:09:52 +08:00
WuYongJie added 1 commit 2026-06-16 11:28:25 +08:00
WuYongJie added 1 commit 2026-06-16 12:54:16 +08:00
WuYongJie added 1 commit 2026-06-16 14:03:21 +08:00
WuYongJie added 2 commits 2026-06-16 15:09:22 +08:00
WuYongJie added 1 commit 2026-06-16 16:08:31 +08:00
WuYongJie added 5 commits 2026-06-16 16:21:20 +08:00
WuYongJie added 1 commit 2026-06-16 17:10:29 +08:00
WuYongJie added 1 commit 2026-06-16 18:01:08 +08:00
WuYongJie added 2 commits 2026-06-17 09:20:19 +08:00
WuYongJie added 1 commit 2026-06-17 09:45:47 +08:00
WuYongJie added 1 commit 2026-06-17 12:14:34 +08:00
WuYongJie added 3 commits 2026-06-17 16:06:11 +08:00
WuYongJie added 2 commits 2026-06-17 16:27:50 +08:00
WuYongJie added 2 commits 2026-06-17 17:44:54 +08:00
# Conflicts:
#	furniture-3d-system/src/app/intake/non-integrated/workspaces/ai-white-background/NonIntegratedAiWhiteBackgroundPanel.tsx
#	furniture-3d-system/src/app/intake/non-integrated/workspaces/ai-white-background/NonIntegratedAiWhiteBackgroundWorkspace.tsx
#	furniture-3d-system/src/app/intake/non-integrated/workspaces/documents/ProductPhotoWorkspace.tsx
WuYongJie added 1 commit 2026-06-17 18:00:46 +08:00
WuYongJie added 2 commits 2026-06-17 18:36:41 +08:00
WuYongJie added 2 commits 2026-06-17 18:40:57 +08:00
WuYongJie added 1 commit 2026-06-17 19:36:49 +08:00
WuYongJie added 1 commit 2026-06-18 09:33:47 +08:00
WuYongJie added 2 commits 2026-06-18 11:11:41 +08:00
WuYongJie added 1 commit 2026-06-18 11:27:32 +08:00
WuYongJie added 3 commits 2026-06-18 13:27:37 +08:00
WuYongJie added 1 commit 2026-06-18 13:58:21 +08:00
WuYongJie added 1 commit 2026-06-18 14:38:01 +08:00
WuYongJie added 2 commits 2026-06-18 18:19:52 +08:00
WuYongJie added 1 commit 2026-06-20 14:12:39 +08:00
WuYongJie added 1 commit 2026-06-20 16:06:40 +08:00
WuYongJie added 1 commit 2026-06-20 16:22:58 +08:00
WuYongJie added 1 commit 2026-06-20 16:31:50 +08:00
WuYongJie added 1 commit 2026-06-20 17:42:45 +08:00
WuYongJie added 1 commit 2026-06-20 17:56:31 +08:00
WuYongJie added 1 commit 2026-06-22 11:13:00 +08:00
WuYongJie added 1 commit 2026-06-22 15:47:35 +08:00
WuYongJie added 1 commit 2026-06-23 14:43:55 +08:00
WuYongJie added 1 commit 2026-06-23 15:18:55 +08:00
WuYongJie added 1 commit 2026-06-23 17:31:59 +08:00
WuYongJie added 2 commits 2026-06-25 15:59:09 +08:00
- 全局规则引用改为 agent 中性(ZCode/Codex 各取所需)
- 技术栈口径改为以 package.json 为准,补 Tailwind v4 等漏列项
- 模型名 SKU 统一修正为 ProductSKU(业务概念与 Prisma 模型名对齐)
- 主链目录补充 approval-workflows/materials/mobile
- 对象存储路径修正为 src/lib/storage.ts(文件而非目录)
- 第 3 节新增主线部署标准流程(支线→xuxiake→main→部署)
- 合并验证与规范审查两节,修正不存在的 storage:gc 参数
根因:无花色 SKU 借源生图时,"未配置花色"占位符被当真实色传入,
后端 normalize 后 prompt 退化为"保持源图原色",AI 跟随源条码原图色调
生成错误颜色(SZ024203V01 案例:借胡桃色源图生成出胡桃色结果)。

A 方案(解开死结):
- Workspace 新增 inlineTargetColor 状态,用户可手动指定本次生图颜色
- isEffectiveAiWhiteBackgroundTargetColor 识别"未配置花色"等占位符为无效色
- targetColor 改为 effectiveTargetColor,占位符不再绕过空值校验
- Panel 目标花色区改为条件可输入:SKU 无色时显示输入框

B 方案(借源必填):
- 借源模式 + 无色时给出明确警示"必须指定目标颜色,否则跟随源条码色调"
- 输入框用警示色高亮

工作区重排(解决"操作小小一块"):
- 设置区加宽 310px→380px,字号放大 10/12px→11/13px
- 视图卡片放大 164/190px→180/210px,间距 gap-2→gap-3
- "目标与源图"小节默认展开(最常用不该藏)

验证:type-check 通过,白底图 61 个测试全过(含新增 3 个 A/B 方案验证)
WuYongJie added 1 commit 2026-06-25 18:00:41 +08:00
WuYongJie added 1 commit 2026-06-26 21:24:44 +08:00
WuYongJie added 1 commit 2026-06-29 09:48:10 +08:00
WuYongJie added 2 commits 2026-06-29 13:25:39 +08:00
WuYongJie added 2 commits 2026-06-29 14:37:51 +08:00
根因:buildObjectReadResponse 默认对 https URL 返回 307 重定向到七牛 CDN,
浏览器对 cp.jiansun.vip → qnycdn.jiansun.vip 的跨域图片响应触发
ERR_BLOCKED_BY_ORB,导致所有 <img> 加载失败(图片全炸)。

修复:将 redirectHttps 默认值从 true 改为 false,强制走流式代理。
storage/object、intake assets 两处显式传 false 保持一致。
其余 6 处调用点自动继承新默认值,无需逐个改。

代价:Node 重新承担图片流式转发压力(后续签名URL下发优化解决)。
WuYongJie added 1 commit 2026-06-29 15:03:22 +08:00
# Conflicts:
#	furniture-3d-system/src/app/intake/oa-board/OaBoardClient.tsx
WuYongJie added 1 commit 2026-06-29 16:00:58 +08:00
WuYongJie added 2 commits 2026-06-29 16:06:16 +08:00
之前的流式转发改动(66928576)是误诊。真实根因是七牛AK/SK失效:
- 密钥有效时,307重定向到签名URL → 七牛返回200 + CORS头(Access-Control-Allow-Origin:*)
- 密钥失效时,签名URL无效 → 七牛返回401 → 浏览器误判为ORB拦截

七牛CDN本身已正确配置CORS,不存在跨域问题。流式转发反而违背'图片走CDN减轻
香港带宽压力'的架构目标(图片又挤回香港管道)。现撤回流式转发,恢复307直连CDN。
WuYongJie added 1 commit 2026-06-29 19:40:52 +08:00
根因:external.product_catalog_wide_v1 的 FROM sku_source 行粒度是 SKU,
barcode 只是字段。当前 43261 行 barcode 全唯一是数据巧合(formal 0 行 +
intake ready 每条码唯一),视图定义没强制一条码一行。一旦出现一条码多 SKU
(正式 ProductSKU 落库 + intake ready 同条码,或 intake 内部同条码多行),
宽表就会重复,污染外部系统 barcode 主同步键。

修复:复用项目已有 DISTINCT ON(barcode_business_key) 模式(latest_quality /
limit_by_barcode CTE),把原主查询整体包成 catalog_by_sku CTE,外层加
DISTINCT ON (barcode_business_key)。优先级:FORMAL > INTAKE_READY,
updated_at 最新 > created_at 最新。

末尾追加 catalog_source 字段输出(数据来源标记,对外部系统有用)。
用 CREATE OR REPLACE VIEW 保留 external_reader 已有 GRANT 权限。

生产验证:行数 43261 不变,0 重复 barcode 组,字段完整。
WuYongJie added 1 commit 2026-06-29 21:33:06 +08:00
WuYongJie added 1 commit 2026-06-30 09:49:54 +08:00
WuYongJie added 1 commit 2026-06-30 14:14:04 +08:00
WuYongJie added 1 commit 2026-06-30 14:32:10 +08:00
WuYongJie added 1 commit 2026-06-30 16:25:49 +08:00
WuYongJie added 2 commits 2026-06-30 17:44:23 +08:00
将「目标与源图」「单张修正」「材质方案」三个并列折叠区块合并为一个
「材质方案」区块,简化用户心智模型:

- 目标花色(本次生图主色) + 源条码 + 禁用原因 上移到材质方案区顶部
- 部位材质定义 保留为材质方案核心
- 各视图精修指令(原单张修正) 收纳为材质方案底部子区
- 「重新生成」按钮改为弹内联编辑气泡: 预填该视图精修提示词,
  可改可不改后确认重做, 不再跳转到独立单张修正区
- 简化 AiWhiteBackgroundSettingsSectionId 类型为单一 materials

纯前端 UI 重组, 不动后端 API/服务/数据模型。
type-check 通过, 19 个相关测试全部通过。
WuYongJie added 1 commit 2026-07-01 08:43:50 +08:00
WuYongJie added 1 commit 2026-07-01 10:26:59 +08:00
- 精修气泡展开时隐藏卡片底部「重新生成」按钮,避免功能入口重复占地方
- 去掉气泡内「重新生成 · 正视图」重复标题(上下文已在视图卡片内)
- 保留「生成」态与右侧精修面板,单张首生成能力不受影响
WuYongJie added 2 commits 2026-07-01 10:30:40 +08:00
WuYongJie added 1 commit 2026-07-01 13:13:45 +08:00
WuYongJie added 1 commit 2026-07-01 14:35:45 +08:00
WuYongJie added 1 commit 2026-07-01 15:03:59 +08:00
WuYongJie added 1 commit 2026-07-01 15:37:58 +08:00
WuYongJie added 1 commit 2026-07-02 10:12:39 +08:00
WuYongJie added 1 commit 2026-07-02 10:40:10 +08:00
WuYongJie added 1 commit 2026-07-02 14:03:23 +08:00
WuYongJie added 1 commit 2026-07-03 13:28:18 +08:00
WuYongJie added 1 commit 2026-07-03 14:49:14 +08:00
WuYongJie added 1 commit 2026-07-03 16:35:09 +08:00
WuYongJie added 1 commit 2026-07-04 16:47:13 +08:00
WuYongJie added 1 commit 2026-07-06 19:14:57 +08:00
WuYongJie added 1 commit 2026-07-06 21:53:03 +08:00
WuYongJie added 1 commit 2026-07-07 14:11:18 +08:00
WuYongJie added 1 commit 2026-07-08 16:03:18 +08:00
WuYongJie added 1 commit 2026-07-08 16:45:23 +08:00
WuYongJie added 1 commit 2026-07-09 13:57:44 +08:00
WuYongJie added 1 commit 2026-07-09 17:46:39 +08:00
WuYongJie added 1 commit 2026-07-09 18:39:20 +08:00
WuYongJie added 1 commit 2026-07-10 11:20:58 +08:00
WuYongJie added 1 commit 2026-07-10 11:43:05 +08:00
WuYongJie added 1 commit 2026-07-10 11:58:03 +08:00
WuYongJie added 1 commit 2026-07-10 14:24:29 +08:00
WuYongJie added 12 commits 2026-07-10 14:29:32 +08:00
WuYongJie added 1 commit 2026-07-10 16:49:49 +08:00
WuYongJie added 1 commit 2026-07-10 18:02:10 +08:00
WuYongJie added 1 commit 2026-07-10 18:11:17 +08:00
WuYongJie added 1 commit 2026-07-12 09:36:48 +08:00
WuYongJie added 1 commit 2026-07-13 10:10:31 +08:00
WuYongJie added 1 commit 2026-07-13 10:52:03 +08:00
WuYongJie added 1 commit 2026-07-13 10:57:15 +08:00
WuYongJie added 2 commits 2026-07-13 10:58:08 +08:00
WuYongJie added 1 commit 2026-07-13 11:59:32 +08:00
WuYongJie added 1 commit 2026-07-13 13:08:40 +08:00
WuYongJie added 1 commit 2026-07-13 13:28:39 +08:00
WuYongJie added 1 commit 2026-07-13 13:36:40 +08:00
WuYongJie added 1 commit 2026-07-13 13:54:06 +08:00
WuYongJie added 1 commit 2026-07-13 15:19:56 +08:00
WuYongJie added 1 commit 2026-07-13 16:03:14 +08:00
WuYongJie added 1 commit 2026-07-15 17:49:02 +08:00
WuYongJie added 2 commits 2026-07-17 10:46:37 +08:00
WuYongJie added 10 commits 2026-07-18 11:44:44 +08:00
WuYongJie added 1 commit 2026-07-21 20:43:17 +08:00
WuYongJie added 1 commit 2026-07-22 10:44:52 +08:00
WuYongJie added 1 commit 2026-07-22 11:59:21 +08:00
WuYongJie added 2 commits 2026-07-22 12:30:49 +08:00
WuYongJie added 2 commits 2026-07-22 13:41:46 +08:00
WuYongJie added 2 commits 2026-07-23 14:38:13 +08:00
WuYongJie added 1 commit 2026-07-23 20:36:50 +08:00
WuYongJie added 1 commit 2026-07-24 09:30:21 +08:00
WuYongJie added 1 commit 2026-07-24 10:54:52 +08:00
WuYongJie added 1 commit 2026-07-24 14:05:03 +08:00
WuYongJie added 3 commits 2026-07-27 10:26:04 +08:00
WuYongJie added 2 commits 2026-07-27 10:32:05 +08:00
WuYongJie added 2 commits 2026-07-27 12:00:06 +08:00
WuYongJie added 2 commits 2026-07-27 14:19:49 +08:00
WuYongJie added 2 commits 2026-07-28 09:57:01 +08:00
WuYongJie added 3 commits 2026-07-28 10:17:42 +08:00
WuYongJie added 1 commit 2026-07-28 10:49:47 +08:00
WuYongJie added 1 commit 2026-07-28 11:21:00 +08:00
WuYongJie added 1 commit 2026-07-28 15:57:01 +08:00
WuYongJie added 1 commit 2026-07-28 16:26:37 +08:00
WuYongJie added 3 commits 2026-07-28 17:01:07 +08:00
WuYongJie added 2 commits 2026-07-28 17:39:20 +08:00
WuYongJie added 3 commits 2026-07-28 18:52:23 +08:00
WuYongJie added 1 commit 2026-07-28 19:02:27 +08:00
WuYongJie added 2 commits 2026-07-28 21:12:56 +08:00
WuYongJie added 2 commits 2026-07-29 10:35:41 +08:00
WuYongJie added 1 commit 2026-07-29 10:48:54 +08:00
WuYongJie added 2 commits 2026-07-29 11:10:33 +08:00
WuYongJie added 1 commit 2026-07-29 11:15:04 +08:00
WuYongJie added 2 commits 2026-07-29 11:44:22 +08:00
WuYongJie added 1 commit 2026-07-29 12:26:39 +08:00
WuYongJie added 2 commits 2026-07-29 13:01:51 +08:00
WuYongJie added 1 commit 2026-07-29 13:38:44 +08:00
WuYongJie added 2 commits 2026-07-29 13:47:00 +08:00
WuYongJie added 3 commits 2026-07-29 13:50:00 +08:00
WuYongJie added 2 commits 2026-07-29 15:07:17 +08:00
WuYongJie added 3 commits 2026-07-29 16:01:06 +08:00
WuYongJie added 2 commits 2026-07-29 16:58:23 +08:00
WuYongJie added 1 commit 2026-07-29 17:05:55 +08:00
WuYongJie added 2 commits 2026-07-29 17:53:39 +08:00
WuYongJie added 2 commits 2026-07-29 18:32:39 +08:00
WuYongJie added 2 commits 2026-07-29 20:01:53 +08:00
WuYongJie added 2 commits 2026-07-30 10:31:15 +08:00
WuYongJie added 2 commits 2026-07-30 19:05:43 +08:00
WuYongJie added 1 commit 2026-07-31 10:30:15 +08:00
WuYongJie added 2 commits 2026-07-31 11:25:41 +08:00
WuYongJie added 2 commits 2026-07-31 11:39:48 +08:00
WuYongJie added 2 commits 2026-07-31 12:00:26 +08:00
WuYongJie added 1 commit 2026-07-31 13:11:38 +08:00
WuYongJie added 1 commit 2026-07-31 15:44:22 +08:00
WuYongJie added 1 commit 2026-07-31 17:35:32 +08:00
WuYongJie added 2 commits 2026-07-31 18:08:40 +08:00
WuYongJie added 1 commit 2026-08-01 09:22:35 +08:00
WuYongJie added 1 commit 2026-08-01 18:34:57 +08:00
WuYongJie added 1 commit 2026-08-01 18:46:29 +08:00
WuYongJie added 1 commit 2026-08-01 20:00:45 +08:00
WuYongJie added 1 commit 2026-08-01 21:58:17 +08:00
WuYongJie added 2 commits 2026-08-01 23:24:05 +08:00
WuYongJie added 2 commits 2026-08-02 00:17:17 +08:00
WuYongJie added 2 commits 2026-08-03 09:23:57 +08:00
WuYongJie added 2 commits 2026-08-03 12:13:54 +08:00
WuYongJie added 2 commits 2026-08-03 16:27:09 +08:00
WuYongJie added 5 commits 2026-08-03 16:30:21 +08:00
WuYongJie added 1 commit 2026-08-03 17:02:56 +08:00
WuYongJie added 2 commits 2026-08-03 17:29:09 +08:00
WuYongJie added 2 commits 2026-08-03 17:40:37 +08:00
WuYongJie added 2 commits 2026-08-03 17:51:34 +08:00
WuYongJie added 2 commits 2026-08-04 15:13:24 +08:00
WuYongJie added 2 commits 2026-08-04 15:34:59 +08:00
WuYongJie added 1 commit 2026-08-04 15:40:16 +08:00
WuYongJie added 2 commits 2026-08-04 16:25:13 +08:00
WuYongJie added 1 commit 2026-08-04 16:44:23 +08:00
WuYongJie added 2 commits 2026-08-04 16:54:20 +08:00
WuYongJie added 3 commits 2026-08-04 17:14:25 +08:00
WuYongJie added 2 commits 2026-08-04 17:49:38 +08:00
WuYongJie added 2 commits 2026-08-04 18:22:52 +08:00
WuYongJie added 2 commits 2026-08-04 18:33:41 +08:00
WuYongJie added 2 commits 2026-08-04 18:44:05 +08:00
WuYongJie added 2 commits 2026-08-04 19:16:03 +08:00
WuYongJie added 2 commits 2026-08-04 19:49:17 +08:00
WuYongJie added 3 commits 2026-08-04 20:04:52 +08:00
WuYongJie added 3 commits 2026-08-04 20:14:21 +08:00
WuYongJie added 2 commits 2026-08-04 20:30:41 +08:00
WuYongJie added 3 commits 2026-08-04 20:59:54 +08:00
WuYongJie added 3 commits 2026-08-04 21:23:01 +08:00
WuYongJie added 3 commits 2026-08-04 21:37:40 +08:00
WuYongJie added 3 commits 2026-08-04 22:04:13 +08:00
WuYongJie added 2 commits 2026-08-04 22:47:26 +08:00
WuYongJie added 3 commits 2026-08-04 23:45:33 +08:00
WuYongJie added 2 commits 2026-08-05 00:07:36 +08:00
WuYongJie added 2 commits 2026-08-05 00:21:51 +08:00
WuYongJie added 2 commits 2026-08-05 00:28:47 +08:00
WuYongJie added 2 commits 2026-08-05 01:01:27 +08:00
WuYongJie added 2 commits 2026-08-05 01:50:25 +08:00
WuYongJie added 2 commits 2026-08-05 02:13:35 +08:00
WuYongJie added 2 commits 2026-08-05 02:56:56 +08:00
WuYongJie added 2 commits 2026-08-05 03:07:37 +08:00
WuYongJie added 3 commits 2026-08-05 09:05:13 +08:00
WuYongJie added 2 commits 2026-08-05 09:51:30 +08:00
WuYongJie added 1 commit 2026-08-05 09:58:49 +08:00
WuYongJie added 1 commit 2026-08-05 10:45:47 +08:00
WuYongJie added 3 commits 2026-08-05 10:49:30 +08:00
WuYongJie added 3 commits 2026-08-05 10:51:02 +08:00
WuYongJie added 2 commits 2026-08-05 11:03:51 +08:00
WuYongJie added 3 commits 2026-08-05 11:45:32 +08:00
WuYongJie added 1 commit 2026-08-05 12:45:04 +08:00
WuYongJie added 2 commits 2026-08-05 12:53:07 +08:00
WuYongJie added 4 commits 2026-08-05 13:31:23 +08:00
WuYongJie added 2 commits 2026-08-05 14:25:10 +08:00
WuYongJie added 2 commits 2026-08-05 16:19:04 +08:00
WuYongJie added 1 commit 2026-08-05 16:23:02 +08:00
WuYongJie added 4 commits 2026-08-05 16:30:28 +08:00
WuYongJie added 1 commit 2026-08-05 16:31:37 +08:00
WuYongJie added 3 commits 2026-08-05 17:54:13 +08:00
WuYongJie added 3 commits 2026-08-05 20:05:28 +08:00
WuYongJie added 3 commits 2026-08-05 21:07:16 +08:00
WuYongJie added 1 commit 2026-08-06 09:40:02 +08:00
WuYongJie added 1 commit 2026-08-06 10:00:05 +08:00
WuYongJie added 1 commit 2026-08-06 10:54:15 +08:00
WuYongJie added 1 commit 2026-08-06 12:11:55 +08:00
WuYongJie added 1 commit 2026-08-06 12:49:53 +08:00
WuYongJie added 1 commit 2026-08-06 12:59:04 +08:00
WuYongJie added 1 commit 2026-08-06 13:06:14 +08:00
WuYongJie added 1 commit 2026-08-06 13:21:56 +08:00
WuYongJie added 1 commit 2026-08-06 16:30:15 +08:00
WuYongJie added 9 commits 2026-08-07 12:18:42 +08:00
WuYongJie added 1 commit 2026-08-07 12:38:06 +08:00
WuYongJie added 1 commit 2026-08-07 13:02:00 +08:00
WuYongJie added 1 commit 2026-08-07 14:38:50 +08:00
WuYongJie added 1 commit 2026-08-07 15:56:51 +08:00
WuYongJie added 1 commit 2026-08-07 16:15:16 +08:00
WuYongJie added 1 commit 2026-08-07 17:43:00 +08:00
WuYongJie added 1 commit 2026-08-07 17:43:55 +08:00
WuYongJie added 1 commit 2026-08-07 18:10:00 +08:00
WuYongJie added 1 commit 2026-08-10 11:02:59 +08:00
WuYongJie added 1 commit 2026-08-10 11:35:09 +08:00
WuYongJie added 1 commit 2026-08-10 12:08:31 +08:00
WuYongJie added 8 commits 2026-08-10 12:18:13 +08:00
WuYongJie added 2 commits 2026-08-10 12:59:58 +08:00
WuYongJie added 2 commits 2026-08-10 13:12:53 +08:00
WuYongJie added 1 commit 2026-08-10 13:17:14 +08:00
WuYongJie added 1 commit 2026-08-10 13:56:41 +08:00
WuYongJie added 3 commits 2026-08-10 14:00:16 +08:00
WuYongJie added 2 commits 2026-08-10 14:38:27 +08:00
WuYongJie added 5 commits 2026-08-10 15:49:01 +08:00
WuYongJie added 1 commit 2026-08-10 16:05:18 +08:00
WuYongJie added 1 commit 2026-08-10 16:47:07 +08:00
WuYongJie added 1 commit 2026-08-10 17:22:28 +08:00
WuYongJie added 2 commits 2026-08-10 22:16:08 +08:00
WuYongJie added 2 commits 2026-08-10 23:32:23 +08:00
WuYongJie added 2 commits 2026-08-11 00:07:01 +08:00
WuYongJie added 2 commits 2026-08-11 00:38:29 +08:00
WuYongJie added 2 commits 2026-08-11 01:24:55 +08:00
WuYongJie added 2 commits 2026-08-11 02:21:10 +08:00
WuYongJie added 2 commits 2026-08-11 02:50:20 +08:00
WuYongJie added 2 commits 2026-08-11 03:28:35 +08:00
WuYongJie added 2 commits 2026-08-11 04:38:53 +08:00
WuYongJie added 2 commits 2026-08-11 05:10:24 +08:00
WuYongJie added 2 commits 2026-08-11 05:41:16 +08:00
WuYongJie added 2 commits 2026-08-11 05:59:16 +08:00
WuYongJie added 1 commit 2026-08-11 10:21:57 +08:00
WuYongJie added 2 commits 2026-08-11 10:45:03 +08:00
WuYongJie added 1 commit 2026-08-11 11:47:11 +08:00
WuYongJie added 1 commit 2026-08-11 12:07:07 +08:00
WuYongJie added 2 commits 2026-08-11 12:43:02 +08:00
WuYongJie added 1 commit 2026-08-11 13:01:29 +08:00
WuYongJie added 1 commit 2026-08-11 13:38:55 +08:00
WuYongJie added 1 commit 2026-08-11 13:46:38 +08:00
WuYongJie added 2 commits 2026-08-11 14:55:42 +08:00
WuYongJie added 1 commit 2026-08-11 14:59:24 +08:00
WuYongJie added 3 commits 2026-08-11 16:01:29 +08:00
WuYongJie added 2 commits 2026-08-11 16:14:16 +08:00
WuYongJie added 1 commit 2026-08-11 16:16:48 +08:00
WuYongJie added 1 commit 2026-08-11 16:33:25 +08:00
WuYongJie added 1 commit 2026-08-11 17:02:34 +08:00
WuYongJie added 1 commit 2026-08-11 17:20:42 +08:00
WuYongJie added 2 commits 2026-08-11 17:37:12 +08:00
WuYongJie added 1 commit 2026-08-11 18:08:48 +08:00
WuYongJie added 2 commits 2026-08-11 18:42:49 +08:00
WuYongJie added 1 commit 2026-08-12 11:07:56 +08:00
WuYongJie added 1 commit 2026-08-12 11:24:46 +08:00
WuYongJie added 2 commits 2026-08-12 13:21:20 +08:00
WuYongJie added 1 commit 2026-08-12 14:18:58 +08:00
WuYongJie added 3 commits 2026-08-12 14:31:32 +08:00
WuYongJie added 2 commits 2026-08-12 15:49:22 +08:00
WuYongJie added 1 commit 2026-08-12 16:03:26 +08:00
WuYongJie added 1 commit 2026-08-12 16:05:06 +08:00
WuYongJie added 1 commit 2026-08-12 16:54:39 +08:00
WuYongJie added 1 commit 2026-08-12 17:29:50 +08:00
WuYongJie added 3 commits 2026-08-12 17:34:20 +08:00
WuYongJie added 1 commit 2026-08-12 18:14:57 +08:00
WuYongJie added 3 commits 2026-08-12 21:20:59 +08:00
# Conflicts:
#	furniture-3d-system/src/server/services/__tests__/intake-non-integrated-product.service.test.ts
#	furniture-3d-system/src/server/services/intake-non-integrated-product.service.ts
WuYongJie added 1 commit 2026-08-13 01:19:25 +08:00
WuYongJie added 2 commits 2026-08-13 02:53:18 +08:00
WuYongJie added 3 commits 2026-08-13 04:49:14 +08:00
WuYongJie added 3 commits 2026-08-13 06:32:46 +08:00
WuYongJie added 2 commits 2026-08-13 09:33:32 +08:00
WuYongJie added 1 commit 2026-08-13 09:56:56 +08:00
WuYongJie added 2 commits 2026-08-13 10:55:05 +08:00
WuYongJie added 7 commits 2026-08-13 11:13:31 +08:00
WuYongJie added 2 commits 2026-08-13 12:02:18 +08:00
WuYongJie added 7 commits 2026-08-13 12:17:07 +08:00
WuYongJie added 2 commits 2026-08-13 12:40:13 +08:00
WuYongJie added 2 commits 2026-08-13 13:39:47 +08:00
WuYongJie added 2 commits 2026-08-13 14:02:52 +08:00
WuYongJie added 1 commit 2026-08-13 14:45:47 +08:00
WuYongJie added 1 commit 2026-08-14 08:54:28 +08:00
WuYongJie added 1 commit 2026-08-14 09:41:15 +08:00
WuYongJie added 5 commits 2026-08-14 10:08:33 +08:00
WuYongJie added 2 commits 2026-08-14 11:49:02 +08:00
WuYongJie added 1 commit 2026-08-14 14:09:45 +08:00
WuYongJie added 1 commit 2026-08-14 15:06:19 +08:00
WuYongJie added 2 commits 2026-08-15 15:50:38 +08:00
WuYongJie added 2 commits 2026-08-15 16:10:51 +08:00
WuYongJie added 2 commits 2026-08-15 16:56:06 +08:00
WuYongJie added 2 commits 2026-08-15 17:06:21 +08:00
WuYongJie added 5 commits 2026-08-15 17:40:17 +08:00
WuYongJie added 2 commits 2026-08-16 16:34:51 +08:00
WuYongJie added 1 commit 2026-08-16 17:25:58 +08:00
WuYongJie added 2 commits 2026-08-16 19:57:15 +08:00
WuYongJie added 2 commits 2026-08-16 20:21:11 +08:00
WuYongJie added 2 commits 2026-08-16 20:33:32 +08:00
WuYongJie added 2 commits 2026-08-17 09:14:46 +08:00
WuYongJie added 2 commits 2026-08-17 11:39:22 +08:00
WuYongJie added 1 commit 2026-08-17 12:08:40 +08:00
WuYongJie added 2 commits 2026-08-17 13:44:57 +08:00
WuYongJie added 1 commit 2026-08-17 14:55:43 +08:00
WuYongJie added 1 commit 2026-08-17 18:37:13 +08:00
WuYongJie added 1 commit 2026-08-17 18:46:51 +08:00
WuYongJie added 1 commit 2026-08-17 18:53:51 +08:00
WuYongJie added 1 commit 2026-08-17 19:00:21 +08:00
WuYongJie added 1 commit 2026-08-17 19:19:18 +08:00
WuYongJie added 1 commit 2026-08-17 19:27:03 +08:00
WuYongJie added 1 commit 2026-08-17 19:33:43 +08:00
WuYongJie added 8 commits 2026-08-17 20:59:27 +08:00
WuYongJie added 2 commits 2026-08-17 21:13:56 +08:00
WuYongJie added 2 commits 2026-08-17 21:21:18 +08:00
WuYongJie added 2 commits 2026-08-17 23:39:43 +08:00
WuYongJie added 3 commits 2026-08-18 00:33:01 +08:00
WuYongJie added 5 commits 2026-08-18 15:01:36 +08:00
WuYongJie added 1 commit 2026-08-18 15:16:25 +08:00
WuYongJie added 1 commit 2026-08-18 15:56:20 +08:00
WuYongJie added 1 commit 2026-08-18 15:58:27 +08:00
WuYongJie added 1 commit 2026-08-18 16:33:04 +08:00
WuYongJie added 5 commits 2026-08-18 16:46:41 +08:00
WuYongJie added 2 commits 2026-08-18 16:52:06 +08:00
WuYongJie added 1 commit 2026-08-18 18:17:20 +08:00
WuYongJie added 3 commits 2026-08-18 19:11:16 +08:00
WuYongJie added 1 commit 2026-08-19 09:00:28 +08:00
Implement the complete sample progress detail table from the approved production baseline, including source-derived timing fields, editable sampling fields, review links, change history, pagination and supply-chain navigation updates.
WuYongJie added 2 commits 2026-08-19 09:37:49 +08:00
WuYongJie added 1 commit 2026-08-19 10:01:56 +08:00
WuYongJie added 1 commit 2026-08-19 10:39:50 +08:00
WuYongJie added 1 commit 2026-08-19 11:06:26 +08:00
WuYongJie added 1 commit 2026-08-19 12:00:53 +08:00
WuYongJie added 1 commit 2026-08-19 13:05:35 +08:00
WuYongJie added 1 commit 2026-08-19 13:26:04 +08:00
WuYongJie added 1 commit 2026-08-19 13:49:35 +08:00
WuYongJie added 1 commit 2026-08-19 14:48:45 +08:00
WuYongJie added 1 commit 2026-08-19 15:02:52 +08:00
WuYongJie added 1 commit 2026-08-20 13:52:01 +08:00
WuYongJie added 2 commits 2026-08-20 15:09:18 +08:00
WuYongJie added 1 commit 2026-08-20 16:34:27 +08:00
WuYongJie added 1 commit 2026-08-20 17:40:41 +08:00
WuYongJie added 1 commit 2026-08-21 09:36:50 +08:00
WuYongJie added 2 commits 2026-08-21 10:35:05 +08:00
WuYongJie added 1 commit 2026-08-21 11:12:56 +08:00
Integrate the reviewed supply-chain structure governance scope without unpublished image-search changes.
WuYongJie added 1 commit 2026-08-21 11:30:37 +08:00
WuYongJie added 1 commit 2026-08-21 11:46:49 +08:00
WuYongJie added 3 commits 2026-08-21 13:37:12 +08:00
WuYongJie added 1 commit 2026-08-21 15:21:00 +08:00
WuYongJie added 3 commits 2026-08-21 16:45:21 +08:00
WuYongJie added 1 commit 2026-08-21 17:43:38 +08:00
WuYongJie added 1 commit 2026-08-21 18:32:56 +08:00
WuYongJie added 1 commit 2026-08-24 09:21:29 +08:00
WuYongJie added 1 commit 2026-08-24 10:21:01 +08:00
WuYongJie added 1 commit 2026-08-24 16:42:06 +08:00
WuYongJie added 2 commits 2026-08-24 17:44:42 +08:00
WuYongJie added 3 commits 2026-08-24 18:02:03 +08:00
WuYongJie added 1 commit 2026-08-25 11:25:35 +08:00
WuYongJie added 1 commit 2026-08-25 14:26:32 +08:00
WuYongJie added 1 commit 2026-08-26 13:17:33 +08:00
WuYongJie added 1 commit 2026-08-26 16:24:09 +08:00
WuYongJie added 1 commit 2026-08-26 16:48:46 +08:00
WuYongJie added 2 commits 2026-08-26 18:35:16 +08:00
WuYongJie added 1 commit 2026-08-27 13:13:41 +08:00
WuYongJie added 1 commit 2026-08-27 14:02:02 +08:00
WuYongJie added 5 commits 2026-08-27 15:13:45 +08:00
WuYongJie added 1 commit 2026-08-28 09:39:41 +08:00
WuYongJie added 1 commit 2026-08-28 15:42:25 +08:00
WuYongJie added 1 commit 2026-08-28 16:07:55 +08:00
WuYongJie added 6 commits 2026-08-28 16:09:36 +08:00
WuYongJie added 1 commit 2026-08-28 16:31:58 +08:00
WuYongJie added 1 commit 2026-08-28 17:39:36 +08:00
WuYongJie added 1 commit 2026-08-28 17:46:47 +08:00
WuYongJie added 1 commit 2026-08-28 17:46:51 +08:00
WuYongJie added 2 commits 2026-08-28 18:23:47 +08:00
WuYongJie added 1 commit 2026-08-28 20:48:26 +08:00
WuYongJie added 1 commit 2026-08-29 13:08:34 +08:00
WuYongJie added 2 commits 2026-08-29 13:24:00 +08:00
WuYongJie added 1 commit 2026-08-29 13:32:01 +08:00
WuYongJie added 1 commit 2026-08-29 14:06:59 +08:00
Use HR_SQLSERVER_SCHEMA for default employee directory queries so production can read the rpt source tables.
WuYongJie added 1 commit 2026-08-29 15:07:52 +08:00
WuYongJie added 1 commit 2026-08-29 15:36:04 +08:00
WuYongJie added 1 commit 2026-08-29 16:14:37 +08:00
WuYongJie added 1 commit 2026-08-31 10:22:33 +08:00
WuYongJie added 1 commit 2026-08-31 10:38:47 +08:00
WuYongJie added 1 commit 2026-08-31 11:17:33 +08:00
WuYongJie added 1 commit 2026-08-31 12:13:38 +08:00
WuYongJie added 1 commit 2026-08-31 12:15:45 +08:00
WuYongJie added 1 commit 2026-08-31 13:52:38 +08:00
WuYongJie added 1 commit 2026-08-31 15:49:30 +08:00
Cherry-picked feature patch from c2289ca0 onto latest codex/xuxiake-mainline without including unrelated working-tree changes.
WuYongJie added 1 commit 2026-08-31 16:31:11 +08:00
WuYongJie added 1 commit 2026-08-31 17:15:58 +08:00
WuYongJie added 1 commit 2026-08-31 17:38:55 +08:00
WuYongJie added 1 commit 2026-08-31 18:06:45 +08:00
WuYongJie added 1 commit 2026-09-01 10:08:18 +08:00
WuYongJie added 1 commit 2026-09-01 10:34:06 +08:00
WuYongJie added 16 commits 2026-09-01 11:11:02 +08:00
# Conflicts:
#	furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveView.tsx
#	furniture-3d-system/src/lib/permissions.ts
#	furniture-3d-system/src/lib/workspace-route-permissions.ts
#	furniture-3d-system/src/server/core/types.ts
#	furniture-3d-system/src/server/repositories/user.repository.ts
#	furniture-3d-system/src/server/services/auth.service.ts
# Conflicts:
#	furniture-3d-system/agents/script-monitor/README.md
#	furniture-3d-system/agents/script-monitor/agent.mjs
#	furniture-3d-system/agents/script-monitor/config.example.json
#	furniture-3d-system/src/app/api/supply-chain/store-account-management/[id]/bank-account/route.ts
#	furniture-3d-system/src/app/api/supply-chain/store-account-management/profiles/import/route.ts
#	furniture-3d-system/src/app/api/supply-chain/store-account-management/profiles/route.ts
#	furniture-3d-system/src/app/api/supply-chain/store-account-management/profiles/template/route.ts
#	furniture-3d-system/src/app/intake/sample-progress/components/SampleProgressTableRow.tsx
#	furniture-3d-system/src/app/supply-chain/database/store-account-management/StoreAccountManagementView.tsx
#	furniture-3d-system/src/app/supply-chain/script-monitor/ScriptMonitorView.test.tsx
#	furniture-3d-system/src/app/supply-chain/script-monitor/ScriptMonitorView.tsx
#	furniture-3d-system/src/app/supply-chain/script-monitor/page.tsx
#	furniture-3d-system/src/lib/store-account-management.ts
#	furniture-3d-system/src/lib/supply-chain-script-monitor.ts
#	furniture-3d-system/src/server/dto/script-monitor.dto.ts
#	furniture-3d-system/src/server/integrations/notification-center/client.test.ts
#	furniture-3d-system/src/server/integrations/notification-center/client.ts
#	furniture-3d-system/src/server/integrations/notification-center/types.ts
#	furniture-3d-system/src/server/repositories/__tests__/store-account-management.repository.test.ts
#	furniture-3d-system/src/server/repositories/script-monitor.repository.ts
#	furniture-3d-system/src/server/repositories/store-account-management.repository.ts
#	furniture-3d-system/src/server/services/__tests__/notification-delivery.service.test.ts
#	furniture-3d-system/src/server/services/__tests__/store-account-management-export.service.test.ts
#	furniture-3d-system/src/server/services/__tests__/store-account-notification.service.test.ts
#	furniture-3d-system/src/server/services/notification-delivery.service.ts
#	furniture-3d-system/src/server/services/sample-progress.service.test.ts
#	furniture-3d-system/src/server/services/script-monitor.service.test.ts
#	furniture-3d-system/src/server/services/script-monitor.service.ts
#	furniture-3d-system/src/server/services/store-account-management-export.service.ts
#	furniture-3d-system/src/server/services/store-account-notification.service.ts
WuYongJie added 1 commit 2026-09-01 11:59:33 +08:00
WuYongJie added 1 commit 2026-09-01 12:35:38 +08:00
WuYongJie added 1 commit 2026-09-01 13:02:07 +08:00
WuYongJie added 1 commit 2026-09-01 13:35:59 +08:00
WuYongJie added 1 commit 2026-09-01 14:32:16 +08:00
WuYongJie added 1 commit 2026-09-01 16:03:03 +08:00
WuYongJie added 1 commit 2026-09-01 17:39:08 +08:00
WuYongJie added 1 commit 2026-09-01 17:48:14 +08:00
WuYongJie added 1 commit 2026-09-01 18:27:06 +08:00
WuYongJie added 1 commit 2026-09-02 09:18:06 +08:00
WuYongJie added 3 commits 2026-09-02 12:19:24 +08:00
Remove the Math.max(0,...) clamps in the in-transit calculation and delivery-record recompute, and switch the input schema inTransitQuantity validator to a dedicated negative-tolerant one. Ordered and delivered quantities stay non-negative.
WuYongJie added 1 commit 2026-09-02 13:55:12 +08:00
WuYongJie added 1 commit 2026-09-02 14:41:39 +08:00
Replace the two-column popover with a right-docked drawer: single-column list with drag handles, checkboxes and lock markers; add column-name search, hide-all and reset-default buttons, and persist unlocked column order locally. Locked columns keep their default positions (trailing sticky actions column).
WuYongJie added 1 commit 2026-09-02 15:19:19 +08:00
sample measurement: export template with image/barcode/L-W-H-weight columns (all batches) and import backfill by barcode into draft rows with per-row skip reasons; product pricing: export template with image/barcode/cost-price and import backfill cost price only; both reuse the product limit workbook pattern, keep edits in draft until the existing confirm/push flow, no API or schema changes.
WuYongJie added 2 commits 2026-09-02 15:44:32 +08:00
- add category field with migration, import template column and multi-select filter (IN query)
- card view aligned with product selection dashboard style; table/card toggle persisted per browser
- purchaser/shipping-mode filters upgraded to searchable multi-select
- table actions as icon-only buttons with a view entry; date filter opens the picker on click
- column settings: reset to defaults and name search; page styles moved to a plain css file
- paste a screenshot anywhere in the drawer to upload and fill the storage url
- add file picker button, uploading state, error message and preview thumbnail
WuYongJie added 1 commit 2026-09-02 16:20:13 +08:00
采购-跟单(merchandiser,含跟单组与雁兰/槐米特例)解析权限主体时追加采购负责人主体:给采购负责人开通的节点权限与供应链权限对跟单自动生效,无需重复开通;核价与质检主体保持独立。
WuYongJie added 1 commit 2026-09-03 10:00:54 +08:00
WuYongJie added 1 commit 2026-09-03 11:44:46 +08:00
- selection pools: all/unselected/selected switch on the same page, batch select with
  operator search-confirm (status, operator and time recorded with change logs), batch return
- selected rows stamped with a red 已选款 seal on card/thumbnail/detail images and locked
  in the master pool to avoid accidental re-selection
- operations-role users (or admins) can select/return; service re-validates the operator
- selected-pool export: export endpoint follows all active filters, embeds product images
  into the image column (webp converted via sharp to 320px png, fallback to url text),
  includes selection status/operator/time columns, gated by download permission
WuYongJie added 1 commit 2026-09-03 12:06:53 +08:00
Add an export action that collects all rows matching the current filters (or everything when unfiltered), fetches each row's image from object storage, and builds an ExcelJS workbook with the images embedded in the image column. The workbook headers match the import template so the file round-trips through the existing import flow. Export progress, image fetch failures and completion counts are surfaced in a status panel.
WuYongJie added 1 commit 2026-09-03 13:04:27 +08:00
product intake list delete button now also resolves for designers (DESIGN business role or design department paths), restricted to records they created; admins keep full delete scope; server DELETE route and client row button share the same record-level predicate; delete stays soft with operation logs.
WuYongJie added 1 commit 2026-09-03 13:19:00 +08:00
WuYongJie added 1 commit 2026-09-03 13:30:54 +08:00
WuYongJie added 1 commit 2026-09-03 13:44:11 +08:00
WuYongJie added 1 commit 2026-09-03 14:21:11 +08:00
账号管理表格在账号状态与操作之间新增最后登录列:从未登录灰色、今天 HH:mm、昨天、N 天前、日期,超 30 天橙色标记闲置账号;组织树接口对管理员已返回 lastLoginAt,本次仅前端改动。
WuYongJie added 1 commit 2026-09-03 15:07:12 +08:00
- import rejects rows missing required fields and reports the row number with
  missing labels; drop-shipping fee is required only when shipping mode includes
  代发; date is system-filled on import and not required
- move 申请寄样 after 代发运费 across export, import template, table columns
  and the editor drawer
- gate the download-template button behind edit permission (the template belongs
  to the purchaser import workflow)
- add selection endpoint tests
WuYongJie added 1 commit 2026-09-03 15:33:41 +08:00
WuYongJie added 3 commits 2026-09-03 15:42:07 +08:00
WuYongJie added 2 commits 2026-09-03 15:51:37 +08:00
Department dedicated lines stay authoritative; when no department path matches any line, resolve subjects from account business roles (OPERATIONS->operation, PURCHASING->purchase, STRATEGY->brandCenter, etc). Personal overrides still apply last. Fixes operations and four purchasing accounts being downgraded to plain viewers.
WuYongJie added 3 commits 2026-09-03 17:06:02 +08:00
WuYongJie added 3 commits 2026-09-03 17:24:15 +08:00
WuYongJie added 3 commits 2026-09-03 17:46:18 +08:00
WuYongJie added 2 commits 2026-09-03 17:54:19 +08:00
WuYongJie added 4 commits 2026-09-03 18:48:09 +08:00
WuYongJie added 1 commit 2026-09-04 10:29:21 +08:00
WuYongJie added 1 commit 2026-09-04 10:56:00 +08:00
Import rows must not bypass the confirmed-first-due-date protection. Drop the allowDueDateChanges flag from the import update path so first-due-date changes are rejected and weekly due-date changes still require a reason, matching manual edits. Legacy rows without an order-placed date keep their free-correction path.
WuYongJie added 1 commit 2026-09-04 11:25:09 +08:00
WuYongJie added 1 commit 2026-09-04 11:26:20 +08:00
WuYongJie added 1 commit 2026-09-04 12:25:59 +08:00
WuYongJie added 1 commit 2026-09-04 15:26:37 +08:00
WuYongJie added 1 commit 2026-09-04 16:15:09 +08:00
WuYongJie added 1 commit 2026-09-04 17:39:39 +08:00
standard sku workbook import now rejects rows whose skuCode does not start with the product spu in uppercase (lowercase codes are reported as needing uppercase); rows with an empty skuCode still pass and get auto-generated on save; the whole import is rejected with per-row line numbers and reasons. barcodes are skipped since they derive from the sku code.
WuYongJie added 1 commit 2026-09-04 17:49:35 +08:00
adding the optional rowNumber field to NonIntegratedSkuExportRow made the Object.fromEntries cast insufficient for the production build type check; build the empty import row explicitly instead.
WuYongJie added 2 commits 2026-09-05 11:54:13 +08:00
the optional numeric rowNumber on NonIntegratedSkuExportRow broke the dynamic template column writes (string vs never) in the production build type check; import rows now use a dedicated NonIntegratedSkuImportRow type that extends the export row with a required rowNumber.
WuYongJie added 1 commit 2026-09-07 11:16:11 +08:00
WuYongJie added 1 commit 2026-09-07 11:47:42 +08:00
measurement and pricing nodes now default downloads for pricing/purchase/merchandiser subjects so non-admin owners see the export/import template buttons; both workbook exports add a spec name reference column after the barcode (imports stay barcode-keyed and ignore it); the pricing node also grants merchandiser download parity with purchase owners.
WuYongJie added 1 commit 2026-09-07 16:40:14 +08:00
看板双视图(明细数据/采购看板,仅采购与管理可见看板);按月聚合采购推荐SKU/涉及工厂/被选款/被选率;路径行明细支持工厂勾选后跳转明细数据;被选款数量卡片跳转已选明细;PK榜爬山形态铺满全屏,管理员可配置主题/总金额/层级门槛与金额/规则说明(存 SystemConfig,无迁移)。
WuYongJie added 1 commit 2026-09-07 17:13:03 +08:00
the product factory workspace gains export/import template buttons (purchase/merchandiser already hold node download grants): the export brings out the sku code, set count and every factory fillable field, splitting set count 2 rows into their A/B package codes; the import matches rows by sku code, enforces a header layout identical to the exported template, validates supplier names against the supplier directory, warehouses against the warehouse directory, enum fields against system options and number/date formats, collapses or splits A/B packages when the imported set count changes, and rejects confirmed rows - any row error aborts the whole import with per-row line numbers and reasons. Size, color and material columns are reference only.
WuYongJie added 2 commits 2026-09-08 06:21:58 +08:00
WuYongJie added 2 commits 2026-09-08 09:02:21 +08:00
workflow link cells on the oa board detail table now render as anchors when the value is an http(s) url, opening the linked product detail in a new tab with platform link styling and hover underline; empty or non-url text still renders the dash placeholder.
WuYongJie added 1 commit 2026-09-08 10:24:26 +08:00
WuYongJie added 1 commit 2026-09-08 12:26:49 +08:00
the product list rows gain an abandon action next to edit/copy/delete for admins and product owners (operations brand / spu / appearance / structure / purchase / merchandiser / planner / space owners matched by name); abandoning sets projectStatus to rejected which makes every workspace read-only and the existing daily todo push already skips rejected products, so abandoned products drop out of daily pushes automatically; the server enforces the same permission via a new POST abandon endpoint. Abandoned rows keep the restore action to come back.
WuYongJie added 1 commit 2026-09-08 14:05:54 +08:00
WuYongJie added 1 commit 2026-09-08 14:44:13 +08:00
WuYongJie added 1 commit 2026-09-08 15:06:52 +08:00
WuYongJie added 1 commit 2026-09-08 17:19:04 +08:00
WuYongJie changed title from Merge codex/xuxiake-mainline into main to 发布财务当前页批量读取店铺密码 2026-09-08 17:21:17 +08:00
WuYongJie merged commit 4fd134f636 into main 2026-09-08 17:21:33 +08:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/furniture-3d-system-Wu#16
No description provided.