Commit Graph

111 Commits

Author SHA1 Message Date
stringadmin c7adbc153b fix: restore ecommerce platform rule type imports 2026-06-16 21:40:07 +08:00
stringadmin 17152efa2c Merge branch 'main-merge-work' of ssh://118.145.251.184-port2222/OmniAI/omniai-ds-code-package into main-merge-work 2026-06-16 21:37:38 +08:00
stringadmin a605fad7e0 Merge origin/main into main-merge-work 2026-06-16 21:33:41 +08:00
stringadmin 4ca2ab4a9c Merge origin/main into main-merge-work (resolve EcommercePage/CSS conflicts) 2026-06-16 21:13:25 +08:00
stringadmin 588da45902 refactor: optimize Topbar scroll listener; sync WIP ecommerce refactor and CSS 2026-06-16 21:09:41 +08:00
stringadmin 5466036349 refactor: extract Topbar and LocalAvatar components from App.tsx 2026-06-16 20:15:53 +08:00
stringadmin 9869c0c5e6 Merge pull request 'feat: refactor ecommerce toolbar from mode tabs to scenario-based tabs with rich template cards' (#20) from feat/ecommerce-scenario-tabs into main
Reviewed-on: #20
2026-06-16 11:16:46 +00:00
ludan 5811cbac16 feat: refactor ecommerce toolbar from mode tabs to scenario-based tabs with rich template cards
- EcommercePage.tsx:
  - Introduce CommerceScenarioKey type (popular/poster/mainImage/scene/festival/model/background/retouch/salesVideo) and CommerceScenarioTemplate interface with scenario/output/desc/badge fields
  - Add commerceScenarioOptions (9 scenario tabs with icons) replacing cloneOutputOptions as toolbar data source; each scenario maps to an output mode via commerceScenarioOutputMap
  - Add commerceScenarioTemplates (16 templates across 8 scenarios) with thumbnail, badge, title, and description; popularCommerceScenarioTemplates aggregates cross-scenario highlights for the "热门" default tab
  - Replace activeCloneTemplateCards with activeCommerceScenarioTemplates filtered by scenario; popular tab shows highlights, others show scenario-specific templates
  - handleCommerceScenarioClick: switch scenario, auto-toggle output mode, toggle template strip visibility; clicking active scenario toggles strip; popular tab preserves current output
  - handleCloneTemplateCardClick: auto-switch output mode to match template, fill prompt, focus textarea with 80ms delayed re-focus for reliability
  - Template card markup upgraded: media thumbnail (94px cover image with hover scale), body with badge pill, title, and 2-line description
  - Active scenario button shows close indicator (CloseOutlined) when strip is open
  - Template strip defaults to visible (isCloneTemplateStripVisible initial true)
  - Add "左右滑动查看更多" scroll hint for narrow viewports
- ecommerce-standalone.css (+355 lines):
  - Scenario tabs: horizontal flex scroll with hidden scrollbar, pill-shaped buttons (grid: 24px icon + fluid label), per-scenario color accent via --mode-accent custom property (pink for popular, orange for poster/festival, green for mainImage/scene/background, blue for model/retouch/salesVideo)
  - Active/open states: radial gradient glow, lifted shadow, intensified border color
  - Icon slot: 24px rounded square with tinted background and inset highlight
  - Close indicator: absolute top-right circle with hover scale
  - Template cards: 2-column grid (94px media + fluid body), badge capsule, thumbnail with hover scale(1.035), title 820 weight, 2-line description clamp
  - Responsive: ≤1024px 2-col card grid, ≤900px scroll-hint visible + left-aligned tabs, ≤640px horizontal scroll cards with snap, compact card sizing
2026-06-16 19:11:50 +08:00
stringadmin c38f056527 style: make topbar fixed transparent floating header 2026-06-16 16:39:58 +08:00
stringadmin 3469071819 Merge pull request 'Main merge work' (#19) from main-merge-work into main
Reviewed-on: #19
2026-06-16 06:38:21 +00:00
stringadmin f1be7d8d66 Merge 3b72455: PR #18 multi-turn conversation 2026-06-16 14:34:31 +08:00
stringadmin c6583d1881 Merge 526ad49: Merge branch main into record detail panel 2026-06-16 14:34:20 +08:00
stringadmin 047c66ed88 Merge 4993f6e: multi-turn conversation system 2026-06-16 14:34:00 +08:00
stringadmin d82a49d96c Merge 3321b96: 接入 husky + lint-staged 2026-06-16 14:33:17 +08:00
stringadmin 91f2f9dfe8 Merge 79f220d: add responsive layouts for template cards and hot clone 2026-06-16 14:29:13 +08:00
stringadmin 1eca1d702b Merge c1c7cb3: fix ecommerce preview and module compatibility 2026-06-16 14:28:43 +08:00
stringadmin ff4d40bcf6 Merge 003c41d: 抽出 useVideoSceneRunner hook 2026-06-16 14:27:54 +08:00
stringadmin c8e0839fc8 Merge b67f2e7: codex/main-latest branch (de3eb1d + 643595b + f056547) 2026-06-16 14:24:18 +08:00
stringadmin 20c3772cbb Merge f929be3: PR #17 优化记录详情对话面板 2026-06-16 14:04:48 +08:00
stringadmin 0543766bd6 Merge a287573: Merge branch main into chat polish 2026-06-16 14:04:37 +08:00
stringadmin 8269e32779 Merge 85adcdc: 优化记录详情对话面板布局与视觉层次 2026-06-16 14:04:11 +08:00
stringadmin 94711dc4cf Merge 66b7613: re-trigger push 2026-06-16 14:04:00 +08:00
stringadmin fdc48d2e65 Merge ab99e3b: PR #16 完善电商记录详情页 2026-06-16 14:03:50 +08:00
stringadmin 39a3edde1c Merge e3b48e2: 完善电商记录详情页 (resolved via ab99e3b) 2026-06-16 14:03:30 +08:00
stringadmin c748d1e3ba Merge 62fcf46: 抽出克隆/历史持久化模块 2026-06-16 14:01:34 +08:00
stringadmin 2e87adc957 Merge 9a9c7eb: optimize ecommerce hot clone UI (resolved conflicts + fixed unclosed block) 2026-06-16 14:00:11 +08:00
stringadmin 0958a9870e Merge 6dd2922: 收口 server/client 数据解析层 2026-06-16 13:55:41 +08:00
stringadmin bdedad0b90 Merge 8985dee: 统一 taskSubscription import 为静态 2026-06-16 13:55:25 +08:00
stringadmin a9f707525d Merge f30e585: extract platform rules and prompt builders 2026-06-16 13:55:02 +08:00
stringadmin d8cbf0d182 Merge 5b316a2: PR #14 record detail workspace 2026-06-16 13:54:51 +08:00
stringadmin 3a36174041 Merge 3f1954b: Merge branch main into record detail panel 2026-06-16 13:54:37 +08:00
stringadmin 2b69a82aea Merge 96d335d: generation record detail workspace 2026-06-16 13:54:10 +08:00
stringadmin e460901ad7 Merge 45e6534: 引入 Vitest 测试骨架 2026-06-16 13:53:40 +08:00
stringadmin b416e96e99 Merge 307537a: fix(ecommerce) clone-ai-node-label 定位样式 2026-06-16 13:53:14 +08:00
stringadmin 3b72455062 Merge pull request 'feat: implement multi-turn conversation system for generation record detail with deduplication enhancement' (#18) from feat/ecommerce-record-detail-conversation-panel into main
Reviewed-on: #18
2026-06-16 05:07:49 +00:00
stringadmin 526ad490f7 Merge branch 'main' into feat/ecommerce-record-detail-conversation-panel 2026-06-16 05:07:45 +00:00
ludan 4993f6eeec feat: implement multi-turn conversation system for generation record detail with deduplication enhancement
- generationRecordClient.ts: Enhance save deduplication with payload signature — replace simple recordId-based dedup with stableJsonStringify-based signature comparison; same recordId + same signature skips save, changed payload proceeds; add buildSaveSignature covering tool/mode/title/status/prompt/taskIds/assets/config/result/metadata; store signature alongside savedAt in recentlySavedRecords map for per-turn save accuracy
- EcommercePage.tsx: Introduce EcommerceHistoryTurn interface and multi-turn conversation architecture —
  - Add EcommerceHistoryTurn with full generation context (status/output/platform/market/language/ratio/requirement/images/results/counts/modules/scenes/replicateLevel); EcommerceHistoryRecord gains status/errorMessage/turns[] fields
  - beginEcommerceHistoryTurn() — start a new generation turn, create or append to record, persist to localStorage immediately
  - updateLocalEcommerceHistoryTurn() — real-time turn status sync (generating→done/failed) with record summary mirroring via syncRecordSummaryWithTurn()
  - restoreHistoryTurnInputs() — one-click parameter restoration from failed turns for retry
  - upsertCanvasNode() — insert or update canvas node by ID (dedup by turnId), alternating row layout (x: index*420, y: 0 or 160)
  - Generate flow wired to turns: status callbacks update turn state; cancel sets turn to failed; results written to turn.results
  - Record detail conversation panel refactored from single-message to per-turn iteration — each turn renders user message (requirement + meta + assets) and assistant message (status-aware text + progress bar during generation + result thumbnails); failed turns show "恢复参数" retry button; generating turn shows EcommerceProgressBar
  - openEcommerceHistoryRecord() loads all turns as canvas nodes with distributed positions; preserves generating turn tracking via activeHistoryTurnIdRef
  - History list items display status label (生成中/失败/time)
  - Product set preview backdrop moved to createPortal(document.body) with z-index 4000
- pages/ecommerce.css: Bump product-set-preview-backdrop z-index from 100 to 4000 for Portal rendering layer
2026-06-16 13:02:11 +08:00
stringadmin 3321b96e29 chore: 接入 husky + lint-staged,pre-commit 跑 tsc,pre-push 跑 css:audit
- pre-commit: npx lint-staged → tsc --noEmit(仅检查暂存的 TS/TSX 文件)
2026-06-16 13:01:46 +08:00
stringadmin 120fc2e70c refactor(css): #6 后续阶段——@layer 级联 + token 化 + 行尾治理
- 引入 @layer ecommerce-core,standalone 覆盖层不再依赖 !important(全站 !important 7812→967)
2026-06-16 12:23:50 +08:00
Codex 79f220dbbf feat: add responsive layouts for template cards and hot clone 2026-06-16 11:44:55 +08:00
Codex c1c7cb3cc7 fix ecommerce preview and module compatibility 2026-06-15 22:00:00 +08:00
Codex b67f2e7601 Merge branch 'main' of http://118.145.251.184:3000/OmniAI/omniai-ds-code-package into codex/main-latest-20260615-030000 2026-06-15 21:56:00 +08:00
stringadmin 003c41ddcc refactor(video): 抽出 useVideoSceneRunner hook,视频场景任务编排与 UI 分离(#3) 2026-06-15 20:18:26 +08:00
Codex f056547160 fix: align hot clone reference upload UI 2026-06-15 19:59:00 +08:00
stringadmin 643595bede refactor(css): CSS 第一阶段瘦身——止血 + 拆分 ecommerce-standalone(#6) 2026-06-15 18:32:14 +08:00
Codex de3eb1d06a merge main and adjust clone mode tabs 2026-06-15 18:25:38 +08:00
stringadmin f929be30ed Merge pull request 'feat: 优化记录详情对话面板布局与视觉层次' (#17) from feat/ecommerce-chat-polish into main
Reviewed-on: #17
2026-06-15 10:24:35 +00:00
stringadmin a2875738ce Merge branch 'main' into feat/ecommerce-chat-polish 2026-06-15 10:24:30 +00:00
ludan 85adcdceef feat: 优化记录详情对话面板布局与视觉层次
本次修改聚焦于电商记录详情页的对话面板体验打磨:

一、对话顺序优化(EcommercePage.tsx):
- 将"新需求"跟进消息从AI回复之前移至AI回复之后
- 调整后的对话时间线:用户历史需求 → AI回复 → 用户新需求,逻辑更符合真实对话流程

二、对话面板视觉升级(ecommerce-standalone.css):
- 对话面板宽度采用CSS变量动态控制(408-440px),视觉更宽敞
- 消息气泡区分明确:
  · 用户消息:左侧缩进26-36px,蓝色调渐变背景,青色边框
  · AI消息:右侧缩进26-36px,蓝调边框,中性背景
  · 跟进消息:独特高亮样式,更强边框(0.24透明度)和投影
- 排版细节打磨:
  · 消息标签字号12px/权重820
  · 正文13px/行高1.64
  · 气泡内间距15px、圆角20px、投影加深
- 元信息标签(emo)精修:28px高度、圆角胶囊样式
- 素材缩略图:46x46px、圆角14px
- 响应式适配:≤900px面板收窄至92vw,≤480px去除消息缩进

变更文件:
- src/features/ecommerce/EcommercePage.tsx (+20/-20)
- src/styles/ecommerce-standalone.css (+121)
2026-06-15 18:23:36 +08:00
Codex 66b761314b chore: re-trigger push 2026-06-15 16:52:15 +08:00