community增加事件详情
This commit is contained in:
4
app.py
4
app.py
@@ -11123,7 +11123,7 @@ def get_events_effectiveness_stats():
|
|||||||
return jsonify({
|
return jsonify({
|
||||||
'success': True,
|
'success': True,
|
||||||
'data': {
|
'data': {
|
||||||
'currentDate': end_date.strftime('%Y-%m-%d'),
|
'currentDate': current_trading_day.strftime('%Y-%m-%d') if hasattr(current_trading_day, 'strftime') else str(current_trading_day),
|
||||||
'summary': {
|
'summary': {
|
||||||
'totalEvents': 0,
|
'totalEvents': 0,
|
||||||
'avgChg': 0,
|
'avgChg': 0,
|
||||||
@@ -11222,7 +11222,7 @@ def get_events_effectiveness_stats():
|
|||||||
return jsonify({
|
return jsonify({
|
||||||
'success': True,
|
'success': True,
|
||||||
'data': {
|
'data': {
|
||||||
'currentDate': end_date.strftime('%Y-%m-%d'),
|
'currentDate': current_trading_day.strftime('%Y-%m-%d') if hasattr(current_trading_day, 'strftime') else str(current_trading_day),
|
||||||
'summary': summary,
|
'summary': summary,
|
||||||
'dailyStats': daily_stats,
|
'dailyStats': daily_stats,
|
||||||
'topPerformers': top_performers_list
|
'topPerformers': top_performers_list
|
||||||
|
|||||||
@@ -2710,14 +2710,9 @@ const HeroPanel = () => {
|
|||||||
</HStack>
|
</HStack>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
{/* AI舆情时空决策驾驶舱 - 左侧统计面板,中间词频流星图,右侧日历 */}
|
{/* AI舆情时空决策驾驶舱 - 左侧连板情绪,中间今日统计,右侧日历 */}
|
||||||
<Flex gap={5}>
|
<Flex gap={5}>
|
||||||
{/* 左侧:今日事件统计 */}
|
{/* 左侧:连板情绪监测 */}
|
||||||
<Box flex="0.7" minW="0">
|
|
||||||
<EventDailyStats />
|
|
||||||
</Box>
|
|
||||||
|
|
||||||
{/* 中间:词频流星图 */}
|
|
||||||
<Box flex="1.15" minW="0">
|
<Box flex="1.15" minW="0">
|
||||||
<ThemeCometChart
|
<ThemeCometChart
|
||||||
onThemeSelect={(data) => {
|
onThemeSelect={(data) => {
|
||||||
@@ -2737,6 +2732,11 @@ const HeroPanel = () => {
|
|||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
{/* 中间:今日事件统计 */}
|
||||||
|
<Box flex="0.7" minW="0">
|
||||||
|
<EventDailyStats />
|
||||||
|
</Box>
|
||||||
|
|
||||||
{/* 右侧:综合日历 */}
|
{/* 右侧:综合日历 */}
|
||||||
<Box flex="1.15" minW="0">
|
<Box flex="1.15" minW="0">
|
||||||
<CombinedCalendar />
|
<CombinedCalendar />
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ const generateChartOption = (themes) => {
|
|||||||
formatter: (params) => params.data.name,
|
formatter: (params) => params.data.name,
|
||||||
position: 'right',
|
position: 'right',
|
||||||
color: '#fff',
|
color: '#fff',
|
||||||
fontSize: 12,
|
fontSize: 14,
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
textShadowColor: 'rgba(0,0,0,0.8)',
|
textShadowColor: 'rgba(0,0,0,0.8)',
|
||||||
textShadowBlur: 4,
|
textShadowBlur: 4,
|
||||||
@@ -145,9 +145,9 @@ const generateChartOption = (themes) => {
|
|||||||
top: 5,
|
top: 5,
|
||||||
right: 10,
|
right: 10,
|
||||||
orient: 'horizontal',
|
orient: 'horizontal',
|
||||||
textStyle: { color: 'rgba(255, 255, 255, 0.7)', fontSize: 11 },
|
textStyle: { color: 'rgba(255, 255, 255, 0.7)', fontSize: 13 },
|
||||||
itemWidth: 12,
|
itemWidth: 14,
|
||||||
itemHeight: 12,
|
itemHeight: 14,
|
||||||
data: Object.values(STATUS_CONFIG).map((s) => ({
|
data: Object.values(STATUS_CONFIG).map((s) => ({
|
||||||
name: s.name,
|
name: s.name,
|
||||||
icon: 'circle',
|
icon: 'circle',
|
||||||
@@ -165,25 +165,25 @@ const generateChartOption = (themes) => {
|
|||||||
type: 'value',
|
type: 'value',
|
||||||
name: '辨识度(最高板)',
|
name: '辨识度(最高板)',
|
||||||
nameLocation: 'middle',
|
nameLocation: 'middle',
|
||||||
nameGap: 25,
|
nameGap: 28,
|
||||||
nameTextStyle: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 11 },
|
nameTextStyle: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 13 },
|
||||||
min: 0,
|
min: 0,
|
||||||
max: maxX,
|
max: maxX,
|
||||||
interval: 1,
|
interval: 1,
|
||||||
axisLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.2)' } },
|
axisLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.2)' } },
|
||||||
axisLabel: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 10, formatter: '{value}板' },
|
axisLabel: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 12, formatter: '{value}板' },
|
||||||
splitLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.05)' } },
|
splitLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.05)' } },
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name: '热度(家数)',
|
name: '热度(家数)',
|
||||||
nameLocation: 'middle',
|
nameLocation: 'middle',
|
||||||
nameGap: 35,
|
nameGap: 40,
|
||||||
nameTextStyle: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 11 },
|
nameTextStyle: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 13 },
|
||||||
min: 0,
|
min: 0,
|
||||||
max: maxY,
|
max: maxY,
|
||||||
axisLine: { show: false },
|
axisLine: { show: false },
|
||||||
axisLabel: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 10 },
|
axisLabel: { color: 'rgba(255, 255, 255, 0.6)', fontSize: 12 },
|
||||||
splitLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.05)' } },
|
splitLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.05)' } },
|
||||||
},
|
},
|
||||||
series,
|
series,
|
||||||
@@ -289,16 +289,16 @@ const ThemeCometChart = ({ onThemeSelect }) => {
|
|||||||
{/* 标题栏 */}
|
{/* 标题栏 */}
|
||||||
<HStack spacing={3} mb={2}>
|
<HStack spacing={3} mb={2}>
|
||||||
<Box p={2} bg="rgba(255,215,0,0.15)" borderRadius="lg" border="1px solid rgba(255,215,0,0.3)">
|
<Box p={2} bg="rgba(255,215,0,0.15)" borderRadius="lg" border="1px solid rgba(255,215,0,0.3)">
|
||||||
<ThunderboltOutlined style={{ color: '#FFD700', fontSize: '18px' }} />
|
<ThunderboltOutlined style={{ color: '#FFD700', fontSize: '20px' }} />
|
||||||
</Box>
|
</Box>
|
||||||
<VStack align="start" spacing={0} flex={1}>
|
<VStack align="start" spacing={0} flex={1}>
|
||||||
<HStack>
|
<HStack>
|
||||||
<Text fontSize="md" fontWeight="bold" color="#FFD700">
|
<Text fontSize="lg" fontWeight="bold" color="#FFD700">
|
||||||
连板情绪监测
|
连板情绪监测
|
||||||
</Text>
|
</Text>
|
||||||
{loading && <Spinner size="xs" color="yellow.400" />}
|
{loading && <Spinner size="sm" color="yellow.400" />}
|
||||||
</HStack>
|
</HStack>
|
||||||
<Text fontSize="xs" color="whiteAlpha.500">
|
<Text fontSize="sm" color="whiteAlpha.500">
|
||||||
{data.currentDate}
|
{data.currentDate}
|
||||||
</Text>
|
</Text>
|
||||||
</VStack>
|
</VStack>
|
||||||
@@ -324,7 +324,7 @@ const ThemeCometChart = ({ onThemeSelect }) => {
|
|||||||
{data.availableDates.length > 1 && (
|
{data.availableDates.length > 1 && (
|
||||||
<Box px={2} pt={2}>
|
<Box px={2} pt={2}>
|
||||||
<HStack spacing={3}>
|
<HStack spacing={3}>
|
||||||
<Text fontSize="xs" color="whiteAlpha.500" whiteSpace="nowrap">
|
<Text fontSize="sm" color="whiteAlpha.500" whiteSpace="nowrap">
|
||||||
{data.availableDates[data.availableDates.length - 1]?.formatted?.slice(5) || ''}
|
{data.availableDates[data.availableDates.length - 1]?.formatted?.slice(5) || ''}
|
||||||
</Text>
|
</Text>
|
||||||
<ChakraTooltip
|
<ChakraTooltip
|
||||||
@@ -359,7 +359,7 @@ const ThemeCometChart = ({ onThemeSelect }) => {
|
|||||||
/>
|
/>
|
||||||
</Slider>
|
</Slider>
|
||||||
</ChakraTooltip>
|
</ChakraTooltip>
|
||||||
<Text fontSize="xs" color="whiteAlpha.500" whiteSpace="nowrap">
|
<Text fontSize="sm" color="whiteAlpha.500" whiteSpace="nowrap">
|
||||||
{data.availableDates[0]?.formatted?.slice(5) || ''}
|
{data.availableDates[0]?.formatted?.slice(5) || ''}
|
||||||
</Text>
|
</Text>
|
||||||
</HStack>
|
</HStack>
|
||||||
|
|||||||
Reference in New Issue
Block a user