From 8c4906c2f20834b49a045f47d2c5c27465dda78a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Tue, 22 Sep 2026 18:56:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(embed,ui04):=20E07=20acceptance=20?= =?UTF-8?q?=E2=80=94=20matrix=20completion,=20hostile-CSS=20hardening,=20m?= =?UTF-8?q?easurements=20and=20record=20closure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - E07 e2e (7 cases): 4-viewport fixed size, narrow shrink + dual-slot 12px stack, single/static + empty state + two-photo loop copies, broken-thumb drop, reducedMotion stop with manual arrows, forged postMessage rejected, hostile CSS (!important box-sizing/border) with inline-important countermeasures + duplicate script dedup - loader v2: geometry-critical properties upgraded to inline !important (beats host stylesheet !important) - pre-existing fixes: likes.spec view-count assertion vs concurrent session's AlbumHeader unicode icons (toContainText); embed-v2 host port moved to 3998 (3999 collides with embed-crossorigin under parallel full runs); prettier formatting of two concurrent-session files (formatting-only) - evidence: matrix EMB-A01..A16 closed in acceptance record (mechanism-level items honestly marked), measurements (loader v2 9885B/gzip 3959B, first-load 1 GET + 1 WS, DOM<=16), refreshed screenshots/recordings, master plan UI-04 note - regression: root lint/typecheck/test 12 packages green; embed suites 43/43; admin embed-slots 5/5; journey pre-existing env failure reproduced at clean HEAD (registered) Co-Authored-By: Claude Code --- apps/admin/e2e/embed-slots.spec.ts | 4 +- .../admin/src/utils/system/embedSlots.spec.ts | 2 +- .../system/embed-slots/EmbedSlotPreview.vue | 6 +- .../users/composables/useAdminUserPages.ts | 5 +- apps/admin/src/views/system/users/index.vue | 6 +- apps/viewer/e2e/embed-v2.spec.ts | 293 +++++++++++++++++- apps/viewer/e2e/likes.spec.ts | 6 +- apps/viewer/public/embed/v2/loader.js | 2 +- .../actual/desktop/e02-static-desktop.png | Bin 108125 -> 120777 bytes .../actual/mobile/e02-static-mobile.png | Bin 52362 -> 112106 bytes .../recordings/e03-scroll-32s.webm | Bin 3518351 -> 3529052 bytes .../recordings/e05-hearts-16s.webm | Bin 1706280 -> 1721863 bytes docs/plans/2026-09-17-实施总纲.md | 8 + docs/plans/progress/UI04-验收记录.md | 85 +++-- packages/embed-loader/src/loader-v2.js | 9 +- 15 files changed, 385 insertions(+), 41 deletions(-) diff --git a/apps/admin/e2e/embed-slots.spec.ts b/apps/admin/e2e/embed-slots.spec.ts index f2b78fb..86e43d5 100644 --- a/apps/admin/e2e/embed-slots.spec.ts +++ b/apps/admin/e2e/embed-slots.spec.ts @@ -228,9 +228,7 @@ test.describe.serial('embed slot management (P4b Task 5)', () => { // 真实 EmbedStream(.stream-viewport)且模拟点赞出心形(WYSIWYG 证据)。 await expect(page.getByTestId('embed-preview-v2-iframe')).toBeVisible() await expect(page.getByTestId('embed-preview-sim-like')).toBeVisible() - const previewFrame = page - .frames() - .find((f) => f.url().includes('/embed-preview')) + const previewFrame = page.frames().find((f) => f.url().includes('/embed-preview')) expect(previewFrame).toBeDefined() await expect(previewFrame!.locator('.stream-viewport')).toHaveCount(1) await page.getByTestId('embed-preview-sim-like').click() diff --git a/apps/admin/src/utils/system/embedSlots.spec.ts b/apps/admin/src/utils/system/embedSlots.spec.ts index b397042..16ef007 100644 --- a/apps/admin/src/utils/system/embedSlots.spec.ts +++ b/apps/admin/src/utils/system/embedSlots.spec.ts @@ -320,7 +320,7 @@ describe('buildPreviewPlacement 本地预览停靠几何(草稿即时反映, }) it('mobile:窄屏强制 sm + 默认收起(§5.4 <480px);宽度按剩余宽收缩防溢出(carousel)', () => { - const v1 = { ...DEFAULT_EMBED_SETTINGS, displayMode: 'carousel' } + const v1: EmbedSettingsDraft = { ...DEFAULT_EMBED_SETTINGS, displayMode: 'carousel' } const placement = buildPreviewPlacement(v1, 'mobile') expect(placement.size).toBe('sm') expect(placement.width).toBe(280) diff --git a/apps/admin/src/views/system/embed-slots/EmbedSlotPreview.vue b/apps/admin/src/views/system/embed-slots/EmbedSlotPreview.vue index dfaef38..a5ad83f 100644 --- a/apps/admin/src/views/system/embed-slots/EmbedSlotPreview.vue +++ b/apps/admin/src/views/system/embed-slots/EmbedSlotPreview.vue @@ -61,7 +61,11 @@ -
+