更新Company页面的UI为FUI风格
This commit is contained in:
@@ -136,7 +136,7 @@ const MainlineCard = React.memo(
|
||||
noOfLines={1}
|
||||
flex={1}
|
||||
>
|
||||
{mainline.lv2_name || mainline.lv1_name || "其他"}
|
||||
{mainline.group_name || mainline.lv2_name || mainline.lv1_name || "其他"}
|
||||
</Text>
|
||||
{/* 涨跌幅显示 - 在概念名称旁边 */}
|
||||
{mainline.avg_change_pct != null && (
|
||||
@@ -160,14 +160,15 @@ const MainlineCard = React.memo(
|
||||
{mainline.event_count}
|
||||
</Badge>
|
||||
</HStack>
|
||||
{/* 只有当同时存在 lv1_name 和 lv2_name 时才显示副标题 */}
|
||||
{mainline.lv1_name && mainline.lv2_name && (
|
||||
{/* 显示上级概念名称作为副标题 */}
|
||||
{mainline.parent_name && (
|
||||
<Text
|
||||
fontSize="xs"
|
||||
color={COLORS.secondaryTextColor}
|
||||
noOfLines={1}
|
||||
>
|
||||
{mainline.lv1_name}
|
||||
{mainline.grandparent_name ? `${mainline.grandparent_name} > ` : ""}
|
||||
{mainline.parent_name}
|
||||
</Text>
|
||||
)}
|
||||
</VStack>
|
||||
@@ -283,10 +284,10 @@ const MainlineTimelineViewComponent = forwardRef(
|
||||
const [error, setError] = useState(null);
|
||||
const [mainlineData, setMainlineData] = useState(null);
|
||||
const [expandedGroups, setExpandedGroups] = useState({});
|
||||
// 概念级别选择: 'lv1' | 'lv2' | 具体的 lv2_id
|
||||
// 概念级别选择: 'lv1' | 'lv2' | 'lv3' | 具体概念ID(如 L1_TMT, L2_AI_INFRA, L3_AI_CHIP)
|
||||
const [groupBy, setGroupBy] = useState("lv2");
|
||||
// lv2 概念选项(从 API 获取)
|
||||
const [lv2Options, setLv2Options] = useState([]);
|
||||
// 层级选项(从 API 获取)
|
||||
const [hierarchyOptions, setHierarchyOptions] = useState({ lv1: [], lv2: [], lv3: [] });
|
||||
|
||||
// 根据主线类型获取配色
|
||||
const getColorScheme = useCallback((lv2Name) => {
|
||||
@@ -406,15 +407,16 @@ const MainlineTimelineViewComponent = forwardRef(
|
||||
mainlines: sortedMainlines,
|
||||
});
|
||||
|
||||
// 保存 lv2 选项供下拉框使用
|
||||
if (result.data.lv2_options) {
|
||||
setLv2Options(result.data.lv2_options);
|
||||
// 保存层级选项供下拉框使用
|
||||
if (result.data.hierarchy_options) {
|
||||
setHierarchyOptions(result.data.hierarchy_options);
|
||||
}
|
||||
|
||||
// 初始化展开状态(默认全部展开)
|
||||
const initialExpanded = {};
|
||||
sortedMainlines.forEach((mainline) => {
|
||||
initialExpanded[mainline.lv2_id || mainline.lv1_id] = true;
|
||||
const groupId = mainline.group_id || mainline.lv2_id || mainline.lv1_id;
|
||||
initialExpanded[groupId] = true;
|
||||
});
|
||||
setExpandedGroups(initialExpanded);
|
||||
} else {
|
||||
@@ -563,24 +565,55 @@ const MainlineTimelineViewComponent = forwardRef(
|
||||
onChange={setGroupBy}
|
||||
size="small"
|
||||
style={{
|
||||
width: 160,
|
||||
width: 200,
|
||||
backgroundColor: "transparent",
|
||||
}}
|
||||
popupClassName="dark-select-dropdown"
|
||||
dropdownStyle={{
|
||||
backgroundColor: "#252a34",
|
||||
borderColor: "#3a3f4b",
|
||||
maxHeight: 400,
|
||||
}}
|
||||
showSearch
|
||||
optionFilterProp="label"
|
||||
options={[
|
||||
{ value: "lv1", label: "按一级概念" },
|
||||
{ value: "lv2", label: "按二级概念" },
|
||||
...(lv2Options.length > 0
|
||||
{
|
||||
label: "分组方式",
|
||||
options: [
|
||||
{ value: "lv1", label: "按一级概念(大类)" },
|
||||
{ value: "lv2", label: "按二级概念(细分)" },
|
||||
{ value: "lv3", label: "按三级概念(更细)" },
|
||||
],
|
||||
},
|
||||
...(hierarchyOptions.lv1?.length > 0
|
||||
? [
|
||||
{
|
||||
label: "具体概念",
|
||||
options: lv2Options.map((opt) => ({
|
||||
value: opt.lv2_id,
|
||||
label: opt.lv2_name,
|
||||
label: "一级概念(展开)",
|
||||
options: hierarchyOptions.lv1.map((opt) => ({
|
||||
value: opt.id,
|
||||
label: opt.name,
|
||||
})),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
...(hierarchyOptions.lv2?.length > 0
|
||||
? [
|
||||
{
|
||||
label: "二级概念(展开)",
|
||||
options: hierarchyOptions.lv2.map((opt) => ({
|
||||
value: opt.id,
|
||||
label: `${opt.name}`,
|
||||
})),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
...(hierarchyOptions.lv3?.length > 0
|
||||
? [
|
||||
{
|
||||
label: "三级概念(展开)",
|
||||
options: hierarchyOptions.lv3.map((opt) => ({
|
||||
value: opt.id,
|
||||
label: `${opt.name}`,
|
||||
})),
|
||||
},
|
||||
]
|
||||
@@ -656,9 +689,16 @@ const MainlineTimelineViewComponent = forwardRef(
|
||||
}}
|
||||
>
|
||||
{mainlines.map((mainline) => {
|
||||
const groupId = mainline.lv2_id || mainline.lv1_id || "ungrouped";
|
||||
const groupId =
|
||||
mainline.group_id ||
|
||||
mainline.lv2_id ||
|
||||
mainline.lv1_id ||
|
||||
"ungrouped";
|
||||
const groupName =
|
||||
mainline.lv2_name || mainline.lv1_name || "其他";
|
||||
mainline.group_name ||
|
||||
mainline.lv2_name ||
|
||||
mainline.lv1_name ||
|
||||
"其他";
|
||||
return (
|
||||
<MainlineCard
|
||||
key={groupId}
|
||||
|
||||
Reference in New Issue
Block a user