更新Company页面的UI为FUI风格
This commit is contained in:
@@ -163,13 +163,20 @@ const CompactSearchBox = ({
|
||||
stockDisplayValueRef.current = null;
|
||||
}
|
||||
|
||||
const hasTimeInFilters = filters.start_date || filters.end_date || filters.recent_days;
|
||||
const hasTimeInFilters = filters.start_date || filters.end_date || filters.recent_days || filters.time_filter_key;
|
||||
|
||||
if (hasTimeInFilters && (!tradingTimeRange || !tradingTimeRange.key)) {
|
||||
let inferredKey = 'custom';
|
||||
// 优先使用 time_filter_key(来自 useEventFilters 的默认值)
|
||||
let inferredKey = filters.time_filter_key || 'custom';
|
||||
let inferredLabel = '';
|
||||
|
||||
if (filters.recent_days) {
|
||||
if (filters.time_filter_key === 'current-trading-day') {
|
||||
inferredKey = 'current-trading-day';
|
||||
inferredLabel = '当前交易日';
|
||||
} else if (filters.time_filter_key === 'all') {
|
||||
inferredKey = 'all';
|
||||
inferredLabel = '全部';
|
||||
} else if (filters.recent_days) {
|
||||
if (filters.recent_days === '7') {
|
||||
inferredKey = 'week';
|
||||
inferredLabel = '近一周';
|
||||
@@ -377,7 +384,12 @@ const CompactSearchBox = ({
|
||||
const { range, type, label, key } = timeConfig;
|
||||
let params = {};
|
||||
|
||||
if (type === 'recent_days') {
|
||||
if (type === 'all') {
|
||||
// "全部"按钮:清除所有时间限制
|
||||
params.start_date = '';
|
||||
params.end_date = '';
|
||||
params.recent_days = '';
|
||||
} else if (type === 'recent_days') {
|
||||
params.recent_days = range;
|
||||
params.start_date = '';
|
||||
params.end_date = '';
|
||||
|
||||
@@ -7,6 +7,7 @@ import dayjs from 'dayjs';
|
||||
import locale from 'antd/es/date-picker/locale/zh_CN';
|
||||
import { logger } from '@utils/logger';
|
||||
import { PROFESSIONAL_COLORS } from '@constants/professionalTheme';
|
||||
import tradingDayUtils from '@utils/tradingDayUtils';
|
||||
|
||||
const { RangePicker } = DatePicker;
|
||||
|
||||
@@ -83,28 +84,10 @@ const TradingTimeFilter = ({ value, onChange, compact = false, mobile = false })
|
||||
const yesterdayEnd = now.subtract(1, 'day').endOf('day');
|
||||
|
||||
// 动态按钮配置(根据时段返回不同按钮数组)
|
||||
// 注意:"当前交易日"已在固定按钮中,这里只放特定时段的快捷按钮
|
||||
const dynamicButtonsMap = {
|
||||
'pre-market': [
|
||||
{
|
||||
key: 'latest',
|
||||
label: '最新',
|
||||
range: [yesterday1500, today0930],
|
||||
tooltip: '盘前资讯',
|
||||
timeHint: `昨日 15:00 - 今日 09:30`,
|
||||
color: 'purple',
|
||||
type: 'precise'
|
||||
}
|
||||
],
|
||||
'pre-market': [], // 盘前:使用"当前交易日"即可
|
||||
'morning': [
|
||||
{
|
||||
key: 'latest',
|
||||
label: '最新',
|
||||
range: [today0930, now],
|
||||
tooltip: '早盘最新',
|
||||
timeHint: `今日 09:30 - ${now.format('HH:mm')}`,
|
||||
color: 'green',
|
||||
type: 'precise'
|
||||
},
|
||||
{
|
||||
key: 'intraday',
|
||||
label: '盘中',
|
||||
@@ -115,27 +98,8 @@ const TradingTimeFilter = ({ value, onChange, compact = false, mobile = false })
|
||||
type: 'precise'
|
||||
}
|
||||
],
|
||||
'lunch': [
|
||||
{
|
||||
key: 'latest',
|
||||
label: '最新',
|
||||
range: [today1130, now],
|
||||
tooltip: '午休时段',
|
||||
timeHint: `今日 11:30 - ${now.format('HH:mm')}`,
|
||||
color: 'orange',
|
||||
type: 'precise'
|
||||
}
|
||||
],
|
||||
'lunch': [], // 午休:使用"当前交易日"即可
|
||||
'afternoon': [
|
||||
{
|
||||
key: 'latest',
|
||||
label: '最新',
|
||||
range: [today1300, now],
|
||||
tooltip: '午盘最新',
|
||||
timeHint: `今日 13:00 - ${now.format('HH:mm')}`,
|
||||
color: 'green',
|
||||
type: 'precise'
|
||||
},
|
||||
{
|
||||
key: 'intraday',
|
||||
label: '盘中',
|
||||
@@ -155,21 +119,35 @@ const TradingTimeFilter = ({ value, onChange, compact = false, mobile = false })
|
||||
type: 'precise'
|
||||
}
|
||||
],
|
||||
'after-hours': [
|
||||
{
|
||||
key: 'latest',
|
||||
label: '最新',
|
||||
range: [today1500, now],
|
||||
tooltip: '盘后最新',
|
||||
timeHint: `今日 15:00 - ${now.format('HH:mm')}`,
|
||||
color: 'red',
|
||||
type: 'precise'
|
||||
}
|
||||
]
|
||||
'after-hours': [] // 盘后:使用"当前交易日"即可
|
||||
};
|
||||
|
||||
// 获取上一个交易日(使用 tdays.csv 数据)
|
||||
const getPrevTradingDay = () => {
|
||||
try {
|
||||
const prevTradingDay = tradingDayUtils.getPreviousTradingDay(now.toDate());
|
||||
return dayjs(prevTradingDay);
|
||||
} catch (e) {
|
||||
// 降级:简单地减一天(不考虑周末节假日)
|
||||
logger.warn('TradingTimeFilter', '获取上一交易日失败,降级处理', e);
|
||||
return now.subtract(1, 'day');
|
||||
}
|
||||
};
|
||||
|
||||
const prevTradingDay = getPrevTradingDay();
|
||||
const prevTradingDay1500 = prevTradingDay.hour(15).minute(0).second(0);
|
||||
|
||||
// 固定按钮配置(始终显示)
|
||||
const fixedButtons = [
|
||||
{
|
||||
key: 'current-trading-day',
|
||||
label: '当前交易日',
|
||||
range: [prevTradingDay1500, now],
|
||||
tooltip: '当前交易日事件',
|
||||
timeHint: `${prevTradingDay.format('MM-DD')} 15:00 - 现在`,
|
||||
color: 'green',
|
||||
type: 'precise'
|
||||
},
|
||||
{
|
||||
key: 'morning-fixed',
|
||||
label: '早盘',
|
||||
@@ -214,6 +192,15 @@ const TradingTimeFilter = ({ value, onChange, compact = false, mobile = false })
|
||||
timeHint: '过去30天',
|
||||
color: 'volcano',
|
||||
type: 'recent_days'
|
||||
},
|
||||
{
|
||||
key: 'all',
|
||||
label: '全部',
|
||||
range: null, // 无时间限制
|
||||
tooltip: '显示全部事件',
|
||||
timeHint: '不限时间',
|
||||
color: 'default',
|
||||
type: 'all'
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user