From d7c25d1627e92b57312b0c63c502b7ae44a9bdee Mon Sep 17 00:00:00 2001 From: kris Date: Mon, 30 Mar 2026 01:13:39 +0800 Subject: [PATCH] feat: streamline mobile discovery focus --- web/storyforge-web-v4/assets/app.js | 4 ++-- web/storyforge-web-v4/assets/styles.css | 8 ++++++++ web/storyforge-web-v4/tests/workbench-pages.test.mjs | 5 ++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/web/storyforge-web-v4/assets/app.js b/web/storyforge-web-v4/assets/app.js index 3644c5e..458b8bc 100644 --- a/web/storyforge-web-v4/assets/app.js +++ b/web/storyforge-web-v4/assets/app.js @@ -5400,7 +5400,7 @@ function renderDiscoveryScreen() { ]; const activeTab = getActiveDetailTab("discoveryDetailTab", detailTabs); const selectedSummaryHtml = ` -
+
${escapeHtml(initials(getAccountName(selected) || "SF"))}
@@ -5449,7 +5449,7 @@ function renderDiscoveryScreen() { -
+
平台:${escapeHtml(currentPlatformLabel)}
账号数:${escapeHtml(formatNumber(accounts.length))}
报告:${escapeHtml(formatNumber(reports.length))}
diff --git a/web/storyforge-web-v4/assets/styles.css b/web/storyforge-web-v4/assets/styles.css index 7d65102..5dda6f7 100644 --- a/web/storyforge-web-v4/assets/styles.css +++ b/web/storyforge-web-v4/assets/styles.css @@ -2287,6 +2287,10 @@ tbody tr:hover { flex: 1 1 calc(50% - 4px); } + .mobile-priority-filters .filter:nth-child(n+3) { + display: none; + } + .workspace-switch span { display: none; } @@ -2315,6 +2319,10 @@ tbody tr:hover { display: none; } + .mobile-secondary-card { + display: none; + } + .mobile-flow-focus-card { display: grid; gap: 10px; diff --git a/web/storyforge-web-v4/tests/workbench-pages.test.mjs b/web/storyforge-web-v4/tests/workbench-pages.test.mjs index b6daf4a..911df48 100644 --- a/web/storyforge-web-v4/tests/workbench-pages.test.mjs +++ b/web/storyforge-web-v4/tests/workbench-pages.test.mjs @@ -198,6 +198,7 @@ test("discovery and production screens expose mobile focus cards with next-step const cssMobile = extractBetween(CSS, "@media (max-width: 760px) {", "@media (max-width: 560px) {"); assert.match(discovery, /mobile-only mobile-flow-focus-card/); + assert.match(discovery, /class="filters mobile-priority-filters"/); assert.match(discovery, /下一步先做/); assert.match(discovery, /导入当前对标/); assert.match(discovery, /查相似/); @@ -212,10 +213,12 @@ test("mobile heavy screens mark redundant desktop metric blocks for compact hidi const production = extractBetween(APP, "function renderProductionScreen()", "function renderReviewScreen()"); const cssMobile = extractBetween(CSS, "@media (max-width: 760px) {", "@media (max-width: 560px) {"); - assert.match(discovery, /discovery-selected-hero/); + assert.match(discovery, /discovery-selected-hero mobile-secondary-card/); assert.match(production, /production-queue-grid/); assert.match(cssMobile, /\.discovery-selected-hero \.mini-grid/); assert.match(cssMobile, /\.production-queue-grid/); + assert.match(cssMobile, /\.mobile-priority-filters \.filter:nth-child\(n\+3\)/); + assert.match(cssMobile, /\.mobile-secondary-card/); }); test("projects screen uses an adaptive project grid instead of a fixed three-column squeeze", () => {