终端搜索扩至全字段匹配:city key、中英文 region、market question 等 11 个字段
This commit is contained in:
@@ -883,13 +883,24 @@ function ScanTerminalScreen() {
|
|||||||
if (!searchQuery.trim()) return rows;
|
if (!searchQuery.trim()) return rows;
|
||||||
const q = searchQuery.toLowerCase().trim();
|
const q = searchQuery.toLowerCase().trim();
|
||||||
return rows.filter((row) => {
|
return rows.filter((row) => {
|
||||||
const city = (rowName(row) || "").toLowerCase();
|
const haystack = [
|
||||||
const airport = (row.airport || "").toLowerCase();
|
row.city,
|
||||||
const region = ((isEn ? row.trading_region_label : row.trading_region_label_zh) || row.trading_region_label || "").toLowerCase();
|
row.city_display_name,
|
||||||
const signal = (row.ai_decision || row.v4_metar_decision || row.signal_status || "").toLowerCase();
|
row.display_name,
|
||||||
return city.includes(q) || airport.includes(q) || region.includes(q) || signal.includes(q);
|
row.airport,
|
||||||
|
row.trading_region_label,
|
||||||
|
row.trading_region_label_zh,
|
||||||
|
row.market_question,
|
||||||
|
row.target_label,
|
||||||
|
row.ai_decision,
|
||||||
|
row.v4_metar_decision,
|
||||||
|
row.signal_status,
|
||||||
|
]
|
||||||
|
.filter(Boolean)
|
||||||
|
.map((v) => String(v).toLowerCase());
|
||||||
|
return haystack.some((s) => s.includes(q));
|
||||||
});
|
});
|
||||||
}, [rows, searchQuery, isEn]);
|
}, [rows, searchQuery]);
|
||||||
|
|
||||||
const [selectedId, setSelectedId] = useState<string | null>(null);
|
const [selectedId, setSelectedId] = useState<string | null>(null);
|
||||||
const selectedRow = useMemo(
|
const selectedRow = useMemo(
|
||||||
|
|||||||
@@ -18,36 +18,17 @@ export function ScanTerminalLoadingScreen({
|
|||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<div className={rootClassName}>
|
<div className={rootClassName}>
|
||||||
<div className={clsx("scan-terminal", themeMode === "light" && "light")}>
|
<div className={clsx("flex h-screen w-full items-center justify-center bg-[#e9edf3]", themeMode === "light" && "light")}>
|
||||||
<main className="scan-data-grid">
|
<LoadingSignal
|
||||||
<div className="scan-topbar">
|
title={
|
||||||
<div className="scan-topbar-title">
|
isEn ? "Preparing decision workspace" : "正在准备决策工作台"
|
||||||
<strong>
|
}
|
||||||
{isEn ? "PolyWeather Terminal" : "PolyWeather 交易决策台"}
|
description={
|
||||||
</strong>
|
isEn
|
||||||
<span>
|
? "Checking access, city context and today's tradable weather windows."
|
||||||
{isEn
|
: "正在检查权限、城市上下文和今日可交易天气窗口。"
|
||||||
? "Loading decision cards, city evidence, and market signals"
|
}
|
||||||
: "正在加载决策卡、城市证据和市场信号"}
|
/>
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div className="scan-topbar-actions">
|
|
||||||
<span className="scan-topbar-time">{userLocalTime}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="scan-loading-state">
|
|
||||||
<LoadingSignal
|
|
||||||
title={
|
|
||||||
isEn ? "Preparing decision workspace" : "正在准备决策工作台"
|
|
||||||
}
|
|
||||||
description={
|
|
||||||
isEn
|
|
||||||
? "Checking access, city context and today's tradable weather windows."
|
|
||||||
: "正在检查权限、城市上下文和今日可交易天气窗口。"
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user