From 72141098b78288c54e095a7ef82a0cba72331abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=BD=E5=B7=A5=E5=91=98?= <4846a27a-ba87-49c9-939d-7275f63efcc7@agents.multica.local> Date: Tue, 25 Aug 2026 01:03:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(HEL-114):=20P3a=E9=AA=8C=E6=94=B6=E4=B8=89?= =?UTF-8?q?=E6=9D=A1=E6=95=B4=E6=94=B9=E2=80=94=E2=80=94=E9=80=89=E8=82=A1?= =?UTF-8?q?=E6=8A=BD=E5=B1=89=E5=88=86=E7=B1=BB=E8=83=B6=E5=9B=8A=E6=A8=AA?= =?UTF-8?q?=E6=8E=92+=E7=AD=96=E7=95=A5=E5=88=97=E8=A1=A8=E8=BE=A8?= =?UTF-8?q?=E8=AF=86=E5=BA=A6/=E8=81=8A=E5=A4=A9=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=8C=BA=E9=94=AE=E7=9B=98=E9=81=BF=E8=AE=A9/=E8=BF=BD?= =?UTF-8?q?=E9=97=AE=E4=B8=8E=E9=A2=84=E7=BD=AE=E8=83=B6=E5=9B=8A=E6=B8=B2?= =?UTF-8?q?=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: multica-agent --- app/frontend/m/css/features.css | 32 +++++++++++++++++++++++++++++++- app/frontend/m/js/boot.js | 4 +++- app/frontend/m/js/pages.js | 6 +++++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/app/frontend/m/css/features.css b/app/frontend/m/css/features.css index 921cd59..9d2c30a 100644 --- a/app/frontend/m/css/features.css +++ b/app/frontend/m/css/features.css @@ -2323,6 +2323,8 @@ white-space: nowrap; } .m-chat-preset-list .m-source-tab { + flex: 0 0 auto; + white-space: nowrap; border: 1px solid var(--border-strong); background: var(--surface); color: var(--text-secondary); @@ -2344,6 +2346,11 @@ max-width: 82%; } .m-chat-followup-row .m-source-tab { + flex: 0 0 auto; + white-space: nowrap; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; border: 1px solid var(--border-strong); background: var(--surface); color: var(--text-secondary); @@ -2374,7 +2381,6 @@ border-top: 1px solid var(--border); /* 键盘弹起时由 --m-keyboard-inset 推上 */ transform: translateY(calc(-1 * var(--m-keyboard-inset, 0px))); - padding-bottom: calc(8px + var(--mobile-safe-bottom) + var(--m-keyboard-inset, 0px)); } .m-chat-input-wrap { @@ -2613,6 +2619,29 @@ margin-bottom: 8px; flex-wrap: wrap; } +.m-screener-drawer-cats .m-source-tab { + flex: 0 0 auto; + white-space: nowrap; + height: 32px; + border-radius: 999px; + padding: 0 14px; + font-size: 13px; +} +.m-screener-drawer-section { + display: flex; + align-items: baseline; + justify-content: space-between; + margin: 4px 0 8px; +} +.m-screener-drawer-section-title { + font-size: var(--font-size-label); + font-weight: 600; + color: var(--text-secondary); +} +.m-screener-drawer-section-count { + font-size: 12px; + color: var(--text-tertiary); +} .m-screener-drawer-list { display: flex; flex-direction: column; @@ -2633,6 +2662,7 @@ color: var(--text-primary); } .m-screener-drawer-row:active { background: var(--surface-hover); } +.m-screener-drawer-row.is-current { background: var(--surface-selected); } .m-screener-drawer-main { flex: 1 1 auto; min-width: 0; diff --git a/app/frontend/m/js/boot.js b/app/frontend/m/js/boot.js index eb1bb6b..9ecc085 100644 --- a/app/frontend/m/js/boot.js +++ b/app/frontend/m/js/boot.js @@ -39,7 +39,9 @@ app.style.setProperty("--m-keyboard-inset", "0px"); return; } - const inset = Math.max(0, global.innerHeight - visual.height - visual.offsetTop); + // 键盘高度 = 布局视口高度 - 可视视口高度。iOS 弹键盘时会同时抬升 offsetTop, + // 若再扣 offsetTop 会把 inset 算成 0,导致输入区/底栏不避让,故只按高度差计算。 + const inset = Math.max(0, global.innerHeight - visual.height); app.style.setProperty("--m-keyboard-inset", inset + "px"); } diff --git a/app/frontend/m/js/pages.js b/app/frontend/m/js/pages.js index ece020d..ece9f5e 100644 --- a/app/frontend/m/js/pages.js +++ b/app/frontend/m/js/pages.js @@ -2080,7 +2080,7 @@ const status = screenerStrategyStatusTextFor(s, state.screener.data); const statusCls = status === "数据不足" ? 'm-strategy-status--warn' : (status === "暂无信号" || status === "等待盘后" ? 'm-strategy-status--muted' : ''); const regimeText = screenerStrategyRegimeText(s); - return '