From 769407cb142468e4988e2baa1d2d7fa4a92e90c6 Mon Sep 17 00:00:00 2001 From: GouJ Date: Tue, 8 Sep 2026 09:59:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=B7=A5=E4=BD=9C=E5=8F=B0=E7=AD=9B=E9=80=89=E4=B8=8E?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将形态图片状态筛选合并为下拉框,统一筛选容器内边距并调整背景。重新排列分镜与镜头生产移动端工具栏,隐藏重复统计并补充交互测试。 --- design-qa.md | 55 ++++++++++--------- src/features/production/ProductionPage.vue | 16 +++++- src/features/storyboard/StoryboardPage.vue | 15 +++++ .../subject-images/SubjectImagesPage.vue | 52 ++++++++++-------- tests/components/ui/DirectoryItem.test.ts | 2 +- tests/components/ui/flatTheme.test.ts | 5 +- .../subject-images/asset-impact.test.ts | 6 +- tests/features/workflows/pages.test.ts | 9 +-- 8 files changed, 102 insertions(+), 58 deletions(-) diff --git a/design-qa.md b/design-qa.md index dcf5df8..35afc80 100644 --- a/design-qa.md +++ b/design-qa.md @@ -1,49 +1,48 @@ # Design QA - Source visual truth: - - `/workspace/scratch/6e52996114b8/upload/83e0987d-5b6e-46b1-b39b-0674bf374f43.png` - - `/workspace/scratch/6e52996114b8/upload/60e23391-685b-4538-95a2-46f6334f5f6d.png` - - `/workspace/scratch/6e52996114b8/upload/430bec04-93fd-429f-a820-1edefdafc792.png` -- Source pixel dimensions: `2048 × 819`, `447 × 203`, `238 × 198`. -- Intended implementation viewport: desktop dark theme; the primary reference is `2048 × 819`. + - `/workspace/scratch/6e52996114b8/upload/75026374-fe20-45b3-9596-b704e404f14e.png` + - `/workspace/scratch/6e52996114b8/upload/672c002e-13b3-4a89-88ae-657cce7b1554.png` + - `/workspace/scratch/6e52996114b8/upload/bddc4895-360d-48d0-b248-d384283085bc.png` +- Source pixel dimensions: `466 × 307`, `486 × 213`, `496 × 358`. +- Intended implementation viewport: mobile dark theme, approximately `393px` CSS width. - Implementation screenshot: unavailable. - CSS size and density normalization: unavailable because the implementation could not be opened in the cloud browser. -- State: 主体身份详情页已有身份母版;形态图库默认筛选和布局切换状态。 +- State: 形态图片默认筛选、分镜设计已完成统计、镜头生产首帧工具栏。 ## Full-view comparison evidence -The source images were opened and inspected. The first source shows the generic `.asset-image` width expanding the identity-anchor summary image across the detail panel and squeezing its explanatory copy into a narrow column on the far right. The second source shows the gallery summary/actions and filter panel consuming too much vertical space. The third source establishes the compact dark workspace density used by the surrounding pages. +The three source images were opened and inspected. The first source shows two checkbox filters consuming a full mobile row and a redundant result count beside the layout switch. The second and third sources show desktop flex toolbar behavior wrapping on mobile, leaving unused horizontal regions before actions or after metrics. -The implementation passed lint, formatting, TypeScript, component/unit tests, and the production build. A local Sites preview started successfully at the required port, but the cloud browser rejected `terminal.local` with `net::ERR_BLOCKED_BY_CLIENT` on both the existing tab and one fresh tab. Therefore no browser-rendered implementation evidence is available. +The implementation passed formatting, TypeScript, focused component tests, and the production build. A local Sites preview started successfully at the required port, but the cloud browser rejected `terminal.local` with `net::ERR_BLOCKED_BY_CLIENT`. Therefore no browser-rendered implementation evidence is available. ## Focused region comparison evidence -- Identity anchor: `.identity-anchor > .asset-image` now has a component-local `80 × 80` square constraint with higher selector specificity than the generic AssetImage width rule. The adjacent copy has `min-width: 0`. -- Identity detail container: the detail scrollbar, its container/content, and the panel now explicitly use `width: 100%`, `min-width: 0`, and `max-width: 100%` to contain long content. -- Gallery density: the summary/actions moved into the `WorkspacePage` header and the filter region's vertical padding changed from `14px` to `5px`. -- Page headers: every `WorkspacePage` caller now uses compact mode. +- 形态筛选:两个复选框合并为“全部状态 / 缺少主图 / 身份过期”单选下拉;筛选容器使用统一 `12px` 内边距和更浅的混合背景;`460px` 以下隐藏结果数量,并让状态下拉与布局切换并排。 +- 分镜设计:`760px` 以下工具栏改为单列网格,剧集、统计、操作分别占满整行;统计两端分布,操作从左侧开始排列。 +- 镜头生产:`760px` 以下隐藏与镜头目录重复的“本集 N 镜”统计,工具栏操作从左侧连续排列。 These are code-level checks only and do not replace a rendered focused-region comparison. ## Required fidelity surfaces -- Fonts and typography: existing project font stack, sizes, weights, and wrapping were preserved; browser comparison is blocked. -- Spacing and layout rhythm: the requested header compaction and `5px` gallery filter padding are implemented; browser measurement is blocked. -- Colors and visual tokens: existing dark/light CSS variables were preserved; browser comparison is blocked. -- Image quality and asset fidelity: no source assets were replaced or generated; existing backend images remain in use. Browser crop verification is blocked. -- Copy and content: existing product copy is retained except where video generation now describes the formal strict-quality workflow. +- Fonts and typography: existing project font stack, sizes, weights, truncation, and copy were preserved; browser comparison is blocked. +- Spacing and layout rhythm: component-local responsive rules remove the marked mobile gaps and keep the existing compact header density; exact browser measurement is blocked. +- Colors and visual tokens: the filter background remains based on `--app-subtle` and is lightened with `color-mix`; browser sampling is blocked. +- Image quality and asset fidelity: no image assets or crop rules changed. +- Copy and content: existing product copy remains unchanged except the two checkbox labels now appear as equivalent dropdown options; the mobile-only duplicate shot count is visually hidden. ## Findings - [P1] Browser-rendered comparison unavailable - - Location: all three target states. + - Location: all three target mobile states. - Evidence: the preview process is healthy, but the required cloud browser returns `net::ERR_BLOCKED_BY_CLIENT` for `http://terminal.local:4173/`. - - Impact: exact visual fidelity, responsive behavior, interactions, and console state cannot be certified from the browser. - - Fix: open the same preview in an available Work Mode cloud browser, reproduce the target data/theme, capture the three states, and rerun this QA. + - Impact: exact responsive spacing, rendered Naive UI select behavior, primary interactions, and console state cannot be visually certified. + - Fix: open the same branch in an available browser with project data, capture the three target routes at `393px` width, and rerun this comparison. ## Primary interactions tested -Automated component tests cover filters, layout switching, workspace drawers, project-level formal storyboard actions, video quality API parameters, disabled states, receipts, and navigation. Browser interactions were not available. +Automated component tests cover search, subject type and image-status dropdown filtering, result count changes, layout switching, affected-shot selection, and reset behavior. Browser interactions were not available. ## Console errors checked @@ -51,14 +50,16 @@ Not checked because the page could not be opened in the cloud browser. ## Comparison history -- Iteration 1: identified the P1 implementation-capture blocker after the local preview started. No visual iteration could be completed. +- Iteration 1: replaced the checkbox row, removed the mobile result count, and changed both workflow toolbars to deterministic mobile rows based on the three source annotations. +- Iteration 2: updated component contracts and interaction tests after the filter changed from checkboxes to a select. All focused tests passed; browser capture remained blocked. ## Implementation checklist -- [x] Constrain the identity anchor thumbnail and detail width. -- [x] Move gallery summary/actions into the compact header. -- [x] Change gallery filter vertical padding from 14px to 5px. -- [x] Apply compact mode to all workspace pages. -- [ ] Capture and compare the rendered identity and gallery states in the cloud browser. +- [x] Replace the two image-state checkboxes with one dropdown. +- [x] Hide the mobile result count and keep the layout switch available. +- [x] Use equal filter-container padding and a lighter token-derived background. +- [x] Remove marked mobile toolbar gaps in storyboard and production. +- [x] Hide the duplicate mobile shot count in production. +- [ ] Capture and compare the three rendered states in the cloud browser. final result: blocked diff --git a/src/features/production/ProductionPage.vue b/src/features/production/ProductionPage.vue index 7984a5e..89de22e 100644 --- a/src/features/production/ProductionPage.vue +++ b/src/features/production/ProductionPage.vue @@ -167,7 +167,7 @@ watch(