更新Company页面的UI为FUI风格

This commit is contained in:
2025-12-22 15:31:10 +08:00
parent 6d878df27c
commit 20bcf3770a
2 changed files with 98 additions and 25 deletions

View File

@@ -1726,12 +1726,59 @@ export const eventHandlers = [
});
});
// 生成各层级的模拟涨跌幅数据
const generatePriceData = () => {
// 生成 -5% 到 +8% 之间的随机涨跌幅
return parseFloat((Math.random() * 13 - 5).toFixed(2));
};
// 为各层级生成涨跌幅 Map
const priceDataMap = {
lv1: {},
lv2: {},
lv3: {}
};
// 为每个层级生成涨跌幅
mainlineDefinitions.forEach(def => {
if (!priceDataMap.lv1[def.lv1_name]) {
priceDataMap.lv1[def.lv1_name] = generatePriceData();
}
if (!priceDataMap.lv2[def.lv2_name]) {
priceDataMap.lv2[def.lv2_name] = generatePriceData();
}
if (!priceDataMap.lv3[def.lv3_name]) {
priceDataMap.lv3[def.lv3_name] = generatePriceData();
}
});
const mainlines = Object.values(mainlineGroups)
.map(group => ({
...group,
events: group.events.slice(0, limitPerMainline),
event_count: Math.min(group.events.length, limitPerMainline)
}))
.map(group => {
// 根据分组层级获取对应的涨跌幅
let avgChangePct = null;
if (groupBy === 'lv1' || groupBy.startsWith('L1_')) {
// lv1 分组,使用 lv1 涨跌幅(如果是 L1_ 开头,则显示的是 lv2 分组,使用 lv2 涨跌幅)
if (groupBy.startsWith('L1_')) {
avgChangePct = priceDataMap.lv2[group.group_name] ?? null;
} else {
avgChangePct = priceDataMap.lv1[group.group_name] ?? null;
}
} else if (groupBy === 'lv3' || groupBy.startsWith('L2_')) {
// lv3 分组,使用 lv3 涨跌幅
avgChangePct = priceDataMap.lv3[group.group_name] ?? null;
} else {
// lv2 分组(默认),使用 lv2 涨跌幅
avgChangePct = priceDataMap.lv2[group.group_name] ?? null;
}
return {
...group,
events: group.events.slice(0, limitPerMainline),
event_count: Math.min(group.events.length, limitPerMainline),
avg_change_pct: avgChangePct,
price_date: new Date().toISOString().split('T')[0]
};
})
.filter(group => group.event_count > 0)
.sort((a, b) => b.event_count - a.event_count);