更新Company页面的UI为FUI风格

This commit is contained in:
2025-12-22 15:48:36 +08:00
parent 61a29ce5ce
commit 22c5c166bf

View File

@@ -459,6 +459,25 @@ const MainlineTimelineViewComponent = forwardRef(
[mainlineData] [mainlineData]
); );
// 根据排序方式排序主线列表(必须在条件渲染之前,遵循 Hooks 规则)
const sortedMainlines = useMemo(() => {
const rawMainlines = mainlineData?.mainlines;
if (!rawMainlines) return [];
const sorted = [...rawMainlines];
switch (sortBy) {
case "change_desc":
// 按涨跌幅从高到低(涨幅大的在前)
return sorted.sort((a, b) => (b.avg_change_pct ?? -999) - (a.avg_change_pct ?? -999));
case "change_asc":
// 按涨跌幅从低到高(跌幅大的在前)
return sorted.sort((a, b) => (a.avg_change_pct ?? 999) - (b.avg_change_pct ?? 999));
case "event_count":
default:
// 按事件数量从多到少
return sorted.sort((a, b) => b.event_count - a.event_count);
}
}, [mainlineData?.mainlines, sortBy]);
// 渲染加载状态 // 渲染加载状态
if (loading) { if (loading) {
return ( return (
@@ -510,29 +529,13 @@ const MainlineTimelineViewComponent = forwardRef(
} }
const { const {
mainlines: rawMainlines,
total_events, total_events,
mainline_count, mainline_count,
ungrouped_count, ungrouped_count,
} = mainlineData; } = mainlineData;
// 根据排序方式排序主线列表 // 使用排序后的主线列表
const mainlines = useMemo(() => { const mainlines = sortedMainlines;
if (!rawMainlines) return [];
const sorted = [...rawMainlines];
switch (sortBy) {
case "change_desc":
// 按涨跌幅从高到低(涨幅大的在前)
return sorted.sort((a, b) => (b.avg_change_pct ?? -999) - (a.avg_change_pct ?? -999));
case "change_asc":
// 按涨跌幅从低到高(跌幅大的在前)
return sorted.sort((a, b) => (a.avg_change_pct ?? 999) - (b.avg_change_pct ?? 999));
case "event_count":
default:
// 按事件数量从多到少
return sorted.sort((a, b) => b.event_count - a.event_count);
}
}, [rawMainlines, sortBy]);
return ( return (
<Box <Box