fix(monitor): 作用范围对齐 — 导入标的后下拉框仍与控件同行

根因: 外层容器 items-center, 「已加入」出现后右侧列变为两行,
下拉框被垂直居中到两行中间, 观感错位下沉。
- 外层改 items-start: 下拉框永远对齐第一行(导入/搜索行)顶部,
  与 h-7 等高 → 始终同一水平线
- 控件行去掉 flex-wrap、搜索框 min-w-0: 任何宽度都不换行

验证: tsc 通过; 导入 22 只后实测三控件 top 均为 348px、高均 28px,
胶囊在下方 6px 独立成行, 截图确认无错位下沉。
This commit is contained in:
shy3130
2026-08-20 15:23:49 +08:00
parent 3630653342
commit 420a362bcd
@@ -751,14 +751,14 @@ export function RuleEditor({ rule, preset, simple, onClose, onSaved }: Props) {
{/* 作用范围 */}
{draft.type !== 'sector' && <div className="space-y-2">
<span className="text-[11px] text-muted"></span>
<div className="flex items-center gap-1.5">
<div className="flex items-start gap-1.5">
<select value={draft.scope} onChange={e => setDraft(d => ({ ...d, scope: e.target.value as MonitorRule['scope'] }))} className="h-7 w-32 shrink-0 rounded border border-border bg-base px-2 text-[11px] text-foreground">
{visibleScopes.map(s => <option key={s.key} value={s.key} disabled={hasIntradaySignal && s.key !== 'symbols'}>{s.label}</option>)}
</select>
{draft.scope === 'symbols' && (
<div className="min-w-0 flex-1 space-y-1.5">
{/* 导入与搜索: 与范围下拉同一行等高(h-7), 搜索框占满剩余宽度 */}
<div className="flex flex-wrap items-center gap-1.5">
{/* 导入与搜索: 与范围下拉同一行等高(h-7), 不换行, 搜索框占满剩余宽度 */}
<div className="flex items-center gap-1.5">
<div className="relative" ref={watchMenuRef}>
<button
type="button"
@@ -793,7 +793,7 @@ export function RuleEditor({ rule, preset, simple, onClose, onSaved }: Props) {
</div>
)}
</div>
<div className="relative min-w-[140px] flex-1">
<div className="relative min-w-0 flex-1">
<input
value={symbolQuery}
onChange={e => setSymbolQuery(e.target.value)}